Changeset 75251 in spip-zone


Ignore:
Timestamp:
Sep 3, 2013, 11:59:07 PM (6 years ago)
Author:
patfr@…
Message:

Glossaire Interne : test sur les regex utilisateur (2/2)
Si l'utilisateur fait une erreur de syntaxe sur les regex, alors :

  • la regexp est désormais ignorée (corrige un bug sur #TEXTE qui revient vide)
  • Le test de la base de données montre un message d'erreur (action rapide sur la page d'admin)

+ 1 Bug passé incognito ayant rendu le test de la base de données totalement inopérant depuis le 25 juin 2010...

Location:
_plugins_/couteau_suisse
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/couteau_suisse/lang/couteauprive_fr.php

    r75250 r75251  
    407407        'glossaire_inverser' => 'Correction proposée : inverser l\'ordre des mots en base.',
    408408        'glossaire_verifier' => 'Correction proposée : vérifier les expressions régulières.',
     409        'erreur_syntaxe' => 'Erreur de syntaxe : ',
    409410        'glossaire_js' => 'Solution JavaScript',
    410411        'glossaire_ok' => '@nb@ mot(s) étudié(s). Tout semble correct.',
  • _plugins_/couteau_suisse/outils/glossaire_action_rapide.php

    r75250 r75251  
    1818                        $titre = $gi['mots']?glossaire_gogogo($gj['titre2'], $gi['mots'], -1, $u):'';
    1919                        if(count($gi['regs']))
    20                                 $titre .= preg_replace_callback($gi['regs'], "glossaire_echappe_mot_callback", $gj['titre'], -1);
    21                         if(strpos($titre,'@@GLOSS')!==false) { 
    22                                 $a = '['.$gi['titre'].'->mot'.$gi['id_mot'].']';
    23                                 $b = '['.$gj['titre'].'->mot'.$gj['id_mot'].']';
    24                                 $res2[] = "• ".couteauprive_T('glossaire_erreur', array('mot1'=>$a, 'mot2'=>$b));
    25                         }
     20                                $titre .= preg_replace_callback($gi['regs'], 'glossaire_echappe_mot_callback', $gj['titre'], -1);
     21                        if(strpos($titre,'@@M')!==false)
     22                                $res2[] = "• ".couteauprive_T('glossaire_erreur',
     23                                        array('mot1'=>cs_lien($gi['id_mot'], $gi['titre']), 'mot2'=>cs_lien($gj['id_mot'], $gj['titre'])));
    2624                }
    2725        }
    2826        if(count($res)) $res[] = couteauprive_T('glossaire_verifier');
    2927        if(count($res2)) $res2[] = couteauprive_T('glossaire_inverser');
    30         return propre(join("\n_ ", array_merge($res, $res2)));
     28        return join("<br/>", array_merge($res, $res2));
    3129}
    3230
    3331// function d'initialisation utilisee par la precedente
    3432function glossaire_verifie_init(&$g, &$res) {
    35         static $gu;
    36         if(!isset($g['mots'])) {
    37                 if(!isset($gu)) $gu = function_exists('glossaire_generer_url')?'glossaire_generer_url':'glossaire_generer_url_dist';
    38                 list($g['mots'], $g['regs'], $g['titre2'], $ok_regexp) = glossaire_parse(extraire_multi($g['titre']));
    39                 if(!$ok_regexp) $res[] = "&bull; <html>"._L('Erreur : ') . cs_lien(glossaire_generer_url_dist($g['id_mot']), htmlentities(extraire_multi($g['titre'])))."</html>";
    40         }
     33        if(isset($g['mots'])) return;
     34        if(!isset($gu)) $gu = function_exists('glossaire_generer_url')?'glossaire_generer_url':'glossaire_generer_url_dist';
     35        list($g['mots'], $g['regs'], $g['titre2'], $ok_regexp) = glossaire_parse(extraire_multi($g['titre']));
     36        if(!$ok_regexp) $res[] = "&bull; <html>".couteauprive_T('erreur_syntaxe').cs_lien(glossaire_generer_url_dist($g['id_mot']), htmlentities(extraire_multi($g['titre']), ENT_COMPAT, $GLOBALS['meta']['charset']))."</html>";
    4137}
    4238
  • _plugins_/couteau_suisse/outils/glossaire_fonctions.php

    r75250 r75251  
    170170        }
    171171        // a chaque mot reconnu, on pose une balise temporaire cryptee
    172         return trim(preg_replace_callback(",(?<=\W)(?:$mots)(?=\W),i", "glossaire_echappe_mot_callback", " $texte ", $limit));
     172        return trim(preg_replace_callback(",(?<=\W)(?:$mots)(?=\W),i", 'glossaire_echappe_mot_callback', " $texte ", $limit));
    173173}
    174174
     
    210210                $mot_present = false;
    211211                if(!$ok_regexp)
    212                         spip_log(couteauprive_T('glossaire:nom').' - Erreur REGEXP : '.var_export($les_regexp, 1));
     212                        spip_log(couteauprive_T('glossaire:nom').'. '.couteauprive_T('erreur_syntaxe').$titre);
    213213                elseif(count($les_regexp)) {
    214214                        // a chaque expression reconnue, on pose une balise temporaire cryptee
     
    221221                        $mot_present = true;
    222222                }
    223                 if($les_mots) {
    224                         if(preg_match(",\W(?:$les_mots)\W,i", " $texte ")) {
    225                                 $texte = glossaire_gogogo($texte, $les_mots, $limit, $unicode);
    226                                 $mot_present = true;
    227                         }
     223                if($les_mots && preg_match(",\W(?:$les_mots)\W,i", " $texte ")) {
     224                        $texte = glossaire_gogogo($texte, $les_mots, $limit, $unicode);
     225                        $mot_present = true;
    228226                }
    229227                // si un mot est trouve, on construit la fenetre de glossaire
  • _plugins_/couteau_suisse/paquet.xml

    r75173 r75251  
    22        prefix="couteau_suisse"
    33        categorie="maintenance"
    4         version="1.8.139"
     4        version="1.8.140"
    55        etat="stable"
    66        compatibilite="[1.9.2;3.0.99]"
  • _plugins_/couteau_suisse/plugin.xml

    r75173 r75251  
    33        <slogan>... ou plus de fonctionnalit&#233;s pour SPIP !</slogan>
    44        <icon>img/couteau-50.gif</icon>
    5         <version>1.8.139</version>
     5        <version>1.8.140</version>
    66        <version_base>1.11</version_base>
    77        <auteur>Patrice Vanneufville
Note: See TracChangeset for help on using the changeset viewer.