WATERBEAR:Calcul de la date suivante
But
Par définition, un périodique paraît à intervalle normalement régulier. Dans cet article, on ajoute quelques types de périodicité et on revoit la procédure qui effectue le calcul de la date suivante de parution.
Accès à la liste des types de périodicité
Le point d'entrée de la gestion des périodiques se retrouve dans l'écran d'accueil dans le cadre 'Revues".
En choisissant "Chercher une revue", on accède à un écran de recherche qui permet d'afficher la liste des périodiques ou revues.
A ce stade, on choisit une revue et on l'édite. Dans l'exemple on a choisi la revue "Science et vie".
Quand on passe au dernier onglet "abonnements", on visualise les caractéristiques principales de l'abonnement. On peut en avoir plusieurs.
A droite on remarque l'icône qui permet de modifier cet abonnement.
C'est le premier cadre "200 - Fréquence" qui nous intéresse. Outre les jours de la semaine et les mois de parution, on y retrouve sous forme d'une liste déroulante, les type de périodicité ou "mode de parution". Notons que si aucun jour de la semaine n'est coché, tous sont pris en compte; idem pour les mois.
A coté de l'intitulé "mode de parution", une icône permet d'accéder à la liste des types de périodicité.
Types de périodicité
Dans l'écran précédent, on découvre la liste des types de périodicités appliqués aux périodiques.
Voici la liste (codes et définition) préexistante:
- IRRE : irrégulier
- QUOT : quotidien
- HEBD : hebdomadaire
- BIMENS : bi-mensuel (qui paraît toutes les 2 semaines)
- MENS : mensuel
Nous avons ajouté deux types:
- BIMENS1-15 : bi-mensuel (qui paraît les 1 et 15 du mois)
- BIMENSUEL : bi-mensuel (qui paraît 2 fois par mois)
ATTENTION: Ces codes sont traités dans un script spécifique; il ne faut donc ne pas les modifier et un ajout ne sera pas traité. Un code non reconnu retournera la date du jour.
Procédure d'ajout
La procédure qui suit permet de mettre à jour cette liste. Elle fait intervenir l'utilisation du registre.
Nous allons dans le registre à l'adresse:
profiles/defaut/langues/listes/catalogue/catalogage/grilles/abo/mode_parution
- => mode_parution
- => _intitules
- => BIMENS
- => _fr => bi-mensuel (paraît toutes les 2 semaines)
- => BIMENS1-15
- => _fr => bi-mensuel (paraît les 1 et 15 du mois)
- => BIMENSUEL
- => _fr => bi-mensuel (paraît 2 fois par mois)
- => HEBD
- => _fr => hebdomadaire
- => IRRE
- => _fr => irrégulier
- => MENS
- => _fr => mensuel
- => QUOT
- => _fr => quotidien
- => BIMENS
- => _intitules
Le code à injecter via l'outil d'importation dans le registre est:
[{"type":"supprimer_noeud","chemin":"profiles\\/defaut\\/langues\\/listes\\/catalogue\\/catalogage\\/grilles\\/abo\\/mode_parution","nom":"mode_parution","valeur":"","description":""} ,{"type":"niv2_create_node","chemin":"profiles\\/defaut\\/langues\\/listes\\/catalogue\\/catalogage\\/grilles\\/abo","nom":"mode_parution","valeur":"","description":""} ,{"type":"niv2_create_node","chemin":"profiles\\/defaut\\/langues\\/listes\\/catalogue\\/catalogage\\/grilles\\/abo\\/mode_parution","nom":"_intitules","valeur":"","description":""} ,{"type":"niv2_create_node","chemin":"profiles\\/defaut\\/langues\\/listes\\/catalogue\\/catalogage\\/grilles\\/abo\\/mode_parution\\/_intitules","nom":"BIMENS","valeur":"","description":""} ,{"type":"niv2_create_node","chemin":"profiles\\/defaut\\/langues\\/listes\\/catalogue\\/catalogage\\/grilles\\/abo\\/mode_parution\\/_intitules\\/BIMENS","nom":"_fr","valeur":"bi-mensuel (para\\\u00eet toutes les 2 semaines)","description":""} ,{"type":"niv2_create_node","chemin":"profiles\\/defaut\\/langues\\/listes\\/catalogue\\/catalogage\\/grilles\\/abo\\/mode_parution\\/_intitules","nom":"BIMENS1-15","valeur":"","description":""} ,{"type":"niv2_create_node","chemin":"profiles\\/defaut\\/langues\\/listes\\/catalogue\\/catalogage\\/grilles\\/abo\\/mode_parution\\/_intitules\\/BIMENS1-15","nom":"_fr","valeur":"bi-mensuel (para\\\u00eet les 1 et 15 du mois)","description":""} ,{"type":"niv2_create_node","chemin":"profiles\\/defaut\\/langues\\/listes\\/catalogue\\/catalogage\\/grilles\\/abo\\/mode_parution\\/_intitules","nom":"BIMENSUEL","valeur":"","description":""} ,{"type":"niv2_create_node","chemin":"profiles\\/defaut\\/langues\\/listes\\/catalogue\\/catalogage\\/grilles\\/abo\\/mode_parution\\/_intitules\\/BIMENSUEL","nom":"_fr","valeur":"bi-mensuel (para\\\u00eet 2 fois par mois)","description":""} ,{"type":"niv2_create_node","chemin":"profiles\\/defaut\\/langues\\/listes\\/catalogue\\/catalogage\\/grilles\\/abo\\/mode_parution\\/_intitules","nom":"HEBD","valeur":"","description":""} ,{"type":"niv2_create_node","chemin":"profiles\\/defaut\\/langues\\/listes\\/catalogue\\/catalogage\\/grilles\\/abo\\/mode_parution\\/_intitules\\/HEBD","nom":"_fr","valeur":"hebdomadaire","description":""} ,{"type":"niv2_create_node","chemin":"profiles\\/defaut\\/langues\\/listes\\/catalogue\\/catalogage\\/grilles\\/abo\\/mode_parution\\/_intitules","nom":"IRRE","valeur":"","description":""} ,{"type":"niv2_create_node","chemin":"profiles\\/defaut\\/langues\\/listes\\/catalogue\\/catalogage\\/grilles\\/abo\\/mode_parution\\/_intitules\\/IRRE","nom":"_fr","valeur":"irr\\\u00e9gulier","description":""} ,{"type":"niv2_create_node","chemin":"profiles\\/defaut\\/langues\\/listes\\/catalogue\\/catalogage\\/grilles\\/abo\\/mode_parution\\/_intitules","nom":"MENS","valeur":"","description":""} ,{"type":"niv2_create_node","chemin":"profiles\\/defaut\\/langues\\/listes\\/catalogue\\/catalogage\\/grilles\\/abo\\/mode_parution\\/_intitules\\/MENS","nom":"_fr","valeur":"mensuel","description":""} ,{"type":"niv2_create_node","chemin":"profiles\\/defaut\\/langues\\/listes\\/catalogue\\/catalogage\\/grilles\\/abo\\/mode_parution\\/_intitules","nom":"QUOT","valeur":"","description":""} ,{"type":"niv2_create_node","chemin":"profiles\\/defaut\\/langues\\/listes\\/catalogue\\/catalogage\\/grilles\\/abo\\/mode_parution\\/_intitules\\/QUOT","nom":"_fr","valeur":"quotidien","description":""} ]
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 mode.parution.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
Méthode de traitement
Sauf pour le mode de parution irrégulier, tous les autres modes suivent la méthode de traitement décrit ci-dessous, dans les limites de leur définition.
- Pour calculer la date de la prochaine parution, on part de la date de la parution courante.
- Par définition, pour le mode de parution irrégulier (IRRE), on ne peut prévoir la prochaine date de parution. On passe au mois suivant en gardant le numéro d'ordre du jour dans le mois. S'il est au delà pour le mois considéré, il est rabattu au dernier jour du mois.
- Si vous n'avez pas sélectionné un ou plusieurs jours de la semaine, ils sont tous pris en compte.
- Si vous n'avez pas sélectionné un ou plusieurs mois ils sont tous pris en compte.
- Sauf cas particulier (BIMENS1-15), la sélection parmi les jours de la semaine sélectionnés est respectée. Par exemple, Si on tombe sur un jour de la semaine non sélectionné, celui qui suit parmi la sélection est choisi à la place; s'il n'y en a pas qui suit, le premier de la sélection est pris.
- La sélection parmi les mois sélectionnés est respectée. Par exemple, Si on tombe sur un mois non sélectionné, celui qui suit parmi la sélection est choisi à la place; s'il n'y en a pas qui suit, le premier de la sélection est pris et on passe à l'année suivante.
- De cette manière, si la date de parution courante se passe un jour de la semaine non sélectionné, on se recadre automatiquement à un jour de la semaine sélectionné pour les dates successives futures. C'est le cas des modes de parution hebdomadaire (HEBD), bi-mensuel (BIMENS et BIMENSUEL) et mensuel (MENS).
- La notion de numéro d'ordre de la semaine dans le mois ne débute pas systématiquement par un lundi. Par exemple, la première semaine va du 1 au 7 du mois; on devrait plutôt parler du premier lundi du mois. La seconde semaine va du 8 au 14 du mois; on parle donc du second lundi du mois. C'est appliqué pour les modes de parution mensuel (MENS) et bi-mensuel (BIMENSUEL).
- Dans le cas du mode de parution mensuel (MENS), quand on passe au mois suivant, on garde le n° d'ordre de la semaine et le jour de la semaine de la date de parution courante.
- Dans le cas du mode de parution bi-mensuel (BIMENSUEL), quand on passe à la seconde moitié du mois courant ou à la première moitié du mois suivant, on garde le n° d'ordre impair ou pair de la semaine et le jour de la semaine de la date de parution courante.
- La cinquième semaine n'est pas considérée. Quand on tombe dans ce cas, le dernier jour du mois est pris. On tient compte des années bissextiles. Ce cas apparaît dans le mode de parution mensuel (MENS).
- Dans le mode de parution bimensuel (BIMENSUEL) qui paraît deux fois par mois, La cinquième semaine est ignorée et rabattue vers la quatrième semaine. On a alors une alternance de la première semaine et de la troisième semaine ou de la seconde et de la troisième.
- Dans le cas du mode de parution mensuel (MENS), on passe au mois suivant en gardant le n° d'ordre du jour dans le mois sauf contraintes; par exemple quand ce jour n'existe pas (29, 30 et 31) pour le mois considéré; il est rabattu au dernier jour du mois. De même si ce jour tombe sur un jour de la semaine non sélectionné.
- Le mode de parution quotidien (QUOT) passe de jour en jour (plus 1 jour) et passe outre les jours de la semaine non sélectionnés et outre les mois non sélectionnés.
- Le mode de parution hebomadaire (HEBD) passe de semaine en semaine (plus 7 jours) et passe outre les jours de la semaine non sélectionnés et outre les mois non sélectionnés.
- Le mode de parution bi-mensuel (BIMENS) passe de deux semaines en deux semaines (plus 14 jours) et passe outre les jours de la semaine non sélectionnés et outre les mois non sélectionnés.
- Le mode de parution bi-mensuel (BIMENS1-15) passe les 1er et 15ème jours du mois et passe outre les mois non sélectionnés.
Procédure de traitement
Le script qui effectue cette tâche se situe dans le répertoire "include/plugins/catalogue/periodiques" et se nomme "/calcule_prochaine_date.php". Le script d'origine a été fortement modifié en s'inspirant de l'existant. Ce script est inclus dans le fichier ZIP des modifications de Waterbear.