« WATERBEAR:Collections » : différence entre les versions

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
 
(4 versions intermédiaires par le même utilisateur non affichées)
Ligne 22 : Ligne 22 :
De prime abord cela semble simple; il suffit pour tout noeud "type_obj" de mettre comme valeur "biblio" et non "collection". Mais le problème survient quand on veut utiliser les menus contextuels dans la gestion d'autres objets qui pointent vers les collections ou quand à partir des écrans de la recherche dans les collections, on veut les éditer (cataloguer). Dans ces cas, on est renvoyé d'office vers les écrans de l'objet "biblio".  
De prime abord cela semble simple; il suffit pour tout noeud "type_obj" de mettre comme valeur "biblio" et non "collection". Mais le problème survient quand on veut utiliser les menus contextuels dans la gestion d'autres objets qui pointent vers les collections ou quand à partir des écrans de la recherche dans les collections, on veut les éditer (cataloguer). Dans ces cas, on est renvoyé d'office vers les écrans de l'objet "biblio".  


Petit préambule. Comment fait-on pour repérer un enregistrement de type collection dans la table "obj_biblio_acces" parmi les livres, périodiques,... ? L'article "[[WATERBEAR:Menus contextuels rediriges|Menus contextuels redirigés]]" répond à cette question.
Petit préambule. Comment fait-on pour repérer un enregistrement de type collection dans la table "obj_biblio_acces" parmi les livres, périodiques,...? L'article "[[WATERBEAR:Menus contextuels rediriges|Menus contextuels redirigés]]" répond à cette question.


Dans le cas des collections ces trois champs ont pour valeur:
Dans le cas des collections ces trois champs ont pour valeur:
Ligne 34 : Ligne 34 :
Il procède par choix successif pour enfin arriver à rediriger vers une autre page.
Il procède par choix successif pour enfin arriver à rediriger vers une autre page.


Voici la partie du code concerné dans le registre. On présente ici le noeud:
Voici la partie du code concerné dans le registre. On présente ici le noeud de l'objet "biblio" vers lequel on est redirigé:
  profiles/defaut/pages/bib/catalogue/catalogage/grilles/biblio/unimarc_xs/neutre
  profiles/defaut/pages/bib/catalogue/catalogage/grilles/'''biblio'''/unimarc_xs/neutre
pour l'objet "biblio":


:=> neutre
:=> neutre
::=> _page = bib/catalogue/grille_redirect.php
::=> _page = '''bib/catalogue/grille_redirect.php'''
::=> _parametres
::=> _parametres
:::=> choix
:::=> choix
Ligne 94 : Ligne 93 :
En gras, on voit les deux choix successifs (a puis k) pour être redigigé vers la page:
En gras, on voit les deux choix successifs (a puis k) pour être redigigé vers la page:
  profiles/defaut/pages/bib/catalogue/catalogage/grilles/'''collection'''/unimarc_standard
  profiles/defaut/pages/bib/catalogue/catalogage/grilles/'''collection'''/unimarc_standard
des collections.
Cette procédure ajoute quatre entrées, une dans le menu "Rechercher" et une dans le menu "Cataloguer" et laisse les quatre lignes originales correspondantes en place. Pour effacer les quatre entrées originales de ces menus, exécutez les quatre lignes qui suivent:
----
[{"type":"supprimer_noeud","chemin":"profiles\\/defaut\\/pages\\/bib\\/accueil\\/_parametres\\/barre_menus1\\/21 - rechercher\\/sections\\/01 - docs\\/menus\\/05 - collections","nom":"05 - collections","valeur":"","description":""}
,{"type":"supprimer_noeud","chemin":"profiles\\/defaut\\/pages\\/bib\\/accueil\\/_parametres\\/barre_menus1\\/22 - cataloguer\\/sections\\/02 - objets_biblio\\/menus\\/05 - collection","nom":"05 - collection","valeur":"","description":""}
,{"type":"supprimer_noeud","chemin":"profiles\\/defaut\\/pages\\/bib\\/_parametres\\/barre_menus1\\/01 - rechercher\\/sections\\/01 - docs\\/menus\\/05 - collections","nom":"051 - collections","valeur":"","description":""}
,{"type":"supprimer_noeud","chemin":"profiles\\/defaut\\/pages\\/bib\\/_parametres\\/barre_menus1\\/02 - cataloguer\\/sections\\/02 - objets_biblio\\/menus\\/05 - collection","nom":"05 - collection","valeur":"","description":""}]
----





Dernière version du 10 janvier 2021 à 13:35

But

Cette article a pour but de réviser complètement les écrans liés à la gestion des collections afin de les dissocier des écrans actuels faits pour les documents.


