Changeset 79273 in spip-zone


Ignore:
Timestamp:
Dec 10, 2013, 7:35:51 PM (6 years ago)
Author:
kent1@…
Message:

On corrige d'autres trucs html dans le texte

Location:
_plugins_/wp2spip
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/wp2spip/action/wp2spip_html.php

    r78689 r79273  
    1111/**
    1212 * Fonction de post clean du HTML dans les articles
    13  *
    1413 */
    1514function action_wp2spip_html_dist(){
     
    2019                die('erreur');
    2120       
     21        if($arg == 'dls'){
     22                $modifies = array();
     23               
     24                /**
     25                 * On cherche toute présence de <div style="text-align: center;"><dl id="attachment_1173"> <dt>...<imgXXX>.... </dt> <dd>....</dd> </dl></div> dans les textes des articles
     26                 */
     27                $articles = sql_select('texte,id_article','spip_articles',"texte REGEXP '<div.*<dl.*<dt.*</dt>.*</dl>.*</div>'");
     28                spip_log(sql_count($articles).' articles trouvés ayant des <div.*<dl.*<dt.*</dt>.*</dl>.*</div>');
     29                $pattern = "/<div(.*?)>.*?<dl.*?id=\"attachment_.*?<dt.*?>(.*?<(img|doc)(\d*).*?)<\/dt>(.*?<dd.*?>(.*)<\/dd>)?.*?<\/div>/";
     30                while($article = sql_fetch($articles)){
     31                        $texte = $article['texte'];
     32                        preg_match_all("$pattern",$texte,$matches);
     33                        if(count($matches)>0){
     34                                foreach($matches[0] as $i => $text){
     35                                        $id_document = $matches[4][$i];
     36                                        /**
     37                                         * Si on a une description, on la met en titre du document SPIP
     38                                         */
     39                                        if(isset($matches[6][$i]) && strlen($matches[6][$i]) > 0){
     40                                                $titre_document = $matches[6][$i];
     41                                                sql_updateq('spip_documents',array('titre'=>$titre_document),'id_document='.intval($id_document));
     42                                        }
     43                                       
     44                                        /**
     45                                         * On regarde si on trouve un align à passer au modèle
     46                                         */
     47                                        $align = false;
     48                                        if(preg_match('/(text-align|float)\s?:\s?(center|right|left)/',$matches[1][$i],$align))
     49                                                $align = $align[2];
     50                                        else if(preg_match('/mceIE(center|right|left)/',$matches[1][$i],$align))
     51                                                $align = $align[1];
     52                                               
     53                                        if($align){
     54                                                /**
     55                                                 * Préparation du modèle
     56                                                 */
     57                                                $modele = '<'.  $matches[3][$i].$matches[4][$i];
     58                                                $search = $modele.'.*?>';
     59                                                /**
     60                                                 * Ajout de l'alignement
     61                                                 */
     62                                                $modele .= '|'.$align.'>';
     63                                                /**
     64                                                 * Remplacement de l'ancien modèle par le nouveau avec l'alignement
     65                                                 */
     66                                                $matches[2][$i] = preg_replace("/$search/",$modele, $matches[2][$i]);
     67                                                spip_log($matches[2][$i]);
     68                                        }
     69                                       
     70                                        /**
     71                                         * Remplacement de l'ensemble par le contenu textuel
     72                                         */
     73                                        $texte = str_replace($matches[0][$i],$matches[2][$i],$texte);
     74                                }
     75                        }
     76                        /**
     77                         * Le texte est modifié ? on le met à jour en base de donnée
     78                         */
     79                        if($texte != $article['texte']){
     80                                sql_updateq('spip_articles',array('texte'=>$texte),'id_article='.intval($article['id_article']));
     81                                $modifies[] = $article['id_article'];
     82                        }
     83                }
     84                if(count($modifies) > 1){
     85                        spip_log(count($modifies).' articles modifiés après correction des <div.*<dl.*<dt.*</dt>.*</dl>.*</div>','wp2spip');
     86                        spip_log($modifies,'wp2spip');
     87                }
     88        }
    2289        if($arg == 'catlist'){
    2390                $modifies = array();
     
    34101                $articles = sql_select('texte,id_article','spip_articles',"texte REGEXP '\\\[catlist .*\\\]'");
    35102                spip_log(sql_count($articles).' articles trouvés ayant des [catlist ...]');
    36                
     103
    37104                /**
    38105                 * Tableau des attributs possibles
     
    62129                         */
    63130                        preg_match_all("|\[catlist .*?\]|",$texte,$matches);
    64                         if(is_array($matches)){
     131                        if(count($matches) > 0){
    65132                                /**
    66133                                 * On cherche les attributs spécifiques
     
    136203                }
    137204        }
     205
     206        if($arg == 'spans'){
     207                /**
     208                 * On va tenter d'enlever le maximum de <span>...</span> modifiant le style de texte
     209                 * On ne laisse que les span avec underline
     210                 * On remplace les <span lang="...">.*</span> par <multi>[lang].*</multi>
     211                 *
     212                 * On utilise la librairie simple_html_dom (http://simplehtmldom.sourceforge.net/)
     213                 * pour parser le html
     214                 */
     215                $modifies = array();
     216                /*$articles = sql_select('*','spip_articles','texte REGEXP "<span(.*)?>(.*)?</span>" AND id_article=386');*/
     217                $articles = sql_select('*','spip_articles','texte REGEXP "<span.*>.*</span>"');
     218                include_spip('inc/simple_html_dom');
     219                while($article = sql_fetch($articles)){
     220                        $texte = trim($article['texte']);
     221                        $maxretry = 10;
     222                        //spip_log($texte);
     223                        while($maxretry != 0){
     224                                $retry = false;
     225                                //spip_log('On passe');
     226                                $maxretry--;
     227                                /**
     228                                 * On charge le dom en n'enlevant pas les \n \r\n etc... (5ème argument)
     229                                 * Pour que str_replace remplace bien ce que l'on souhaite
     230                                 */
     231                                $dom = str_get_html($texte, true, false, DEFAULT_TARGET_CHARSET, false);
     232                                foreach($dom->find('span') as $element){
     233                                        spip_log('on a des spans?');
     234                                        if(!preg_match('|span|',$element->innertext,$match_spans)){
     235                                                if(!preg_match('|underline|',$element->outertext,$match_underline) && !preg_match('|lang=[\'"](.*?)[\'"]|',$element->outertext,$match_lang)){
     236                                                        spip_log('On remplace "'.$element->outertext.'" par "'.$element->innertext.'"');
     237                                                        $texte = str_replace($element->outertext,$element->innertext,$texte);
     238                                                }
     239                                                if($match_underline){
     240                                                        spip_log('On match underline :');
     241                                                        spip_log($match_underline);
     242                                                }
     243                                                if($match_lang){
     244                                                        if(strlen(trim($element->innertext)) == 0){
     245                                                                spip_log('On match lang, mais pas de texte on remplace '.$element->outertext.' par "'.$element->innertext.'"');
     246                                                                $texte = str_replace($element->outertext,$element->innertext,$texte);
     247                                                        }
     248                                                        elseif(strlen($match_lang[1])>1){
     249                                                                $langue = explode('-',strtolower($match_lang[1]));
     250                                                                $langue = $langue[0];
     251                                                                if(substr($element->innertext,0,9+strlen($langue)) != '<multi>['.$langue.']'){
     252                                                                        spip_log('On match lang, on remplace '.$element->outertext.' par <multi>['.$langue.']'.$element->innertext.'</multi>');
     253                                                                        $texte = str_replace($element->outertext,'<multi>['.$langue.']'.$element->innertext.'</multi>',$texte);
     254                                                                }else{
     255                                                                        $texte = str_replace($element->outertext,$element->innertext,$texte);
     256                                                                        spip_log('On était déja dans un <multi>['.$langue.']');
     257                                                                }
     258                                                        }
     259                                                }
     260                                        }else{
     261                                                spip_log('On match span encore on va refaire un tour');
     262                                                $retry = true;
     263                                        }
     264                                }
     265                                if(!$retry){
     266                                        break;
     267                                }
     268                        }
     269                        //spip_log($texte);
     270                        if($texte != $article['texte']){
     271                                sql_updateq('spip_articles',array('texte'=>$texte),'id_article='.intval($article['id_article']));
     272                                $modifies[] = $article['id_article'];
     273                        }
     274                }
     275                spip_log(count($modifies).' articles modifiés après correction des spans','wp2spip');
     276                spip_log($modifies,'wp2spip');
     277        }
     278
     279        if($arg == 'font'){
     280                $modifies = array();
     281                // On va enlever les gras, italiques et intertitres vides {} { } {{}} etc...
     282                $articles = sql_select('*','spip_articles','texte REGEXP "<font.*>.*</font>"');
     283                include_spip('inc/simple_html_dom');
     284                while($article = sql_fetch($articles)){
     285                        $texte = trim($article['texte']);
     286                        $maxretry = 10;
     287                        //spip_log($texte);
     288                        while($maxretry != 0){
     289                                $retry = false;
     290                                //spip_log('On passe');
     291                                $maxretry--;
     292                                /**
     293                                 * On charge le dom en n'enlevant pas les \n \r\n etc... (5ème argument)
     294                                 * Pour que str_replace remplace bien ce que l'on souhaite
     295                                 */
     296                                $dom = str_get_html($texte, true, false, DEFAULT_TARGET_CHARSET, false);
     297                                foreach($dom->find('font') as $element){
     298                                        spip_log('on a des font?');
     299                                        if(!preg_match('|font|',$element->innertext,$match_spans)){
     300                                                spip_log('On remplace "'.$element->outertext.'" par "'.$element->innertext.'"');
     301                                                $texte = str_replace($element->outertext,$element->innertext,$texte);
     302                                        }else{
     303                                                spip_log('On match font encore on va refaire un tour');
     304                                                $retry = true;
     305                                        }
     306                                }
     307                                if(!$retry){
     308                                        break;
     309                                }
     310                        }
     311                        //spip_log($texte);
     312                        if($texte != $article['texte']){
     313                                sql_updateq('spip_articles',array('texte'=>$texte),'id_article='.intval($article['id_article']));
     314                                $modifies[] = $article['id_article'];
     315                        }
     316                }
     317                spip_log(count($modifies).' articles modifiés après correction des font','wp2spip');
     318                spip_log($modifies,'wp2spip');
     319        }
     320
     321        if($arg == 'accolades_vides'){
     322                $modifies = array();
     323                // On va enlever les gras, italiques et intertitres vides {} { } {{}} etc...
     324                $articles = sql_select('*','spip_articles','texte REGEXP "{+[[:space:]]*}+" OR texte REGEXP "{+ +}+"');
     325                while($article = sql_fetch($articles)){
     326                        $texte = $article['texte'];
     327                        $pattern = "\{{1,4}[\s ]*?\}{1,4}";
     328                        preg_match_all("|$pattern|",$texte,$matches);
     329                        if(is_array($matches)){
     330                                $matches[0] = array_unique($matches[0]);
     331                                spip_log($matches);
     332                                foreach($matches[0] as $textevide){
     333                                        $texte = str_replace($textevide,'',$texte);
     334                                }
     335                                if($texte != $article['texte']){
     336                                        sql_updateq('spip_articles',array('texte'=>trim($texte)),'id_article='.intval($article['id_article']));
     337                                        $modifies[] = $article['id_article'];
     338                                }
     339                        }
     340                }
     341                spip_log(count($modifies).' articles modifiés après correction des accolades_vides','wp2spip');
     342                spip_log($modifies,'wp2spip');
     343        }
     344       
     345        if($arg == 'sauts'){
     346               
     347                // On va enlever \n\n\n
     348                $articles = sql_select('*','spip_articles','texte REGEXP "\n\n\n+"');
     349                while($article = sql_fetch($articles)){
     350                        $texte = $article['texte'];
     351                        $texte = preg_replace("/[\r\n]{3,}/","\n\n",$texte);
     352                        if($texte != $article['texte']){
     353                                sql_updateq('spip_articles',array('texte'=>$texte),'id_article='.intval($article['id_article']));
     354                                $modifies[] = $article['id_article'];
     355                        }
     356                }
     357                spip_log(count($modifies).' articles modifiés après correction des \n\n\n','wp2spip');
     358                spip_log($modifies,'wp2spip');
     359        }
    138360}
    139361?>
  • _plugins_/wp2spip/action/wp2spip_liens_internes.php

    r78684 r79273  
    4141                $texte = $article['texte'];
    4242                preg_match_all("|->\.?\.?\/\?page_id=(\d{1,}).*?]|",$texte,$matches);
    43                 spip_log('recupération de ../?page_id ou /?page_id');
    44                 spip_log($matches);
    4543                foreach($matches[1] as $i=>$id){
    4644                        if($id_article = sql_getfetsel('id_article','spip_articles','id_article='.intval($id)))
     
    5553                }
    5654        }
    57         spip_log(count($modifies).' articles modifiés après correction des ../?page_id=... et /?page_id=','wp2spip');
    58         spip_log($modifies,'wp2spip');
     55        if(count($modifies) > 0){
     56                spip_log(count($modifies).' articles modifiés après correction des ../?page_id=... et /?page_id=','wp2spip');
     57                spip_log($modifies,'wp2spip');
     58        }
    5959
    6060        $modifies = array();
     
    7777                }
    7878        }
    79         spip_log(count($modifies).' articles modifiés après correction des ->?page_id=...','wp2spip');
    80         spip_log($modifies,'wp2spip');
     79        if(count($modifies) > 0){
     80                spip_log(count($modifies).' articles modifiés après correction des ->?page_id=...','wp2spip');
     81                spip_log($modifies,'wp2spip');
     82        }
    8183
    8284        $modifies = array();
    83         // On va remplacer les url/?page_id=XX par ->artXX
    84         $articles = sql_select('*','spip_articles','texte LIKE "%->'.$url_wordpress.'/?page_id=%"');
     85        // On va remplacer les url/?page_id=XX ou url/?p=XX par ->artXX
     86        $articles = sql_select('*','spip_articles','texte REGEXP "->.*'.$url_wordpress.'/\\\?pa*g*e*_*i*d*=\d*"');
     87        spip_log(sql_count($articles).' articles listés');
    8588        while($article = sql_fetch($articles)){
    8689                $texte = $article['texte'];
    87                 $pattern = "->".$url_wordpress."\/\?page_id=(\d{1,}).*?]";
     90                $pattern = "->\s?".$url_wordpress."\/\?pa?g?e?_?i?d?=(\d{1,}).*?]";
    8891                preg_match_all("|$pattern|",$texte,$matches);
    8992                if(is_array($matches)){
    9093                        foreach($matches[1] as $i=>$id){
    91                                 if($id_article = sql_getfetsel('id_article','spip_articles','id_article='.intval($id)))                                 
     94                                if($id_article = sql_getfetsel('id_article','spip_articles','id_article='.intval($id))){
    9295                                        $texte = str_replace($matches[0][$i],'->art'.$id.']',$texte);
     96                                        spip_log('On remplace '.$matches[0][$i].' par ->art'.$id.']');
     97                                }
    9398                                else
    9499                                        $articles_inexistants[] = $id;
     
    100105                }
    101106        }
    102         spip_log(count($modifies).' articles modifiés après correction des '.$url_wordpress.'/?page_id=...','wp2spip');
    103         spip_log($modifies,'wp2spip');
    104        
    105         $modifies = array();
    106         // On va remplacer les url/?p=XX par ->artXX
    107         $articles = sql_select('*','spip_articles','texte LIKE "%->'.$url_wordpress.'/?p=%"');
    108         while($article = sql_fetch($articles)){
    109                 $texte = $article['texte'];
    110                 $pattern = "->".preg_quote($url_wordpress)."\/\?p=(\d{1,}).*?]";
    111                 preg_match_all("|$pattern|",$texte,$matches);
    112                 if(is_array($matches)){
    113                         spip_log($matches);
    114                         foreach($matches[1] as $i=>$id){
    115                                 if($id_article = sql_getfetsel('id_article','spip_articles','id_article='.intval($id)))
    116                                         $texte = str_replace($matches[0][$i],'->art'.$id.']',$texte);
    117                                 else
    118                                         $articles_inexistants[] = $id;
    119                         }
    120                         if($texte != $article['texte']){
    121                                 sql_updateq('spip_articles',array('texte'=>$texte),'id_article='.intval($article['id_article']));
    122                                 $modifies[] = $article['id_article'];
    123                         }
    124                 }
     107        if(count($modifies) > 0){
     108                spip_log(count($modifies).' articles modifiés après correction des '.$url_wordpress.'/?page_id=...','wp2spip');
     109                spip_log($modifies,'wp2spip');
    125110        }
    126         spip_log(count($modifies).' articles modifiés après correction des '.$url_wordpress.'/?p=...','wp2spip');
    127         spip_log($modifies,'wp2spip');
    128        
     111
    129112        $modifies = array();
    130113        // On va remplacer les ../?p=XX par ->artXX
     
    138121                                if($id_article = sql_getfetsel('id_article','spip_articles','id_article='.intval($id))){
    139122                                        $texte = str_replace($matches[0][$i],'->art'.$id.']',$texte);
    140                                         spip_log("On remplace ->../?p=$id] par ->art$id]");
     123                                        spip_log("On remplace ".$matches[0][$i]." par ->art$id]");
    141124                                }else
    142125                                        $articles_inexistants[] = $id;
     
    148131                }
    149132        }
    150         spip_log(count($modifies).' articles modifiés après correction des '.$url_wordpress.'/?p=...','wp2spip');
    151         spip_log($modifies,'wp2spip');
     133        if(count($modifies) > 0){
     134                spip_log(count($modifies).' articles modifiés après correction des '.$url_wordpress.'/?p=...','wp2spip');
     135                spip_log($modifies,'wp2spip');
     136        }
    152137       
    153138        $modifies = array();
     
    162147                                if($id_article = sql_getfetsel('id_article','spip_articles','id_article='.intval($id))){
    163148                                        $texte = str_replace($matches[0][$i],'->art'.$id.']',$texte);
    164                                         spip_log("On remplace ->/?p=$id] par ->art$id]");
     149                                        spip_log("On remplace ".$matches[0][$i]." par ->art$id]");
    165150                                }
    166151                        }
     
    171156                }
    172157        }
    173         spip_log(count($modifies).' articles modifiés après correction des '.$url_wordpress.'/?p=...','wp2spip');
    174         spip_log($modifies,'wp2spip');
    175         $articles_inexistants =  array_unique($articles_inexistants);
    176         spip_log('Les articles suivants n existent pas :');
    177         spip_log($articles_inexistants);
     158        if(count($modifies) > 0){
     159                spip_log(count($modifies).' articles modifiés après correction des '.$url_wordpress.'/?p=...','wp2spip');
     160                spip_log($modifies,'wp2spip');
     161        }
     162       
     163        include_spip('inc/meta');
     164        if(count($articles_inexistants)>0){
     165                $articles_inexistants =  array_unique($articles_inexistants);
     166                ecrire_meta('wp_posts_disparus',serialize($articles_inexistants));
     167                spip_log('Les articles suivants n existent pas :');
     168                spip_log($articles_inexistants);
     169        }else{
     170                effacer_meta('wp_posts_disparus');
     171        }
    178172}
    179173?>
  • _plugins_/wp2spip/plugin.xml

    r78680 r79273  
    3939        <bouton id="wp2spip" parent="configuration">
    4040                <icone>wp2spip.png</icone>
    41                 <titre>Migration depuis Wordpress</titre>
     41                <titre>wp2spip:titre_page_migration</titre>
     42        </bouton>
     43        <bouton id="wp2spip_fin" parent="configuration">
     44                <icone>wp2spip.png</icone>
     45                <titre>wp2spip:titre_post_import</titre>
    4246        </bouton>
    4347</plugin>
  • _plugins_/wp2spip/prive/exec/wp2spip_fin.html

    r78688 r79273  
    2929</B_articles_documents>
    3030
    31 <B_articles_liens>
    3231<div class="cadre cadre-r">
    3332        <div class="cadre_padding">
    34                 <h2>#GRAND_TOTAL (../?page_id=%)</h2>
    35                 <ul class="liste-items">
    36                         <BOUCLE_articles_liens(ARTICLES){texte LIKE %->../?page_id=%}{pagination 20}>
    37                         <li class="item"><a href="[(#ID_ARTICLE|generer_url_entite{article})]">#TITRE</a></li>
    38                         </BOUCLE_articles_liens>
    39                 </ul>
    40                 <p class="boutons">[(#BOUTON_ACTION{<:wp2spip:bouton_reparer_liens_internes:>,#URL_ACTION_AUTEUR{wp2spip_liens_internes,1,#SELF}})]</p>
     33
     34<B_inexistants>
     35        <div class="error">
     36                Les posts suivants n'existent pas ou plus :
     37        <BOUCLE_inexistants(POUR){tableau #CONFIG{wp_posts_disparus}}{', '}>#VALEUR</BOUCLE_inexistants>
    4138        </div>
    42 </div>
     39</B_inexistants>
     40
     41<B_articles_liens>
     42        <h2>#GRAND_TOTAL (../?page_id=%)</h2>
     43        <ul class="liste-items">
     44                <BOUCLE_articles_liens(ARTICLES){texte LIKE %->../?page_id=%}{pagination 20}>
     45                <li class="item"><a href="[(#ID_ARTICLE|generer_url_entite{article})]">#TITRE</a></li>
     46                </BOUCLE_articles_liens>
     47        </ul>
     48        <p class="boutons">[(#BOUTON_ACTION{<:wp2spip:bouton_reparer_liens_internes:>,#URL_ACTION_AUTEUR{wp2spip_liens_internes,1,#SELF}})]</p>
    4349</B_articles_liens>
    4450
    4551<B_articles_liens_page_id>
    46 <div class="cadre cadre-r">
    47         <div class="cadre_padding">
    48                 <h2>#GRAND_TOTAL (/?page_id=%)</h2>
    49                 <ul class="liste-items">
    50                         <BOUCLE_articles_liens_page_id(ARTICLES){texte LIKE %->/?page_id=%}{pagination 20}>
    51                         <li class="item"><a href="[(#ID_ARTICLE|generer_url_entite{article})]">#TITRE</a></li>
    52                         </BOUCLE_articles_liens_page_id>
    53                 </ul>
    54                 <p class="boutons">[(#BOUTON_ACTION{<:wp2spip:bouton_reparer_liens_internes:>,#URL_ACTION_AUTEUR{wp2spip_liens_internes,1,#SELF}})]</p>
    55         </div>
    56 </div>
     52        <h2>#GRAND_TOTAL (/?page_id=%)</h2>
     53        <ul class="liste-items">
     54                <BOUCLE_articles_liens_page_id(ARTICLES){texte LIKE %->/?page_id=%}{pagination 20}>
     55                <li class="item"><a href="[(#ID_ARTICLE|generer_url_entite{article})]">#TITRE</a></li>
     56                </BOUCLE_articles_liens_page_id>
     57        </ul>
     58        <p class="boutons">[(#BOUTON_ACTION{<:wp2spip:bouton_reparer_liens_internes:>,#URL_ACTION_AUTEUR{wp2spip_liens_internes,1,#SELF}})]</p>
    5759</B_articles_liens_page_id>
    5860
    5961<B_articles_liens_url_page_id>
    60 <div class="cadre cadre-r">
    61         <div class="cadre_padding">
    62                 <h2>#GRAND_TOTAL ([(#GET{url_wordpress})]/?page_id=%)</h2>
    63                 <ul class="liste-items">
    64                         <BOUCLE_articles_liens_url_page_id(ARTICLES){texte LIKE %->#GET{url_wordpress}/?page_id=%}{pagination 20}>
    65                                 <li class="item"><a href="[(#ID_ARTICLE|generer_url_entite{article})]">#TITRE</a></li>
    66                         </BOUCLE_articles_liens_url_page_id>
    67                 </ul>
    68                 <p class="boutons">[(#BOUTON_ACTION{<:wp2spip:bouton_reparer_liens_internes:>,#URL_ACTION_AUTEUR{wp2spip_liens_internes,1,#SELF}})]</p>
    69         </div>
    70 </div>
     62        <h2>#GRAND_TOTAL ([(#GET{url_wordpress})]/?page_id=%)</h2>
     63        <ul class="liste-items">
     64                <BOUCLE_articles_liens_url_page_id(ARTICLES){texte == ->[.]*#GET{url_wordpress}/\?pa*g*e*_*i*d*=\d*}{pagination 20}>
     65                        <li class="item"><a href="[(#ID_ARTICLE|generer_url_entite{article})]">#TITRE</a></li>
     66                </BOUCLE_articles_liens_url_page_id>
     67        </ul>
     68        <p class="boutons">[(#BOUTON_ACTION{<:wp2spip:bouton_reparer_liens_internes:>,#URL_ACTION_AUTEUR{wp2spip_liens_internes,1,#SELF}})]</p>
    7169</B_articles_liens_url_page_id>
    7270
    7371<B_articles_liens_p_rel>
    74 <div class="cadre cadre-r">
    75         <div class="cadre_padding">
    76                 <h2>#GRAND_TOTAL (/?p=XX)</h2>
    77                 <ul class="liste-items">
    78                         <BOUCLE_articles_liens_p_rel(ARTICLES){texte LIKE %->/?p=%}{pagination 20}>
    79                         <li class="item"><a href="[(#ID_ARTICLE|generer_url_entite{article})]">#TITRE</a></li>
    80                         </BOUCLE_articles_liens_p_rel>
    81                 </ul>
    82                 <p class="boutons">[(#BOUTON_ACTION{<:wp2spip:bouton_reparer_liens_internes:>,#URL_ACTION_AUTEUR{wp2spip_liens_internes,1,#SELF}})]</p>
    83         </div>
    84 </div>
     72        <h2>#GRAND_TOTAL (/?p=XX)</h2>
     73        <ul class="liste-items">
     74                <BOUCLE_articles_liens_p_rel(ARTICLES){texte LIKE %->/?p=%}{pagination 20}>
     75                <li class="item"><a href="[(#ID_ARTICLE|generer_url_entite{article})]">#TITRE</a></li>
     76                </BOUCLE_articles_liens_p_rel>
     77        </ul>
     78        <p class="boutons">[(#BOUTON_ACTION{<:wp2spip:bouton_reparer_liens_internes:>,#URL_ACTION_AUTEUR{wp2spip_liens_internes,1,#SELF}})]</p>
    8579</B_articles_liens_p_rel>
    8680
    8781<B_articles_liens_p>
    88 <div class="cadre cadre-r">
    89         <div class="cadre_padding">
    90                 <h2>#GRAND_TOTAL (../?p=XX)</h2>
    91                 <ul class="liste-items">
    92                         <BOUCLE_articles_liens_p(ARTICLES){texte LIKE %->../?p=%}{pagination 20}>
    93                         <li class="item"><a href="#URL_ARTICLE">#TITRE</a></li>
    94                         </BOUCLE_articles_liens_p>
    95                 </ul>
    96                 <p class="boutons">[(#BOUTON_ACTION{<:wp2spip:bouton_reparer_liens_internes:>,#URL_ACTION_AUTEUR{wp2spip_liens_internes,1,#SELF}})]</p>
    97         </div>
    98 </div>
     82        <h2>#GRAND_TOTAL (../?p=XX)</h2>
     83        <ul class="liste-items">
     84                <BOUCLE_articles_liens_p(ARTICLES){texte LIKE %->../?p=%}{pagination 20}>
     85                <li class="item"><a href="#URL_ARTICLE">#TITRE</a></li>
     86                </BOUCLE_articles_liens_p>
     87        </ul>
     88        <p class="boutons">[(#BOUTON_ACTION{<:wp2spip:bouton_reparer_liens_internes:>,#URL_ACTION_AUTEUR{wp2spip_liens_internes,1,#SELF}})]</p>
    9989</B_articles_liens_p>
    10090
    10191<B_articles_catlist>
    102 <div class="cadre cadre-r">
    103         <div class="cadre_padding">
    104                 <h2>#GRAND_TOTAL ([catlist ...])</h2>
    105                 <ul class="liste-items">
    106                         <BOUCLE_articles_catlist(ARTICLES){texte == \\[catlist.*\\]}{pagination 20}>
    107                         <li class="item"><a href="#URL_ARTICLE">#TITRE</a></li>
    108                         </BOUCLE_articles_catlist>
    109                 </ul>
    110                 <p class="boutons">[(#BOUTON_ACTION{<:wp2spip:bouton_reparer_catlist:>,#URL_ACTION_AUTEUR{wp2spip_html,catlist,#SELF}})]</p>
    111         </div>
     92        <h2>#GRAND_TOTAL ([catlist ...])</h2>
     93        <ul class="liste-items">
     94                <BOUCLE_articles_catlist(ARTICLES){texte == \\[catlist.*\\]}{pagination 20}>
     95                <li class="item"><a href="#URL_ARTICLE">#TITRE</a></li>
     96                </BOUCLE_articles_catlist>
     97        </ul>
     98        <p class="boutons">[(#BOUTON_ACTION{<:wp2spip:bouton_reparer_catlist:>,#URL_ACTION_AUTEUR{wp2spip_html,catlist,#SELF}})]</p>
     99</B_articles_catlist>
     100
     101<B_articles_dl>
     102        <h2>#GRAND_TOTAL (div.*dl...)</h2>
     103        <ul class="liste-items">
     104                <BOUCLE_articles_dl(ARTICLES){texte ==div.*dl.*dt.*/dt.*/dl.*/div}{pagination 20}>
     105                <li class="item"><a href="#URL_ARTICLE">#TITRE</a></li>
     106                </BOUCLE_articles_dl>
     107        </ul>
     108        <p class="boutons">[(#BOUTON_ACTION{<:wp2spip:bouton_reparer_dl:>,#URL_ACTION_AUTEUR{wp2spip_html,dls,#SELF}})]</p>
     109</B_articles_dl>
     110
     111<B_articles_spans>
     112        <h2>#GRAND_TOTAL (span.*/span)</h2>
     113        <ul class="liste-items">
     114                <BOUCLE_articles_spans(ARTICLES){texte ==span.*/span}{pagination 20}>
     115                <li class="item"><a href="#URL_ARTICLE">#TITRE</a></li>
     116                </BOUCLE_articles_spans>
     117        </ul>
     118        <p class="boutons">[(#BOUTON_ACTION{<:wp2spip:bouton_reparer_span:>,#URL_ACTION_AUTEUR{wp2spip_html,spans,#SELF}})]</p>
     119</B_articles_spans>
     120
     121<B_articles_font>
     122        <h2>#GRAND_TOTAL (font.*/font)</h2>
     123        <ul class="liste-items">
     124                <BOUCLE_articles_font(ARTICLES){texte ==font.*/font}{pagination 20}>
     125                <li class="item"><a href="#URL_ARTICLE">#TITRE</a></li>
     126                </BOUCLE_articles_font>
     127        </ul>
     128        <p class="boutons">[(#BOUTON_ACTION{<:wp2spip:bouton_reparer_font:>,#URL_ACTION_AUTEUR{wp2spip_html,font,#SELF}})]</p>
     129</B_articles_font>
     130
     131<B_articles_accolades>
     132        <h2>#GRAND_TOTAL (accolades vides)</h2>
     133        <ul class="liste-items">
     134                <BOUCLE_articles_accolades(ARTICLES){texte == \{+ +\}+}{pagination 20}>
     135                <li class="item"><a href="#URL_ARTICLE">#TITRE</a></li>
     136                </BOUCLE_articles_accolades>
     137        </ul>
     138        <p class="boutons">[(#BOUTON_ACTION{<:wp2spip:bouton_reparer_accolades:>,#URL_ACTION_AUTEUR{wp2spip_html,accolades_vides,#SELF}})]</p>
     139</B_articles_accolades>
     140
     141<B_articles_sauts>
     142        <h2>#GRAND_TOTAL (sauts de ligne vides)</h2>
     143        <ul class="liste-items">
     144                <BOUCLE_articles_sauts(ARTICLES){texte == \n\n\n+}{pagination 20}>
     145                <li class="item"><a href="#URL_ARTICLE">#TITRE</a></li>
     146                </BOUCLE_articles_sauts>
     147        </ul>
     148        <p class="boutons">[(#BOUTON_ACTION{<:wp2spip:bouton_reparer_sauts:>,#URL_ACTION_AUTEUR{wp2spip_html,sauts,#SELF}})]</p>
     149</B_articles_sauts>
    112150</div>
    113 </B_articles_catlist>
Note: See TracChangeset for help on using the changeset viewer.