/**
	 * Charge la vue $viewName en lui passant éventuellement les variables $pdata
	 * @param string $viewName nom de la vue à charger
	 * @param mixed $pData variable ou tableau associatif à passer à la vue<br>Si une variable est passée, elle aura pour nom <b>$data</b> dans la vue,<br>
	 * Si un tableau associatif est passé, la vue récupère des variables du nom des clés du tableau
	 * @param boolean $asString Si vrai, la vue n'est pas affichée mais retournée sous forme de chaîne (utilisable dans une variable)
	 * @throws Exception
	 * @return string
	 */
	public function loadView($viewName,$pData="",$asString=false){

		$config=$GLOBALS["config"];
		$fileName=ROOT.DS."views/".$viewName;
		$ext=pathinfo($fileName,PATHINFO_EXTENSION);
		if($ext==null)
			$viewName=$viewName.".php";
		$fileName=ROOT.DS."views/".$viewName;
		if(file_exists($fileName)){
			$data=$pData;
			if(!StrUtils::endswith($fileName, ".php") && @$config["templateEngine"] instanceof TemplateEngine){
				return $config["templateEngine"]->render($viewName, $pData, $asString);
			}

			if(is_array($pData)){
				extract($pData);
			}
			if($asString)
					return $this->includeFileAsString($fileName);
				else
					include($fileName);
		}else{
			throw new \Exception("Vue inexistante : ".$viewName);
		}
	}
Exemple #2
0
 public function run()
 {
     global $config;
     session_start();
     Logger::init();
     if ($config["test"]) {
         $config["siteUrl"] = "http://127.0.0.1:8090/";
     }
     extract($config["database"]);
     $db = $config["database"];
     DAO::connect($db["dbName"], @$db["serverName"], @$db["port"], @$db["user"], @$db["password"]);
     $url = $_GET["c"];
     if (!$url) {
         $url = $config["documentRoot"];
     }
     if (StrUtils::endswith($url, "/")) {
         $url = substr($url, 0, strlen($url) - 1);
     }
     $this->urlParts = explode("/", $url);
     $u = $this->urlParts;
     $urlSize = sizeof($this->urlParts);
     if (class_exists($this->urlParts[0]) && StrUtils::startswith($this->urlParts[0], "_") === false) {
         //Construction de l'instance de la classe (1er élément du tableau)
         try {
             $obj = new $this->urlParts[0]();
             $obj->initialize();
             try {
                 switch ($urlSize) {
                     case 1:
                         $obj->index();
                         break;
                     case 2:
                         //Appel de la méthode (2ème élément du tableau)
                         if (method_exists($obj, $u[1])) {
                             $obj->{$u}[1]();
                         } else {
                             print "La méthode `{$u[1]}` n'existe pas sur le contrôleur `" . $u[0] . "`<br/>";
                         }
                         break;
                     default:
                         //Appel de la méthode en lui passant en paramètre le reste du tableau
                         $obj->{$u}[1](array_slice($u, 2));
                         break;
                 }
             } catch (\Exception $e) {
                 print "Error!: " . $e->getMessage() . "<br/>";
                 die;
             }
         } catch (\Exception $e) {
             print "Error!: " . $e->getMessage() . "<br/>";
             die;
         }
         $obj->finalize();
     } else {
         print "Le contrôleur `" . $u[0] . "` n'existe pas <br/>";
     }
 }
Exemple #3
0
	public function run(){
		$config=$GLOBALS["config"];
		set_error_handler(array($this, 'errorHandler'));
		$config=$GLOBALS["config"];
		try {
			if(array_key_exists("templateEngine", $config)){
				$engine=new $config["templateEngine"]();
				if ($engine instanceof TemplateEngine)
					$GLOBALS["config"]["templateEngine"]=$engine;
			}
		} catch (\Exception $e) {
			echo $e->getTraceAsString();
		}
		session_start();
		\Logger::init();
		if($config["test"]){
			$GLOBALS["config"]["siteUrl"]="http://127.0.0.1:8090/";
		}
		extract($config["database"]);
		$db=$config["database"];
		DAO::connect($db["dbName"],@$db["serverName"],@$db["port"],@$db["user"],@$db["password"]);
		$url=$_GET["c"];

		if(!$url){
			$url=$config["documentRoot"];
		}
		if(StrUtils::endswith($url, "/"))
			$url=substr($url, 0,strlen($url)-1);
		$this->urlParts=explode("/", $url);

		$u=$this->urlParts;

		if(class_exists($u[0]) && StrUtils::startswith($u[0],"_")===false){
			//Construction de l'instance de la classe (1er élément du tableau)
			try{
				if(array_key_exists("onStartup", $config)){
					if(is_callable($config['onStartup'])){
						$config["onStartup"]($u);
					}
				}
				self::runAction($u);
			}catch (\Exception $e){
				print "Error!: " . $e->getMessage() . "<br/>";
				die();
			}

		}else{
			print "Le contrôleur `".$u[0]."` n'existe pas <br/>";
		}
	}
Exemple #4
0
 public static function setChecked($elementPrefix, $values)
 {
     $retour = "";
     if (is_array($values)) {
         foreach ($values as $value) {
             $retour .= "\$('#" . $elementPrefix . $value . "').attr('checked', true);\n";
         }
     } else {
         $retour = "\$('#" . $elementPrefix . "').attr('checked', " . StrUtils::getBooleanStr($values) . ");\n";
     }
     return Jquery::addToCodes($retour);
 }