88 lines
2.4 KiB
PHP
88 lines
2.4 KiB
PHP
|
<?php
|
||
|
class ClassFeatureTranslation extends ClassFeature {
|
||
|
public function __construct(){}
|
||
|
public function __destruct(){}
|
||
|
|
||
|
public function getFeatureTranslation($code, $lang='source'){
|
||
|
$this->_code = $code;
|
||
|
$this->_lang = $lang;
|
||
|
$oPDOLink = ClassConfig::databaseConnect();
|
||
|
|
||
|
$sql="
|
||
|
SELECT ".$this->_lang."
|
||
|
FROM core_feature_translation
|
||
|
WHERE code=:code
|
||
|
LIMIT 1
|
||
|
";
|
||
|
$execSQL = $oPDOLink->prepare($sql);
|
||
|
$execSQL->execute(array(':code'=>$this->_code));
|
||
|
$row = $execSQL->fetch(PDO::FETCH_ASSOC);
|
||
|
if($row[$this->_lang] != ''){
|
||
|
return $row[$this->_lang];
|
||
|
} else {
|
||
|
return $row['source'];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public function getFeatureTranslationById($id, $lang){
|
||
|
//TODO get translation from APC cache
|
||
|
$this->_id = $id;
|
||
|
$this->_lang = $lang;
|
||
|
$oPDOLink = ClassConfig::databaseConnect();
|
||
|
|
||
|
$sql="
|
||
|
SELECT source, ".$this->_lang."
|
||
|
FROM core_feature_translation
|
||
|
WHERE id=:id
|
||
|
LIMIT 1
|
||
|
";
|
||
|
$execSQL = $oPDOLink->prepare($sql);
|
||
|
$execSQL->execute(array(':id'=>$this->_id));
|
||
|
$row = $execSQL->fetch(PDO::FETCH_ASSOC);
|
||
|
if($row[$this->_lang] != ''){
|
||
|
return $row[$this->_lang];
|
||
|
} else {
|
||
|
return $row['source'];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public function getURLTranslation($lang_code_source, $lang_code_dest, $page_url){
|
||
|
//TODO get translation from APC cache
|
||
|
$this->_langCodeSource = $lang_code_source;
|
||
|
$this->_langCodeDest = $lang_code_dest;
|
||
|
$this->_pageUrl = $page_url;
|
||
|
$config = ClassConfig::getConfig();
|
||
|
$oPDOLink = ClassConfig::databaseConnect();
|
||
|
|
||
|
$regex = '#(?<='.ClassConfig::getURLRoot().')[a-z0-9-]*#';
|
||
|
preg_match($regex, $this->_pageUrl, $page);
|
||
|
|
||
|
$sql = "
|
||
|
SELECT source, ".$this->_langCodeDest."
|
||
|
FROM core_feature_translation
|
||
|
WHERE (".$this->_langCodeSource."=:page OR source=:page_2)
|
||
|
AND code LIKE 'menu_%_url';
|
||
|
";
|
||
|
|
||
|
$execSQL = $oPDOLink->prepare($sql);
|
||
|
$execSQL->execute(array(
|
||
|
':page'=>$page[0],
|
||
|
':page_2'=>$page[0]
|
||
|
));
|
||
|
$row = $execSQL->fetch(PDO::FETCH_ASSOC);
|
||
|
|
||
|
if(!isset($row[$this->_langCodeDest])){
|
||
|
$new_page = $page[0];
|
||
|
}
|
||
|
else if($row[$this->_langCodeDest] != ''){
|
||
|
$new_page = $row[$this->_langCodeDest];
|
||
|
} else{
|
||
|
$new_page = $row['source'];
|
||
|
}
|
||
|
|
||
|
$new_page_url = preg_replace('/'.$page[0].'/', $new_page, $this->_pageUrl, 1);
|
||
|
|
||
|
return $new_page_url;
|
||
|
}
|
||
|
}
|