3 class mw_pages_admin extends mw_controller{
5 public function index(){
8 if(($arbo = $data->pages_arbo()) !== false){
9 $env->set_out("arbo", $arbo);
10 $id_parent = isset($_GET[$env->param("parent")]) ? $_GET[$env->param("parent")] : null;
13 $pages = $data->pages(
15 "id_parent" => $id_parent,
16 "order_by" => "position",
18 "start" => isset($_GET[$env->param("start")]) && $_GET[$env->param("start")] ? $_GET[$env->param("start")] : 0,
19 "max" => $env->config("max_list")
24 $env->set_out("pages", $pages);
27 if(($ariane = $data->page_ariane($id_parent)) === false){
28 $env->erreur("impossible de lire le fil d'ariane");
31 $env->set_out("ariane", $ariane);
33 else $env->erreur("impossible de lire la liste des pages");
35 else $env->erreur("impossible de lire l'arborescence des pages");
38 protected function validate_POST_page($page = null){
40 $page = isset($page) ? $page : array();
42 if(($user = $env->user()) && $user["id"]){
44 $_page["id_parent"] = isset($_POST["id_parent"]) ? ($_POST["id_parent"] ? $_POST["id_parent"] : null) : ($page["id_parent"] ? $page["id_parent"] : null);
45 $_page["title"] = isset($_POST["title"]) ? $_POST["title"] : ($page["title"] ? $page["title"] : null);
46 $_page["content"] = isset($_POST["content"]) ? $_POST["content"] : ($page["content"] ? $page["content"] : null);
47 $_page["user"] = $user["id"];
48 $_page["enabled"] = isset($_POST["enabled"]) ? $_POST["enabled"] : (isset($page["enabled"]) ? $page["enabled"] : 1);
49 $_page["position"] = isset($_POST["position"]) ? $_POST["position"] : (isset($page["position"]) ? $page["position"] : 0);
52 else $env->message("impossible de lire les informations de l'utilisateur");
56 public function add(){
59 $_SESSION["upload_dir"] = $env->path("web").($env->path("web") ? "" : "/").$env->path("content")."uploads";
60 if(($arbo = $data->pages_arbo()) !== false){
61 $env->set_out("arbo", $arbo);
67 $page = $this->validate_POST_page();
68 if(!$env->messages()){
69 if(($id_page = $data->add_page($page)) !== false){
71 $env->url("pages/admin/edit", array("id" => $id_page)),
72 "la page a été ajoutée"
75 else $env->erreur("impossible d'ajouter la page");
78 $env->set_out("page", $page);
80 else $env->erreur("impossible de lire l'arborescence des pages");
83 public function edit(){
86 $_SESSION["upload_dir"] = $env->path("web").($env->path("web") ? "" : "/").$env->path("content")."uploads";
87 if($page = $data->page($_GET[$env->param("id")])){
88 if(($arbo = $data->pages_arbo()) !== false){
89 $env->set_out("arbo", $arbo);
91 $page = $this->validate_POST_page($page);
92 if(!$env->messages()){
93 if($data->set_page($_GET[$env->param("id")], $page)){
95 $env->url("pages/admin/edit", array("id" => $_GET[$env->param("id")])),
96 "la page a été modifiée"
99 else $env->erreur("impossible de modifier la page");
102 $env->set_out("page", $page);
104 else $env->erreur("impossible de lire l'arborescence des pages");
106 else $env->erreur("impossible de lire les informations de la page");
109 public function edit_pages(){
111 if(($user = $env->user()) && $user["id"]){
113 $data = $env->data();
115 foreach($_POST as $key => $value){
117 if(substr($key, 0, 9) == "position_"){
118 $id_page = substr($key, 9);
119 $enabled = isset($_POST["enabled_".$id_page]) && $_POST["enabled_".$id_page] ? 1 : 0;
120 if(!$data->set_page($id_page, array("position" => $value, "enabled" => $enabled))){
121 $env->erreur("impossible d'enregistrer la position");
129 $env->url("pages/admin"),
130 "Les informations des pages ont été enregistrées"
134 else $env->erreur("donnees manquantes");
136 else $env->erreur("impossible de lire les informations de l'utilisateur");
139 public function set_accueil(){
141 if(($user = $env->user()) && $user["id"]){
142 $data = $env->data();
144 $start_action_params = "";
145 $id_page = $_POST["id"] ? $_POST["id"] : "";
147 if($page = $data->page($id_page)){
148 $start_action = "pages/view/page";
149 $start_action_params = @serialize(array("id" => $id_page));
152 $start_action = false;
153 $env->erreur("impossible de lire les informations de la page");
156 if($start_action !== false && $start_action_params !== false){
158 $data->set_config("start_action", $start_action)
159 && $data->set_config("start_action_params", $start_action_params)
161 $data->set_config("plugins_pages_start_id", $id_page);
163 $env->url("pages/admin"),
164 "La page d'accueil a été enregistrée"
167 else $env->erreur("impossible d'enregistrer la page d'accueil dans la configuration");
170 else $env->erreur("impossible de lire les informations de l'utilisateur");
173 public function del(){
175 $data = $env->data();
176 if($page = $data->page($_GET[$env->param("id")])){
177 if($data->del_page($page["id"])){
179 $env->url("pages/admin"),
180 "la page a été supprimée"
183 else $env->erreur("Impossible de supprimer la page");
185 else $env->erreur("impossible de lire les informations de la page");