Gmane
From: FRAISSE Jerome (EURIWARE <JeFRAISS <at> euriware.fr>
Subject: la contrib deplacer document
Newsgroups: gmane.comp.web.spip.user
Date: 2005-07-22 13:34:15 GMT (3 years, 49 weeks, 5 days, 11 hours and 31 minutes ago)

Bonjour !!

Je viens d'implémenter la contrib deplacer un document vers un répertoire autre que le répertoir IMG  (voir http://www.spip-contrib.net/Deplacer-un-document-vers-un)

En fait cette contrib est intéressante car elle classe les documents suivant les répertoires du site. C'est donc plus simple à gérer lorsque l'on as beaucoup de docs.

Seulement voila, avec spip 1.8.1, il y a quelques soucis... Déja elle fait appel à une fonction construire_hierarchie, qui ne fait plus apparament partie de la 1.8.1 .Je l'ai quand même choper d'une autre version de spip et je l'ai placé dans mes_fonctions.php3. Le scripte deplacer_document ne fait plus d'erreur, il déplace bien le fichier vers le bon répertoire, en revanche, le lien vers le document n'est plus bon du tout et il ne recréer pas l'arborescance(il déplace seulement le fichier vers un autre répertoire).

quelqu'un a-t-il une idée par rapport à ce probleme, avez vous réussi à l'implémenter dans spip 1.8.1 ???

Merci ! !!

ci joint mon fichier mes_fonctions.php3

<?
/*
 *   +----------------------------------+
 *    Nom du Filtre :  deplacer_document()                                              
 *   +----------------------------------+
 *    Date : vendredi 21 novembre 2003
 *    Auteur :  seb
 *    schoupas <at> opac-montpellier.fr
 *   +-------------------------------------+
 *    Fonctions de ce filtre :
 *     deplacer un document vers un repertoire autre que IMG
 *     modifier le chemin indiqué dans la BDD
 *     pointer sur le nouveau chemin pour les URL affichées en HTML.

 *   +-------------------------------------+
 * 
 * Pour toute suggestion, remarque, proposition d'ajout
 * reportez-vous au forum de l'article :
 * http://www.uzine.net/spip_contrib/article.php3?id_article=300


function construire_hierarchie($id_rubrique) {
        $hierarchie = "";
        $id_rubrique = intval($id_rubrique);
        while ($id_rubrique) {
                $hierarchie = $id_rubrique."-".$hierarchie;
                $query = "SELECT a.id_parent AS ida, b.id_parent AS idb ".
                        "FROM spip_rubriques AS a LEFT JOIN spip_rubriques AS b ON (b.id_rubrique = a.id_parent) ".
                        "WHERE a.id_rubrique = $id_rubrique";
                $result = spip_query($query);
                if ($row = spip_fetch_array($result)) {
                        if ($id_parent = $row['ida']) $hierarchie = $id_parent."-".$hierarchie;
                        $id_grand_parent = $row['idb'];
                }
                else break;
                $id_rubrique = $id_grand_parent;
        }
        return $hierarchie;
}

function deplacer_document($url,$chemin,$racine,$type)
{
        $type = explode(",",$type);
        if(is_array($type) ) $type = join ("|", $type);
       

        // on cherche dans le code HTML d'affichage les chemins d'accès spécifiques aux docs   
        if(ereg("(IMG)/($type)/([A-Za-z_]*).($type)",$url,$reg) )
        {
                $chemin_old = $reg[1]."/".$reg[2]."/";
                $fichier=$reg[3].".".$reg[4];

                //on récupère l'id du document et de l'article auquel il est rattaché dans la BDD              
                $query = "SELECT d.id_document,da.id_article,id_rubrique FROM spip_documents d,spip_documents_articles da,spip_articles a WHERE d.id_document=da.id_document AND da.id_article=a.id_article AND fichier ='".$chemin_old.$fichier."'";

               
                $result = spip_query($query);
                $row = spip_fetch_array($result);
                $id_document = $row["id_document"];
                $id_rubrique = $row["id_rubrique"];

                // variable ok teste si la création des répertoires s'est correctement effectuée
                $ok = true;

                //si aucun chemin n'est spécifié on crée une arborescence
                if($chemin == "")
                {


                        //on construit la hierarchie de l'article pour créer le chemin d'accès
                        $hierarchie = construire_hierarchie($id_rubrique);
                       
                        $hierarchie = explode("-", substr($hierarchie, 0, -1));

                        $chemin = array();
                        $i = 0;
                       
                        foreach($hierarchie as $tmp)
                        {
                                $query2 = "SELECT titre from spip_rubriques where id_rubrique=".$tmp;                  

                                $result2 = spip_query($query2);
                                $row2 = spip_fetch_array($result2);
                                $chemin[$i] = $row2['titre'];
                                //on vérifie l'existence des répertoires et on les crée le cas échéant
                                $repertoire = $racine.join("/",$chemin);
                                if(!is_dir($repertoire))
                                        $ok = mkdir($repertoire,0666);
                                $i++;
                        }

                        //on crée le nouveau chemin
                        $chemin = $racine.join("/",$chemin)."/";
                }              
               
                //on vérifie maintenant si le fichier existe sur le rep distant
                //si ce n'est pas le cas, on le déplace du local vers le distant
                if(!file_exists($chemin.$fichier) && $ok )
                {                      
                        //on copie le fichier vers le repertoire distant
                        if(copy($chemin_old.$fichier, $chemin.$fichier) )
                        {
                                //si la copie réussit,on l'efface du repertoire local
                                unlink($chemin_old.$fichier);

                                //on modifie le nom du fichier dans la BDD
                                $query = "SELECT fichier from spip_documents WHERE id_document=".$id_document;
                                $result = spip_query($query);
                                $row = spip_fetch_array($result);
                                if($row['fichier']==$chemin_old.$fichier)
                                {
                                        $query = "UPDATE spip_documents SET fichier = '".$chemin.$fichier."' WHERE id_document=".$id_document;

                                        $result = spip_query($query);
                                }
                                // on remplace avec le bon chemin d'accès à l'affichage
                                $url = ereg_replace ($chemin_old.$fichier, $chemin.$fichier, $url);
                               
                        }
                }
                //on retourne l'url modifiée
                return $url;           
        }
        //si rien ne ressemble à un chemin type IMG/doc on retourne l'url telle quelle
        else return $url;
       
}*/

?>


ATTENTION Le message contenu dans cet email ainsi que dans tout fichier attaché est destiné exclusivement aux personnes dont le nom figure ci-dessus. Il peut contenir des informations confidentielles ou protégées par le secret professionnel et dont la divulgation est strictement prohibée. Si vous avez reçu cet email par erreur,détruisez-en le contenu. Vous n'êtes pas autorisé, dans cette hypothèse, à copier, distribuer ou conserver ce message. Merci.

WARNING This information in this mail and in any attachments is intended for the above-mentioned addressees only. It may contain privileged or confidential informationthe review, dissemination or disclosure of which is strictly prohibited. If you have received this email by error, please destroy it. In this case, you are not authorisedto disclose, copy, distribute, or retain this message or any part of it. Thank you.


<div>

<p>Bonjour !!
</p>

<p>Je viens d'impl&eacute;menter la contrib deplacer un document vers un r&eacute;pertoire autre que le r&eacute;pertoir IMG&nbsp; (voir <a href="http://www.spip-contrib.net/Deplacer-un-document-vers-un" target="_blank">http://www.spip-contrib.net/Deplacer-un-document-vers-un</a>)</p>

<p>En fait cette contrib est int&eacute;ressante car elle classe les documents suivant les r&eacute;pertoires du site. C'est donc plus simple &agrave; g&eacute;rer lorsque l'on as beaucoup de docs.</p>

<p>Seulement voila, avec spip 1.8.1, il y a quelques soucis... D&eacute;ja elle fait appel &agrave; une fonction construire_hierarchie, qui ne fait plus apparament partie de la 1.8.1 .Je l'ai quand m&ecirc;me choper d'une autre version de spip et je l'ai plac&eacute; dans mes_fonctions.php3. Le scripte deplacer_document ne fait plus d'erreur, il d&eacute;place bien le fichier vers le bon r&eacute;pertoire, en revanche, le lien vers le document n'est plus bon du tout et il ne recr&eacute;er pas l'arborescance(il d&eacute;place seulement le fichier vers un autre r&eacute;pertoire).</p>

<p>quelqu'un a-t-il une id&eacute;e par rapport &agrave; ce probleme, avez vous r&eacute;ussi &agrave; l'impl&eacute;menter dans spip 1.8.1 ???
</p>

<p>Merci ! !! 
</p>

<p>ci joint mon fichier mes_fonctions.php3
</p>

<p>&lt;?
<br>/*
<br>&nbsp;*&nbsp;&nbsp; +----------------------------------+
<br>&nbsp;*&nbsp;&nbsp;&nbsp; Nom du Filtre :&nbsp; deplacer_document()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<br>&nbsp;*&nbsp;&nbsp; +----------------------------------+
<br>&nbsp;*&nbsp;&nbsp;&nbsp; Date : vendredi 21 novembre 2003
<br>&nbsp;*&nbsp;&nbsp;&nbsp; Auteur :&nbsp; seb 
<br>&nbsp;*&nbsp;&nbsp;&nbsp; schoupas <at> opac-montpellier.fr
<br>&nbsp;*&nbsp;&nbsp; +-------------------------------------+
<br>&nbsp;*&nbsp;&nbsp;&nbsp; Fonctions de ce filtre :
<br>&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp; deplacer un document vers un repertoire autre que IMG
<br>&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp; modifier le chemin indiqu&eacute; dans la BDD
<br>&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp; pointer sur le nouveau chemin pour les URL affich&eacute;es en HTML.
</p>

<p>&nbsp;*&nbsp;&nbsp; +-------------------------------------+ 
<br>&nbsp;*&nbsp; 
<br>&nbsp;* Pour toute suggestion, remarque, proposition d'ajout
<br>&nbsp;* reportez-vous au forum de l'article :
<br>&nbsp;* <a href="http://www.uzine.net/spip_contrib/article.php3?id_article=300" target="_blank">http://www.uzine.net/spip_contrib/article.php3?id_article=300</a>
</p>
<br><p>function construire_hierarchie($id_rubrique) {
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $hierarchie = "";
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $id_rubrique = intval($id_rubrique);
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while ($id_rubrique) {
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $hierarchie = $id_rubrique."-".$hierarchie;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $query = "SELECT a.id_parent AS ida, b.id_parent AS idb ".
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "FROM spip_rubriques AS a LEFT JOIN spip_rubriques AS b ON (b.id_rubrique = a.id_parent) ".
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "WHERE a.id_rubrique = $id_rubrique";
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $result = spip_query($query);
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($row = spip_fetch_array($result)) {
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($id_parent = $row['ida']) $hierarchie = $id_parent."-".$hierarchie;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $id_grand_parent = $row['idb'];
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else break;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $id_rubrique = $id_grand_parent;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $hierarchie;
<br>}
</p>

<p>function deplacer_document($url,$chemin,$racine,$type)
<br>{
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $type = explode(",",$type);
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(is_array($type) ) $type = join ("|", $type);
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // on cherche dans le code HTML d'affichage les chemins d'acc&egrave;s sp&eacute;cifiques aux docs&nbsp;&nbsp;&nbsp; 
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(ereg("(IMG)/($type)/([A-Za-z_]*).($type)",$url,$reg) )
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $chemin_old = $reg[1]."/".$reg[2]."/";
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $fichier=$reg[3].".".$reg[4];
</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //on r&eacute;cup&egrave;re l'id du document et de l'article auquel il est rattach&eacute; dans la BDD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $query = "SELECT d.id_document,da.id_article,id_rubrique FROM spip_documents d,spip_documents_articles da,spip_articles a WHERE d.id_document=da.id_document AND da.id_article=a.id_article AND fichier ='".$chemin_old.$fichier."'";</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $result = spip_query($query);
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $row = spip_fetch_array($result);
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $id_document = $row["id_document"];
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $id_rubrique = $row["id_rubrique"];
</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // variable ok teste si la cr&eacute;ation des r&eacute;pertoires s'est correctement effectu&eacute;e
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $ok = true;
</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //si aucun chemin n'est sp&eacute;cifi&eacute; on cr&eacute;e une arborescence
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if($chemin == "")
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
</p>
<br><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //on construit la hierarchie de l'article pour cr&eacute;er le chemin d'acc&egrave;s
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $hierarchie = construire_hierarchie($id_rubrique);
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $hierarchie = explode("-", substr($hierarchie, 0, -1));
</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $chemin = array();
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $i = 0;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach($hierarchie as $tmp)
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $query2 = "SELECT titre from spip_rubriques where id_rubrique=".$tmp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $result2 = spip_query($query2);
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $row2 = spip_fetch_array($result2);
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $chemin[$i] = $row2['titre'];
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //on v&eacute;rifie l'existence des r&eacute;pertoires et on les cr&eacute;e le cas &eacute;ch&eacute;ant
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $repertoire = $racine.join("/",$chemin);
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!is_dir($repertoire))
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $ok = mkdir($repertoire,0666);
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $i++;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //on cr&eacute;e le nouveau chemin
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $chemin = $racine.join("/",$chemin)."/";
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //on v&eacute;rifie maintenant si le fichier existe sur le rep distant
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //si ce n'est pas le cas, on le d&eacute;place du local vers le distant
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!file_exists($chemin.$fichier) &amp;&amp; $ok )
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //on copie le fichier vers le repertoire distant
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(copy($chemin_old.$fichier, $chemin.$fichier) )
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //si la copie r&eacute;ussit,on l'efface du repertoire local
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unlink($chemin_old.$fichier);
</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //on modifie le nom du fichier dans la BDD 
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $query = "SELECT fichier from spip_documents WHERE id_document=".$id_document;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $result = spip_query($query);
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $row = spip_fetch_array($result);
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if($row['fichier']==$chemin_old.$fichier)
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $query = "UPDATE spip_documents SET fichier = '".$chemin.$fichier."' WHERE id_document=".$id_document;</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $result = spip_query($query);
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // on remplace avec le bon chemin d'acc&egrave;s &agrave; l'affichage
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $url = ereg_replace ($chemin_old.$fichier, $chemin.$fichier, $url);
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //on retourne l'url modifi&eacute;e
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $url;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //si rien ne ressemble &agrave; un chemin type IMG/doc on retourne l'url telle quelle
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else return $url;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<br>}*/
</p>

<p>?&gt;
</p>
<br><p>ATTENTION Le message contenu dans cet email ainsi que dans tout fichier attach&eacute; est destin&eacute; exclusivement aux personnes dont le nom figure ci-dessus. Il peut contenir des informations confidentielles ou prot&eacute;g&eacute;es par le secret professionnel et dont la divulgation est strictement prohib&eacute;e. Si vous avez re&ccedil;u cet email par erreur,d&eacute;truisez-en le contenu. Vous n'&ecirc;tes pas autoris&eacute;, dans cette hypoth&egrave;se, &agrave; copier, distribuer ou conserver ce message. Merci.</p>

<p>WARNING This information in this mail and in any attachments is intended for the above-mentioned addressees only. It may contain privileged or confidential informationthe review, dissemination or disclosure of which is strictly prohibited. If you have received this email by error, please destroy it. In this case, you are not authorisedto disclose, copy, distribute, or retain this message or any part of it. Thank you.</p>
<br>
</div>