3 class mw_pages_admin extends mw_mod{
7 if(($arbo = $data->pages_arbo()) !== false){
8 $env->set_out("arbo", $arbo);
9 $id_parent = isset($_GET[$env->param("parent")]) ? $_GET[$env->param("parent")] : null;
12 $pages = $data->pages(
14 "id_parent" => $id_parent,
15 "order_by" => "position",
17 "start" => isset($_GET[$env->param("start")]) && $_GET[$env->param("start")] ? $_GET[$env->param("start")] : 0,
18 "max" => $env->config("max_list")
23 $env->set_out("pages", $pages);
26 if(($ariane = $data->page_ariane($id_parent)) === false){
27 $env->erreur("impossible de lire le fil d'ariane");
30 $env->set_out("ariane", $ariane);
32 else $env->erreur("impossible de lire la liste des pages");
34 else $env->erreur("impossible de lire l'arborescence des pages");
37 function validate_POST_page(&$env, $page = null){
38 $page = isset($page) ? $page : array();
40 if(($user = $env->user()) && $user["id"]){
42 $_page["id_parent"] = isset($_POST["id_parent"]) ? ($_POST["id_parent"] ? $_POST["id_parent"] : null) : ($page["id_parent"] ? $page["id_parent"] : null);
43 $_page["title"] = isset($_POST["title"]) ? $_POST["title"] : ($page["title"] ? $page["title"] : null);
44 $_page["content"] = isset($_POST["content"]) ? $_POST["content"] : ($page["content"] ? $page["content"] : null);
45 $_page["user"] = $user["id"];
46 $_page["enabled"] = isset($_POST["enabled"]) ? $_POST["enabled"] : (isset($page["enabled"]) ? $page["enabled"] : 1);
47 $_page["position"] = isset($_POST["position"]) ? $_POST["position"] : (isset($page["position"]) ? $page["position"] : 0);
50 else $env->message("impossible de lire les informations de l'utilisateur");
56 $_SESSION["upload_dir"] = $env->path("web").($env->path("web") ? "" : "/").$env->path("content")."uploads";
57 if(($arbo = $data->pages_arbo()) !== false){
58 $env->set_out("arbo", $arbo);
64 $page = $this->validate_POST_page($env);
65 if(!$env->messages()){
66 if(($id_page = $data->add_page($page)) !== false){
68 $env->url("pages/admin/edit", array("id" => $id_page)),
69 "la page a été ajoutée"
72 else $env->erreur("impossible d'ajouter la page");
75 $env->set_out("page", $page);
77 else $env->erreur("impossible de lire l'arborescence des pages");
82 $_SESSION["upload_dir"] = $env->path("web").($env->path("web") ? "" : "/").$env->path("content")."uploads";
83 if($page = $data->page($_GET[$env->param("id")])){
84 if(($arbo = $data->pages_arbo()) !== false){
85 $env->set_out("arbo", $arbo);
87 $page = $this->validate_POST_page($env, $page);
88 if(!$env->messages()){
89 if($data->set_page($_GET[$env->param("id")], $page)){
91 $env->url("pages/admin/edit", array("id" => $_GET[$env->param("id")])),
92 "la page a été modifiée"
95 else $env->erreur("impossible de modifier la page");
98 $env->set_out("page", $page);
100 else $env->erreur("impossible de lire l'arborescence des pages");
102 else $env->erreur("impossible de lire les informations de la page");
105 function edit_pages(&$env){
106 if(($user = $env->user()) && $user["id"]){
108 $data = $env->data();
110 foreach($_POST as $key => $value){
112 if(substr($key, 0, 9) == "position_"){
113 $id_page = substr($key, 9);
114 $enabled = isset($_POST["enabled_".$id_page]) && $_POST["enabled_".$id_page] ? 1 : 0;
115 if(!$data->set_page($id_page, array("position" => $value, "enabled" => $enabled))){
116 $env->erreur("impossible d'enregistrer la position");
124 $env->url("pages/admin"),
125 "Les informations des pages ont été enregistrées"
129 else $env->erreur("donnees manquantes");
131 else $env->erreur("impossible de lire les informations de l'utilisateur");
134 function set_accueil(&$env){
135 if(($user = $env->user()) && $user["id"]){
136 $data = $env->data();
138 $start_action_params = "";
139 $id_page = $_POST["id"] ? $_POST["id"] : "";
141 if($page = $data->page($id_page)){
142 $start_action = "pages/view/page";
143 $start_action_params = @serialize(array("id" => $id_page));
146 $start_action = false;
147 $env->erreur("impossible de lire les informations de la page");
150 if($start_action !== false && $start_action_params !== false){
152 $data->set_config("start_action", $start_action)
153 && $data->set_config("start_action_params", $start_action_params)
155 $data->set_config("plugins_pages_start_id", $id_page);
157 $env->url("pages/admin"),
158 "La page d'accueil a été enregistrée"
161 else $env->erreur("impossible d'enregistrer la page d'accueil dans la configuration");
164 else $env->erreur("impossible de lire les informations de l'utilisateur");
168 $data = $env->data();
169 if($page = $data->page($_GET[$env->param("id")])){
170 if($data->del_page($page["id"])){
172 $env->url("pages/admin"),
173 "la page a été supprimée"
176 else $env->erreur("Impossible de supprimer la page");
178 else $env->erreur("impossible de lire les informations de la page");