Changeset 66067 in spip-zone for _plugins_/hash_documents


Ignore:
Timestamp:
Sep 19, 2012, 6:58:17 PM (8 years ago)
Author:
yffic@…
Message:

Ne faire qu'une seule fois par hit le déplacement de n documents. Sinon dans le cas d'une insertion de plusieurs docs venant d'un zip, on explose le temps de connexion à la base.

Location:
_plugins_/hash_documents/branches/v1
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/hash_documents/branches/v1/hash_fonctions.php

    r63197 r66067  
    3838function hasher_deplacer_document($id_document, $corriger=false, $rev=false) {
    3939
    40 // 1. recuperer les donnees du document
     40        // 1. recuperer les donnees du document
    4141        // et verifier qu'on peut le hasher
    42         if (!$id_document = intval($id_document))
     42        if (!$id_document = intval($id_document)){
     43                spip_log("Erreur hasher_deplacer_document intval $id_document", 'hash');
    4344                return false;
     45        }
    4446        if (!$s = spip_query('SELECT fichier FROM spip_documents WHERE id_document='.$id_document)
    4547        OR !$t = spip_fetch_array($s)) {
     
    5557                ? _DIR_RACINE : _DIR_IMG;
    5658
    57         // On fabrique le nom  du fichier dest
     59        // On fabrique le nom du fichier dest
    5860        if (!$dest = hasher_adresser_document($src, $rev)) {
    5961                spip_log("Erreur hasher_adresser_document($src) rev : $rev", 'hash');
     
    6365        // si le src n'existe pas, ciao, enfin presque
    6466        if (!file_exists($dir_ref.$src)) {
    65                 spip_log("Erreur hasher_deplacer_document fichier $dir_ref $src n'existe pas", 'hash');
     67                spip_log("Erreur hasher_deplacer_document id_document $id_document fichier $dir_ref $src n'existe pas", 'hash');
    6668
    6769                // si le src n'existe pas, on verifie qu'il n'a pas deja ete déplace (ie le dest existe),
     
    7173                                // on note la destination finale
    7274                                if (!spip_query('UPDATE spip_documents SET fichier="'.$img.$dest.'" WHERE id_document='.$id_document)) {
    73                                         spip_log("erreur update correction $img $dest doc $id_document", 'hash');
     75                                        spip_log("erreur hasher_deplacer_document update correction $img $dest doc $id_document", 'hash');
    7476                                        return false;
    7577                                } else {
     
    102104        // ca casse on saura reparer
    103105        if (!spip_query('UPDATE spip_documents SET fichier=CONCAT("-", fichier) WHERE id_document='.$id_document)) {
    104                 spip_log("erreur update 1", 'hash');
     106                spip_log("erreur hasher_deplacer_document update 1", 'hash');
    105107                return false;
    106108        }
    107109        // on deplace
    108110        if (!rename($dir_ref.$src, _DIR_IMG.$dest)) {
    109                 spip_log("erreur rename", 'hash');
     111                spip_log("erreur hasher_deplacer_document rename", 'hash');
    110112                spip_query('UPDATE spip_documents SET fichier="'.$src.'" WHERE id_document='.$id_document);
    111113                return false;
     
    113115        // on note la destination finale
    114116        if (!spip_query('UPDATE spip_documents SET fichier="'.$img.$dest.'" WHERE id_document='.$id_document)) {
    115                 spip_log("erreur update 2", 'hash');
     117                spip_log("erreur hasher_deplacer_document update 2", 'hash');
    116118                return false;
    117119        }
     
    131133 */
    132134function hasher_deplacer_n_documents($n, $corriger=false, $rev=false) {
     135        $docs = array();
     136        static $dejafait = false;
     137
     138        // Une seule fois par hit (cas de l'insertion de plusieurs docs venant d'un zip)
     139        if ($dejafait) return $docs ;
     140        $dejafait = true;
     141
    133142        if (!$n = intval($n)
    134143        OR !$s = spip_query($q = "SELECT id_document FROM spip_documents WHERE fichier REGEXP '^(IMG/)?[^/]+/"
    135144        . ($rev ? "./././" : "")
    136145        ."[^/]+$' AND distant='non' ORDER BY date DESC LIMIT $n")) {
    137                 spip_log("erreur requete $q", 'hash');
     146                spip_log("erreur hasher_deplacer_n_documents requete $q", 'hash');
    138147                return false;
    139148        }
    140149
    141         $docs = array();
    142150        while ($t = spip_fetch_array($s)) {
    143151                $id_document = $t['id_document'];
     
    153161 */
    154162function hasher_compter_documents() {
     163
    155164        $s = spip_query($q = "SELECT COUNT(*) FROM spip_documents WHERE fichier REGEXP '^(IMG/)?[^/]+/"
    156165        ."[^/]+$' AND distant='non'");
  • _plugins_/hash_documents/branches/v1/plugin.xml

    r63197 r66067  
    99        <auteur>Fil</auteur>
    1010        <licence>GNU/GPL</licence>
    11         <version>1.2.3</version>
     11        <version>1.2.4</version>
    1212        <etat>stable</etat>
    1313        <description>
Note: See TracChangeset for help on using the changeset viewer.