root/_outils_/repare_doc.html

Revision 5129, 1.4 kB (checked in by fil@…, 2 years ago)

reparateur de documents mal places, pour Alexandra_

Line 
1
2<h1>Reparation des documents</h1>
3
4<p>parfois a la suite d'un probleme sur les droits, les documents ne sont plus ranges correctement dans IMG/jpg/fichier.jpg, mais dans des faux sous-repertoires de la forme IMG/jpg_fichier.jpg</p>
5
6<p>il faut alors verifier l'existence et les droits de ces sous-repertoires, et supprimer un eventuel fichier IMG/jpg.plat qui signale une erreur lors de la (tentative de) creation du sous-repertoire IMG/jpg/</p>
7
8
9<p>le present script va recopier les fichiers mal places, et changer leur reference dans la table spip_documents ; il donnera ensuite la liste des fichiers recopies et des erreurs recontrees, et tu n'auras plus qu'a effacer les fichiers de la racine.</p>
10
11<p>le script s'appelle via spip.php?page=repare_doc ; l'interface est spartiate :-)</p>
12
13<?php
14
15        $docs = array();
16        $ext = array();
17
18<BOUCLE_d(DOCUMENTS){tous}{fichier==^IMG/([a-z0-3]+)_[^/]+\.[^/]+$}>
19        $docs[#ID_DOCUMENT] = '[(#FICHIER|texte_script)]';
20</BOUCLE_d>
21
22        // Tous les documents reperes
23        foreach ($docs as $id_doc => $fichier) {
24                $dest = preg_replace(',^IMG/([a-z0-3]+)_([^/]+\.(\1))$,i', 'IMG/$1/$2',
25                        $fichier);
26                if ($fichier != $dest
27                AND copy($fichier, $dest)) {
28                        spip_query ("UPDATE spip_documents SET fichier='".addslashes($dest)."' WHERE id_document=$id_doc AND fichier='".addslashes($fichier)."'");
29                        echo "tu peux effacer : $fichier<br />\n";
30                } else {
31                        echo "impossible de deplacer : $fichier<br />\n";
32                }
33        }
34
35?></B_d>
36        Tous documents OK
37<//B_d>
Note: See TracBrowser for help on using the browser.