Contexte

Dans la base de données, on constate qu'il existe des tables pour les collections: "obj_collection_acces" et "obj_collection_liens" comme la majorité des autres thèmes principaux (éditeurs, lecteurs, villes, ...). Mais on constate ensuite que ces tables sont vides, inutilisées.

En fait ces données traitant des collections sont mélangées avec les documents (livres, périodiques, CD, DVD,...). Les écrans utilisés pour le catalogage et la recherche sont ceux des livres en général. Ces écrans sont incohérents et remplis d'onglets vides, inutiles.

Notre but est double:

  • Créer des écrans spécifiques aux collections
  • Créer des entrées dans le registre pour les collections comme pour les autres objets (villes, rues, abonnements,...). Le registre en sera plus clair.


Mise en oeuvre

Toutes les modifications se font dans le registre. Nous n'allons pas passer en revue détaillée toute cette implémentation. Cela serait trop fastidieux.

Mais il y a un très gros problème dont il faut tenir compte. Habituellement toute entrée principale dans le registre comme les villes, les rues, les prêts fait correspondre cette entrée avec un objet. Par exemple, une entrée "ville" se lie toujours implicitement à l'objet "ville" et donc aux tables "obj_ville_acces" et "obj_ville_liens". Mais ici cette entrée "collection" devra être liée à l'objet "biblio" et donc aux tables "obj_biblio_acces" et "obj_biblio_liens". Et cette table de liens comprendra des liens vers sa propre table des données "obj_biblio_acces" alors qu'habituellement elle se lie à un autre objet.

De prime abord cela semble simple; il suffit pour tout noeud "type_obj" de mettre comme valeur "biblio" et non "collection". Mais le problème survient quand on veut utiliser les menus contextuels dans la gestion d'autres objets qui pointent vers les collections ou quand à partir des écrans de la recherche dans les collections, on veut les éditer (cataloguer). Dans ces cas, on est renvoyé d'office vers les écrans de l'objet "biblio".

Petit préambule. Comment fait-on pour repérer un enregistrement de type collection dans la table "obj_biblio_acces" parmi les livres, périodiques,...? L'article "Menus contextuels redirigés" répond à cette question.

Dans le cas des collections ces trois champs ont pour valeur:

  • Types de documents = "a"
  • Niveaux bibliographiques = "k"
  • Niveaux hiérarchiques = "1"

Le premier problème est résolu par un nouveau script PHP de redirection décrit dans l'article "Menus contextuels redirigés". Ce script redirige vers le bon plugin en fonction de ces trois paramètres.

Le second problème utilise un autre script PHP similaire existant: "include/pages/bib/catalogue/grille_redirect.php". Il procède par choix successif pour enfin arriver à rediriger vers une autre page.

Voici la partie du code concerné dans le registre. On présente ici le noeud de l'objet "biblio" vers lequel on est redirigé:

profiles/defaut/pages/bib/catalogue/catalogage/grilles/biblio/unimarc_xs/neutre
=> neutre
=> _page = bib/catalogue/grille_redirect.php
=> _parametres
=> choix
=> a
=> choix
=> k
=> grille = catalogue/catalogage/grilles/collection/unimarc_standard
=> s
=> choix
=> 1
=> grille = catalogue/catalogage/grilles/biblio/unimarc_xs/revue
=> masque = revue
=> _else
=> grille = catalogue/catalogage/grilles/biblio/unimarc_xs/livre
=> masque
=> plugin_formate
=> nom_plugin = catalogue/marcxml/formatage/biblio/acces/niveau_hierarchique
=> _else
=> grille = catalogue/catalogage/grilles/biblio/unimarc_xs/livre
=> masque = livre
=> plugin_formate
=> nom_plugin = catalogue/marcxml/formatage/biblio/acces/niveau_biblio
=> g
=> grille = catalogue/catalogage/grilles/biblio/unimarc_xs/dvd
=> masque = dvd
=> i
=> grille = catalogue/catalogage/grilles/biblio/unimarc_xs/cd
=> masque = cd
=> j
=> grille = catalogue/catalogage/grilles/biblio/unimarc_xs/cd
=> masque = cd
=> _else
=> grille = catalogue/catalogage/grilles/biblio/unimarc_xs/livre
=> masque = xs
=> plugin_formate
=> nom_plugin = catalogue/marcxml/formatage/biblio/acces/type_doc
=> type_obj = biblio
=> _template
=> include_css
=> 01 - YUI onglets = js/yui/tabview/assets/skins/sam/tabview.css
=> 02 - YUI autocomplete = js/yui/autocomplete/assets/skins/sam/autocomplete-skin.css
=> 09 - formulator... = css/formulator.css
=> include_js
=> 01 - YUI onglets 1 = js/yui/element/element-min.js
=> 02 - YUI onglets 2 = js/yui/tabview/tabview-min.js
=> 03 - datasource = js/yui/datasource/datasource-min.js
=> 04 - autocomplete = js/yui/autocomplete/autocomplete-min.js
=> 09 - conteneur = js/tvs_conteneur.js
=> 10 - formulator = js/tvs_formulator.js
=> 11 - simple_textbox = js/tvs_simple_textbox.js
=> tmpl_javascript = bib/catalogue/catalogage/grilles/javascript.php
=> tmpl_main = bib/catalogue/catalogage/grille_redirect.php

