commit aada4c8f396179d453f102bc2262c25a1cb68bf7
parent fcbe1ee366cd38c16034bffc75d618ffeb6af96f
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date: Mon, 2 Aug 2010 08:19:17 +0200
Détection du type d'une page et gestion des modules (paramètres, ...).
Diffstat:
14 files changed, 50 insertions(+), 17 deletions(-)
diff --git a/__cms__/cms.php b/__cms__/cms.php
@@ -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);
diff --git a/__cms__/cms/include.php b/__cms__/cms/include.php
@@ -0,0 +1,6 @@
+<?php
+
+require_once(dirname(__FILE__) . "/configuration.php");
+require_once(dirname(__FILE__) . "/util.php");
+
+?>
+\ No newline at end of file
diff --git a/__cms__/cms/util.php b/__cms__/cms/util.php
@@ -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;
+}
+
+?>
+\ No newline at end of file
diff --git a/__cms__/include.php b/__cms__/include.php
@@ -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");
diff --git a/__cms__/modele/__prop__type b/__cms__/modele/__prop__type
@@ -0,0 +1 @@
+galerie-index
+\ No newline at end of file
diff --git a/__cms__/modules/forum/forum-index.php b/__cms__/modules/forum/forum-index.php
@@ -36,6 +36,6 @@ class ForumIndex {
}
}
-Modules::enregister_module("ForumIndex", "forum-index");
+Modules::enregister_module("ForumIndex", "forum-index", "vue");
?>
\ No newline at end of file
diff --git a/__cms__/modules/forum/forum-message.php b/__cms__/modules/forum/forum-message.php
@@ -36,6 +36,6 @@ function vue($chemin, $vue = "normal") {
}
}
-Modules::enregister_module("ForumMessage", "forum-message");
+Modules::enregister_module("ForumMessage", "forum-message", "vue", "message");
?>
\ No newline at end of file
diff --git a/__cms__/modules/forum/forum-sujet.php b/__cms__/modules/forum/forum-sujet.php
@@ -65,6 +65,6 @@ class ForumSujet {
}
}
-Modules::enregister_module("ForumSujet", "forum-sujet");
+Modules::enregister_module("ForumSujet", "forum-sujet", "vue", "titre");
?>
\ No newline at end of file
diff --git a/__cms__/modules/galerie/galerie-evenement.php b/__cms__/modules/galerie/galerie-evenement.php
@@ -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");
?>
\ No newline at end of file
diff --git a/__cms__/modules/galerie/galerie-index.php b/__cms__/modules/galerie/galerie-index.php
@@ -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");
?>
\ No newline at end of file
diff --git a/__cms__/modules/galerie/galerie-periode.php b/__cms__/modules/galerie/galerie-periode.php
@@ -65,6 +65,6 @@ class GaleriePériode {
}
}
-Modules::enregister_module("GaleriePériode", "galerie-periode");
+Modules::enregister_module("GaleriePériode", "galerie-periode", "vue", "titre description");
?>
\ No newline at end of file
diff --git a/__cms__/modules/galerie/galerie-photo.php b/__cms__/modules/galerie/galerie-photo.php
@@ -56,6 +56,6 @@ class GaleriePhoto {
}
}
-Modules::enregister_module("GaleriePhoto", "galerie-photo");
+Modules::enregister_module("GaleriePhoto", "galerie-photo", "vue", "description", "fichier_image");
?>
\ No newline at end of file
diff --git a/__cms__/modules/modules.php b/__cms__/modules/modules.php
@@ -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);
+ }
}
?>
\ No newline at end of file
diff --git a/__cms__/securite/permissions.php b/__cms__/securite/permissions.php
@@ -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) {