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"] : (isset($page["enabled"]) ? $page["enabled"] : 1); $_page["position"] = isset($_POST["position"]) ? $_POST["position"] : (isset($page["position"]) ? $page["position"] : 0); } } else $env->message("impossible de lire les informations de l'utilisateur"); return $_page; } function add(&$env){ $data = $env->data(); $_SESSION["upload_dir"] = $env->path("web").($env->path("web") ? "" : "/").$env->path("content")."uploads"; if(($arbo = $data->pages_arbo()) !== false){ $env->set_out("arbo", $arbo); $page = array( "title" => "", "content" => "" ); 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/edit", array("id" => $id_page)), "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(); $_SESSION["upload_dir"] = $env->path("web").($env->path("web") ? "" : "/").$env->path("content")."uploads"; 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/edit", array("id" => $_GET[$env->param("id")])), "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"); } } ?>