logo phpwebgallery
"simplement puissant"
Dernière version:
1.7.2 - 24 juillet 2008
PhpWebGallery
 Documentation

Liens source/destination entre catégories

Le besoin est le suivant : en un minimum d’opérations, associer toutes les photos d’une catégorie à une autre.

Précision : pouvoir créer la catégorie destinatrice au moment de l’association.

Spécification fonctionnelle

Efficacité

Très concrètement, il s’agit de pouvoir associer une catégorie physique à une catégorie virtuelle, afin de bénéficier de la souplesse de gestion des catégories virtuelles. Dans une galerie comme celle d’un développeur de PWG (pierrick en l’occurence), chaque catégorie physique est associée à une catégorie virtuelle.

En branche 1.5, les actions nécessaires sont les suivantes :

  1. navigation dans [Administration»Catégories»Gérer] pour trouver la catégorie parente et y créer une sous-catégorie virtuelle
  2. navigation dans [Administration»Catégories»Gérer] pour trouver la catégorie physique à lier. Cliquer sur l’action de gestion des éléments de la catégorie, on arrive sur l’écran de gestion des photos par lot.
  3. Choisir la catégorie virtuelle nouvelle créée comme catégorie à laquelle associer toutes les photos, prendre “toutes” comme cible et valider.

Bref, trop de clics à mon goût. La nouvelle fonctionnalité de “catégorie source”, permettra d’obtenir le même résultat en suivant les actions :

  1. navigation dans [Administration»Catégories»Gérer] pour trouver la catégorie physique à lier. Cliquer sur l’action “propriétés de la catégorie”.
  2. section “liens entre catégories”, remplir le nom de la nouvelle catégorie virtuelle à créer, choisir sa catégorie parente dans une liste, valider.

Efficace. Jusque là, rien de nouveau par rapport à la branche 1.5, il ne s’agit que d’une simplification ergonomique.

La page de gestion des propriétés d’une catégorie, dans sa section “liens entre catégories”, permet de :

  • créer une nouvelle catégorie de destination
  • gérer une liste de catégories source et non source (grâce à un double multiselect comme la gestion globale des catégories)
  • gérer une liste de catégories destination et non destination (grâce à un double multiselect également)

Caractéristiques

  • On parle de catégorie source, ce qui entraîne automatiquement la notion de catégorie de destination. Plutôt que de choisir une catégorie source, on choisit une catégorie de destination.
  • Multiplicité : chaque catégorie peut avoir N catégories sources et N catégories de destination.
  • Les liens entre catégories sont persistants. Cela signifie que si une catégorie a une catégorie source, alors à chaque ajout dans la catégorie source, la catégorie de destination est automatiquement créditée de l’ajout (par lien virtuel).

Règles

  • Transitivité : si la catégorie 126 a pour source la catégorie 282 et pour destination 528, alors tout ajout dans 282 entraîne l’ajout virtuel dans 528.
  • Suppression : la suppression d’un lien entre catégories entraîne la suppression des liens entre photos et catégories correspondants. FIXME

Si on confirme la règle de suppression, on peut créer la règle suivante:

  • Arrêt v1 : l’arrêt se fait sur une Catégorie Virtuelle, et cela stoppe l’alimentation de toutes les sources. Il suffit alors de recréer une autre catégorie virtuelle qui a comme source l’ancienne catégorie virtuelle et toutes les sources à maintenir. FIXME
  • Arrêt v2 : l’arrêt d’un lien entre catégories entraîne le positionnement d’un champ de type Date “end_date” pour déterminer quelles photos importer pour la source impactée en faisant correspondre avec le champ “images.date_available”. Est-ce que le test de date n’est pas trop consommateur? FIXME

Spécification technique

Nouvelle table #categories_link, avec 2 colonnes.

CREATE TABLE phpwebgallery_categories_link (
  source smallint(5) UNSIGNED NOT NULL,
  destination smallint(5) UNSIGNED NOT NULL,
  PRIMARY KEY  (source, destination)
);

Les liens entre catégories permettent de créer des lignes dans la table #image_category, de manière statique. Ces liens sont créés statiquement lors des ajouts d’éléments dans une catégories :

  • admin/update.php
  • admin/picture_modify.php
  • admin/element_set_global.php

Conseil : la fonction qui gérera les inserts dans #image_category en conséquence du contenu de #categories_link devra commencer par résoudre les problèmes de transitivité en ne traitant qu’un tableau source⇒destination à un niveau. Ceci afin d’éviter la lourdeur de la récursivité.

Suivi de réalisation

Planning

  • (janvier 2006) initialement prévue pour la branche 1.6
  • première version commité en svn:1064 le 5 mars 2006. Je (Pierrick) me demande si on ne devrait pas revenir à une version plus simple de la fonctionnalité, il y a énormément de code compliqué pour l’aspect “persistance” de la fonctionnalité.
  • la version retenue est une version simplifiée sans persistence. Voir le détails dans la discussion sur le forum.

A valider

La règle de suppression est à discuter.

Liens relatifs à cette fonctionnalité

 
fr/fonctionnalites/categorie_source.txt · Dernière modification: 2008.06.22 21:23 par vdigital
 
Driven by DokuWiki - RSS notification feed