diff --git a/application/modules/admin/controllers/IndexController.php b/application/modules/admin/controllers/IndexController.php index ccc4443205b779045ac9716867b75735ec5f1720..a8716ec14a2c609e283ec45302986470c6e2ae15 100644 --- a/application/modules/admin/controllers/IndexController.php +++ b/application/modules/admin/controllers/IndexController.php @@ -33,7 +33,6 @@ class Admin_IndexController extends Zend_Controller_Action { $this->view->etat_site="Le site est en ligne"; $this->view->lien_site="Rendre le site indisponible"; $this->view->href_site="false"; - } else { $this->view->etat_site="Le site est indisponible"; $this->view->lien_site="Remettre le site en ligne"; @@ -49,30 +48,29 @@ class Admin_IndexController extends Zend_Controller_Action { $this->view->user = Class_Users::getLoader()->getIdentity(); } + public function adminvarAction() { - $existing_variables = Class_AdminVar::getLoader()->findAllBy(['order' => 'CLEF']); - $existing_clefs = array(); + $existing_variables = Class_AdminVar::findAllBy(['order' => 'CLEF']); + $existing_clefs = []; foreach ($existing_variables as $var) $existing_clefs[] = $var->getId(); // creer les variables manquantes - foreach (Class_AdminVar::getKnownVars() as $name) { - if (!in_array($name, $existing_clefs)) { + foreach (Class_AdminVar::getKnownVarsKeys() as $name) + if (!in_array($name, $existing_clefs)) $existing_variables[] = Class_AdminVar::set($name, ''); - } - } - + + xdebug_break(); $this->view->titre = 'Gestion des variables'; $this->view->vars = $existing_variables; - } public function shouldEncodeVar($cle) { return in_array($cle->getId(), - array("REGISTER_OK", "RESA_CONDITION","TEXTE_MAIL_RESA", - "USER_VALIDATED", "USER_NON_VALIDATED")); + ['REGISTER_OK', 'RESA_CONDITION', 'TEXTE_MAIL_RESA', + 'USER_VALIDATED', 'USER_NON_VALIDATED']); } @@ -98,14 +96,13 @@ class Admin_IndexController extends Zend_Controller_Action { $this->_redirect('admin/index/adminvar'); } - if ($this->shouldEncodeVar($cle)) - $this->view->var_valeur = urldecode($cle->getValeur()); - else - $this->view->var_valeur = $cle->getValeur(); + $this->view->var_valeur = $this->shouldEncodeVar($cle) + ? urldecode($cle->getValeur()) + : $cle->getValeur(); $this->view->var_cle = $cle->getId(); - $this->view->tuto = $this->_getAdminVarHelpFor($cle->getId()); - $this->view->titre = 'Modifier la variable: '.$cle->getId(); + $this->view->tuto = Class_AdminVar::helpFor($cle->getId()); + $this->view->titre = 'Modifier la variable: ' . $cle->getId(); } @@ -119,86 +116,14 @@ class Admin_IndexController extends Zend_Controller_Action { $this->_redirect('admin'); } + public function clearcacheAction() { Zend_Registry::get('cache')->clean(Zend_Cache::CLEANING_MODE_ALL); $this->_redirect('admin/index/adminvar'); } - /** - * @param string $name - * @return string - */ - private function _getAdminVarHelpFor($name) { - $help = array( - 'AVIS_MAX_SAISIE' => 'Nombre de caractères maximum autorisé à saisir dans les avis.', - 'AVIS_MIN_SAISIE' => 'Nombre de caractères minimum autorisé à saisir dans les avis.', - 'BLOG_MAX_NB_CARAC' => "Nombre de caractères maximum à afficher dans le bloc critiques.", - 'FACETTE_PCDM4_LIBELLE' => "Libellé affichage pour la PCDM4", - 'FACETTE_DEWEY_LIBELLE' => "Libellé affichage pour la Dewey", - 'NB_AFFICH_AVIS_PAR_AUTEUR' => "Nombre d'avis maximum à afficher par utilisateur.", - 'CLEF_GOOGLE_MAP' => 'Clef d\'activation pour le plan d\'accès google map. <a target="_blank" href="http://code.google.com/apis/maps/signup.html">Obtenir la clé google map</a>', - 'MODO_AVIS' => 'Modération des avis des lecteurs.<br /> 0 = Affichage sans attente de validation<br /> 1 = Affichage seulement après validation.', - 'MODO_AVIS_BIBLIO' => 'Modération des avis des bibliothèquaires.<br /> 0 = Affichage sans attente de validation<br /> 1 = Affichage seulement après validation.', - 'AVIS_BIB_SEULEMENT' => '0 = Les lecteurs peuvent donner leur avis. <br /> 1 = Seuls les bibliothèquaires peuvent donner leur avis', - 'MODO_BLOG' => '0 = Ne requiert pas d\'identification pour saisir des commentaires. <br /> 1 = Requiert l\'identification pour saisir des commentaires.', - 'REGISTER_OK' => 'Texte visible par l\'internaute après son inscription.', - 'RESA_CONDITION' => 'Texte visible après l\'envoi d\'e-mail de demande de réservation.', - 'SITE_OK' => '0 = Site en maintenance. <br /> 1 = Site ouvert.', - 'ID_BIBLIOSURF' => 'Nom de la bibliothèque chez bibliosurf (en minuscules)', - 'GOOGLE_ANALYTICS' => 'Code Google Analytics', - 'ID_READ_SPEAKER' => 'Numéro de client Read Speaker <a target="_blank" href="http://webreader.readspeaker.com">http://webreader.readspeaker.com</a>', - 'BLUGA_API_KEY' => 'Clé API Bluga Webthumb <a target="_blank" href="http://webthumb.bluga.net/home">http://webthumb.bluga.net/home</a>', - 'AIDE_FICHE_ABONNE' => "Texte d'aide affiché dans la fiche abonné", - 'INTERDIRE_ENREG_UTIL' => "Supprime l'affichage du lien d'enregistrement dans les différents formulaires de connexion et interdit l'enregistrement d'utilisateurs", - 'LANGUES' => "Liste des codes langue utilisées en plus du français séparées par des ;. Exemple: en;ro;es", - 'WORKFLOW' => 'Activer ou désactiver la gestion des validations des articles<br />1 = Activé, Autre valeur = désactivé', - 'BIBNUM' => 'Activer ou désactiver la bibliothèque numérique<br />1 = Activé, Autre valeur = désactivé', - 'FORMATIONS' => 'Activer ou désactiver le module formation<br />1 = Activé, Autre valeur = désactivé', - 'CACHE_ACTIF' => implode( - '<br/>', - array( - 'Activer le cache des boîtes (meilleure performance mais mise à jour toutes les ' . ((int)Zend_Registry::get('cache')->getOption('lifetime')) / 60 . 'mn)', - '0 = inactif', - '1 = actif', - sprintf( - '<a href="%s" >Vider le cache</a>', - $this->view->url(array('action' => 'clearcache')) - ) - ) - ), - 'VODECLIC_KEY' => 'Clé de sécurité Vodeclic', - 'VODECLIC_ID' => 'Identifiant partenaire Vodeclic', - 'VODECLIC_BIB_ID' => 'Identifiant code bibliothèque Vodeclic', - 'OAI_SERVER' => 'Activation du serveur OAI. 0 = inactif, 1 = actif', - 'PACK_MOBILE' => 'Activation des fonctions avancées du téléphone. 0 = inactif, 1 = actif', - 'ARTE_VOD_LOGIN' => 'Login ARTE VOD', - 'ARTE_VOD_KEY' => 'Clé ARTE VOD', - 'ARTE_VOD_SSO_KEY' => 'Clé ARTE VOD Single Sign-On', - 'BABELTHEQUE_JS' => 'URL du javascript Babelthèque à insérer dans l\'OPAC', - 'MULTIMEDIA_KEY' => 'Clé AFI-multimédia', - 'CMS_FORMULAIRES' => 'Activation des formulaires. 0 = inactif, 1 = actif', - 'MENU_BOITE' => 'Activation des boîtes dans les menus. 0 = inactif, 1 = actif', - 'INTERDIRE_MODIF_FICHE_ABONNE' => 'Interdire la modification de la fiche abonne 0 = inactif, 1 = actif', - 'CHAMPS_FICHE_UTILISATEUR' => 'Liste des champs que l\'utilisateur peux modifier. <br/>Ex: nom;prenom;pseudo;adresse;<br/>code_postal;ville;mail;is_contact_mail;<br/>telephone;is_contact_telephone;', - 'URL_TYPO3' => 'Url d\'import d\un agenda TYPO3', - 'AFFICHER_DISPONIBILITE_SUR_RECHERCHE' => 'Activation de la disponibilite dans le resultat de recherche. 0 = inactif, 1 = actif', - 'NOM_DOMAINE' => 'Nom de domaine principal de l\'OPAC, ex: monopac.macommune.fr', - 'WEBKIOSK_KEY' => 'Clé publique pour le cryptage des données Aesis Webkiosk', - 'WEBKIOSK_RESERVATION_URL' => 'URL d\'accès à l\'interface de réservation des postes Aesis Webkiosk', - 'BOITE_PANIER_AUTO' => 'Ajouter automatiquement une boîte panier dans la division flottante. 0 = inactif, 1 = actif' - - ); - - if (!array_key_exists($name, $help)) { - return ''; - } - - return $help[$name]; - } - public function heartbeatAction() { $this->getHelper('ViewRenderer')->setNoRender(); } - } \ No newline at end of file diff --git a/library/Class/AdminVar.php b/library/Class/AdminVar.php index fb8c180f0032e7fae7a6409246c4011cfac3c987..be706e695a6f3dc918abed0f372562fd086c4cb6 100644 --- a/library/Class/AdminVar.php +++ b/library/Class/AdminVar.php @@ -18,91 +18,13 @@ * 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 - Variables globales admin -////////////////////////////////////////////////////////////////////////////////////////// class Class_AdminVar extends Storm_Model_Abstract { protected $_table_name = 'bib_admin_var'; protected $_table_primary = 'CLEF'; /** @var array */ - protected static $_knownVars = array( - 'AVIS_MAX_SAISIE', - 'AVIS_MIN_SAISIE', - 'BLOG_MAX_NB_CARAC', - 'NB_AFFICH_AVIS_PAR_AUTEUR', - 'CLEF_GOOGLE_MAP', - 'MODO_AVIS', - 'MODO_AVIS_BIBLIO', - 'AVIS_BIB_SEULEMENT', - 'MODO_BLOG', - 'REGISTER_OK', - 'RESA_CONDITION', - 'SITE_OK', - 'ID_BIBLIOSURF', - 'GOOGLE_ANALYTICS', - 'ID_READ_SPEAKER', - 'BLUGA_API_KEY', - 'AIDE_FICHE_ABONNE', - 'INTERDIRE_ENREG_UTIL', - 'LANGUES', - 'CACHE_ACTIF', - 'WORKFLOW', - 'WORKFLOW_TEXT_MAIL_ARTICLE_PENDING', - 'WORKFLOW_TEXT_MAIL_ARTICLE_REFUSED', - 'BIBNUM', - 'FORMATIONS', - 'VODECLIC_KEY', - 'VODECLIC_ID', - 'VODECLIC_BIB_ID', - 'CVS_BMKEY', - 'CVS_BMID', - 'CVS_SOURCENAME', - 'CVS_SOURCEID', - 'CVS_SOURCEKEY', - 'CVS_SOURCEPASSWORD', - 'CVS_LOGINTEST', - 'NUMILOG_URL', - 'NUMILOG_OAI_URL', - 'NUMILOG_OAI_IDBIB', - 'OAI_SERVER', - 'PACK_MOBILE', - 'ARTE_VOD_LOGIN', - 'ARTE_VOD_KEY', - 'ARTE_VOD_SSO_KEY', - 'BABELTHEQUE_JS', - 'MULTIMEDIA_KEY', - 'WEBKIOSK_KEY', - 'WEBKIOSK_RESERVATION_URL', - 'CSS_EDITOR', - 'CMS_FORMULAIRES', - 'MENU_BOITE', - 'INTERDIRE_MODIF_FICHE_ABONNE', - 'ROOT_URL_ECOUTE', - 'URL_TYPO3', - 'CHAMPS_FICHE_UTILISATEUR', - 'FACETTE_PCDM4_LIBELLE', - 'FACETTE_DEWEY_LIBELLE', - 'FACETTE_TYPE_DOC_LIBELLE', - 'FACETTE_LANGUE_LIBELLE', - 'FACETTE_GENRE_LIBELLE', - 'FACETTE_SITE_LIBELLE', - 'FACETTE_SECTION_LIBELLE', - 'FACETTE_BIBLIOTHEQUE_LIBELLE', - 'FACETTE_AUTEUR_LIBELLE', - 'FACETTE_INTERET_LIBELLE', - 'FACETTE_MATIERE_LIBELLE', - 'FACETTE_TAG_LIBELLE', - 'AFFICHER_DISPONIBILITE_SUR_RECHERCHE', - 'NOM_DOMAINE', - 'TOUTAPPRENDRE_BIB_ID', - 'TOUTAPPRENDRE_KEY', - 'MUSICME_URL', - 'MUSICME_BIB_ID', - 'DATE_LAST_FULL_INTEGRATION_USERS', - 'BOITE_PANIER_AUTO' - ); + protected static $_knownVars; /** @@ -110,7 +32,6 @@ class Class_AdminVar extends Storm_Model_Abstract { * @return mixed */ public static function get($name) { - $var = static::getLoader()->find($name); if ($var == null) return null; @@ -139,10 +60,12 @@ class Class_AdminVar extends Storm_Model_Abstract { return $instance; } + public static function getDefaultLanguage() { return 'fr'; } + public static function getLangues() { if (!$langues_value = self::get('LANGUES')) return array(); @@ -159,6 +82,7 @@ class Class_AdminVar extends Storm_Model_Abstract { return array_diff(self::getLangues(), array(self::getDefaultLanguage())); } + /** * @return bool */ @@ -216,7 +140,6 @@ class Class_AdminVar extends Storm_Model_Abstract { } - /** * @return bool */ @@ -312,14 +235,114 @@ class Class_AdminVar extends Storm_Model_Abstract { } + public static function getKnownVarsKeys() { + return array_keys(static::getKnownVars()); + } + + /** * @return array */ public static function getKnownVars() { + if (null === self::$_knownVars) + self::$_knownVars = [ + 'AVIS_MAX_SAISIE' => 'Nombre de caractères maximum autorisé à saisir dans les avis.', + 'AVIS_MIN_SAISIE' => 'Nombre de caractères minimum autorisé à saisir dans les avis.', + 'BLOG_MAX_NB_CARAC' => 'Nombre de caractères maximum à afficher dans le bloc critiques.', + 'NB_AFFICH_AVIS_PAR_AUTEUR' => 'Nombre d\'avis maximum à afficher par utilisateur.', + 'CLEF_GOOGLE_MAP' => 'Clef d\'activation pour le plan d\'accès google map. <a target="_blank" href="http://code.google.com/apis/maps/signup.html">Obtenir la clé google map</a>', + 'MODO_AVIS' => 'Modération des avis des lecteurs.<br /> 0 = Affichage sans attente de validation<br /> 1 = Affichage seulement après validation.', + 'MODO_AVIS_BIBLIO' => 'Modération des avis des bibliothèquaires.<br /> 0 = Affichage sans attente de validation<br /> 1 = Affichage seulement après validation.', + 'AVIS_BIB_SEULEMENT' => '0 = Les lecteurs peuvent donner leur avis. <br /> 1 = Seuls les bibliothèquaires peuvent donner leur avis', + 'MODO_BLOG' => '0 = Ne requiert pas d\'identification pour saisir des commentaires. <br /> 1 = Requiert l\'identification pour saisir des commentaires.', + 'REGISTER_OK' => 'Texte visible par l\'internaute après son inscription.', + 'RESA_CONDITION' => 'Texte visible après l\'envoi d\'e-mail de demande de réservation.', + 'SITE_OK' => '0 = Site en maintenance. <br /> 1 = Site ouvert.', + 'ID_BIBLIOSURF' => 'Nom de la bibliothèque chez bibliosurf (en minuscules)', + 'GOOGLE_ANALYTICS' => 'Code Google Analytics', + 'ID_READ_SPEAKER' => 'Numéro de client Read Speaker <a target="_blank" href="http://webreader.readspeaker.com">http://webreader.readspeaker.com</a>', + 'BLUGA_API_KEY' => 'Clé API Bluga Webthumb <a target="_blank" href="http://webthumb.bluga.net/home">http://webthumb.bluga.net/home</a>', + 'AIDE_FICHE_ABONNE' => 'Texte d\'aide affiché dans la fiche abonné', + 'INTERDIRE_ENREG_UTIL' => 'Supprime l\'affichage du lien d\'enregistrement dans les différents formulaires de connexion et interdit l\'enregistrement d\'utilisateurs', + 'LANGUES' => 'Liste des codes langue utilisées en plus du français séparées par des ;. Exemple: en;ro;es', + 'CACHE_ACTIF' => implode('<br/>', + ['Activer le cache des boîtes (meilleure performance mais mise à jour toutes les ' . ((int)Zend_Registry::get('cache')->getOption('lifetime')) / 60 . 'mn)', + '0 = inactif', + '1 = actif', + sprintf('<a href="%s" >Vider le cache</a>', + Class_Url::assemble(['module' => 'admin', + 'action' => 'clearcache']))]), + 'WORKFLOW' => 'Activer ou désactiver la gestion des validations des articles<br />1 = Activé, Autre valeur = désactivé', + 'WORKFLOW_TEXT_MAIL_ARTICLE_PENDING' => '', + 'WORKFLOW_TEXT_MAIL_ARTICLE_REFUSED' => '', + 'BIBNUM' => 'Activer ou désactiver la bibliothèque numérique<br />1 = Activé, Autre valeur = désactivé', + 'FORMATIONS' => 'Activer ou désactiver le module formation<br />1 = Activé, Autre valeur = désactivé', + 'VODECLIC_KEY' => 'Clé de sécurité Vodeclic', + 'VODECLIC_ID' => 'Identifiant partenaire Vodeclic', + 'VODECLIC_BIB_ID' => 'Identifiant code bibliothèque Vodeclic', + 'CVS_BMKEY' => '', + 'CVS_BMID' => '', + 'CVS_SOURCENAME' => '', + 'CVS_SOURCEID' => '', + 'CVS_SOURCEKEY' => '', + 'CVS_SOURCEPASSWORD' => '', + 'CVS_LOGINTEST' => '', + 'NUMILOG_URL' => '', + 'NUMILOG_OAI_URL' => '', + 'NUMILOG_OAI_IDBIB' => '', + 'OAI_SERVER' => 'Activation du serveur OAI. 0 = inactif, 1 = actif', + 'PACK_MOBILE' => 'Activation des fonctions avancées du téléphone. 0 = inactif, 1 = actif', + 'ARTE_VOD_LOGIN' => 'Login ARTE VOD', + 'ARTE_VOD_KEY' => 'Clé ARTE VOD', + 'ARTE_VOD_SSO_KEY' => 'Clé ARTE VOD Single Sign-On', + 'BABELTHEQUE_JS' => 'URL du javascript Babelthèque à insérer dans l\'OPAC', + 'MULTIMEDIA_KEY' => 'Clé AFI-multimédia', + 'WEBKIOSK_KEY' => 'Clé publique pour le cryptage des données Aesis Webkiosk', + 'WEBKIOSK_RESERVATION_URL' => 'URL d\'accès à l\'interface de réservation des postes Aesis Webkiosk', + 'CSS_EDITOR' => '', + 'CMS_FORMULAIRES' => 'Activation des formulaires. 0 = inactif, 1 = actif', + 'MENU_BOITE' => 'Activation des boîtes dans les menus. 0 = inactif, 1 = actif', + 'INTERDIRE_MODIF_FICHE_ABONNE' => 'Interdire la modification de la fiche abonne 0 = inactif, 1 = actif', + 'ROOT_URL_ECOUTE' => '', + 'URL_TYPO3' => 'Url d\'import d\un agenda TYPO3', + 'CHAMPS_FICHE_UTILISATEUR' => 'Liste des champs que l\'utilisateur peux modifier. <br/>Ex: nom;prenom;pseudo;adresse;<br/>code_postal;ville;mail;is_contact_mail;<br/>telephone;is_contact_telephone;', + 'FACETTE_PCDM4_LIBELLE' => 'Libellé affichage pour la PCDM4', + 'FACETTE_DEWEY_LIBELLE' => 'Libellé affichage pour la Dewey', + 'FACETTE_TYPE_DOC_LIBELLE' => '', + 'FACETTE_LANGUE_LIBELLE' => '', + 'FACETTE_GENRE_LIBELLE' => '', + 'FACETTE_SITE_LIBELLE' => '', + 'FACETTE_SECTION_LIBELLE' => '', + 'FACETTE_BIBLIOTHEQUE_LIBELLE' => '', + 'FACETTE_AUTEUR_LIBELLE' => '', + 'FACETTE_INTERET_LIBELLE' => '', + 'FACETTE_MATIERE_LIBELLE' => '', + 'FACETTE_TAG_LIBELLE' => '', + 'AFFICHER_DISPONIBILITE_SUR_RECHERCHE' => 'Activation de la disponibilite dans le resultat de recherche. 0 = inactif, 1 = actif', + 'NOM_DOMAINE' => 'Nom de domaine principal de l\'OPAC, ex: monopac.macommune.fr', + 'TOUTAPPRENDRE_BIB_ID' => '', + 'TOUTAPPRENDRE_KEY' => '', + 'MUSICME_URL' => '', + 'MUSICME_BIB_ID' => '', + 'DATE_LAST_FULL_INTEGRATION_USERS' => '', + 'BOITE_PANIER_AUTO' => 'Ajouter automatiquement une boîte panier dans la division flottante. 0 = inactif, 1 = actif', + ]; return self::$_knownVars; } + /** + * @param $name string + * @return string + */ + public static function helpFor($name) { + if (!array_key_exists($name, static::getKnownVars())) + return ''; + return static::getKnownVars()[$name]; + } + + + /** @return bool */ public static function isCacheEnabled() { return self::isModuleEnabled('CACHE_ACTIF'); @@ -380,13 +403,11 @@ class Class_AdminVar extends Storm_Model_Abstract { } - public static function getChampsFicheUtilisateur() { return array_filter(explode(';', trim(self::get('CHAMPS_FICHE_UTILISATEUR')))); } - public static function getWorkflowTextMailArticlePending() { if(!static::get('WORKFLOW_TEXT_MAIL_ARTICLE_PENDING')) static::set('WORKFLOW_TEXT_MAIL_ARTICLE_PENDING',