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);
$chemin = new Chemin($chemin_str);
$noms_params = Modules::get_liste_paramètres($chemin);
$noms_params[] = "action";
$paramètres = array();
$noms_params = Modules::get_module($chemin);
$noms_params["get_post"][] = "action";
$paramètres = array("action" => "vue");
// récupérer $noms_params dans $_GET, $_POST et $_FILE ==> $paramètres
$action = $paramètres["action"];
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
require_once(dirname(__FILE__) . "/cms/include.php");
require_once(dirname(__FILE__) . "/chemin/include.php");
require_once(dirname(__FILE__) . "/modules/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") {
if ($vue == "normal") {
$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 .= formulaire_édition_texte_enrichi(get_prop($chemin, "description"), "message");
} 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 {
static $liste_modules = array();
public static function enregister_module($classe, $type) {
self::$liste_modules[$type] = $classe;
public static function enregister_module($classe, $type, $get_post = array(), $post = array(), $file = array()) {
self::$liste_modules[$type] = array(
"classe" => $classe,
"get_post" => qw($get_post),
"post" => qw($post),
"file" => qw($file)
);
}
public static function get_module($chemin) {
@ -13,12 +18,17 @@ class Modules {
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);
if ($module === false) return false;
// TODO
return call_user_func(array($module, "get_liste_paramètres"));;
return call_user_func(array($module["classe"], "action"), $chemin, $action, $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) {
$chemin->correspond($motif);
return $chemin->correspond($motif);
}
public static function action_correspond($action, $motif) {