|
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> |
|---|