Licence Publique Générale GNU Version 2
L'objectif du module WebDAV pour Drupal est de permettre avant tout l'édition et la sauvegarde des nodes (billets, blogs, etc.) à partir d'un véritable éditeur HTML, à distance, sans copier-collés, et sans passer par l'interface WEB.
Techniquement, une bonne partie du travail a été réalisée grâce au module PHP Pear::HTTP_WebDAV_Server. Le développement de ce dernier semblant être figé, j'ai du commencer à le modifier pour le faire évoluer. La bonne question est donc de savoir si la licence PHP du module Pear est suffisamment compatible avec la GPL v2 de Drupal pour laisser les sources dans le module...
Ce module Drupal s'appuie donc sur cette librairie pour ajouter une mécanique Module Drupal, une couche de simplification du protocole WebDav pour finir par une "WebDAV API" relativement simple à implémenter.
L'idée d'un API WebDAV est née il y a plus d'un ans suite une discussion avec Nick Vahalik qui bossait à l'époque avec moi sur le projet. Le but d'origine était de fournir un mapping quasi direct de WebDAV sur des hools. Aujourd'hui c'est devenu une abstraction de WebDav beaucoup plus simple à implémenter.
Cette API permet donc à quiconque de rapidement de monter sur l'arborescence WebDav une branche spécifique (taxonomie, fichiers, commentaires, etc.).
Toutes les fonctions WebDAV prises en charge par PEAR donnent ainsi lieu à la possibilité pour un module d'implémenter le hook correspondant. L'API est cependant une version abstraite du protocole DAV, évitant de rentrer trop dans ses finesses.
Du coup, la gestion des nodes est un module à part entière utilisant WebDAV API. Il prend en charge la gestion des droits et les verrous, le renommage du titre, l'édition (lecture et sauvegarde) du contenu, la suppression et la création. Je n'ai pas bien vu l'intérêt d'implémenter la copie de node...
D'un point de vue utilisateur, ce module accroche à la racine webdav (http://mon_serveur/webdav), un dossier DAV nommé nodes contenant autant de sous-dossier qu'il y de type de nodes. Dans chacun de ces dossiers, nous avons un dossiers par node d'un type donnée, portant le titre comme nom. Ainsi créer un nouveau dossier revient à créer un node, en supprimer à détruire un node, et le renommer à changer le titre du node.
Si l'on va dans le dossier du node, il y a pour l'instant un unique fichier nommé content.html. Il suffit de l'éditer pour éditer le contenu du node. Chaque sauvegarde donne lieu à la création d'une révision (paramétrable). De même est paramétrable la manière dont est vue un node (texte, HTML, code source) en fonction de son format d'entrée. Ainsi il est possible de voir un commentaire comme un fichier .txt et un node comme un .html.
Par ce module, il est aussi possible de directement poser des attachements dans un node, d'en supprimer, etc.
La version 1.0 est en cours de développement et comme je n'ai pas porté la v0.5 sous Drupal 6.x, il n'y a pour ainsi dire pas de version stable. Vous pouvez aller sur la page des sources de la version "trunk" pour la tester, prendre connaissance des changements ou donner vos idées d'amélioration.
- répondre
Armetiz , le 18 September, 2008 - 22:11Vraiment... Tip top, comme toujours.
J'ai passé mon blog de Drupal à Wordpress pour des raisons un peu de découverte et de non prise de tête, mais... Qu'est-ce qu'il peut manque le Drupal pour les aspects exotiques...
A quand de nouveau contrat de prestation Web où je pourrai utiliser, et ré-utiliser Drupal.
- répondre
Ulhume, le 19 September, 2008 - 08:13@armetiz merci
Il est beau ton thème d'ailleurs c'est toi qui l'a réalisé ?
Poster un nouveau commentaire