developer.jelix.org is not used any more and exists only for history. Post new tickets on the Github account.
developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.

Changes between Version 1 and Version 2 of fr/drafts/modules/medias


Ignore:
Timestamp:
Jan 23, 2007, 6:15:49 PM (14 years ago)
Author:
laurentj
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • fr/drafts/modules/medias

    v1 v2  
    33Gestion de fichiers médias qui peuvent être rattachés à des objets particuliers.
    44
     5Note : "media" et autres noms sont temporaires. Ce ne sont pas les noms définitifs.
     6
    57== specs fonctionnelles ==
    68       
     9l'objectif de ce module est de permettre de gérer des fichiers medias (images, videos etc) et autres pièces jointes (pdf par ex). Il doit fournir des services, de manière à pouvoir l'utiliser conjointement avec d'autres modules, dits clients, de type cms, blog etc.
     10
     11Une ressource est un objet des modules "clients", comme un article, un billet, à laquelle sera rattaché un fichier du gestionnaire de medias.
     12
     13Pour rattacher ou détacher un fichier à une ressource, un module client appellera le service adéquate du module media.
     14
     15Lors de la mise à jour ou la suppression d'un fichier dans le gestionnaire média, celui-ci devra envoyer un évènement pour que les modules clients en soient informés, et agir en conséquence.
    716
    817
    9 == ressources prévues ==
     18== objets prévues ==
    1019
    11  * controlleur pour download/upload d'un media
    12  * liste des medias dispos
    13  * liste des medias attribués à une ressource
     20 * contrôleur pour download/upload d'un fichier
     21 * service :
     22     * liste des fichiers dispos
     23     * liste des fichiers attribués à une ressource
     24     * ajout/mise à jour d'un fichier
     25     * suppression d'un fichier
     26     * ajout d'une rubrique
     27     * suppression d'une rubrique
     28     * lier un fichier avec une ressource
     29     * enlever le lien d'un fichier avec une ressource
     30 * module annexe pour l'administration des fichiers, comportant un contrôleur :
     31     * liste des fichiers (par rubrique)
     32     * ajout d'un fichier
     33     * suppression d'un fichier
    1434
    1535== specs techniques ==
    1636
    1737 * fichiers stockés dans var/medias/
    18        
     38
     39
     40Le service devra envoyé les évènements suivant (nom à confirmer):
     41   * mediaCanDelete avant suppression, pour savoir si la suppression est vraiment possible
     42   * mediaDeleteDone aprés suppression, pour faire savoir que le fichier a été supprimé
     43   * mediaUpdated pour faire savoir qu'un fichier a été mis à jour
     44
     45
     46=== à etudier ===
     47
     48Il faut stocker les "liens" entre les ressources et les fichiers. Deux solutions :
     49
     50==== une table unique gérée par le module média ====
     51
     52il faudra dans cette table stocker :
     53
     54   * type de ressource
     55   * id de la ressource
     56   * id du fichier
     57
     58Reste à savoir comment par exemple lister les intitulés de chaque ressource, voir même générer les liens vers ces ressources, quand on veut, dans le gestionnaire de media, savoir par quoi est utilisé un fichier (et encore faut-il savoir : quels types de liens met-on ? celui pour voir la ressource ? pour éditer la ressource ? sur l'admin ? sur le front ? ...)
     59
     60Autre inconvénient : dur de faire des jointures entre les tables des ressources et la table des fichiers, étant donné qu'ici le champs de l'id de la ressource, ne peut être une clé étrangère sur une table précise...
     61
     62==== une table par module client ====
     63
     64Chaque module client gére sa propre table de liaison. Cela permet de faire des requètes normales :
     65
     66   * id de la ressource
     67   * id du fichier
     68
     69Mais cela demande plus de travail au developpeur du module client (peut être peut on limiter en fournissant dans le module media, une api qui prendrait en paramètre le selecteur de la dao correspondante à la table de liaison)
     70
     71Quand le gestionnaire de media veut la liste des ressources qui utilise un fichier, il faut passer par un évènement. Cela peut faire pas mal de requête au final. Mais c'est peut être raisonnable dans la mesure où ce genre de chose n'est fait que dans un backoffice, moins "visité" donc où les perfs sont moins critiques.
     72
     73
     74