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'];
 | 
						|
	}
 | 
						|
	
 | 
						|
}
 | 
						|
 | 
						|
?>
 |