Changeset 22723 in spip-zone


Ignore:
Timestamp:
Sep 24, 2008, 5:47:49 PM (13 years ago)
Author:
cedric@…
Message:

evitons de massacrer les perfs
a ce titre, le traitement supplementaire typo est par defaut a off compte tenu de son fort impact perfo

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_stable_/enluminures_typographiques_v2/typo_enrichie.php

    r21838 r22723  
    190190
    191191function TypoEnluminee_pre_typo($texte) {
    192         if ($GLOBALS['barre_typo_pas_de_fork_typo'] === true)
     192        static $local_barre_typo_pas_de_fausses_puces = null;
     193        static $chercher_raccourcis;
     194        static $remplacer_raccourcis;
     195        global $debut_italique, $fin_italique;
     196        if (!isset($GLOBALS['barre_typo_pas_de_fork_typo']) OR $GLOBALS['barre_typo_pas_de_fork_typo'] === true)
    193197                return $texte;
     198
     199        if ($local_barre_typo_pas_de_fausses_puces===NULL){
     200                // remplace les fausses listes a puce par de vraies
     201                // (recherche en debut de lignes - suivi d'un ou plusieurs caracteres blancs, en mode multiligne)
     202                // Mettre $GLOBALS['barre_typo_preserve_puces'] = true; dans mes_options.php pour ne pas avoir ce comportement
     203                if (!function_exists('lire_config')) {
     204                        $local_barre_typo_pas_de_fausses_puces = $GLOBALS['barre_typo_pas_de_fausses_puces'];
     205                } else {
     206                        $local_barre_typo_pas_de_fausses_puces = (lire_config('bte/puces','Non') == 'Oui')?true:false;
     207                }
     208                tester_variable('debut_italique', "<i$class_spip>");
     209                tester_variable('fin_italique', '</i>');
    194210               
    195         // Compatibilite avec les versions de SPIP < 1.9.3
    196         // tester_variable('debut_italique', "<i$class_spip>") ne renvoit rien en 1.9.2 !
    197         // Il en fixe la valeur s'il n'y en a pas deja une
    198         // ==> contournement
    199         if (version_compare($GLOBALS['spip_version_code'],'1.9300','<')) {
    200                 tester_variable('class_spip', ' class="spip"');
    201                 global $class_spip;
    202         }
    203         tester_variable('debut_italique', "<i$class_spip>");
    204         tester_variable('fin_italique', '</i>');
    205         global $debut_italique, $fin_italique;
    206        
    207        
    208         // remplace les fausses listes a puce par de vraies
    209         // (recherche en debut de lignes - suivi d'un ou plusieurs caracteres blancs, en mode multiligne)
    210         // Mettre $GLOBALS['barre_typo_preserve_puces'] = true; dans mes_options.php pour ne pas avoir ce comportement
    211         if (!function_exists('lire_config')) {
    212                 global $barre_typo_pas_de_fausses_puces;
    213         } else {
    214                 if (lire_config('bte/puces','Non') == 'Oui') {
    215                         $barre_typo_pas_de_fausses_puces = true;
    216                 } else {
    217                         $barre_typo_pas_de_fausses_puces = false;
     211                // Compatibilite avec les versions de SPIP < 1.9.3
     212                // tester_variable('debut_italique', "<i$class_spip>") ne renvoit rien en 1.9.2 !
     213                // Il en fixe la valeur s'il n'y en a pas deja une
     214                // ==> contournement
     215                if (version_compare($GLOBALS['spip_version_code'],'1.9300','<')) {
     216                        tester_variable('class_spip', ' class="spip"');
     217                        global $class_spip;
    218218                }
    219         }
    220 
    221         if ($barre_typo_pas_de_fausses_puces === true) {
     219
     220                $chercher_raccourcis = array(
     221                        /* 9 */         "/(?<![{\d])[{](?![{\d])/S", // Expressions complexes car on n'a pas encore traite les titres ici
     222                        /* 10 */        "/(?<![}\d])[}](?![}\d])/S", // puisque italique utilisent les memes caracteres en nombre inferieur
     223                        /* 13 */        "/<-->/S",
     224                        /* 14 */        "/-->/S",
     225                        /* 15 */        "/<--/S",
     226                        /* 16 */        "/<==>/S",
     227                        /* 17 */        "/==>/S",
     228                        /* 18 */        "/<==/S",
     229                        /* 19 */        "/\(c\)/Si",
     230                        /* 20 */        "/\(r\)/Si",
     231                        /* 21 */        "/\(tm\)/Si",
     232                        /* 22 */        "/\.\.\./S",
     233                        /* 23 */        "/\[([^|?][^][]*)\|((?:[^][](?!->))*)\]/S"
     234                );
     235       
     236                $remplacer_raccourcis = array(
     237                        /* 9 */         $debut_italique,
     238                        /* 10 */        $fin_italique,
     239                        /* 13 */        "&harr;",
     240                        /* 14 */        "&rarr;",
     241                        /* 15 */        "&larr;",
     242                        /* 16 */        "&hArr;",
     243                        /* 17 */        "&rArr;",
     244                        /* 18 */        "&lArr;",
     245                        /* 19 */        "&copy;",
     246                        /* 20 */        "&reg;",
     247                        /* 21 */        "&trade;",
     248                        /* 22 */        "&hellip;",
     249                        /* 23 */        "@@acro@@$2@@$1@@acro@@"
     250                );
     251        }
     252
     253        if ($local_barre_typo_pas_de_fausses_puces === true) {
    222254                $texte =  preg_replace('/^-\s+/m','-* ',$texte);
    223255        }
    224        
    225         $chercher_raccourcis = array(
    226                 /* 9 */         "/(?<![{\d])[{](?![{\d])/S", // Expressions complexes car on n'a pas encore traite les titres ici
    227                 /* 10 */        "/(?<![}\d])[}](?![}\d])/S", // puisque italique utilisent les memes caracteres en nombre inferieur
    228                 /* 13 */        "/<-->/S",
    229                 /* 14 */        "/-->/S",
    230                 /* 15 */        "/<--/S",
    231                 /* 16 */        "/<==>/S",
    232                 /* 17 */        "/==>/S",
    233                 /* 18 */        "/<==/S",
    234                 /* 19 */        "/\(c\)/Si",
    235                 /* 20 */        "/\(r\)/Si",
    236                 /* 21 */        "/\(tm\)/Si",
    237                 /* 22 */        "/\.\.\./S",
    238                 /* 23 */        "/\[([^|?][^][]*)\|((?:[^][](?!->))*)\]/S"
    239         );
    240 
    241         $remplacer_raccourcis = array(
    242                 /* 9 */         $debut_italique,
    243                 /* 10 */        $fin_italique,
    244                 /* 13 */        "&harr;",
    245                 /* 14 */        "&rarr;",
    246                 /* 15 */        "&larr;",
    247                 /* 16 */        "&hArr;",
    248                 /* 17 */        "&rArr;",
    249                 /* 18 */        "&lArr;",
    250                 /* 19 */        "&copy;",
    251                 /* 20 */        "&reg;",
    252                 /* 21 */        "&trade;",
    253                 /* 22 */        "&hellip;",
    254                 /* 23 */        "@@acro@@$2@@$1@@acro@@"
    255         );
    256256
    257257        $texte = preg_replace($chercher_raccourcis, $remplacer_raccourcis, $texte);
     
    262262        */
    263263        if (!preg_match(',.(\|([[:space:]]*{{[^}]+}}[[:space:]]*|<))+.,sS', $texte)) {
    264                 $chercher_raccourcis = array(
     264                $chercher_raccourcisg = array(
    265265                        /* 7 */         "/(?<![{])[{][{](?![{])/S", // Expressions complexes car on n'a pas encore traite les titres ici
    266266                        /* 8 */         "/(?<![}])[}][}](?![}])/S" // En gros, verification qu'on n'est pas a l'interieur d'un titre
    267267                );
    268                 $remplacer_raccourcis = array(
     268                $remplacer_raccourcisg = array(
    269269                        /* 7 */         "<strong class=\"spip\">",
    270270                        /* 8 */         "</strong>"
    271271                );
    272                 $texte = preg_replace($chercher_raccourcis, $remplacer_raccourcis, $texte);
     272                $texte = preg_replace($chercher_raccourcisg, $remplacer_raccourcisg, $texte);
    273273        }
    274274        return $texte;
     
    276276
    277277function TypoEnluminee_post_typo($texte) {
    278         if ($GLOBALS['barre_typo_pas_de_fork_typo'] === true)
     278        static $cherche1;
     279        static $remplace1;
     280        if (!isset($GLOBALS['barre_typo_pas_de_fork_typo']) OR $GLOBALS['barre_typo_pas_de_fork_typo'] === true)
    279281                return $texte;
    280         $cherche1 = array(
    281                 /* 21 */        "/\[\*\*/S",
    282                 /* 21b */       "/\[\*/S",
    283                 /* 22 */        "/\*\]/S",
    284                 /* 23 */        "/\[\^/S",
    285                 /* 24 */        "/\^\]/S",
    286         );
    287 
    288         $remplace1 = array(
    289                 /* 21 */        "<strong class=\"caractencadre2-spip spip\">",
    290                 /* 21b */       "<strong class=\"caractencadre-spip spip\">",
    291                 /* 22 */        "</strong>",
    292                 /* 23 */        "<sup>",
    293                 /* 24 */        "</sup>",
    294                 /* 25 */        "<sub>",
    295                 /* 26 */        "</sub>",
    296         );
     282        if (!$cherche1) {
     283                $cherche1 = array(
     284                        /* 21 */        "/\[\*\*/S",
     285                        /* 21b */       "/\[\*/S",
     286                        /* 22 */        "/\*\]/S",
     287                        /* 23 */        "/\[\^/S",
     288                        /* 24 */        "/\^\]/S",
     289                );
     290       
     291                $remplace1 = array(
     292                        /* 21 */        "<strong class=\"caractencadre2-spip spip\">",
     293                        /* 21b */       "<strong class=\"caractencadre-spip spip\">",
     294                        /* 22 */        "</strong>",
     295                        /* 23 */        "<sup>",
     296                        /* 24 */        "</sup>",
     297                        /* 25 */        "<sub>",
     298                        /* 26 */        "</sub>",
     299                );
     300        }
    297301        $texte = preg_replace($cherche1, $remplace1, $texte);
    298302        // Acronymes
Note: See TracChangeset for help on using the changeset viewer.