i18n
This commit is contained in:
@@ -32,6 +32,10 @@ class Media extends PhpObject {
|
||||
$this->sSystemType = (substr(php_uname(), 0, 7) == "Windows")?'win':'unix';
|
||||
}
|
||||
|
||||
public function getProjectCodeName() {
|
||||
return $this->oProject->getProjectCodeName();
|
||||
}
|
||||
|
||||
public function getMediasInfo() {
|
||||
if(empty($this->asMedias)) {
|
||||
if($this->oProject->getProjectId()) {
|
||||
@@ -57,8 +61,15 @@ class Media extends PhpObject {
|
||||
|
||||
public function addMedia($sMediaName, $sMethod='upload') {
|
||||
$sError = '';
|
||||
if(!$this->isProjectModeValid() && $sMethod!='sync') $sError = 'Le projet (id='.$this->oProject->getProjectId().') n\'est pas en mode "blog"';
|
||||
elseif($this->oDb->pingValue(self::MEDIA_TABLE, array('filename'=>$sMediaName)) && $sMethod!='sync') $sError = 'l\'image existe déjà';
|
||||
$asErrorParams = array();
|
||||
if(!$this->isProjectModeValid() && $sMethod!='sync') {
|
||||
$sError = 'upload_wrong_mode';
|
||||
$asErrorParams[] = $this->oProject->getProjectCodeName();
|
||||
}
|
||||
elseif($this->oDb->pingValue(self::MEDIA_TABLE, array('filename'=>$sMediaName)) && $sMethod!='sync') {
|
||||
$sError = 'upload_media_exist';
|
||||
$asErrorParams[] = $sMediaName;
|
||||
}
|
||||
else {
|
||||
//Add media to DB
|
||||
$asMediaInfo = $this->getMediaInfoFromFile($sMediaName);
|
||||
@@ -74,19 +85,14 @@ class Media extends PhpObject {
|
||||
if($sMethod=='sync') $iMediaId = $this->oDb->insertUpdateRow(self::MEDIA_TABLE, $asDbInfo, array(Db::getId(Project::PROJ_TABLE), 'filename'));
|
||||
else $iMediaId = $this->oDb->insertRow(self::MEDIA_TABLE, $asDbInfo);
|
||||
|
||||
if(!$iMediaId) $sError = 'l\'image n\'a pas pu être entrée en base';
|
||||
if(!$iMediaId) $sError = 'error_commit_db';
|
||||
else {
|
||||
//Create thumbnail
|
||||
$this->getMediaThumbnail($sMediaName);
|
||||
}
|
||||
}
|
||||
|
||||
if($sError!='') {
|
||||
$sError = 'Erreur lors de l\'ajout de "'.$sMediaName.'" : '.$sError;
|
||||
$this->addError($sError);
|
||||
}
|
||||
|
||||
return $sError;
|
||||
return Spot::getResult(($sError==''), $sError, $asErrorParams);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -130,7 +130,6 @@ class Project extends PhpObject {
|
||||
|
||||
$asProject['geofile'] = Spot::addTimestampToFilePath(Geo::getFilePath($asProject['geofile'], GeoJson::EXT));
|
||||
$asProject['codename'] = $sCodeName;
|
||||
$asProject['timezone_desc'] = Spot::getTimeZoneDesc($asProject['timezone']);
|
||||
}
|
||||
return $bSpecificProj?$asProject:$asProjects;
|
||||
}
|
||||
|
||||
27
inc/spot.php
27
inc/spot.php
@@ -19,8 +19,6 @@ class Spot extends Main
|
||||
//Database
|
||||
const POST_TABLE = 'posts';
|
||||
|
||||
const FORMAT_TIME = 'd/m/Y à H:i';
|
||||
|
||||
const FEED_CHUNK_SIZE = 15;
|
||||
|
||||
/**
|
||||
@@ -126,9 +124,7 @@ class Spot extends Main
|
||||
'consts' => array(
|
||||
'geo_server' => Settings::GEO_SERVER,
|
||||
'modes' => Project::MODES,
|
||||
'site_timezone' => Settings::TIMEZONE,
|
||||
'site_timezone_desc' => self::getTimeZoneDesc(Settings::TIMEZONE),
|
||||
'trans' => $this->oLang->getTranslations()
|
||||
'site_timezone' => Settings::TIMEZONE
|
||||
)
|
||||
),
|
||||
'index',
|
||||
@@ -225,7 +221,7 @@ class Spot extends Main
|
||||
foreach($asMedias as $iIndex=>$asMedia) {
|
||||
$sTimeRef = $asMedia[$sTimeRefField];
|
||||
if($sTimeRef >= $this->oProject->getActivePeriod('from') && $sTimeRef <= $this->oProject->getActivePeriod('to')) {
|
||||
$asMedia['taken_on_formatted'] = date(self::FORMAT_TIME, strtotime($asMedia['taken_on']));
|
||||
$asMedia['taken_on_formatted'] = $this->getTimeFormat(strtotime($asMedia['taken_on']));
|
||||
$asMedia['displayed_id'] = 'N°'.($iIndex + 1);
|
||||
|
||||
$this->addTimeStamp($asMedia, strtotime($sTimeRef));
|
||||
@@ -263,8 +259,8 @@ class Spot extends Main
|
||||
|
||||
private function addTimeStamp(&$asData, $iTime) {
|
||||
$asData['unix_time'] = (int) $iTime;
|
||||
$asData['relative_time'] = Toolbox::getDateTimeDesc($iTime, 'fr');
|
||||
$asData['formatted_time'] = date(self::FORMAT_TIME, $iTime);
|
||||
$asData['relative_time'] = Toolbox::getDateTimeDesc($iTime, $this->oLang->getLanguage());
|
||||
$asData['formatted_time'] = $this->getTimeFormat($iTime);
|
||||
}
|
||||
|
||||
public function getNewsFeed($iChunk=0)
|
||||
@@ -328,7 +324,7 @@ class Spot extends Main
|
||||
public function upload()
|
||||
{
|
||||
$this->oClassManagement->incClass('uploader', true);
|
||||
$oUploader = new Uploader($this->oMedia);
|
||||
$oUploader = new Uploader($this->oMedia, $this->oLang);
|
||||
|
||||
return $oUploader->sBody;
|
||||
}
|
||||
@@ -355,7 +351,7 @@ class Spot extends Main
|
||||
$bSuccess = $this->oProject->setTimeZone($sValue);
|
||||
break;
|
||||
}
|
||||
if(!$bSuccess) $sDesc = 'Issue committing to DB';
|
||||
if(!$bSuccess) $sDesc = Mask::LANG_PREFIX.'error_commit_db';
|
||||
|
||||
return self::getJsonResult($bSuccess, $sDesc, array('values'=>$this->oProject->getProject()));
|
||||
}
|
||||
@@ -380,10 +376,9 @@ class Spot extends Main
|
||||
return $iDegree.'°'.$iMinute.'\''.$fSecond.'"'.$sDirection;
|
||||
}
|
||||
|
||||
public static function getTimeZoneDesc($sTimeZone) {
|
||||
$sCity = substr(strrchr($sTimeZone, '/'), 1);
|
||||
return 'heure d'.(in_array(strtolower(substr($sCity, 0, 1)), array('a', 'e', 'i', 'o', 'u', 'h'))?'\'':'e ').$sCity;
|
||||
public function getTimeFormat($iTime) {
|
||||
$sDate = date('d/m/Y', $iTime);
|
||||
$sTime = date('H:i', $iTime);
|
||||
return $this->oLang->getTranslation('date_time', array($sDate, $sTime));
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
}
|
||||
@@ -8,12 +8,18 @@ class Uploader extends UploadHandler
|
||||
*/
|
||||
private $oMedia;
|
||||
|
||||
/**
|
||||
* Languages
|
||||
* @var Translator
|
||||
*/
|
||||
private $oLang;
|
||||
|
||||
public $sBody;
|
||||
|
||||
function __construct(&$oMedia)
|
||||
function __construct(&$oMedia, &$oLang)
|
||||
{
|
||||
$this->error_messages['wrong_project_mode'] = 'Le projet n\'est pas en mode "blog".';
|
||||
$this->oMedia = &$oMedia;
|
||||
$this->oLang = &$oLang;
|
||||
$this->sBody = '';
|
||||
parent::__construct(array('image_versions'=>array(), 'accept_file_types'=>'/\.(gif|jpe?g|png|mov)$/i'));
|
||||
}
|
||||
@@ -23,7 +29,7 @@ class Uploader extends UploadHandler
|
||||
|
||||
//Check project mode
|
||||
if(!$this->oMedia->isProjectModeValid()) {
|
||||
$file->error = $this->get_error_message('wrong_project_mode');
|
||||
$file->error = $this->get_error_message('upload_wrong_mode', array($this->oMedia->getProjectCodeName()));
|
||||
$bResult = false;
|
||||
}
|
||||
|
||||
@@ -34,10 +40,8 @@ class Uploader extends UploadHandler
|
||||
$file = parent::handle_file_upload($uploaded_file, $name, $size, $type, $error, $index, $content_range);
|
||||
|
||||
if(empty($file->error)) {
|
||||
$sError = $this->oMedia->addMedia($file->name);
|
||||
if($sError!='') {
|
||||
$file->error = $this->get_error_message($sError);
|
||||
}
|
||||
$asResult = $this->oMedia->addMedia($file->name);
|
||||
if(!$asResult['result']) $file->error = $this->get_error_message($asResult['desc'], $asResult['data']);
|
||||
}
|
||||
|
||||
return $file;
|
||||
@@ -46,6 +50,13 @@ class Uploader extends UploadHandler
|
||||
protected function body($sBodyPart) {
|
||||
$this->sBody .= $sBodyPart;
|
||||
}
|
||||
|
||||
protected function get_error_message($sError, $asParams=array()) {
|
||||
$sTranslatedError = $this->oLang->getTranslation($sError, $asParams);
|
||||
if($sTranslatedError) return $sTranslatedError;
|
||||
elseif(array_key_exists($sError, $this->error_messages)) return $this->error_messages[$sError];
|
||||
else return $sError;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user