Skip to content
Snippets Groups Projects
Commit df3c5f27 authored by Patrick Barroca's avatar Patrick Barroca :grin:
Browse files

rel #13914 : never save category with id 0

parent 3cee4b59
Branches
Tags 6.46
6 merge requests!258Dev/13872 Orphee Allow Hold Available Items,!215Dev#12992 Custom Fields,!214Hotline 6.46,!212Hotline Indexation Mots Vide,!210Hotline#13914 Album Link Config Menu,!209Hotline#13914 Album Link Config Menu
......@@ -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
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment