/** * fonction qui permet de modifier une page en fonction de son id * @param $id_page * @param $balise_title * @param $url * @param $meta_description * @param $titre_page * @param $parent * @param $contenu */ public function setModifierPage($id_page, $balise_title, $url, $meta_description, $titre_page, $parent, $affiche = 1) { $dbc = \core\App::getDb(); //on trouve l'ancien fichier à parir de la fin de l'url $this->getHeadPage($id_page); $this->getContenuPage($id_page); $old_url = explode("/", $this->url); $filename = ROOT . "app/views/" . end($old_url) . ".php"; //si le fichier existe on modifie le tout if (file_exists($filename) || $id_page == 1) { $this->id_page = $id_page; $url = ChaineCaractere::setUrl($url); $err_balise_title_char = "Le titre pour le navigateur ne doit pas dépasser 70 caractères"; $err_balise_title_egalite = "Ce titre est déjà présent en base de données, merci d'en choisir un autre pour optimiser le référencement de votre site"; $err_balise_title = $this->getVerifChamp("page", "ID_page", "balise_title", $balise_title, 70, $err_balise_title_char, $err_balise_title_egalite, $this->id_page); $err_url_char = "L'url ne doit pas dépasser 92 caractères"; $err_url_egalite = "Cette url est déjà présent en base de données, merci d'en choisir une autre pour ne pas avoir de conflit entre vos pages"; $err_url = $this->getVerifChamp("page", "ID_page", "url", $url, 92, $err_url_char, $err_url_egalite, $this->id_page); $err_meta_description_char = "La description de cette page ne doit pas dépasser 158 caractères"; $err_meta_description_egalite = "Cette description est déjà présent en base de données, merci d'en choisir une autre pour optimiser le référencement de votre site"; $err_meta_description = $this->getVerifChamp("page", "ID_page", "meta_description", $meta_description, 158, $err_meta_description_char, $err_meta_description_egalite, $this->id_page); $err_titre_page_char = "Le titre de cette page ne doit pas dépasser 50 caractères"; $err_titre_page_egalite = "Cette titre de page est déjà présent en base de données, merci d'en choisir un autre pour ne pas avoir de conflit dans votre navigation"; $err_titre_page = $this->getVerifChamp("page", "ID_page", "titre", $titre_page, 50, $err_titre_page_char, $err_titre_page_egalite, $this->id_page); if (App::getErreur() !== true) { $new_url = explode("/", $url); $new_filename = ROOT . "app/views/" . end($new_url) . ".php"; rename($filename, $new_filename); $parent = intval($this->getParentId($parent)); $dbc->update("titre", $titre_page)->update("url", $url)->update("meta_description", $meta_description)->update("balise_title", $balise_title)->update("parent", $parent)->update("affiche", $affiche)->from("page")->where("ID_page", "=", $id_page, "", true)->set(); $this->setModifierLienNavigation("ID_page", $id_page, $this->getParentId($parent), $affiche); } else { $this->setErreurContenus($balise_title, $url, $meta_description, $titre_page, $parent, $err_balise_title, $err_url, $err_meta_description, $err_titre_page); } } else { FlashMessage::setFlash("Impossible de modifier cette page, veuillez contacter votre administrateur pour corriger ce problème"); $this->erreur = true; } }
/** * @param $nom_fichier * fonction qui permet de dire qu'il faut recharger le cache d'un fichier spécifique * appeler par des controller (dans des modules ou dans l'admin...) */ public static function setReloadCache($nom_fichier) { $dbc = App::getDb(); $nom_fichier = ChaineCaractere::setUrl($nom_fichier); $nom_fichier = str_replace("/", "-", $nom_fichier); $value = ["reload" => 1, "nom_fichier" => $nom_fichier]; $dbc->prepare("UPDATE cache SET reload_cache=:reload WHERE nom_fichier LIKE :nom_fichier", $value); }