En gras, on voit les deux choix successifs (a puis k) pour être redigigé vers la page:

profiles/defaut/pages/bib/catalogue/catalogage/grilles/collection/unimarc_standard

des collections.


Cette procédure ajoute quatre entrées, une dans le menu "Rechercher" et une dans le menu "Cataloguer" et laisse les quatre lignes originales correspondantes en place. Pour effacer les quatre entrées originales de ces menus, exécutez les quatre lignes qui suivent:


[{"type":"supprimer_noeud","chemin":"profiles\\/defaut\\/pages\\/bib\\/accueil\\/_parametres\\/barre_menus1\\/21 - rechercher\\/sections\\/01 - docs\\/menus\\/05 - collections","nom":"05 - collections","valeur":"","description":""}
,{"type":"supprimer_noeud","chemin":"profiles\\/defaut\\/pages\\/bib\\/accueil\\/_parametres\\/barre_menus1\\/22 - cataloguer\\/sections\\/02 - objets_biblio\\/menus\\/05 - collection","nom":"05 - collection","valeur":"","description":""}
,{"type":"supprimer_noeud","chemin":"profiles\\/defaut\\/pages\\/bib\\/_parametres\\/barre_menus1\\/01 - rechercher\\/sections\\/01 - docs\\/menus\\/05 - collections","nom":"051 - collections","valeur":"","description":""}
,{"type":"supprimer_noeud","chemin":"profiles\\/defaut\\/pages\\/bib\\/_parametres\\/barre_menus1\\/02 - cataloguer\\/sections\\/02 - objets_biblio\\/menus\\/05 - collection","nom":"05 - collection","valeur":"","description":""}]


Aspect

Voici quelques écrans relatifs aux collections.

  • Catalogage:
    • Ecran du catalogage simple:


WATERBEAR:Collection.cataloguer.simple.png


    • Ecran révélant les masques lors du catalogage:


WATERBEAR:Collection.cataloguer.masque.png

    • Ecran du catalogage sans filtre:


WATERBEAR:Collection.cataloguer.sansfiltre.png


  • Recherche:
    • Ecran de la définition des critères de recherche:


WATERBEAR:Collection.recherche.critere.png


    • Ecran du résultat de la recherche sous forme de liste:


WATERBEAR:Collection.recherche.liste.png


    • Ecran du résultat de la recherche sous forme notice individuelle avec la fenêtre pop-up de rebondissement:


WATERBEAR:Collection.recherche.notice.png


Intégration dans le registre

Ces corrections sont à faire dans le registre. A ce stade, vous pouvez les personnaliser. Pour les appliquer, vous pouvez soit les intégrer dans l'écran d'importation au niveau de l'administration du registre, soit exécuter, en commande de ligne sous Linux, le script contenu dans le fichier zippé ci-dessous:

Télécharger le fichier ZIP

Ce fichier est à dézipper sous Linux dans un répertoire de travail quelconque sur la machine où se trouve les sources du site WEB de Waterbear:

unzip collection.maj.registre.zip

Dans ce répertoire généré, se trouvent un sous-répertoire "registre" contenant les fichiers texte (.txt) où se trouvent les enregistrements à injecter dans le registre. Ce contenu a le format de celui utilisé dans l'interface d'exportation et d'importation de l'administration du registre de Waterbear. On trouve également un fichier de script PHP. Dans ce fichier, il faut adapter la variable "$racinewaterbear" qui doit contenir le chemin de la racine du logiciel WEB de Waterbear où on retrouve le fichier "bib.php". Par exemple, si ce chemin est "/web/waterbear" comme dans notre exemple d'installation, la variable devient (ne pas oublier la barre oblique finale "/"):

$racinewaterbear = "/web/waterbear/";

Ensuite, en commande de ligne sous Linux, positionnez-vous dans le répertoire du script et exécutez-le:

php ./maj.registre.liste.fichier.php



->retour à la personnalisation de Waterbear