Changeset 95854 in spip-zone
- Timestamp:
- Mar 8, 2016, 1:32:15 PM (5 years ago)
- Location:
- _plugins_/convertisseur/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/convertisseur/trunk/inc/convertisseur.php
r95764 r95854 642 642 } 643 643 644 // stocker l'id_article en id_source pour permettre le ré-examen des liens [->123] 645 $id_source = $c["id_article"] ; 646 647 // attention les conflits 648 unset($c["id_article"]); 649 unset($c["id_secteur"]); 650 unset($c["id_rubrique"]); 651 644 652 // Si des <ins> qui ne correspondent pas à des champs connus sont toujours là on les ajoute dans le champs metadonnees ou a défaut ostensiblement en haut du texte. 645 653 if (preg_match_all(",<ins[^>]+class='(.*?)'>(.*?)</ins>,ims", $c['texte'], $z, PREG_SET_ORDER)){ … … 656 664 657 665 $c['texte'] = preg_replace("/\n\n+/m", "\n\n", $c['texte']); 658 659 // on ne retient pas l'id_article pour éviter des collisions éventuelles 660 unset($c["id_article"]); 661 662 // on ne retient pas l'id_rubrique et secteur car ce ne sont pas les memes d'un site à l'autre 663 unset($c["id_secteur"]); 664 unset($c["id_rubrique"]); 666 $c['id_source'] = $id_source ; 665 667 666 668 $r = array(); -
_plugins_/convertisseur/trunk/spip-cli/fichiersImporter.php
r95831 r95854 106 106 sql_query("alter table spip_articles add metadonnees MEDIUMTEXT NOT NULL DEFAULT ''"); 107 107 108 // Ajout d'un champ la premiere fois pour stocker l'id_article original (pour ensuite remapper les liens [->123]). 109 if(!in_array('id_source', $champs)) 110 sql_query("alter table spip_articles add id_source BIGINT(21) NOT NULL DEFAULT ''"); 111 108 112 $fichiers = preg_files($source . "/", "(?:(?<!\.metadata\.)txt$)", 100000); 109 113 … … 116 120 $progress->start(); 117 121 122 if(is_file("liens_a_corriger.txt")) 123 unlink("liens_a_corriger.txt"); 124 if(is_file("liens_non_corriges.txt")) 125 unlink("liens_non_corriges.txt"); 126 if(is_file("liens_corriges.txt")) 127 unlink("liens_corriges.txt"); 128 118 129 foreach($fichiers as $f){ 119 130 … … 133 144 $texte = preg_replace("/@@COLLECTION.*/", "", $texte); 134 145 $texte = preg_replace("/@@SOURCE.*/", "", $texte); 146 135 147 136 148 // Si des <ins> qui correspondent à des champs metadonnees connus,on les ajoute. … … 140 152 $mots_cles = "" ; 141 153 $documents = "" ; 142 143 if (preg_match_all(",<ins[^>]+class='(.*?)'>(.*?)</ins>,ims", $texte, $z, PREG_SET_ORDER)){ 144 foreach($z as $d){ 145 if(in_array($d[1], $champs_metadonnees)){ 146 // class="truc" => $truc 147 $$d[1] = split("@@", $d[2]); 148 // virer du texte 149 $texte = substr_replace($texte, '', strpos($texte, $d[0]), strlen($d[0])); 150 } 151 } 152 } 153 154 155 if (preg_match(",<ins class='id_article'>(.*?)</ins>,ims", $texte, $z)) 156 $id_source = $z[1] ; 157 158 159 // dans quelle rubrique importer ? 154 160 if($hierarchie){ 155 161 $titre_parent = $hierarchie[0] ; … … 174 180 include_spip("inc/convertisseur"); 175 181 176 // auteur par défaut 182 // auteur par défaut (admin) 177 183 $id_admin = sql_getfetsel("id_auteur", "spip_auteurs", "id_auteur=1"); 178 184 $id_admin = ($id_admin)? $id_admin : 12166 ; … … 182 188 if($id_article = inserer_conversion($texte, $id_rubrique, $f)){ 183 189 184 // l'auteur existe t'il ? Le créer.190 // Créer l'auteur ? 185 191 if($auteurs){ 186 192 … … 285 291 sql_update("spip_articles", array("texte" => sql_quote($texte)), "id_article=$id_article"); 286 292 } 287 // prevoir de recaler les liens aussi [->123456]288 293 } 289 294 } 295 296 // recaler des liens [->123456] ? 297 include_spip("inc/lien"); 298 if(preg_match(_RACCOURCI_LIEN, $texte)) 299 passthru("echo '$id_article $id_source' >> liens_a_corriger.txt"); 290 300 291 301 // Si tout s'est bien passé, on avance la barre … … 302 312 // ensure that the progress bar is at 100% 303 313 $progress->finish(); 314 315 // remapper les liens [->12345] 316 lire_fichier("liens_a_corriger.txt", $articles); 317 $corrections_liens = inc_file_to_array_dist($articles); 318 foreach($corrections_liens as $k => $v){ 319 if($v){ 320 list($id_article, $id_source) = explode("\t", $v); 321 $texte = sql_getfetsel("texte", "spip_articles", "id_article=$id_article") ; 322 // recaler des liens [->123456] ? 323 include_spip("inc/lien"); 324 if(preg_match_all(_RACCOURCI_LIEN, $texte, $liens, PREG_SET_ORDER)){ 325 foreach($liens as $l){ 326 if(preg_match("/^[0-9]+$/", $l[4])){ 327 // trouver l'article dont l'id_source est $l[4] dans le secteur 328 if($id_dest = sql_getfetsel("id_article", "spip_articles", "id_source=" . trim($l[4]) . " and id_secteur=$id_parent")){ 329 $lien = escapeshellarg($l[0] . " => " . str_replace($l[4], $id_dest, $l[0])); 330 passthru("echo $lien >> liens_corriges.txt"); 331 }else{ 332 $commande = escapeshellarg("Dans $id_article " . $l[0] . " : lien vers " . $l[4] . " non trouvé") ; 333 passthru("echo $commande >> liens_non_corriges.txt"); 334 } 335 336 } 337 } 338 } 339 340 } 341 } 342 304 343 $output->writeln(""); 344 if(is_file("liens_a_corriger.txt")) 345 unlink("liens_a_corriger.txt"); 305 346 306 347 }
Note: See TracChangeset
for help on using the changeset viewer.