90 lines
2.5 KiB
PHP
90 lines
2.5 KiB
PHP
<?php
|
|
interface InterfaceController {
|
|
public function getPage($graphical_theme);
|
|
}
|
|
|
|
class ClassController extends ClassConfig implements InterfaceController {
|
|
private $_returnRequest;
|
|
|
|
public function __construct($request){
|
|
return $this->_returnRequest = $request;
|
|
}
|
|
|
|
public function getPage($graphical_theme, $lang_code='source'){
|
|
$this->_graphicalTheme = $graphical_theme;
|
|
$this->_langCode = $lang_code;
|
|
$fileName = $this->_returnRequest['page'];
|
|
$oPDOLink = ClassConfig::databaseConnect();
|
|
|
|
// Select good model for each view with all languages
|
|
$sql="
|
|
SELECT model
|
|
FROM core_feature
|
|
WHERE url_feature_translation_id=(
|
|
SELECT id
|
|
FROM core_feature_translation
|
|
WHERE (".$this->_langCode."=:url
|
|
OR source=:url)
|
|
LIMIT 1)
|
|
LIMIT 1
|
|
";
|
|
$execSQL = $oPDOLink->prepare($sql);
|
|
$execSQL->execute(array(':url'=>$this->_returnRequest['page']));
|
|
$row = $execSQL->fetch(PDO::FETCH_ASSOC);
|
|
|
|
define("FILENAME_MODEL" , "./models/".$row['model'].".php");
|
|
if(file_exists(FILENAME_MODEL)){
|
|
require_once(FILENAME_MODEL);
|
|
} else {
|
|
//return false;
|
|
echo "Impossible de trouver le model ".$row['model'];
|
|
}
|
|
|
|
define("FILENAME_VIEW" , "./themes/".$this->_graphicalTheme."/views/".$row['model'].".php");
|
|
if(file_exists(FILENAME_VIEW)){
|
|
require_once(FILENAME_VIEW);
|
|
} else {
|
|
//return false;
|
|
echo "Impossible de trouver la vue ".$row['model'];
|
|
}
|
|
}
|
|
|
|
private function _getModel($page, $lang_code){
|
|
// Select good model for each view with all languages
|
|
$this->_page = $page;
|
|
$oPDOLink = ClassConfig::databaseConnect();
|
|
$sql="
|
|
SELECT model
|
|
FROM core_feature
|
|
WHERE url_feature_translation_id=(SELECT id FROM core_feature_translation WHERE ".$this->_langCode."=:url LIMIT 1)
|
|
LIMIT 1
|
|
";
|
|
$execSQL = $oPDOLink->prepare($sql);
|
|
$execSQL->execute(array(':url'=>$this->_page));
|
|
$row = $execSQL->fetch(PDO::FETCH_ASSOC);
|
|
return $row['model'];
|
|
}
|
|
|
|
public function getMetaHTML($meta_tag, $lang_code){
|
|
$this->_metaTag = $meta_tag;
|
|
$this->_langCode = $lang_code;
|
|
$page = $this->_returnRequest['page'];
|
|
$model = $this->_getModel($page, $this->_langCode);
|
|
|
|
$oPDOLink = ClassConfig::databaseConnect();
|
|
$sql="
|
|
SELECT (SELECT ".$this->_langCode." FROM core_feature_translation WHERE id=cf.".$this->_metaTag.") AS meta
|
|
FROM core_feature cf
|
|
WHERE cf.model=:model
|
|
LIMIT 1;
|
|
";
|
|
$execSQL = $oPDOLink->prepare($sql);
|
|
$execSQL->execute(array(':model'=>$model));
|
|
$row = $execSQL->fetch(PDO::FETCH_ASSOC);
|
|
return $row['meta'];
|
|
}
|
|
|
|
}
|
|
|
|
?>
|