NdM : Attention, il semblerait que la compatibilité de cette contrib avec SPIP 1.8 soit incertaine !
FONCTION
J’ai écrit ce filtre pour répondre à une attente de mon chef de projet : enregistrer les documents joints aux articles sur un serveur de données différent de celui où est hébergée la Base de données Mysql de SPIP.
Je l’ai modifié afin de le rendre aussi générique que possible et permettre à tout un chacun de l’utiliser comme il le souhaite. Ce filtre permet de :
- déplacer un type de documents souhaité (images, word, pdf...)
- spécifier un chemin propre ou laisser le filtre générer automatiquement une arborescence de répertoires identique à celle des rubriques dont dépend l’article lié au document.
- effectuer les modifications nécessaires dans la base de données
COMMENT ÇA MARCHE ?
Comme il s’agit d’un filtre, pas besoin de savoir coder du PHP et surtout on ne touche pas au noyau de SPIP (merci Vincent ! ). On l’utilise comme les autres filtres , en lui passant 3 paramètres.
ex :
(#LOGO_DOCUMENT|#URL_DOCUMENT|deplacer_document{"","Q:/","doc,pdf,xls,ppt,rtf"})- le chemin : vide dans mon exemple. On peut lui indiquer le répertoire de destination. Dans le cas contraire, le script va générer automatiquement une arborescence de répertoires identique à celle de la hiérarchie de rubriques de l’article auquel est lié le document. L’arborescence débutera à la racine spécifiée ( voir ci-dessous). Ne pas oublier le "/" à la fin du chemin.
- la racine : "Q :/" dans mon cas. Si on n’indique pas de valeur au paramètre chemin, il faut indiquer au script la racine de l’arborescence, sinon elle est créée dans le répertoire courant. Ne pas oublier le "/" final.
- le type de documents à rechercher : dans mon cas, je recherchais surtout des documents doc, pdf, xls, ppt et rtf. Si vous souhaitez modifier ces critères de recherche, changer ce paramètre en indiquant les extensions séparées par des virgules.
EXEMPLE
Si un document est lié à un article , disons processus.doc, lié à l’article "comment faire". Cet article étant dans la rubrique "documentation" elle-même dans la rubrique "technique". Le filtre va donc générer sur le serveur de fichier une arbo de type (si on appelle Q :/ la racine du serveur de fichier) :
Q :/technique/documentation/processus.doc
Si aucune racine n’est indiquée au filtre (ici Q :/), l’arborescence sera créée au niveau du répertoire courant, par exemple c :/www/monsite. On aura alors :
c :/www/monsite/technique/documentation/processus.doc
Voilà, les modifications seront prises en compte lors de la première visite de l’article en question !!! :)
Il n’y a qu’à faire un copier-coller du code suivant dans votre fichier mes_fonctions.php3 de SPIP :




