data(); if(($arbo = $data->pages_arbo()) !== false) { $env->set_out("arbo", $arbo); $id_parent = isset($_GET[$env->param("parent")]) ? $_GET[$env->param("parent")] : null; if ( ( $pages = $data->pages ( array ( "id_parent" => $id_parent, "order_by" => "position", "order" => "ASC", "start" => isset($_GET[$env->param("start")]) && $_GET[$env->param("start")] ? $_GET[$env->param("start")] : 0, "max" => $env->config("max_list") ) ) ) !== false ) { $env->set_out("pages", $pages); $ariane = array(); if($id_parent) { if(($ariane = $data->page_ariane($id_parent)) === false) { $env->erreur("impossible de lire le fil d'ariane"); } } $env->set_out("ariane", $ariane); } else $env->erreur("impossible de lire la liste des pages"); } else $env->erreur("impossible de lire l'arborescence des pages"); } function validate_POST_page(&$env, $page = null) { $page = isset($page) ? $page : array(); $_page = array(); if(($user = $env->user()) && $user["id"]) { if($_POST) { $_page["id_parent"] = isset($_POST["id_parent"]) ? ($_POST["id_parent"] ? $_POST["id_parent"] : null) : ($page["id_parent"] ? $page["id_parent"] : null); $_page["title"] = isset($_POST["title"]) ? $_POST["title"] : ($page["title"] ? $page["title"] : null); $_page["content"] = isset($_POST["content"]) ? $_POST["content"] : ($page["content"] ? $page["content"] : null); $_page["user"] = $user["id"]; $_page["enabled"] = isset($_POST["enabled"]) ? $_POST["enabled"] : ($page["enabled"] ? $page["enabled"] : 1); $_page["position"] = isset($_POST["position"]) ? $_POST["position"] : ($page["position"] ? $page["position"] : 0); } } else $env->message("impossible de lire les informations de l'utilisateur"); return $_page; } function add(&$env) { $data = $env->data(); if(($arbo = $data->pages_arbo()) !== false) { $env->set_out("arbo", $arbo); $page = array(); if($_POST) { $page = $this->validate_POST_page($env); if(!$env->messages()) { if(($id_page = $data->add_page($page)) !== false) { $env->redirect ( $env->url("pages/admin"), "la page a été ajoutée" ); } else $env->erreur("impossible d'ajouter la page"); } } $env->set_out("page", $page); } else $env->erreur("impossible de lire l'arborescence des pages"); } function edit(&$env) { $data = $env->data(); if($page = $data->page($_GET[$env->param("id")])) { if(($arbo = $data->pages_arbo()) !== false) { $env->set_out("arbo", $arbo); if($_POST) { $page = $this->validate_POST_page($env, $page); if(!$env->messages()) { if($data->set_page($_GET[$env->param("id")], $page)) { $env->redirect ( $env->url("pages/admin"), "la page a été modifiée" ); } else $env->erreur("impossible de modifier la page"); } } $env->set_out("page", $page); } else $env->erreur("impossible de lire l'arborescence des pages"); } else $env->erreur("impossible de lire les informations de la page"); } function edit_pages(&$env) { if(($user = $env->user()) && $user["id"]) { if($_POST) { $data = $env->data(); $OK = true; foreach($_POST as $key => $value) { $OK = true; if(substr($key, 0, 9) == "position_") { $id_page = substr($key, 9); $enabled = isset($_POST["enabled_".$id_page]) && $_POST["enabled_".$id_page] ? 1 : 0; if(!$data->set_page($id_page, array("position" => $value, "enabled" => $enabled))) { $env->erreur("impossible d'enregistrer la position"); $OK = false; $break; } } } if($OK) { $env->redirect ( $env->url("pages/admin"), "Les informations des pages ont été enregistrées" ); } } else $env->erreur("donnees manquantes"); } else $env->erreur("impossible de lire les informations de l'utilisateur"); } function set_accueil(&$env) { if(($user = $env->user()) && $user["id"]) { $data = $env->data(); $start_action = ""; $start_action_params = ""; $id_page = $_POST["id"] ? $_POST["id"] : ""; if($id_page) { if($page = $data->page($id_page)) { $start_action = "pages/view/page"; $start_action_params = @serialize(array("id" => $id_page)); } else { $start_action = false; $env->erreur("impossible de lire les informations de la page"); } } if($start_action !== false && $start_action_params !== false) { if ( $data->set_config("start_action", $start_action) && $data->set_config("start_action_params", $start_action_params) ) { $data->set_config("plugins_pages_start_id", $id_page); $env->redirect ( $env->url("pages/admin"), "La page d'accueil a été enregistrée" ); } else $env->erreur("impossible d'enregistrer la page d'accueil dans la configuration"); } } else $env->erreur("impossible de lire les informations de l'utilisateur"); } function del(&$env) { $data = $env->data(); if($page = $data->page($_GET[$env->param("id")])) { if($data->del_page($page["id"])) { $env->redirect ( $env->url("pages/admin"), "la page a été supprimée" ); } else $env->erreur("Impossible de supprimer la page"); } else $env->erreur("impossible de lire les informations de la page"); } } ?>