Changeset 60811 in spip-zone


Ignore:
Timestamp:
Apr 30, 2012, 9:44:46 AM (9 years ago)
Author:
fil@…
Message:

j'ai la poisse ou quoi : ne pas supprimer [40821] et [41278]

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/revision_nbsp/revision_nbsp.php

    r60810 r60811  
    6666                // Attraper les notes
    6767                $regexp = ', *\[\[(.*?)\]\],msS';
    68                 if ($s = preg_match_all($regexp, $texte, $matches, PREG_SET_ORDER)
     68                if (strpos($texte, '[[')
     69                AND $s = preg_match_all($regexp, $texte, $matches, PREG_SET_ORDER)
    6970                AND $s==1
    7071                AND preg_match(",^ *<>(.*),s", $matches[0][1], $r)) {
     
    7475                        $num = 0;
    7576                        while (($a = strpos($lesnotes, '('.(++$num).')')) !== false
    76                         AND ($b = strpos($letexte, '('.($num).')')) !== false
    77                         ) {
     77                        AND (
     78                                ($b = strpos($letexte, '('.($num).')')) !== false
     79                                OR ($b = strpos($letexte, '['.($num).'])')) !== false
     80                        )) {
    7881                                if (!isset($debut))
    7982                                        $debut = trim(substr($lesnotes, 0, $a));
     
    8689                                $lesnotes = substr($lesnotes, $a+strlen('('.$num.')')+strlen($lanote));
    8790                                $lanote = trim($lanote);
    88                                 $lanote = (strlen($lanote) ? '[[ '.$lanote.' ]]' : '');
     91                                $lanote = (strlen($lanote) ? "[[\n  ".$lanote."\n]]" : '');
    8992
    9093                                $letexte = substr($letexte,0,$b)
     
    102105                        }
    103106                }
     107
     108
     109                //  Cas deux : on recherche des notes en derniers paragraphes,
     110                // commencant par (1), on les reinjecte en [[<> ... ]] et on
     111                // relance la fonction sur cette onstruction.
     112                else {
     113                        $texte = trim($texte);
     114                        if (preg_match_all(',^[(](\d+)[)].*$,UmS', $texte, $regs)
     115                        AND preg_match(',^(.*\n)([(]1[)].*)$,UmsS', $texte, $u)) {
     116                                $notes = $u[2];
     117                                $texte = $u[1];
     118                                return notes_automatiques("$texte\n\n[[<> $notes ]]");
     119                        }
     120                }
     121
    104122        }
    105123
Note: See TracChangeset for help on using the changeset viewer.