Détection du type d'une page et gestion des modules (paramètres, ...).

This commit is contained in:
Georges Dupéron 2010-08-02 08:19:17 +02:00
parent fcbe1ee366
commit aada4c8f39
14 changed files with 47 additions and 17 deletions

View File

@ -15,9 +15,9 @@ class CMS {
// TODO : appeller Modules::action($chemin, $action, $paramètres); // TODO : appeller Modules::action($chemin, $action, $paramètres);
$chemin = new Chemin($chemin_str); $chemin = new Chemin($chemin_str);
$noms_params = Modules::get_liste_paramètres($chemin); $noms_params = Modules::get_module($chemin);
$noms_params[] = "action"; $noms_params["get_post"][] = "action";
$paramètres = array(); $paramètres = array("action" => "vue");
// récupérer $noms_params dans $_GET, $_POST et $_FILE ==> $paramètres // récupérer $noms_params dans $_GET, $_POST et $_FILE ==> $paramètres
$action = $paramètres["action"]; $action = $paramètres["action"];
Modules::action($chemin, $action, $paramètres); Modules::action($chemin, $action, $paramètres);

6
__cms__/cms/include.php Normal file
View File

@ -0,0 +1,6 @@
<?php
require_once(dirname(__FILE__) . "/configuration.php");
require_once(dirname(__FILE__) . "/util.php");
?>

12
__cms__/cms/util.php Normal file
View File

@ -0,0 +1,12 @@
<?php
function qw($arg) {
if (is_array($arg)) return $arg;
$ret = array();
foreach(explode(" ", $arg) as $v) {
if ($v !== "") array_push($ret, $v);
}
return $ret;
}
?>

View File

@ -1,5 +1,6 @@
<?php <?php
require_once(dirname(__FILE__) . "/cms/include.php");
require_once(dirname(__FILE__) . "/chemin/include.php"); require_once(dirname(__FILE__) . "/chemin/include.php");
require_once(dirname(__FILE__) . "/modules/include.php"); require_once(dirname(__FILE__) . "/modules/include.php");
require_once(dirname(__FILE__) . "/securite/include.php"); require_once(dirname(__FILE__) . "/securite/include.php");

View File

@ -0,0 +1 @@
galerie-index

View File

@ -36,6 +36,6 @@ class ForumIndex {
} }
} }
Modules::enregister_module("ForumIndex", "forum-index"); Modules::enregister_module("ForumIndex", "forum-index", "vue");
?> ?>

View File

@ -36,6 +36,6 @@ function vue($chemin, $vue = "normal") {
} }
} }
Modules::enregister_module("ForumMessage", "forum-message"); Modules::enregister_module("ForumMessage", "forum-message", "vue", "message");
?> ?>

View File

@ -65,6 +65,6 @@ class ForumSujet {
} }
} }
Modules::enregister_module("ForumSujet", "forum-sujet"); Modules::enregister_module("ForumSujet", "forum-sujet", "vue", "titre");
?> ?>

View File

@ -65,6 +65,6 @@ class GalerieÉvènement {
} }
} }
Modules::enregister_module("GalerieÉvènement", "galerie-evenement"); Modules::enregister_module("GalerieÉvènement", "galerie-evenement", "vue", "titre description");
?> ?>

View File

@ -32,7 +32,7 @@ class GalerieIndex {
public function vue($chemin, $vue = "normal") { public function vue($chemin, $vue = "normal") {
if ($vue == "normal") { if ($vue == "normal") {
$ret = ''; $ret = '';
if (vérifier_permission($chemin, "set_prop", get_utilisateur())) { if (Permissions::vérifier_permission($chemin, "set_prop", get_utilisateur())) {
$ret .= '<input type="text" name="titre" value="' . Stockage::get_prop($chemin, "titre") . '" />'; $ret .= '<input type="text" name="titre" value="' . Stockage::get_prop($chemin, "titre") . '" />';
$ret .= formulaire_édition_texte_enrichi(get_prop($chemin, "description"), "message"); $ret .= formulaire_édition_texte_enrichi(get_prop($chemin, "description"), "message");
} else { } else {
@ -65,6 +65,6 @@ class GalerieIndex {
} }
} }
Modules::enregister_module("GalerieIndex", "galerie-index"); Modules::enregister_module("GalerieIndex", "galerie-index", "vue", "titre description");
?> ?>

View File

@ -65,6 +65,6 @@ class GaleriePériode {
} }
} }
Modules::enregister_module("GaleriePériode", "galerie-periode"); Modules::enregister_module("GaleriePériode", "galerie-periode", "vue", "titre description");
?> ?>

View File

@ -56,6 +56,6 @@ class GaleriePhoto {
} }
} }
Modules::enregister_module("GaleriePhoto", "galerie-photo"); Modules::enregister_module("GaleriePhoto", "galerie-photo", "vue", "description", "fichier_image");
?> ?>

View File

@ -3,8 +3,13 @@
class Modules { class Modules {
static $liste_modules = array(); static $liste_modules = array();
public static function enregister_module($classe, $type) { public static function enregister_module($classe, $type, $get_post = array(), $post = array(), $file = array()) {
self::$liste_modules[$type] = $classe; self::$liste_modules[$type] = array(
"classe" => $classe,
"get_post" => qw($get_post),
"post" => qw($post),
"file" => qw($file)
);
} }
public static function get_module($chemin) { public static function get_module($chemin) {
@ -13,12 +18,17 @@ class Modules {
return self::$liste_modules[$type]; return self::$liste_modules[$type];
} }
public static function get_liste_paramètres($chemin) { public static function action($chemin, $action, $paramètres) {
$module = self::get_module($chemin); $module = self::get_module($chemin);
if ($module === false) return false; if ($module === false) return false;
// TODO return call_user_func(array($module["classe"], "action"), $chemin, $action, $paramètres);
return call_user_func(array($module, "get_liste_paramètres"));;
} }
public static function vue($chemin, $vue = "normal") {
$module = self::get_module($chemin);
if ($module === false) return false;
return call_user_func(array($module["classe"], "vue"), $chemin, $vue);
}
} }
?> ?>

View File

@ -37,7 +37,7 @@ class Permissions {
} }
public static function chemin_correspond($chemin, $motif) { public static function chemin_correspond($chemin, $motif) {
$chemin->correspond($motif); return $chemin->correspond($motif);
} }
public static function action_correspond($action, $motif) { public static function action_correspond($action, $motif) {