_('Livres et Vidéos'), $this->_('Musique')]; $l=Class_AdminVar::get("FACETTE_PCDM4_LIBELLE"); if(trim($l)) $lib[2]=$l; $l=Class_AdminVar::get("FACETTE_DEWEY_LIBELLE"); if(trim($l)) $lib[1]=$l; return $lib[intval($id)]; case Class_CodifDewey::CODE_FACETTE: return Class_CodifDewey::getLibelleOf($id); case Class_CodifPcdm4::CODE_FACETTE: return Class_CodifPcdm4::getLibelleOf($id); case Class_Codification::CODE_AVAILABILITY: return ($bib = Class_Bib::find((int)$id)) ? $bib->getLibelle() : ''; case Class_CodifThesaurus::CODE_FACETTE: return ($thesaurus = Class_CodifThesaurus::findFirstBy(['id_thesaurus'=>$id])) ? $thesaurus->getLibelleFacette(): ''; case Class_CodifAuteur::CODE_FACETTE: return ($auteur = Class_CodifAuteur::find($id)) ? $auteur->getLibelle() : ''; case Class_CodifMatiere::CODE_FACETTE: return ($matiere = Class_CodifMatiere::find((int)$id)) ? $matiere->getLibelle() : ''; case Class_CodifCentreInteret::CODE_FACETTE: return ($interet = Class_CodifCentreInteret::find((int)$id)) ? $interet->getLibelle() : ''; case Class_CodifGenre::CODE_FACETTE: return ($genre = Class_CodifGenre::find((int)$id)) ? $genre->getLibelle() : ''; case Class_CodifLangue::CODE_FACETTE: return ($langue = Class_CodifLangue::find($id)) ? $langue->getLibelle() : ''; case Class_CodifSection::CODE_FACETTE: return ($section = Class_CodifSection::find((int)$id)) ? $section->getLibelle() : ''; case Class_CodifEmplacement::CODE_FACETTE: return ($emplacement = Class_CodifEmplacement::find((int)$id)) ? $emplacement->getLibelle() : ''; case Class_Bib::CODE_FACETTE: return ($bib = Class_Bib::find((int)$id)) ? $bib->getLibelle() : ''; case Class_CodifAnnexe::CODE_FACETTE: return ($annexe = Class_CodifAnnexe::findFirstBy(['code' => addslashes($id)]))? $annexe->getLibelle() : ''; case Class_CodifTags::CODE_FACETTE: return ($tag = Class_CodifTags::find((int)$id)) ? $tag->getLibelle() : ''; case Class_TypeDoc::CODE_FACETTE: return ($type_doc = Class_TypeDoc::find($id)) ? $type_doc->getLabel() : ''; } return ''; } public function genereNomsChamps () { if (isset($this->_nom_champs)) return; $this->_nom_champs = [Class_CodifAuteur::CODE_FACETTE => [ $this->_("Auteur"), $this->_( "Auteur(s)")], Class_Bib::CODE_FACETTE => [ $this->_("Bibliothèque"), $this->_("Bibliothèque(s)")], Class_Codification::CODE_COLLECTION => [ $this->_("Collection"), $this->_("Collection(s)")], Class_CodifDewey::CODE_FACETTE => [ $this->_("Livres et Vidéos"),$this->_("Livres et Vidéos")], Class_Codification::CODE_EDITEUR => [ $this->_("Editeur"), $this->_("Editeur(s)")], Class_CodifCentreInteret::CODE_FACETTE => [ $this->_("Centre d'intérêt"),$this->_("Centre(s) d'intérêt")], Class_CodifGenre::CODE_FACETTE => [ $this->_("Genre"), $this->_("Genre")], Class_Codification::CODE_IDENTIFIANT => [ $this->_("Identifiant"), $this->_("Identifiant")], Class_Codification::CODE_TITRE => [ $this->_("Titre"), $this->_("Titre(s)")], Class_Codification::CODE_COLLATION => [ $this->_("Collation"), $this->_("Collation")], Class_CodifLangue::CODE_FACETTE => [ $this->_("Langue"), $this->_("Langue(s)")], Class_CodifMatiere::CODE_FACETTE => [ $this->_("Sujet"), $this->_("Sujet(s)")], Class_Codification::CODE_ANNEE => [ $this->_("Année"), $this->_("Année")], Class_Codification::CODE_NOTES => [ $this->_("Notes"), $this->_("Notes")], Class_CodifPcdm4::CODE_FACETTE => [ $this->_("Musique"), $this->_("Musique")], Class_Codification::CODE_RESUME => [ $this->_("Résumé"), $this->_("Résumé")], Class_CodifSection::CODE_FACETTE => [ $this->_("Section"), $this->_("Section")], Class_TypeDoc::CODE_FACETTE => [ $this->_("Type de document"),$this->_("Types de documents")], Class_CodifAnnexe::CODE_FACETTE => [ $this->_("Site"), $this->_("Site")], Class_CodifTags::CODE_FACETTE => [ $this->_("Tag"), $this->_("Tag(s)")], Class_Codification::CODE_URL => [ $this->_("Lien internet"), $this->_("Liens internet")], Class_Codification::CODE_AVAILABILITY => [ $this->_("En rayon"), $this->_("En rayon")], Class_Codification::CODE_NOUVEAUTE => [ $this->_("Nouveauté"), $this->_("Nouveauté")], Class_Codification::CODE_PRIX => [ $this->_("Prix"), $this->_("Prix")], Class_CodifEmplacement::CODE_FACETTE => [ $this->_('Emplacement'), $this->_('Emplacement')], Class_Codification::CODE_THUMBNAIL => [ $this->_('Vignette'), $this->_('Vignette')], Class_Codification::CODE_AUTHORITY_DATAS => [ $this->_('Autorité'), $this->_('Autorité')],]; $this->addThesauriToNomChamps(); $this->setFacetDisplayNames(); } protected function setFacetDisplayNames() { $var_codes = ['FACETTE_PCDM4_LIBELLE' => Class_CodifPcdm4::CODE_FACETTE, 'FACETTE_DEWEY_LIBELLE' => Class_CodifDewey::CODE_FACETTE, 'FACETTE_TYPE_DOC_LIBELLE' => Class_TypeDoc::CODE_FACETTE, 'FACETTE_LANGUE_LIBELLE' => Class_CodifLangue::CODE_FACETTE, 'FACETTE_GENRE_LIBELLE' => Class_CodifGenre::CODE_FACETTE, 'FACETTE_SITE_LIBELLE' => Class_Bib::CODE_FACETTE, 'FACETTE_SECTION_LIBELLE' => Class_CodifSection::CODE_FACETTE, 'FACETTE_BIBLIOTHEQUE_LIBELLE' => Class_CodifAnnexe::CODE_FACETTE, 'FACETTE_AUTEUR_LIBELLE' => Class_CodifAuteur::CODE_FACETTE, 'FACETTE_INTERET_LIBELLE' => Class_CodifCentreInteret::CODE_FACETTE, 'FACETTE_MATIERE_LIBELLE' => Class_CodifMatiere::CODE_FACETTE, 'FACETTE_TAG_LIBELLE' => Class_CodifTags::CODE_FACETTE]; foreach($var_codes as $var => $code) { $label = Class_AdminVar::get($var); if (trim($label)) { $this->_nom_champs[$code][0] = $label; $this->_nom_champs[$code][1] = $label; } } } public function addThesauriToNomChamps() { foreach (Class_CodifThesaurus::getFacettesThesauri() as $model) { $this->_nom_champs[$model->getFacetteIndex()] = [$model->getLibelleFacette(), $model->getLibelleFacette()]; } } function getNomChamp($code,$pluriel=0) { if ($code[0] == Class_CodifThesaurus::CODE_FACETTE) $type = $code; else if (!$type = $code[0]) return ''; self::genereNomsChamps(); if ($code == 'tous') { foreach($this->_nom_champs as $key => $valeur) $lib[$key]=$valeur[0]; return $lib; } return isset($this->_nom_champs[$type][$pluriel]) ? $this->_nom_champs[$type][$pluriel] : ''; } function getNomFacette($code) { return self::getNomChamp($code); } function genereNomsOnglets () { if (isset($this->_nom_onglets)) return; $translate = Zend_Registry::get('translate'); $this->_nom_onglets = [ "detail" => Class_Onglet::forLibelleAndType($translate->_("Description du document"),'detail'), "avis" => Class_Onglet::forLibelleAndType($translate->_("Critiques"),'avis'), "exemplaires" => Class_Onglet::forLibelleAndType($translate->_("Exemplaires"),'exemplaires'), "resume" => Class_Onglet::forLibelleAndType($translate->_("Résumés"),'resume'), "tags" => Class_Onglet::forLibelleAndType($translate->_("Rebondir dans le catalogue"),'tags'), "biographie" => Class_Onglet::forLibelleAndType($translate->_("Biographie de l'auteur"),'biographie'), "series" => Class_Onglet::forLibelleAndType($translate->_("Documents de la même série"),'series')->setDisplayMethod('hasClefChapeau'), // "auteur" => Class_Onglet::forLibelleAndType($translate->_("Documents du même auteur"),'auteur'), "similaires" => Class_Onglet::forLibelleAndType($translate->_("Documents similaires"),'similaires'), "bibliographie" => Class_Onglet::forLibelleAndType($translate->_("Discographie"),'bibliographie'), "morceaux" => Class_Onglet::forLibelleAndType($translate->_("Morceaux"),'morceaux'), "bandeAnnonce" => Class_Onglet::forLibelleAndType($translate->_("Bande-annonce"),'bandeAnnonce'), "photos" => Class_Onglet::forLibelleAndType($translate->_("Photos"),'photos'), "videos" => Class_Onglet::forLibelleAndType($translate->_("Archives vidéo"),'videos'), "resnumeriques" => Class_Onglet::forLibelleAndType($translate->_("Ressources numériques"),'resnumeriques')->setDisplayMethod('hasNumericRessources'), "babeltheque" => Class_Onglet::forLibelleAndType($translate->_('Babelthèque'),'babeltheque'), 'frbr' => Class_Onglet::forLibelleAndType($translate->_('Notices liées'),'frbr')->setDisplayMethod('hasLinkedNotices'), 'recounts' => Class_Onglet::forLibelleAndType($this->_('Contient'), 'recounts')->setDisplayMethod('hasRecounts')]; } function getOnglet($onglet) { self::genereNomsOnglets(); return $onglet ? $this->_nom_onglets[$onglet] : Class_Onglet::forLibelleAndType($onglet,$onglet); } function getAllOnglets() { self::genereNomsOnglets(); return $this->_nom_onglets; } function getNomOnglet($onglet) { self::genereNomsOnglets(); return $onglet ? $this->_nom_onglets[$onglet]->getLibelle() : $this->_nom_onglets; } public static function getLibelleForSerie($notice) { if(!$notice) return ''; $prefix = function($notice) { $me = new static(); if ($notice->isDVD()) return $me->_('Voir tous les épisodes'); if (!$notice->isPeriodique()) return $me->_('Voir tous les tomes'); if ($notice->isFirstItemTypeSerialArticle()) return $me->_('Voir tous les articles de ce numéro'); return $me->_('Voir tous les numéros'); }; return self::concatLibelleWithTitreChapeau($prefix($notice), $notice->getTitreChapeau()); } public static function concatLibelleWithTitreChapeau($libelle,$chapeau) { $first_letter = substr($chapeau, 0, 1); if (in_array($first_letter, ['H','E','A','I','O','U'])) return $libelle . ' d\'' . $chapeau; return $libelle . ' de ' . $chapeau; } public function cleanDeletedFacets($concat_facets) { $codes = []; $facets = $this->getCodesLibellesFacette($concat_facets); foreach ($facets as $facet) { if (!$label = $facet->getLibelle()) continue; $codes[] = $facet->getCode(); } return implode(';', $codes); } public function getCodesFor($type) { if ('libelles' == $type) return $this->getNomChamp('tous'); if ('liste' == $type) return $this->getCodesForList(); if ('facettes' == $type) return $this->getCodesForFacets(); if ('tags' == $type) return $this->getCodesForTags(); if ('champs' == $type) return $this->getCodesForFields(); if (in_array($type, ['type_tags', 'champs_tags'])) return $this->getCodesForTypeOrFieldTags(); return []; } public function getCodesForList() { return [static::CODE_TITRE, Class_TypeDoc::CODE_FACETTE, Class_CodifAuteur::CODE_FACETTE, static::CODE_ANNEE, static::CODE_EDITEUR, static::CODE_COLLECTION, static::CODE_RESUME, static::CODE_NOUVEAUTE, Class_CodifCentreInteret::CODE_FACETTE, static::CODE_URL]; } public function getCodesForFacets() { $facets = [Class_CodifAuteur::CODE_FACETTE, Class_CodifCentreInteret::CODE_FACETTE, Class_CodifMatiere::CODE_FACETTE, Class_CodifEmplacement::CODE_FACETTE, Class_CodifDewey::CODE_FACETTE, Class_CodifPcdm4::CODE_FACETTE, Class_CodifLangue::CODE_FACETTE, Class_CodifGenre::CODE_FACETTE, Class_CodifSection::CODE_FACETTE, Class_Bib::CODE_FACETTE, Class_CodifAnnexe::CODE_FACETTE, Class_CodifTags::CODE_FACETTE, static::CODE_AVAILABILITY]; return array_merge($facets, Class_CodifThesaurus::getFacettesIndex()); } public function getCodesForFields() { return [Class_TypeDoc::CODE_FACETTE, static::CODE_TITRE, Class_CodifAuteur::CODE_FACETTE, Class_CodifMatiere::CODE_FACETTE, Class_CodifDewey::CODE_FACETTE, Class_CodifPcdm4::CODE_FACETTE, Class_CodifLangue::CODE_FACETTE, Class_CodifGenre::CODE_FACETTE, Class_CodifSection::CODE_FACETTE, Class_Bib::CODE_FACETTE, static::CODE_EDITEUR, static::CODE_COLLECTION, static::CODE_ANNEE, static::CODE_RESUME, static::CODE_NOUVEAUTE, Class_CodifCentreInteret::CODE_FACETTE]; } public function getCodesForTags() { return [Class_CodifAuteur::CODE_FACETTE, Class_CodifCentreInteret::CODE_FACETTE, Class_CodifMatiere::CODE_FACETTE, Class_CodifDewey::CODE_FACETTE, Class_CodifPcdm4::CODE_FACETTE, Class_CodifTags::CODE_FACETTE]; } public function getCodesForTypeOrFieldTags() { return [Class_CodifAuteur::CODE_FACETTE, Class_CodifMatiere::CODE_FACETTE, Class_CodifDewey::CODE_FACETTE, Class_CodifPcdm4::CODE_FACETTE, Class_CodifTags::CODE_FACETTE, Class_CodifAnnexe::CODE_FACETTE]; } public function getId() { return ''; } public function getLibelle() { return $this->_('Codification'); } }