« WATERBEAR:Collections » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 31 : | Ligne 31 : | ||
Le premier problème est résolu par un nouveau script PHP de redirection décrit dans l'article "[[WATERBEAR:Menus contextuels rediriges|Menus contextuels redirigés]]". Ce script redirige vers le bon plugin en fonction de ces trois paramètres. | Le premier problème est résolu par un nouveau script PHP de redirection décrit dans l'article "[[WATERBEAR:Menus contextuels rediriges|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. | 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: | |||
profiles/defaut/pages/bib/catalogue/catalogage/grilles/biblio/unimarc_xs/neutre | |||
pour l'objet "biblio": | |||
:=> 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 | |||
Version du 9 janvier 2021 à 20:57
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:
profiles/defaut/pages/bib/catalogue/catalogage/grilles/biblio/unimarc_xs/neutre
pour l'objet "biblio":
- => 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
- => 1
- => plugin_formate
- => nom_plugin = catalogue/marcxml/formatage/biblio/acces/niveau_hierarchique
- => choix
- => _else
- => grille = catalogue/catalogage/grilles/biblio/unimarc_xs/livre
- => masque = livre
- => k
- => plugin_formate
- => nom_plugin = catalogue/marcxml/formatage/biblio/acces/niveau_biblio
- => choix
- => 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
- => a
- => plugin_formate
- => nom_plugin = catalogue/marcxml/formatage/biblio/acces/type_doc
- => type_obj = biblio
- => choix
- => _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
- => include_css
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
Aspect
Voici quelques écrans relatifs aux collections.
- Catalogage:
- Ecran du catalogage simple:
- Ecran révélant les masques lors du catalogage:
- Ecran du catalogage sans filtre:
- Recherche:
- Ecran de la définition des critères de recherche:
- Ecran du résultat de la recherche sous forme de liste:
- Ecran du résultat de la recherche sous forme notice individuelle avec la fenêtre pop-up de rebondissement:
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