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 :



Vos commentaires
# Le 18 novembre 2007 à 21:11, par Laetitia
En réponse à : Déplacer un document vers un répertoire autre que IMG
Bonjour
Ca a l’air d’être super mais je n’arrive pas à le faire fonctionner. Est-ce que ca fonctionne avec la version 1.9.2 ?
Si oui, comment et oùu met-on le filtre ? Quelqu’un pourrait me donner un exemple ? Merci
Répondre à ce message
# Le 26 octobre 2005 à 11:00, par ?
En réponse à : Déplacer un document vers un répertoire autre que IMG
Est-ce qu’il faut appeler ce filtre (#LOGO_DOCUMENT|#URL_DOCUMENT|deplacer_document"","Q :/","doc,pdf,xls,ppt,rtf") dans « article.html » ?
Si oui à quel endroit ? Si non dans quelle boucle ?
Répondre à ce message
# Le 11 juin 2004 à 10:14, par Mkl
En réponse à : > Déplacer un document vers un répertoire autre que IMG
Euh... J’ai dû louper un épisode !?
J’ai bien créé le fichier mes_fonctions.php3, mais ça ne fonctionne pas ! Et comment est-il « appelé » ce fichier quand j’ajoute de nouveaux documents à mes articles ?
Merci d’avance !
# Le 23 juin 2004 à 16:11, par Laurent
En réponse à : > Déplacer un document vers un répertoire autre que IMG
Je suis tout a fait d’accord,
le fichier mes_fonctions.php3 ce met bien dans le dossier ecrire ??
J’ai mis l’appel au filtre dans mon squelette article au niveau de l’affichage des documents liés mais le filtre n’est pas reconnue comme tel, il n’est pas exécuté.
Si qqc’un a une idée ce serais super génial.
Merci d’avance.
Répondre à ce message
# Le 26 mai 2004 à 09:36, par jerome
En réponse à : probleme déplacement de fichier...
Bonjour,
J’utilise spip ver1.7.2
J’essaye d’utiliser le filtre pour déplacer des documents vers un serveur de donné mais il n’as pas l’air de fonctionner.
J’ai vu dans le filtre que MKDIR est utilisé pour creer l’arborescance de répertoire. Est ce une fonction de php ou c’est uniquement la fonction pour un serveur de donné sous linux. Car dans ce cas la c’est normale que ca ne fonctionne pas chez moi car j’utilise un serveur de donné sous windows...
Je tiens a préciser que je n’ais aucune erreur lors de l’execution du script php, il n’y a rien qui se passe.
Merci d’avance pour les réponses ...
Répondre à ce message
# Le 4 février 2004 à 12:46, par BoOz
En réponse à : > Déplacer un document vers un répertoire autre que IMG
Bravo c’est super !
On pourrait même imaginer une suite à cette contrib, qui ouvrirait un acces ftp et permettrait de mettre des photos sur un autre hebergeur par exemple.
# Le 22 mai 2004 à 10:51, par ?
En réponse à : > Déplacer un document vers un répertoire autre que IMG
génial !!
je m’en sert pour déplacer les fichiers sur un répertoire sécurisé spécifique, et ça marche très bien :)
Répondre à ce message