Changeset 15334 in spip-zone


Ignore:
Timestamp:
Sep 19, 2007, 12:02:30 AM (13 years ago)
Author:
patfr@…
Message:

Découpe en pages : les notes sont directement optimisées au moment de la découpe.
=> Gros gain de performance.

Location:
_plugins_/_stable_/couteau_suisse
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_stable_/couteau_suisse/config_outils.php

    r15321 r15334  
    354354        // sans oublier les articles : $table_des_traitements['TEXTE']['articles']= 'cs_decoupe(propre(%s))';
    355355        'traitement:TEXTE/articles:post_propre' => 'cs_decoupe',
    356         'pipeline:affichage_final' => 'decoupe_affichage_final',
    357356        'categorie' => 'typo-racc',
    358357));
  • _plugins_/_stable_/couteau_suisse/outils/decoupe_fonctions.php

    r14389 r15334  
    9797                $page = surligner_mots($page, $_GET['decoupe_recherche']);
    9898        }
     99        decoupe_notes_orphelines($page);
    99100        return $sommaire.$pagination1.$page.$pagination2;
    100101}
    101102
    102 // meme chose que la fonction precedente, mais pour les notes
    103 function decouper_en_pages_rempl_notes($texte) {
    104         if (strpos($texte, _decoupe_SEPARATEUR)===false) return $texte;
    105         // au cas ou on ne veuille pas de decoupe
    106         if ($_GET['artpage']=='print') return decoupe_imprimer($texte);
    107 
    108         // traitement des pages
    109         $pages = explode(_decoupe_SEPARATEUR, $texte);
    110         $num_pages = count($pages);
    111         if ($num_pages == 1) return $texte;
    112         $artpage = max(intval($_GET['artpage']), 1);
    113         $artpage = min($artpage, $num_pages);
    114 
    115         return trim($pages[$artpage-1]);
    116 }
    117 
    118103// supprime les notes devenues orphelines
    119 function decoupe_affichage_final($texte){
    120         if (strpos($texte, "spip_note")===false) return $texte;
     104function decoupe_notes_orphelines(&$texte) {
     105        if($GLOBALS['les_notes']=='') return;
     106//      if strpos(($GLOBALS['les_notes'], "spip_note")===false) return;
     107        $notes = $GLOBALS['les_notes'];
    121108        global $ouvre_note;
    122109        tester_variable('ouvre_note', '[');
    123         $ouvre_note = str_replace('[', '\[', $ouvre_note);
    124         $appel = "<p[^>]*>$ouvre_note<a [^>]*name=\"nb([0-9]+)\" class=\"spip_note\" [^>]+>[^<]+</a>.*?</p>";
    125         preg_match_all(",$appel,", $texte,$tableau);
     110        $ouvre = str_replace('[', '\[', $ouvre_note);
     111        $appel = "<p[^>]*>$ouvre<a [^>]*name=\"nb([0-9]+)\" class=\"spip_note\" [^>]+>[^<]+</a>.*?</p>";
     112        preg_match_all(",$appel,", $GLOBALS['les_notes'], $tableau);
    126113        for($i=0;$i<count($tableau[0]);$i++) {
    127114                if (!preg_match(",<a href=\"#nb{$tableau[1][$i]}\",",$texte))
    128                         $texte = str_replace($tableau[0][$i], '', $texte);
     115                        $notes = str_replace($tableau[0][$i], '', $notes);
    129116        }
    130         return $texte;
     117        $GLOBALS['les_notes'] = trim($notes);
    131118}
    132119
  • _plugins_/_stable_/couteau_suisse/plugin.xml

    r15326 r15334  
    22        <nom>Le Couteau Suisse</nom>
    33        <icon>img/couteau-50.gif</icon>
    4         <version>1.7.6.10</version>
     4        <version>1.7.6.11</version>
    55        <auteur>Patrice Vanneufville
    66_ &#169; 2007 - Distribu&#233; sous licence GPL
Note: See TracChangeset for help on using the changeset viewer.