Aide-mémoire et tableaux de synthèse. PMB Services PMB
Vous trouverez ci-dessous des informations concernant PMB. Ce manuel d'utilisation explique comment transformer l'OPAC en un portail documentaire. Il traite de la configuration du contenu éditorial et des pages, de l'utilisation des modules, des cadres et des feuilles de style CSS. Il fournit des conseils pratiques pour la construction du portail, ainsi que des exemples d'OPAC.
A.-M. Cubat PMB – Construction du portail – Concepts et exemples
Source : http://amcubat.be/docpmb/portail-construction-concepts-exemples
Page 176
A
IDE
-
MÉMOIRE ET TABLEAUX DE SYNTHÈSE
Mon but n’est pas d’augmenter artificiellement le nombre de pages, et je sais que je n’ajoute ici que peu d’infos nouvelles par rapport à ce que j’ai déjà dit. Toutefois, j’ai décidé de fournir un résumé schématique sur certains sujets fondamentaux :
Les liens entre les modules, cadres et pages du portail Les templates Django
Les balises HTML Les requêtes SQL
En effet, les commentaires sur ces thèmes sont disséminés un peu partout, c’est pourquoi j’ai préféré regrouper les infos essentielles dans une synthèse. Ainsi, vous ne devrez pas parcourir plusieurs chapitres à la recherche de l’une ou l’autre explication ;-)
Liens entre modules, cadres et pages
L
ISTE DES MODULES DISPONIBLES
J’ai regroupé ces modules en diverses catégories, afin de donner une vue d’ensemble.
contiennent des explications détaillées sur de nombreux modules.
PMB 4.0.13 PMB 4.1 Certains modules sont fondamentaux, car ils génèrent le cadre principal d’une des pages-outils du portail ; ils sont en général liés à une variable d’environnement
Module rubrique variable id_rubrique page qui affiche une rubrique
Module article variable id_article page qui affiche un article
Module notice variable id_notice page qui affiche une notice
Module agenda variable id_date page qui affiche une liste d’événements
Module liste d’articles pas de variable page qui affiche le résultat d’une
recherche dans le contenu éditorial : une liste d’articles
Listes présentées de manière « classique » ou en carrousel
liste d’articles au choix : affichage sous forme de liste ou de carrousel
liste de notices (défilement horizontal, vertical, en fondu enchaîné)
liste de rubriques
liste de bannettes un seul mode d’affichage : la liste
liste d’étagères
carrousel de notices un seul mode d’affichage : le carrousel
Aide à la navigation
menu créé sur base du contenu éditorial ou dans l’interface d’administration
fil d’Ariane (fournir des liens en arrière sur les pages déjà parcourues)
Aide à la recherche interne ou externe
recherche interne (dans le contenu bibliographique et/ou éditorial)
recherche externe : interrogation SPARQL (accès au Web sémantique)
Insertion directe
agenda (calendrier des activités organisées par la bibliothèque)
code HTML (ajouter un cadre qui contient du code HTML)
éléments de l’OPAC (ex. infopages, navigateur de périodiques)
Insertion d’éléments externes à la base
flux RSS
portfolio (gérer une collection de documents numériques non catalogués)
5 modules doivent être configurés avant usage
Agenda
o
Définir les calendriers
Interrogation SPARQL (recherche externe)
o
Définir les sources de données
Menu : seulement s’il s’agit du menu créé dans l’interface d’administration o
Inutile pour un menu basé sur le contenu éditorial (rubriques) : on peut l’employer tout de suite
Portfolio
o
Paramétrer un répertoire d’upload (onglet Administration) et définir les Collections numériques (onglet Portail)
Recherche interne
o
Définir les types de recherche (contenu éditorial et bibliographique) et les pages de destination
A.-M. Cubat PMB – Construction du portail – Concepts et exemples
Source : http://amcubat.be/docpmb/portail-construction-concepts-exemples
Page 177
I
NTERCONNEXION ENTRE LA PAGE D
’
ACCUEIL ET LES AUTRES PAGES
Liste de quelques modules et cadres du portail visibles dans la page d’accueil – dans les zones introduction et page centrale
En noir (police standard) : le nom du cadre
En rouge et en italiques : le nom du module
Menu
Menu
Carrousel d’articles (accueil)
Liste d’articles
Liste d'articles - sélections (accueil)
Liste d’articles
Liste de brèves (accueil)
Liste d’articles
Barre de recherche simple
Recherche
Agenda (accueil)
Agenda
Carrousel de notices (nouveautés - accueil)
Liste de notices
Si les pages-outils n’existaient pas, si elles ne contenaient pas le cadre fondamental lié à leur fonction, s’il n’y avait pas des variables d’environnement et des champs personnalisés pour transmettre des paramètres, si les templates Django ne créaient pas des URL de destination et ne spécifiaient pas ce qui est cliquable, il serait inutile d’insérer des cadres en page d’accueil, soit on n’irait nulle part ailleurs, soit on irait quelque part mais on ne pourrait rien y faire !
Interconnexion entre ces cadres visibles en page d’accueil et les pages-outils du portail
Il n’y a pas de variable d’environnement liée à la page qui affiche une liste d’articles (le résultat d’une recherche dans le contenu éditorial).
Menu
Cadres
On ne va jamais « spontanément » vers une page, quelle qu’elle soit
C’est dans chaque cadre qu’on construit le lien vers « la suite du parcours ».
Variable d’environnement
Pages de destination
(Le menu de la démo n’affiche que des titres de rubriques)
id_rubrique
Page qui affiche une rubrique
Clic sur un titre de rubrique
Carrousel d’articles (accueil)
Clic sur un article du carrousel
Liste d’articles - Sélections (étagères)
Clic sur un article de la liste
id_article
Si on clique sur une sous-rubrique page qui affiche une rubrique
Si on clique sur un article page qui affiche un article
Page qui affiche un article
L’aspect varie en fonction du type de
contenu de l’article (ce paramètre est
Coup de cœur :
identifiant_notice
Sélection :
etagere
Evénement (date précise) :
date
transmis par un champ personnalisé)
Evénement (période) :
date_debut, date_fin
Information : pas de champ personnalisé
Liste de brèves – pas de clic possible Pas de lien Aucune page de destination prévue dans le template de ce cadre
Barre de recherche dans les articles
Si on effectue une recherche
Pas de variable
Page qui affiche une liste d’articles : le résultat d’une recherche
Si on clique sur un article de la liste page qui affiche un article
Agenda (calendrier : choix d’une date)
S’il y a un seul événement
S’il y a plusieurs événements
Carrousel de notices (nouveautés)
Clic sur une notice du carrousel
id_article id_date id_notice
Page qui affiche un article
Page qui affiche une liste d’événements (module agenda)
Si on clique sur un événement de la liste page qui affiche un article
Page du portail qui affiche une notice
Si on clique sur le permalink page de l’OPAC qui affiche une notice
Ces variables se ressemblent : leurs noms sont similaires, et les questions de départ identiques : quelle notice ? ou quelle date ?
Mais elles n’ont pas la même fonction, ne les confondez pas !
id_notice
et
id_date
sont 2
variables d’environnement
page qui affiche une notice ou page qui affiche une liste d’événements
identifiant_notice
et
date
sont 2
champs personnalisés
types de contenu des articles : Coup de cœur ou Evénement à une date
A.-M. Cubat PMB – Construction du portail – Concepts et exemples
Source : http://amcubat.be/docpmb/portail-construction-concepts-exemples
Page 178
S
YNTHÈSE DES PAGES
-
OUTILS DU PORTAIL
Vous pouvez cliquer sur n’importe quelle rubrique visible par exemple dans le menu principal
Le cadre du menu principal contient la question « Construction du lien vers une rubrique ? »
Et on a répondu « aller vers la page du portail qui affiche une rubrique »
C’est une page où on voit le contenu d’une rubrique, quel que soit son numéro d’id
Dans la démo, la page qui affiche une rubrique a le numéro d’id 6 (ce numéro ne change pas)
la variable d’environnement id_rubrique transmet le numéro d’id de la rubrique à afficher (ce numéro varie donc)
http://127.0.0.1/pmb4perso/opac_css/index.php?lvl=cmspage&pageid=6&id_rubrique=3
Afficher le contenu d’une rubrique, c’est montrer le titre et le résumé, et aussi les sous-rubriques et/ou articles qui en dépendent.
Le cadre « Afficher une rubrique » contient dès lors deux fois la question « Construction du lien vers ? »
« Construction du lien vers une rubrique ? » - « Construction du lien vers un article ? »
Un clic sur une sous-rubrique vous mène vers la page qui affiche une rubrique (id_rubrique change bien sûr de valeur)
Un clic sur un article vous mène vers la page qui affiche un article
Vous pouvez cliquer sur n’importe quel article visible dans une liste ou un carrousel d’articles
(sauf les Brèves en page d’accueil : ce template Django est particulier, car il ne prévoit pas de lien vers une autre page)
Le cadre de la liste d’articles ou du carrousel d’articles contient la question « Construction du lien vers un article ? »
Et on a répondu « aller vers la page du portail qui affiche un article et une liste de notices »
C’est une page où on voit le contenu d’un article, quel que soit son numéro d’id, et quel que soit son type de contenu éditorial
Dans la démo, la page qui affiche un article a le numéro d’id 4 (ce numéro ne change pas)
la variable d’environnement id_article transmet le numéro d’id de l’article à afficher (ce numéro varie donc)
http://127.0.0.1/pmb4perso/opac_css/index.php?lvl=cmspage&pageid=4&id_article=9
Le template Django du cadre « Afficher un article » tient compte de la diversité des types de contenu éditorial
La page du portail qui affiche un article peut prendre des aspects différents.
Cela varie en fonction du type de contenu de l’article, et des autres cadres présents éventuellement dans cette page.
En effet, cette page ne contient pas uniquement le cadre « Afficher un article », il y en a deux autres.
Module Liste de notices « Etagère associée à un article » et « Notices dans les mêmes catégories qu’un article »
Type Coup de cœur
Ce type d’article est lié à une notice
champ personnalisé :
identifiant_notice
On voit 1 ou 2 cadres : l’article et (parfois) un carrousel de notices sur le même sujet.
Type Evénement à une date
Ce type d’article est lié à une date précise
champ personnalisé :
date
On voit 1 ou 2 cadres : l’article et (parfois) un carrousel de notices sur le même sujet.
Type Sélection
Ce type d’article est lié à une étagère
champ personnalisé :
etagere
.
On voit deux cadres : l’article et la liste des notices de cette étagère.
En théorie, on pourrait aussi voir le 3 e
cadre : le carrousel de notices sur le même sujet.
Ce sont les 5 types de contenu définis dans la démo.
Voir configuration préliminaire du
Type Information
Ce type d’article n’est lié à aucun champ
personnalisé.
On voit 1 ou 2 cadres : l’article et (parfois)
Type Evénement sur une période
Ce type d’article est lié à deux dates précises :
la date de début et la date de fin de l’activité champs personnalisés : date_debut, date_fin
On voit 1 ou 2 cadres : l’article et (parfois) un
un carrousel de notices sur le même sujet. carrousel de notices sur le même sujet.
Le nom complet « page qui affiche un article et une liste de notices » se justifie souvent, mais pas dans tous les cas.
En effet, on voit toujours un article, mais pas nécessairement le contenu d’une étagère ou un carrousel de notices.
La présence de l’étagère liée à une liste de notices n’est possible que si l’article est de type Sélection, si on a enregistré le numéro d’id d’une étagère (dans le champ personnalisé lié à ce type d’article) … et si l’étagère contient des notices !
Le carrousel de notices sur le même sujet peut apparaître de manière automatique, quel que soit le type de contenu de
l’article. Sa présence éventuelle dépend des catégories communes à l’article et à certaines notices de la base. Ce carrousel est donc créé de manière dynamique, sur base des liens entre le contenu éditorial et le contenu bibliographique.
Ne confondez pas ces variables !
Leurs noms sont similaires, et les questions de départ identiques : quelle notice ? ou quelle date ?
id_notice
et
id_date
sont 2
variables d’environnement
page qui affiche une notice ou page qui affiche une liste d’événements
identifiant_notice
et
date
sont 2
champs personnalisés
types de contenu des articles : Coup de cœur ou Evénement à une date
A.-M. Cubat PMB – Construction du portail – Concepts et exemples
Source : http://amcubat.be/docpmb/portail-construction-concepts-exemples
Page 179
Vous pouvez cliquer sur n’importe quelle notice visible dans un carrousel de notices.
Le cadre de ce carrousel contient la question « Construction du lien vers une notice ? »
Et on a répondu « aller vers la page du portail qui affiche une notice »
C’est une page où on voit le contenu d’une notice, quel que soit son numéro d’id
Dans la démo, la page du portail qui affiche une notice a le numéro d’id 7 (ce numéro ne change pas)
la variable d’environnement id_notice transmet le numéro d’id de la notice à afficher (ce numéro varie donc)
http://127.0.0.1/pmb4perso/opac_css/index.php?lvl=cmspage&pageid=7&id_notice=88
Dans la démo, le cadre « Afficher une notice » montre une version abrégée de la notice, et aucun champ lié aux exemplaires
C’est pourquoi on affiche (à la dernière ligne) le permalink afin de consulter la notice et les exemplaires dans l’OPAC
La démo propose parfois aussi d’aller directement vers la page de l’OPAC qui affiche une notice
La liste de notices (étagère associée) et l’article de type « Coup de cœur » suggèrent de voir le document dans le catalogue, et contiennent donc un lien (le permalink) vers la page de l’OPAC qui affiche une notice.
http://127.0.0.1/pmb4perso/opac_css/index.php?lvl=notice_display&id=88
Mais ce n’est pas un parcours obligatoire ! Ce que je viens d’expliquer ci-dessus, c’est le mode de fonctionnement dans la démo.
Dans votre portail, vous ne devez pas nécessairement faire les mêmes choix que dans la démo.
Ex. vous pouvez décider qu’un carrousel de notices mène directement vers la page de l’OPAC qui affiche une notice, sans transiter par la page du portail qui affiche une notice. Il suffit de modifier le paramétrage du carrousel de notices.
Vous pouvez cliquer sur n’importe quelle date visible dans l’agenda (en page d’accueil)
La page du portail qui affiche une liste d’événements est une page où on voit une série d’événements, quelle que soit la date choisie … mais à condition qu’il y ait des articles de type Evénement pour annoncer les activités !!
Attention ! On ne va pas nécessairement vers la page qui affiche une liste d’événements !
En effet, la date sélectionnée dans l’agenda peut être liée à zéro, une ou à plusieurs activités qui se déroulent précisément à la date choisie, ou qui s’étalent sur une période qui englobe la date choisie.
Le cadre « agenda » visible en page d’accueil contient dès lors deux fois la question « Construction du lien vers ? »
« Construction du lien vers un événement ? » - « Construction du lien vers plusieurs événements ? »
Si
aucun événement
n’est prévu pour cette date, rien ne se passe ! On reste dans la page où on voit le calendrier.
Si
un seul événement
est prévu pour cette date, on va directement
vers la page qui affiche l’article lié à cet événement
Dans la démo, la page qui affiche un article a le numéro d’id 4 (ce numéro ne change pas)
la variable d’environnement id_article transmet le numéro d’id de l’article à afficher (ce numéro varie donc)
http://127.0.0.1/pmbv4perso/opac_css/index.php?lvl=cmspage&pageid=4&id_article=1
Si plusieurs événements sont prévus pour cette date, on va vers la page qui affiche une liste d’événements
Le cadre Liste d’événements est créé à partir du module agenda.
Dans la démo, la page qui affiche une liste d’événements a le numéro d’id 9 (ce numéro ne change pas)
la variable d’environnement id_date transmet la date sélectionnée (cette date varie donc)
http://127.0.0.1/pmbv4perso/opac_css/index.php?lvl=cmspage&pageid=9&id_date=2013-01-09
Ensuite, si on clique sur le logo d’un événement, on ira vers la page qui affiche l’article adéquat
Les dates des événements ne sont pas le seul critère qui détermine l’affichage ou non de tel ou tel article de type Evénement !
Le statut de publication d’un article et ses dates de publication ont aussi un impact filtrant !
Voir configuration du contenu éditorial
Vous ne voyez donc pas tous les articles, seulement ceux dont le statut est « publié » et dont les dates de publication sont valides.
A.-M. Cubat PMB – Construction du portail – Concepts et exemples
Source : http://amcubat.be/docpmb/portail-construction-concepts-exemples
Page 180
Vous pouvez effectuer une recherche dans le contenu éditorial, si la barre de recherche a été configurée en ce sens
La question « Construction du lien vers ? » n’est pas posée dans le formulaire de création de ce cadre.
C’est dans l’interface d’administration que vous sélectionnez la page du portail qui affiche le résultat d’une recherche.
C’est une page où on voit la liste des articles qui répondent au critère de recherche.
Dans la démo, la page qui affiche le résultat d’une recherche dans les articles a le numéro d’id 11 (ce numéro ne change pas)
Il n’y aucune variable d’environnement liée à cette page
http://127.0.0.1/pmbv4perso/opac_css/index.php?lvl=cmspage&pageid=11
Si un ou plusieurs articles contiennent le(s) mot(s) recherché(s), on voit le titre et le résumé de cet article (ou de ces articles)
Un clic sur un de ces articles mène vers la page qui affiche un article.
Sinon, on voit le message « Pas de résultats » et on propose d’effectuer une recherche dans le catalogue.
Le mot recherché dans le contenu éditorial n’est pas le seul critère qui détermine l’affichage ou non de tel ou tel article !
Le statut de publication d’un article et ses dates de publication ont aussi un impact filtrant !
Voir configuration du contenu éditorial
Vous ne voyez donc pas tous les articles, seulement ceux dont le statut est « publié » et dont les dates de publication sont valides.
Vous pouvez effectuer une recherche dans le contenu bibliographique, si la barre de recherche a été configurée en ce sens
La question « Construction du lien vers ? » n’est pas posée dans le formulaire de création de ce cadre.
C’est dans l’interface d’administration que vous sélectionnez la page de l’OPAC qui affiche le résultat d’une recherche.
C’est une page où on voit la liste des notices qui répondent au critère de recherche.
La page qui affiche le résultat d’une recherche dans les notices correspond forcément à une adresse de type OPAC
http://127.0.0.1/pmbv4perso2/opac_css/index.php?lvl=more_results
Si une ou plusieurs notices contiennent le(s) mot(s) recherché(s), on voit la liste des notices, qu’on peut déplier si nécessaire.
Un clic sur le permalink d’une notice mène vers la page de l’OPAC qui affiche cette notice dans son intégralité.
Sinon, on propose de faire une suggestion d’achat, ou bien d’interroger des sources externes.
A.-M. Cubat PMB – Construction du portail – Concepts et exemples
Source : http://amcubat.be/docpmb/portail-construction-concepts-exemples
Page 181
Templates Django
Interface d’administration - Vues et templates
Exemple : module Liste d’articles – Vue : template Django avec lien - On a enregistré 4 modèles de template
Choix de la vue Choix du template Définition du template
Exemple : module Liste d’articles – Vue : carrousel - On a enregistré 1 modèle de template
Choix de la vue Choix du template Définition du template
Pour agrandir le cadre, amener le curseur dans le coin inférieur droit.
Une flèche bidirectionnelle apparaît.
La « vue » a un sens plus global que le template : c’est une manière générale d’afficher les données.
Pour chacune de ces vues, on peut prévoir un ou plusieurs templates, afin de diversifier la présentation.
Modules
D
ÉMO DU PORTAIL
L
ISTE DES MODULES
,
DES TEMPLATES
D
JANGO ET DES CADRES OÙ ILS SONT EMPLOYÉS
Templates Django Cadres où ces templates sont employés
Article
Notice
Rubrique
3 modules de base : un article - une notice - une rubrique
Affichage d’un article
Cadre principal de la page qui affiche un article
Affichage d’une notice
Cadre principal de la page qui affiche une notice
Affichage d’une rubrique
Cadre principal de la page qui affiche une rubrique
Vues Templates Django Cadres où ces templates sont employés
Templates Django avec lien
Module liste d’articles
Liste d’articles – Sélections – Nouveautés
Sélection de nouveautés (symbolisées par les étagères)
Liste de brèves
Liste d’articles – Résultat d’une recherche dans les articles
Liste d’articles – Recherche dans le catalogue
Actualités en page d’accueil
Cadre principal de la page qui affiche le résultat d’une recherche dans le contenu éditorial
Articles dans les mêmes catégories qu’une notice
Carrousel d’articles d’actualité
Carrousel
Vue Django
Vue en carrousel
Liste de notices
Module liste de notices
Notices d’une étagère associée à un article
Notices du même auteur qu’une notice
Notices du même auteur
Notices similaires
Notices sur la même étagère (cote de rangement proche)
Nouveautés en page d’accueil
Notices dans les mêmes catégories qu’un article
N.B. Ces 2 templates ne sont pas illustrés dans la démo.
Notices – Carrousel de nouveautés
Notices dans les mêmes catégories qu’un article
Liste d’événements
Module agenda
Affichage d’une liste d’événements à partir de l’agenda
Cadre principal de la page qui affiche une liste d’événements
Conclusion : à chaque cadre illustré dans la démo correspond au moins un template sauvegardé dans l’interface d’administration.
Comme vous pouvez le constater, tous les cadres et templates illustrés dans la démo ont été commentés dans ce manuel !
A.-M. Cubat PMB – Construction du portail – Concepts et exemples
Source : http://amcubat.be/docpmb/portail-construction-concepts-exemples
Page 182
L
ISTE DES INSTRUCTIONS ET FONCTIONS DES TEMPLATES
D
JANGO
Les instructions entre {% %}
Les boucles de répétition
Exemple {% for article in articles %} … {{article.title}} … {{article.resume}} … {{article.content}} … {% endfor %}
Liste d’articles (template Django avec lien)
{% for article in articles %}
Article du contenu éditorial
{% for record in records %}
Liste de notices (vue Django ou carrousel)
Carrousel de notices
Carrousel d’articles
Carrousel de rubriques
Liste de rubriques (template Django avec lien)
Liste des sous-rubriques d’une rubrique parente
Agenda (vue d’une liste d’événements)
Liste d’étagères
Liste de bannettes
Pour toutes les listes de notices
Pour tous les carrousels
{% for section in sections %}
{% for child in children %}
{% for event in events %}
{% for shelve in shelves %}
A record = enregistrement
Suivant le cas, record =
une notice, un article ou une rubrique
Section = rubrique du contenu éditorial
Dans ce contexte, a child = une sous-rubrique
An event = un événement
A shelf (pluriel shelves) = une étagère
{% for bannette in bannettes %}
Les bannettes de la DSI
Contexte : un article est lié à une étagère.
On affiche l’article, et en-dessous, la liste des notices contenues dans cette étagère
N.B. J’ai abrégé le contenu du template, j’ai gardé les instructions essentielles pour comprendre le sens de la condition.
Les conditions : 2 exemples concrets
{% if records %}
<h3>Toutes les nouveautés</h3>
{% endif %}
{% for record in records %}
{{record.content}}
{% endfor %}
S’il y a des enregistrements (= notices) à afficher
On affiche le titre « Toutes les nouveautés »
Fin de la condition
Boucle qui va de la 1 e
à la dernière notice
On affiche le contenu de la notice
Fin de la boucle
La condition {% if records %} {% endif %} est nécessaire dans cet exemple
Inutile d’afficher le titre « Toutes les nouveautés » s’il n’y a pas d’étagère associée à l’article ou si elle est vide !
Contexte : page résultat de recherche
On cherche un mot dans les articles. Si on le trouve, on affiche la liste des articles concernés.
N.B. J’ai abrégé le contenu du template, j’ai gardé les instructions essentielles pour comprendre le sens de la condition.
{% if articles %}
{% for article in articles %}
….
{% endfor %}
{% else %}
Pas de résultats
{% endif %}
S’il y a des articles à afficher
Boucle qui va du 1 er
au dernier article
On affiche la version abrégée (titre + résumé)
Fin de la boucle
Sinon
On affiche le message « Pas de résultats »
Fin de la condition
La condition {% if articles %} {% else %} {% endif %} est nécessaire dans cet exemple
On a une boucle qui va du 1 er
au dernier article seulement si on a trouvé le mot quelque part dans le contenu éditorial !
Et en toute logique, le message « Pas de résultats » n’a de sens que dans le cas d’une recherche infructueuse !
Condition « simple » : si … alors …
On n’envisage qu’un seul cas :
si la condition est vérifiée
Il n’y a rien à faire dans le cas contraire
{% if true %} Si la condition est vérifiée
Instruction à exécuter
{% endif %} Fin de la condition
Les conditions : synthèse schématique
Condition « si … alors … sinon … »
On peut imbriquer 2 conditions l’une dans l’autre
On envisage les 2 termes de l’alternative :
si la condition est vérifiée
si elle ne l’est pas
{% if true %} Si la condition est vérifiée
Instruction n° 1
{% else %} Sinon
Instruction n° 2
{% endif %} Fin de la condition
{% if true %} Si la condition n° 1 est vérifiée
Instruction n° 1
{% if true %} Si la condition n° 2 est vérifiée
Instruction n° 2
{% else %} Sinon
Instruction n° 3
{% endif %}
Fin de la condition n° 2
{% endif %} Fin de la condition n° 1
On symbolise en général une condition Django de cette manière :
(% if true %} si c’est vrai, si la condition est vérifiée
On peut effectuer les tests classiques de comparaison
if {{variable1}} == {{variable2}} if {{variable1}} < {{variable2}} if {{variable1}} != {{variable2}} if {{variable1}} <= {{variable2}}
Par convention == signifie “égal à" (double signe =) if {{variable1}} > {{variable2}} if {{variable1}} >= {{variable2}}
Par convention != signifie “différent de"
On peut employer les opérateurs booléens habituels : and or not
if {{variable2}} >= {{variable1}} and {{variable2}} <= {{variable3}}
Infos complémentaires : https://docs.djangoproject.com/en/1.8/ref/templates/builtins/
A.-M. Cubat PMB – Construction du portail – Concepts et exemples
Source : http://amcubat.be/docpmb/portail-construction-concepts-exemples
Page 183
Une fonction supplémentaire : limitstring
PMB a ajouté une fonction aux templates Django de base, la fonction limitstring
{{record.title | limitstring,45,"..." }}
Attention à la syntaxe ! Le tout doit être entre {{ }}
Il faut une barre verticale | entre la variable et limitstring
La fonction limitstring permet de limiter la longueur d’une chaîne de caractères. Exemple {{record.title | limitstring,45,"..." }}
Cela signifie que la longueur du texte à afficher (le titre de la notice, record.title) sera limitée à 45 caractères, et que les caractères manquants seront remplacés par le texte entre guillemets (les 3 petits points).
Le découpage se fait à l’aveugle, et le résultat final est plus ou moins heureux suivant le cas = suivant le texte à afficher !
Si vous avez une série de titres assez longs dans un carrousel de notices, cette fonction est fort utile.
Bien entendu, son rôle n’est pas limité aux carrousels, elle peut aussi servir en d’autres circonstances.
V
ARIABLES UTILISABLES DANS LES TEMPLATES DU PORTAIL
Les noms des variables entre {{ }}
Les variables utilisables dans les templates ont un lien avec les champs de la base de données ou avec le contenu éditorial
Le sens de certaines variables comme {{article}} ou {{section}} est évident.
Mais …
Tous les carrousels (notices, articles, rubriques) emploient la boucle {% for record in records %}
Toutes les listes de notices (vue Django ou carrousel) emploie la boucle {% for record in records %}
La variable {{record}} a donc plusieurs significations : elle peut désigner une notice, un article ou une rubrique.
{{title}}
{{article.title}}
{{section.title}}
{{record.title}}
{{event.title}}
Le titre de l’article
Le titre de la rubrique
Le titre de l’enregistrement
Suivant le cas, titre de la notice, de l’article ou de la rubrique
Le titre de l’événement (Le terme événement a un sens global dans ce contexte : article qui décrit une activité à une date ou sur une période)
{{resume}}
{{article.resume}}
{{section.resume}}
{{record.resume}}
{{event.resume}}
Le « résumé » de l’article = le chapeau de l’article
Le « résumé » de la rubrique
Le « résumé » de l’enregistrement
Suivant le cas,
résumé de la notice, chapeau de l’article ou résumé de la rubrique
Le « résumé » de l’événement = le chapeau de l’article
{{content}}
{{article.content}}
{{record.content}}
{{event.content}}
Le contenu de l’article = le texte même de l’article
Le contenu de l’enregistrement - Suivant le cas
le contenu de la notice = tous les champs
le contenu de l’article = le texte même de l’article
N.B. Rappel : une rubrique n’a pas de champ « contenu »
Le contenu de l’événement = le texte même de l’article
{{link}}
{{article.link}}
{{section.link}}
{{record.link}}
{{event.link}}
Le lien = URL de l’article
Le lien = URL de la rubrique
Le lien = URL de l’enregistrement
Suivant le cas, URL de la notice, de l’article ou de la rubrique
Le lien = URL de l’événement
{{vign}}
{{article.vign}}
{{section.vign}}
{{record.vign}}
{{event.vign}}
La vignette de l’article
La vignette de la rubrique
La vignette de l’enregistrement
Suivant le cas, la vignette de la notice, de l’article ou de la rubrique
La vignette de l’événement
Exemples de champs personnalisés, qui correspondent aux types de contenu définis pour les articles
N.B. Le nom d’une variable associée à un champ personnalisé contient toujours ceci : {{fields_type}}
{{fields_type.date.values.0.format_value}}
{{fields_type.date_debut.values.0.format_value}}
Evénement à une date précise
Evénement sur une période : date de début
{{fields_type.date_fin.values.0.format_value}}
{{fields_type.etagere.values.0.value}}
{{fields_type.identifiant_notice.values.0.value}}
{{fields_type.url.values.0.value}}
{{fields_type.nouvel_onglet.values.0.value}}
Evénement sur une période : date de fin
Sélection : identifiant de l’étagère associée à un article
Coup de cœur : identifiant de la notice associée à un article
Lien : URL de la page à ouvrir
Ouvrir une page dans un autre onglet du navigateur ?
A.-M. Cubat PMB – Construction du portail – Concepts et exemples
Source : http://amcubat.be/docpmb/portail-construction-concepts-exemples
Page 184
Balises HTML
Presque toutes les balises HTML vont deux par deux : il y a une balise ouvrante et une balise fermante, ex. <h2> et </h2>
N.B. HTML = HyperText Markup Language
La balise la plus importante : <a href=" … "> … </a>
Elle permet de créer des liens URL et comprend 2 éléments :
l’URL de destination : la page vers laquelle on ira
la source, le point de départ : les éléments sur lesquels on clique (texte et/ou image)
L’URL de destination peut être exprimée sous la forme d’une adresse absolue ou d’une adresse relative
Exemple : la page de l’OPAC qui affiche une notice dont le numéro d’id est 88
Adresse absolue de cette page :
http://127.0.0.1/pmbv4perso/opac_css/index.php?lvl=notice_display&id=88
Adresse relative de cette page – relative par rapport au répertoire /pmb/opac_css/ :
http://./index.php?lvl=notice_display&id=88
Comment rendre un texte cliquable en HTML ?
<a href="… : URL de destination
Texte entre <a> et </a> : source, d’où on part : on clique sur le texte
<a href="http://amcubat.be/docpmb">Site de Anne-Marie Cubat</a>
Comment rendre une image cliquable en HTML ?
<a href="… : URL de destination <img src="… : source, d’où on part : on clique sur l’image
<a href="http://www.sigb.net"><img src="http://127.0.0.1/pmb/opac_css/images/site/pmb.png" alt="PMB" /></a>
N.B. Pour les balises alt=" " et title=" ", employez des guillemets, mais pas l’apostrophe. alt=" " : texte alternatif à afficher si l’image n’est pas disponible title=" " : infobulle - texte à afficher au survol de la souris sur l’image
L’apostrophe posera problème dès que le texte (dans le alt ou le title) contient des apostrophes.
Modifiez donc quelques templates Django si nécessaire. En effet, certains d’entre eux créent le contenu des balises alt ou title avec le titre d’une notice, or ces titres peuvent contenir des apostrophes, donc ils seraient tronqués dès la 1 e
apostrophe.
L’Avare de Molière se réduirait ainsi à la seule lettre “L” !!
Exemples corrects :
alt="{{record.title}}" ou title="{{record.title}}"
Comment rendre le texte et l’image cliquables en une seule balise HTML ? On combine le tout !
<a href="http://www.sigb.net"><img src="http://127.0.0.1/pmb/opac_css/images/site/pmb.png" alt="PMB" />Site de PMB</a>
<a href="http://www.sigb.net"><img src="http://. /images/site/pmb.png" alt="PMB" />Site de PMB</a>
C’est d’ailleurs ce qui se passe dans beaucoup de templates : une seule balise <a href=" pour le texte et l’image
<a href="{{article.link}}"><img style="width:90px;" src='{{article.logo.large}}'/><h4>{{article.title}}</h4></a>
Des variables comme {{article.link}} ou {{record.link}} désignent l’URL de destination, leur contenu est créé de manière dynamique.
Exemples de contenu pour un lien vers la page qui affiche une notice (dans sa version portail et dans sa version OPAC classique)
Lien vers la page du portail : http://127.0.0.1/pmb4perso/opac_css/index.php?lvl=cmspage&pageid=7&id_notice=110
Lien vers la page de l’OPAC : http://127.0.0.1/pmbv4perso/opac_css/index.php?lvl=notice_display&id=110
Comment rendre un texte cliquable et ouvrir l’URL de destination dans un autre onglet du navigateur ?
<a href="… : URL de destination
Texte entre <a> et </a> : source, d’où on part : on clique sur le texte
Dans la partie qui contient l’URL de destination, ajouter l’instruction target="_blank"
<a href="http://amcubat.be/docpmb">Site de Anne-Marie Cubat</a> devient
<a href="http://amcubat.be/docpmb" target="_blank">Site de Anne-Marie Cubat</a>
Comment rendre une image cliquable et ouvrir l’URL de destination dans un autre onglet du navigateur ?
<a href="… : URL de destination
<img src="… : source, d’où on part : on clique sur l’image
Dans la partie qui contient l’URL de destination, ajouter l’instruction target="_blank"
<a href="http://www.sigb.net"><img src=" http://127.0.0.1/pmb/opac_css/images/site/pmb.png" alt="PMB" /></a> devient
<a href="http://www.sigb.net" target="_blank"><img src=" http://127.0.0.1/pmb/opac_css/images/site/pmb.png" alt="PMB" /></a>
A.-M. Cubat PMB – Construction du portail – Concepts et exemples
Source : http://amcubat.be/docpmb/portail-construction-concepts-exemples
Page 185
Balises « simples » = qui n’ont pas de balise fermante
Image
Quelques balises HTML employées fréquemment dans les templates de notices ou les templates Django
Mise en forme du texte
La balise <br /> provoque un saut de ligne (br = break)
La balise <hr> trace une ligne horizontale (hr = horizontal rule)
Les balises <h2> </h2> (<h3> <h4>) reflètent la hiérarchie titre / sous-titres et déterminent la taille des caractères
Les balises <div style=" … > et </div> marquent le début et la fin d’un « bloc de texte » à mettre en forme.
L’affichage du texte situé entre ces 2 balises peut être personnalisé : marges, alignement, police de caractères …
La balise <blockquote> détermine un mode d’affichage (bloc de citation)
Les balises <p> et </p> marquent le début et la fin d’un paragraphe
La balise <img> signifie image.
<img … src=’ …’> signifie la source de l’image = l’URL de l’image (img src = image source).
<img style="… " src='…' />
Liste non ordonnée (liste à puces)
<ul>
<li> …. </li>
<li> …. </li>
</ul>
La partie style="… " permet de définir le mode d’affichage (ex. hauteur et largeur limitées à 120px – centré)
<img style="max-width:120px;max-height:120px;text-align:center;" src='{{record.vign}}' />
Les balises <ul> et </ul> marquent le début et la fin d’une liste non ordonnée = non numérotée (ul = unordered list)
Une liste non ordonnée peut prendre la forme d’une liste à puces, mais cela peut aussi signifier tout simplement une liste d’éléments non numérotés, ou une liste d’éléments qui figurent dans un carrousel.
N.B. Les balises <ol> et </ol> marquent le début et la fin d’une liste numérotée (ol = ordered list = liste ordonnée)
Les balises <li> et </li> marquent le début et la fin de chaque élément de la liste (non) ordonnée (li = list)
Les tableaux en HTML– Cet exemple est extrait du template de notices appelé « Portail – Liste de notices »
Notices d’une étagère associée à un article
Les balises <table> et </table> marquent le début et la fin d’un tableau.
On ne le croirait pas à première vue, mais cette notice est
Les balises <tbody> et </tbody> marquent le début et la fin de la définition du tableau.
Les balises <tr> et </tr> marquent le début et la fin de chaque ligne.
affichée dans un tableau dont les bordures sont invisibles !
Je trace ces bordures pour clarifier les choses ;-)
Les balises <td> et </td> marquent le début et la fin de chaque cellule.
En résumé
<table>
<tbody>
<tr> Début de l’unique ligne de ce tableau
<td> 1 e
cellule : la vignette </td>
<td> 2 e
cellule : titre, auteur et résumé de la notice </td>
</tr> Fin de la ligne
</tbody>
</table>
Ce tableau comprend donc
une seule ligne : l’ensemble des infos sur la notice
<tr> = table row (ligne, rangée)
2 cellules par ligne
<td> = table division (une cellule, dans ce contexte)
à gauche : la vignette
à droite : titre, auteur et résumé de la notice
A.-M. Cubat PMB – Construction du portail – Concepts et exemples
Source : http://amcubat.be/docpmb/portail-construction-concepts-exemples
Page 186
Requêtes SQL utiles
J’ai repris ici la liste complète des requêtes et beaucoup de captures d’écran, mais pas toutes les explications !
En effet, ces procédures et les concepts qui y sont liés ont déjà fait l’objet de commentaires détaillés ailleurs :
Voir surtout
Si vous avez restauré le jeu de sauvegarde cms_min (configuration du contenu éditorial), la plupart de ces requêtes sont
immédiatement prêtes à l’emploi, bien que certaines fassent appel aux champs personnalisés qu’on a pu créer.
Tout d’abord, un petit mot sur l’origine de ces requêtes
Toutes ces requêtes sont « de mon cru », mais je tiens quand même à remercier PMB Services, qui a fourni un point de départ utile, surtout un « petit bloc d’instructions » que j’ai pu insérer dans mes procédures.
Au terme de la formation initiale, nous avons en effet reçu de Camille Bénard une série de 8 requêtes liées au portail. Je les ai regardées attentivement, et j’y ai trouvé des idées intéressantes, surtout quelques lignes qui permettent d’afficher une partie de l’arbre du contenu
éditorial, afin de situer exactement chaque article (voir ci-dessous). J’ai donc intégré ce bloc d’instructions dans mes procédures.
On a une meilleure vue de l’arborescence si on sait par exemple qu’un article est dans
Rubrique Titre de l'article
Menu principal > Sélections > Coups de cœur Des bibliothèques pleines de fantômes
Menu principal > Sélections > Coups de cœur
C’est moins clair si on sait seulement qu’un article est dans la rubrique Coups de cœur.
C’est donc ce bloc-là d’instructions que j’ai repris des requêtes que nous avons reçues.
Menu principal > Sélections > Coups de cœur Georges : petit-petit-petit magazine
Menu principal > Sélections > Coups de cœur Poisson rouge
Menu principal > Animations > Evénements
Menu principal > Animations > Evénements
Cultures d'Afrique noire contemporaine
Projections : journée Tim Burton
Menu principal > Animations > Heure du conte Lisez 5 fruits et légumes par jour !
Les requêtes SQL spécifiques au portail sont disponibles sur mon site, il y a un zip à télécharger à cette adresse :
http://amcubat.be/docpmb/portail-construction-concepts-exemples
N.B. Lorsqu’on décompresse le zip, cela crée automatiquement des dossiers dans lesquels les requêtes sont réparties.
Voici la liste des requêtes de chaque répertoire, et des copies d’écran pour illustrer les plus importantes.
Les requêtes qui figurent dans les deux premiers groupes (Utilitaires – Gestion de la base et Requêtes générales du portail) sont tout
à fait standards, et fonctionnent dans toutes les bases. Aucune adaptation n’est nécessaire.
Utilitaires – Gestion de la base en général
Etagères - Liste avec les autorisations accordées
Etagères - Liste des étagères et des paniers qui y sont associés - Avec les numéros d'id
Paniers (Catalogue : bulletins, exemplaires et notices) - Liste avec les autorisations accordées
Paniers – Contenu d’un panier de notices (monographies, périodiques, articles ou notices de bulletins)
Paramètres - Liste complète : type, nom, valeur, commentaire et section
Utilisateurs - Liste : login, nom, prénom et n° d'id
5
6
1
4
Exemple de liste des utilisateurs – avec le numéro d’id
N° id Login Nom Prénom admin
Eric
Super User
Eric
Florent
Camille
Florent
Camille
A.-M. Cubat PMB – Construction du portail – Concepts et exemples
Source : http://amcubat.be/docpmb/portail-construction-concepts-exemples
Page 187
Exemple de liste de paniers – Avec le numéro d’id et le nombre de notices par panier
Type de panier Id Nom du panier
Bulletins 6 Exemple de panier de bulletins
Exemplaires
Notices
Notices
Notices
8 Exemple de panier d'exemplaires
11 Exemple de panier de notices
12 Nouveautés en page d'accueil
13 Nouveautés fiction adultes
Notices
Notices
Notices
Notices
Notices
14 Nouveautés fiction jeunesse
15 Nouveautés documentaires
16 Nouveautés CD
17 Nouveautés DVD
18 Nouveautés périodiques
Nombre Commentaire Utilisateurs
0 1
0
0
13
9
1 4 3 2
1
1
1
13
20
5
5
13
1
1
1
1
1
Exemple de contenu de 2 paniers de notices - avec indication du type de notice
Exemple de liste d’étagères – Avec le paramétrage pour l’OPAC
Id Nom de l'étagère Commentaire OPAC ? Validité De ... à ... Utilisateurs
3 Nouveautés
4 Nouveautés fiction adultes
Invisible
Invisible
Permanente
Permanente
1
1
5 Nouveautés fiction jeunesse
10 Test – Nouveautés - Fiction
Invisible Permanente
Invisible Permanente
1
1
Exemple de liste d’étagères - Avec le numéro d’id et le nombre de notices par panier associé
Id Nom de l'étagère Id Nom du panier Nombre
3 Nouveautés
4 Nouveautés fiction adultes
12 Nouveautés en page d'accueil
13 Nouveautés fiction adultes
13
9
5 Nouveautés fiction jeunesse
6 Nouveautés documentaires
7 Nouveautés CD
8 Nouveautés DVD
9 Nouveautés périodiques
10 Test - Nouveautés - Fiction
14 Nouveautés fiction jeunesse
15 Nouveautés documentaires
16 Nouveautés CD
17 Nouveautés DVD
18 Nouveautés périodiques
13 Nouveautés fiction adultes
13
9
13
20
5
5
10 Test - Nouveautés - Fiction 14 Nouveautés fiction jeunesse 13
Exemple de résultat obtenu dans un PMB standard grâce à la requête : contenu de la table des paramètres
Paramètres - Liste complète : type, nom, valeur, commentaire et section Tri par type de paramètre, ensuite par nom du paramètre
N° id Type Nom Valeur Commentaire
741 Cms Active
758 Cms cache_ttl
797 Cms url_base_cms_build
106 Opac biblio_adr1
107 Opac biblio_town
0 Module 'Portail' activé. 0 : Non. 1 : Oui.
1800 durée de vie du cache des cadres du portail (en secondes) url de construction du CMS de l'OPAC
Section
ZI de Mont/Loir BP 10023 Adresse 1 de la bibliothèque ou du centre de ressources dans l'opac b_aff_general
CHATEAU DU LOIR Ville dans l'opac b_aff_general
A.-M. Cubat PMB – Construction du portail – Concepts et exemples
Source : http://amcubat.be/docpmb/portail-construction-concepts-exemples
Page 188
Portail – Requêtes générales
Articles - Liste complète - Aucun champ personnalisé
Champs personnalisés du portail - Liste avec les numéros d'id
Pages - Liste de toutes les pages avec les numéros d'id
Pages - Liste des pages qui ont une variable globale - Aves les numéros d'id de la page et de la variable
Rubriques - Liste complète - Aucun champ personnalisé
Types de contenu éditorial - Liste des types avec les numéros d'id
Liste des pages du portail
Liste des variables d’environnement et des pages correspondantes
Les valeurs affichées (numéros d’id et noms des variables) correspondent à la démo du portail.
Tableau de bord : vue d’ensemble des articles, classés par rubrique – N.B. Liste abrégée, je ne montre que 9 articles sur 21 !
Rappel : l’actualité est éternelle dans une démo, les articles n’ont donc pas de dates de parution et tous ont le statut « publié ».
J’ai donc dû inventer des dates de publication, et changer certains statuts de publication, pour diversifier les exemples.
Au départ, les données sont triées sur base de l’arbre du contenu éditorial, donc regroupées par rubrique.
Transférez le résultat vers le tableur, et supprimez d’abord la 1 e
ligne (celle qui contient le nom de la procédure) avant de trier.
Dans un tableur, il est très facile de trier les données dans l’ordre qui vous convient, par exemple par statut de publication.
On peut aussi trier les données par type de contenu.
Le tri par type de contenu permet de vérifier si les dates de parution sont cohérentes. On voit ici des anomalies pour les Coups de cœur.
En théorie, ce type de contenu a une durée de vie limitée, or les dates de début et/ou de fin de publication manquent pour 2 articles.
La situation est normale pour les Evénements (dates mentionnées) et les Informations (il n’y a aucune date car la publication est permanente)
On peut aussi trier les données par numéro identifiant (du plus grand au plus petit), afin de voir d’abord les articles les plus récents.
A.-M. Cubat PMB – Construction du portail – Concepts et exemples
Source : http://amcubat.be/docpmb/portail-construction-concepts-exemples
Page 189
Tableau de bord : vue d’ensemble des rubriques
Outils - Liste des champs personnalisés – enregistrés dans la table cms_editorial_custom – triés par numéro d’id
N.B. Ce sont les valeurs dans ma base de travail ; selon toute probabilité, certaines seront différentes dans votre base.
Toutefois, si vous avez restauré le jeu de sauvegarde cms_min, les 5 premiers champs sont identiques (ce sont les valeurs de la démo).
Pour les types de contenu, la signification de 2 libellés (« CP pour … ») pourrait intriguer de prime abord.
CP = champ personnalisé
CP pour Article = champ générique pour article
commun à tous les articles
CP pour Rubrique = champ générique pour rubrique
commun à toutes les rubriques
L’explication se trouve dans la table qui définit ces types de
contenu : cms_editorial_types
Sélection d’articles selon les types de contenu standards
Articles - Type de contenu : Coups de cœur - Titre abrégé de la notice (25 caractères) et numéro d'id
Articles - Type de contenu : Evénement à une date précise - Date de l'activité
Articles - Type de contenu : Evénement sur une période - Dates de début et de fin
Articles - Type de contenu : Information
Articles - Type de contenu : Sélection de notices - Nom de l'étagère associée et numéro d'id
Articles - Type de contenu : Vérification - Attention ! Le type de contenu n'est pas défini
Si vous avez restauré le jeu de sauvegarde cms_min (configuration du contenu éditorial), vous avez des types de contenu standards, et les 5 premiers éléments de la liste des champs personnalisés sont également standards.
Dans ce cas, ces requêtes sont immédiatement prêtes à l’emploi ! Sinon, il faudrait adapter les procédures.
Mêmes types de contenu 5 champs personnalisés identiques : numéro d’id, nom SQL, type de saisie et de type de données
Il s’agit seulement des 5 premiers champs de la liste.
A.-M. Cubat PMB – Construction du portail – Concepts et exemples
Source : http://amcubat.be/docpmb/portail-construction-concepts-exemples
Page 190
Ces requêtes sélectionnent les articles selon les types de contenu standards, et permettent des vérifications bien utiles.
Pour un article de type « coup de cœur », on voit l’identifiant de la notice, et son titre abrégé (25 caractères).
Pour un article de type « sélection », on voit l’identifiant et le nom de l’étagère associée à cet article.
Pour un article de type « événement », on voit la date de l’activité, ou bien les dates de début et de fin.
Une autre requête permet de repérer la présence éventuelle d’un article dont le type de contenu n’aurait pas été défini.
Coups de cœur
Id de la notice ?
Annales ? Ou
La 8 e
couleur ?
Après vérification, on voit que le n° d’id de la notice est correct : « La 8e couleur » est un des titres de la série « Les Annales ».
Sélection
Etagère associée
à l’article
Evénement sur
une période
Dates ?
Evénement à une date précise
Date ?
Vérification
Article sans type de contenu !!!
Ces requêtes servent aussi à la fin du processus, quand on prépare la mise en ligne du portail, par exemple pour vérifier les n° d’id des notices ou des étagères (ces numéros ne sont probablement pas tous les mêmes dans la base de test et dans la base en production).
Sélection d’articles selon un champ personnalisé supplémentaire
Articles - Sélection : seulement les articles dont le rédacteur est connu - sur base d'une liste de choix préétablie
Articles - Sélection : seulement les articles dont le rédacteur est connu - sur base des logins de la table users
Articles - Sélection : seulement les articles qui ont un commentaire de gestion
Articles - Sélection : seulement les articles qui ont une date de mise à jour
Les procédures de cette série-ci sont « spécifiques », elles sont liées à des champs personnalisés supplémentaires dont les numéros
d’id peuvent différer d’une base à l’autre
(commentaire de gestion, date de la dernière mise à jour, nom du rédacteur).
Toutefois, si vous avez défini les champs personnalisés comme je l’ai fait (même type de saisie et même type de contenu), et si vous leur avez donné le même nom SQL (ex. nouvel_onglet), il n’y a aucun changement à faire ;-)
Sélection : liste partielle des articles – seulement s’il y a une date de mise à jour
Sélection : liste partielle des articles – seulement si le rédacteur est connu (liste préétablie de choix)
Sélection : liste partielle des articles – seulement si le rédacteur est connu (liste à partir d’une requête – contenu de la tables users)
Sélection : liste partielle des articles – seulement s’il y a des commentaires de gestion
A.-M. Cubat PMB – Construction du portail – Concepts et exemples
Source : http://amcubat.be/docpmb/portail-construction-concepts-exemples
Page 191
Les requêtes qui figurent dans le groupe (Portail - Utilitaires de gestion) sont tout à fait standards, et fonctionnent dans toutes les bases. Aucune adaptation n’est nécessaire.
Portail - Utilitaires de gestion
Liste des versions du CMS – avec leur numéro identifiant
Supprimer une ou plusieurs versions du CMS antérieure(s) à la version sélectionnée –
A exécuter dans l’onglet Administration
Vider le cache du portail (source : PMB Services) –
A exécuter dans l’onglet Administration
Requête SQL –Liste des versions du CMS (avec leur numéro identifiant)
Ceci n’est pas une requête d’action ; elle affiche simplement la liste des versions enregistrées (avec leur numéro identifiant).
Cette requête permet de consulter cette liste à l’aise, avant de lancer la procédure qui supprime plusieurs versions du CMS.
Requête SQL - Supprimer une ou plusieurs versions du CMS antérieure(s) à la version sélectionnée
Au fil du temps, le nombre de versions du CMS augmente dans la table cms_version, et il devient utile de lancer un « grand nettoyage de printemps ». C’est particulièrement le cas pour la démo du portail, où le nombre de versions du CMS est fort élevé.
La requête de suppression fonctionne selon le principe suivant
on sélectionne une version du CMS
la requête supprime la (les) version(s) du CMS antérieure(s) à la version choisie
elle conserve la version sélectionnée et les versions postérieures
Cette requête est surtout conçue pour lancer « un nettoyage par le vide » dans des versions anciennes du portail, mais
soyez prudent dès qu’il s’agit de supprimer des versions relativement récentes !!
Pour que le portail fonctionne, il vous faut « la bonne version » du CMS : celle qui est active pour le moment (celle dont on voit le numéro dans les informations de l’OPAC).
Or, c’est en général la version la plus récente qui est active (sauf si vous venez de restaurer une version antérieure).
Si on veut vérifier à l’aise, avant de lancer la suppression, et savoir à quelle version du CMS un numéro d’id correspond, il suffit d’employer une autre procédure qui donne la liste des versions du CMS, et leur numéro identifiant.
En effet, la liste des versions du CMS fournie par PMB mentionne la date et l’heure de sauvegarde, mais pas le numéro d’id de la version.
Attention donc, ne lancez pas cette procédure de manière inconsidérée ! Vérifiez d’abord !!
En rédigeant cette requête, j’ai veillé à ce qu’il soit techniquement impossible de supprimer la dernière version en date, puisque cette suppression déclencherait probablement de sérieux dysfonctionnements (selon toute vraisemblance, c’est celle qui est active).
Assurez-vous que la version du CMS qui est active pour le moment ne fasse pas partie de celles que la requête pourrait supprimer.
Ne soyez pas surpris par le nombre de lignes affectées par la requête, il est largement supérieur au nombre de versions supprimées.
En effet, à chaque ligne de la table cms_version correspondent plusieurs lignes dans la table cms_build (une ligne par cadre).
Or, la requête supprime les traces d’une version dans les deux tables concernées.
Exemple concret : s’il y a 20 cadres dans le portail, dès qu’on enregistre une version du portail, on aura
une ligne supplémentaire dans cms_version : les « références » de cette version (numéro d’id, date et heure de sauvegarde)
20 lignes supplémentaires dans la table cms_build : une ligne par cadre qui fait partie de cette version-là
Donc si on supprime 3 versions du portail, on supprimera 63 lignes au total !
Dans cet exemple, j’ai demandé la suppression des 3 versions antérieures
à la version 177, donc la requête va supprimer 3 lignes dans la table cms_version, mais 138 lignes dans cms_build : 141 au total.
A.-M. Cubat PMB – Construction du portail – Concepts et exemples
Source : http://amcubat.be/docpmb/portail-construction-concepts-exemples
Page 192
Requête SQL – Vide le cache du portail (source : PMB services)
C’est dans la table cms_cache_cadres que certains cadres sont mis en cache, afin de ne pas devoir être rechargés lors du prochain affichage.
Si vous avez effectué des changements relativement importants dans le portail, si vous avez ajouté ou modifié des articles, il est parfois utile que les lecteurs soient prévenus le plus tôt possible.
Mais si la durée de vie de votre cache est d’une heure ou deux, les lecteurs ne verront pas tout de suite l’impact de ces changements.
Dans ce genre de circonstances, il vaut mieux vider le cache « manuellement ». C’est le rôle de cette requête.
Les requêtes SQL spécifiques au portail sont disponibles sur mon site, il y a un zip à télécharger à cette adresse :
http://amcubat.be/docpmb/portail-construction-concepts-exemples
Lorsqu’on décompresse le zip, cela crée automatiquement des dossiers dans lesquels les requêtes sont réparties.
Pour savoir comment les télécharger et les importer dans PMB
http://amcubat.be/docpmb/telecharger-requetes-sql http://amcubat.be/docpmb/importer-requetes-sql
N.B. Il faut importer toutes ces requêtes liées au portail dans l’onglet Administration.
Presque toutes les procédures peuvent être exécutées dans les onglets Administration ou Editions, sauf les 2 dernières que j’ai citées.
Il y a aussi sur mon site un ensemble de requêtes « générales » que vous pouvez télécharger, et importer dans PMB.
Vous trouverez ici 3 zips : http://amcubat.be/docpmb/requetes-sql/telecharger-et-importer
Lorsqu’on décompresse le zip, cela crée automatiquement des dossiers dans lesquels les requêtes sont réparties.
Il y a 3 zips car les requêtes sont groupées en fonction de l'onglet de PMB dans lequel il faut les importer :
administration, catalogue et circulation.
Pour savoir comment les télécharger et les importer dans PMB
http://amcubat.be/docpmb/telecharger-requetes-sql http://amcubat.be/docpmb/importer-requetes-sql
Pour consulter la liste complète de cet ensemble de requêtes
http://amcubat.be/docpmb/wp-content/uploads//pmb-liste-requetes-sql.pdf
Pour savoir à quoi ces requêtes peuvent servir, suivre les liens suivants et parcourir les diverses rubriques
http://amcubat.be/docpmb/requetes-sql/sommaire-requetes-circulation http://amcubat.be/docpmb/requetes-sql/sommaire-requetes-catalogue http://amcubat.be/docpmb/requetes-sql/sommaire-requetes-administration

Lien public mis à jour
Le lien public vers votre chat a été mis à jour.
Caractéristiques clés
- Transformation de l'OPAC en un portail documentaire
- Gestion de l'interface graphique et du contenu (CMS)
- Utilisation dynamique de modules (carrousel, agenda, étagères virtuelles)
- Création de liens entre contenu éditorial et bibliographique
- Rédaction d'articles et gestion de rubriques