From df3c5f2710c0504862a4c7fa70d0b4c944c5ad85 Mon Sep 17 00:00:00 2001 From: pbarroca <pbarroca@afi-sa.fr> Date: Mon, 23 Jun 2014 12:50:08 +0200 Subject: [PATCH] rel #13914 : never save category with id 0 --- .../admin/controllers/MenusController.php | 233 +++++++----------- 1 file changed, 91 insertions(+), 142 deletions(-) diff --git a/application/modules/admin/controllers/MenusController.php b/application/modules/admin/controllers/MenusController.php index 41074539c77..cc4d326cd51 100644 --- a/application/modules/admin/controllers/MenusController.php +++ b/application/modules/admin/controllers/MenusController.php @@ -18,22 +18,16 @@ * along with AFI-OPAC 2.0; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -////////////////////////////////////////////////////////////////////////////////////////// -// OPAC3 - Propriétés des modules des menus -// -////////////////////////////////////////////////////////////////////////////////////////// -require_once('AccueilController.php'); +require_once 'AccueilController.php'; class Admin_MenusController extends Admin_AccueilController { private $id_profil; // Id_profil du menu private $id_module; // N° d'identifiant unique pour le javascript config_menus private $type_menu; // Type de menu -//------------------------------------------------------------------------------------------------------ -// Initialisation des parametres et du layout -//------------------------------------------------------------------------------------------------------ - function init() { + + public function init() { // Changer le layout $viewRenderer = $this->getHelper('ViewRenderer'); $viewRenderer->setLayoutScript('subModal.phtml'); @@ -53,7 +47,7 @@ class Admin_MenusController extends Admin_AccueilController { } - function postDispatch(){ + public function postDispatch() { $modules_menu = new Class_Systeme_ModulesMenu(); $reload = (1 === (int)$this->_getParam('styles_reload')); @@ -65,150 +59,122 @@ class Admin_MenusController extends Admin_AccueilController { $this->renderScript('accueil/'.$action.'.phtml'); } -//------------------------------------------------------------------------------------------------------ -// Fonctions sans préférences : uniquement picto et libelle -//------------------------------------------------------------------------------------------------------ - function indexAction() { - if ($this->_request->isPost()) - { - $enreg=$_POST; + + public function indexAction() { + if ($this->_request->isPost()) { + $enreg = $_POST; $this->_updateEtRetour($enreg); } } -//------------------------------------------------------------------------------------------------------ -// Avis -//------------------------------------------------------------------------------------------------------ - function avisAction() - { - if ($this->_request->isPost()) - { - $enreg=$_POST; - $nb=(int)($enreg["nb"]); - if($nb < 1 or $nb > 50) $this->retourErreur("Le nombre d'avis doit être compris entre 1 et 50"); - else $this->_updateEtRetour($enreg); + + public function avisAction() { + if ($this->_request->isPost()) { + $enreg = $_POST; + $nb = (int)($enreg['nb']); + ($nb < 1 or $nb > 50) ? + $this->retourErreur("Le nombre d'avis doit être compris entre 1 et 50") : + $this->_updateEtRetour($enreg); } } -//------------------------------------------------------------------------------------------------------ -// NEWS (articles cms) -//------------------------------------------------------------------------------------------------------ - function newsAction() - { - if ($this->_request->isPost()) - { - $enreg=$_POST; + + public function newsAction() { + if ($this->_request->isPost()) { + $enreg = $_POST; $enreg["nb_aff"] = (int)$enreg["nb_aff"]; $enreg["nb_analyse"] = (int)$enreg["nb_analyse"]; $this->_updateEtRetour($enreg); } } -//------------------------------------------------------------------------------------------------------ -// LAST_NEWS (derniers articles) -//------------------------------------------------------------------------------------------------------ - function lastnewsAction() - { - if ($this->_request->isPost()) - { - $enreg=$_POST; - $nb=(int)($enreg["nb"]); - if($nb < 1 or $nb > 50) $this->retourErreur("Le nombre d'articles doit être compris entre 1 et 50"); - else $this->_updateEtRetour($enreg); + + + public function lastnewsAction() { + if ($this->_request->isPost()) { + $enreg = $_POST; + $nb = (int)($enreg["nb"]); + ($nb < 1 or $nb > 50) ? + $this->retourErreur("Le nombre d'articles doit être compris entre 1 et 50"): + $this->_updateEtRetour($enreg); } } -//------------------------------------------------------------------------------------------------------ -// RSS -//------------------------------------------------------------------------------------------------------ - function rssAction() - { - if ($this->_request->isPost()) - { - $enreg=$_POST; - $nb=(int)($enreg["nb"]); - if($nb < 1 or $nb > 50) $this->retourErreur("Le nombre à afficher doit être compris entre 1 et 50"); - else $this->_updateEtRetour($enreg); + + public function rssAction() { + if ($this->_request->isPost()) { + $enreg = $_POST; + $nb = (int)($enreg["nb"]); + ($nb < 1 or $nb > 50) ? + $this->retourErreur("Le nombre à afficher doit être compris entre 1 et 50"): + $this->_updateEtRetour($enreg); } } -//------------------------------------------------------------------------------------------------------ -// SITOTHEQUE -//------------------------------------------------------------------------------------------------------ - function sitothequeAction() - { - if ($this->_request->isPost()) - { - $enreg=$_POST; - $nb=(int)($enreg["nb"]); - if($nb < 1 or $nb > 50) $this->retourErreur("Le nombre à afficher doit être compris entre 1 et 50"); - else $this->_updateEtRetour($enreg); + + public function sitothequeAction() { + if ($this->_request->isPost()) { + $enreg = $_POST; + $nb = (int)($enreg["nb"]); + ($nb < 1 or $nb > 50) ? + $this->retourErreur("Le nombre à afficher doit être compris entre 1 et 50"): + $this->_updateEtRetour($enreg); } } -//------------------------------------------------------------------------------------------------------ -// Lien vers une site (url libre) -//------------------------------------------------------------------------------------------------------ - function liensiteAction() - { - if ($this->_request->isPost()) - { - $enreg=$_POST; - if(trim($enreg["url"])> "" and substr(strtolower($enreg["url"]),0,4) != "http") $this->retourErreur("L'url saisie n'est pas correcte"); - else $this->_updateEtRetour($enreg); + + public function liensiteAction() { + if ($this->_request->isPost()) { + $enreg = $_POST; + (trim($enreg["url"])> "" and substr(strtolower($enreg["url"]),0,4) != "http") ? + $this->retourErreur("L'url saisie n'est pas correcte"): + $this->_updateEtRetour($enreg); } } -//------------------------------------------------------------------------------------------------------ -// Lien vers un profil du portail -//------------------------------------------------------------------------------------------------------ - function lienprofilAction() - { - if ($this->_request->isPost()) - { - $enreg=$_POST; + + public function lienprofilAction() { + if ($this->_request->isPost()) { + $enreg = $_POST; $this->_updateEtRetour($enreg); } } -//------------------------------------------------------------------------------------------------------ -// Google map -//------------------------------------------------------------------------------------------------------ - function googlemapAction() - { - if ($this->_request->isPost()) - { - $enreg=$_POST; - $enreg["id_bib"]=$enreg["bib"]; + + public function googlemapAction() { + if ($this->_request->isPost()) { + $enreg = $_POST; + $enreg["id_bib"] = $enreg["bib"]; unset($enreg["bib"]); $this->_updateEtRetour($enreg); } - $bib=new Class_Bib(); - $this->view->combo_bibs=$bib->getComboBib($this->view->preferences["id_bib"],false,false); + + $bib = new Class_Bib(); + $this->view->combo_bibs = $bib->getComboBib($this->view->preferences["id_bib"],false,false); } -//------------------------------------------------------------------------------------------------------ -// Catalogue -//------------------------------------------------------------------------------------------------------ - function catalogueAction() { + + public function catalogueAction() { $selected_panier = null; if (array_key_exists('id_panier', $this->view->preferences) && array_key_exists('id_user', $this->view->preferences)) $selected_panier = Class_PanierNotice::getLoader()->findFirstBy(array( 'id_panier' => $this->view->preferences['id_panier'], 'id_user' => $this->view->preferences['id_user'])); - if ($selected_panier !== null) $this->view->preferences['id_panier'] = $selected_panier->getId(); + if ($selected_panier !== null) + $this->view->preferences['id_panier'] = $selected_panier->getId(); + + if ($this->_request->isPost()) { + $enreg = $_POST; + if(!$enreg["titre"]) + $enreg["titre"]=$enreg["libelle"]; - if ($this->_request->isPost()) - { - $enreg=$_POST; - if(!$enreg["titre"]) $enreg["titre"]=$enreg["libelle"]; if($enreg["id_panier"]) { $panier = Class_PanierNotice::getLoader()->find($enreg['id_panier']); $enreg["id_catalogue"]=0; $enreg['id_panier'] = $panier->getIdPanier(); - $enreg["id_user"] = $panier->getIdUser(); - + $enreg["id_user"] = $panier->getIdUser(); + } else { + $enreg["id_user"]=0; } - else $enreg["id_user"]=0; $this->_updateEtRetour($enreg); } @@ -216,29 +182,18 @@ class Admin_MenusController extends Admin_AccueilController { $this->view->paniers=Class_PanierNotice::getPaniersForCombo(); } -//------------------------------------------------------------------------------------------------------ -// Etagère -//------------------------------------------------------------------------------------------------------ - function etagereAction() - { - if ($this->_request->isPost()) - { - $enreg=$_POST; - if(!$enreg["titre"]) $enreg["titre"]=$enreg["libelle"]; + + public function etagereAction() { + if ($this->_request->isPost()) { + $enreg = $_POST; + if (!$enreg["titre"]) + $enreg["titre"] = $enreg["libelle"]; $this->_updateEtRetour($enreg); } } - //------------------------------------------------------------------------------------------------------ - // bibliotheque numerique - //------------------------------------------------------------------------------------------------------ - function albumAction() { - if (!Class_AlbumCategorie::find(0)) { - $cat=Class_AlbumCategorie::newInstanceWithId(0) - ->setLibelle('Albums non classés') - ->setSousCategories([]) - ->setAlbums(Class_Album::findAllBy(['cat_id' => 0])); - $cat->save();} + + public function albumAction() { if ($this->_request->isPost()) { $enreg=$_POST; if(!$enreg["titre"]) $enreg["titre"]=$enreg["libelle"]; @@ -252,11 +207,8 @@ class Admin_MenusController extends Admin_AccueilController { asort($this->view->albums); } -//------------------------------------------------------------------------------------------------------ -// Retour au formulaire pour erreurs -//------------------------------------------------------------------------------------------------------ - private function retourErreur($erreur) - { + + private function retourErreur($erreur) { $this->view->erreur=$erreur; $this->view->libelle=$_POST["libelle"]; $this->view->picto=$_POST["picto"]; @@ -264,20 +216,16 @@ class Admin_MenusController extends Admin_AccueilController { } -//------------------------------------------------------------------------------------------------------ -// Décompactage des proprietes si on vient la de config admin des menus -//------------------------------------------------------------------------------------------------------ protected function extractProperties() { $module = (new Class_Systeme_ModulesMenu())->getFonction($this->type_menu); return $module->extractPreferences($this->_getParam("preferences")); } -//------------------------------------------------------------------------------------------------------ -// Validation et retour config admin des menus -//------------------------------------------------------------------------------------------------------ + protected function _updateEtRetour($data) { // Filtrage des données - foreach($data as $clef => $valeur) $enreg[$clef]=addslashes($valeur); + foreach($data as $clef => $valeur) + $enreg[$clef] = addslashes($valeur); // Variables de vue $this->view->libelle = isset($enreg['libelle']) ? $enreg['libelle'] : $enreg['titre']; @@ -310,4 +258,5 @@ class Admin_MenusController extends Admin_AccueilController { ->setCfgMenuHorizontal(['menus' => $menu_horizontal->asCfgProfil()]) ->save(); } -} \ No newline at end of file +} +?> \ No newline at end of file -- GitLab