Détection du type d'une page et gestion des modules (paramètres, ...).
This commit is contained in:
parent
fcbe1ee366
commit
aada4c8f39
|
@ -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
6
__cms__/cms/include.php
Normal 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
12
__cms__/cms/util.php
Normal 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;
|
||||
}
|
||||
|
||||
?>
|
|
@ -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");
|
||||
|
|
1
__cms__/modele/__prop__type
Normal file
1
__cms__/modele/__prop__type
Normal file
|
@ -0,0 +1 @@
|
|||
galerie-index
|
|
@ -36,6 +36,6 @@ class ForumIndex {
|
|||
}
|
||||
}
|
||||
|
||||
Modules::enregister_module("ForumIndex", "forum-index");
|
||||
Modules::enregister_module("ForumIndex", "forum-index", "vue");
|
||||
|
||||
?>
|
|
@ -36,6 +36,6 @@ function vue($chemin, $vue = "normal") {
|
|||
}
|
||||
}
|
||||
|
||||
Modules::enregister_module("ForumMessage", "forum-message");
|
||||
Modules::enregister_module("ForumMessage", "forum-message", "vue", "message");
|
||||
|
||||
?>
|
|
@ -65,6 +65,6 @@ class ForumSujet {
|
|||
}
|
||||
}
|
||||
|
||||
Modules::enregister_module("ForumSujet", "forum-sujet");
|
||||
Modules::enregister_module("ForumSujet", "forum-sujet", "vue", "titre");
|
||||
|
||||
?>
|
|
@ -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");
|
||||
|
||||
?>
|
|
@ -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");
|
||||
|
||||
?>
|
|
@ -65,6 +65,6 @@ class GaleriePériode {
|
|||
}
|
||||
}
|
||||
|
||||
Modules::enregister_module("GaleriePériode", "galerie-periode");
|
||||
Modules::enregister_module("GaleriePériode", "galerie-periode", "vue", "titre description");
|
||||
|
||||
?>
|
|
@ -56,6 +56,6 @@ class GaleriePhoto {
|
|||
}
|
||||
}
|
||||
|
||||
Modules::enregister_module("GaleriePhoto", "galerie-photo");
|
||||
Modules::enregister_module("GaleriePhoto", "galerie-photo", "vue", "description", "fichier_image");
|
||||
|
||||
?>
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user