Changeset 79273 in spip-zone
- Timestamp:
- Dec 10, 2013, 7:35:51 PM (7 years ago)
- Location:
- _plugins_/wp2spip
- Files:
-
- 1 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/wp2spip/action/wp2spip_html.php
r78689 r79273 11 11 /** 12 12 * Fonction de post clean du HTML dans les articles 13 *14 13 */ 15 14 function action_wp2spip_html_dist(){ … … 20 19 die('erreur'); 21 20 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 } 22 89 if($arg == 'catlist'){ 23 90 $modifies = array(); … … 34 101 $articles = sql_select('texte,id_article','spip_articles',"texte REGEXP '\\\[catlist .*\\\]'"); 35 102 spip_log(sql_count($articles).' articles trouvés ayant des [catlist ...]'); 36 103 37 104 /** 38 105 * Tableau des attributs possibles … … 62 129 */ 63 130 preg_match_all("|\[catlist .*?\]|",$texte,$matches); 64 if( is_array($matches)){131 if(count($matches) > 0){ 65 132 /** 66 133 * On cherche les attributs spécifiques … … 136 203 } 137 204 } 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 } 138 360 } 139 361 ?> -
_plugins_/wp2spip/action/wp2spip_liens_internes.php
r78684 r79273 41 41 $texte = $article['texte']; 42 42 preg_match_all("|->\.?\.?\/\?page_id=(\d{1,}).*?]|",$texte,$matches); 43 spip_log('recupération de ../?page_id ou /?page_id');44 spip_log($matches);45 43 foreach($matches[1] as $i=>$id){ 46 44 if($id_article = sql_getfetsel('id_article','spip_articles','id_article='.intval($id))) … … 55 53 } 56 54 } 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 } 59 59 60 60 $modifies = array(); … … 77 77 } 78 78 } 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 } 81 83 82 84 $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'); 85 88 while($article = sql_fetch($articles)){ 86 89 $texte = $article['texte']; 87 $pattern = "-> ".$url_wordpress."\/\?page_id=(\d{1,}).*?]";90 $pattern = "->\s?".$url_wordpress."\/\?pa?g?e?_?i?d?=(\d{1,}).*?]"; 88 91 preg_match_all("|$pattern|",$texte,$matches); 89 92 if(is_array($matches)){ 90 93 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))){ 92 95 $texte = str_replace($matches[0][$i],'->art'.$id.']',$texte); 96 spip_log('On remplace '.$matches[0][$i].' par ->art'.$id.']'); 97 } 93 98 else 94 99 $articles_inexistants[] = $id; … … 100 105 } 101 106 } 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'); 125 110 } 126 spip_log(count($modifies).' articles modifiés après correction des '.$url_wordpress.'/?p=...','wp2spip'); 127 spip_log($modifies,'wp2spip'); 128 111 129 112 $modifies = array(); 130 113 // On va remplacer les ../?p=XX par ->artXX … … 138 121 if($id_article = sql_getfetsel('id_article','spip_articles','id_article='.intval($id))){ 139 122 $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]"); 141 124 }else 142 125 $articles_inexistants[] = $id; … … 148 131 } 149 132 } 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 } 152 137 153 138 $modifies = array(); … … 162 147 if($id_article = sql_getfetsel('id_article','spip_articles','id_article='.intval($id))){ 163 148 $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]"); 165 150 } 166 151 } … … 171 156 } 172 157 } 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 } 178 172 } 179 173 ?> -
_plugins_/wp2spip/plugin.xml
r78680 r79273 39 39 <bouton id="wp2spip" parent="configuration"> 40 40 <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> 42 46 </bouton> 43 47 </plugin> -
_plugins_/wp2spip/prive/exec/wp2spip_fin.html
r78688 r79273 29 29 </B_articles_documents> 30 30 31 <B_articles_liens>32 31 <div class="cadre cadre-r"> 33 32 <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> 41 38 </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> 43 49 </B_articles_liens> 44 50 45 51 <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> 57 59 </B_articles_liens_page_id> 58 60 59 61 <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> 71 69 </B_articles_liens_url_page_id> 72 70 73 71 <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> 85 79 </B_articles_liens_p_rel> 86 80 87 81 <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> 99 89 </B_articles_liens_p> 100 90 101 91 <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> 112 150 </div> 113 </B_articles_catlist>
Note: See TracChangeset
for help on using the changeset viewer.