Changeset 112140 in spip-zone


Ignore:
Timestamp:
Oct 24, 2018, 10:28:09 AM (12 months ago)
Author:
booz@…
Message:

gerer les liens internes dans les chapos

Location:
_plugins_/convertisseur/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/convertisseur/trunk/action/corriger_liens_internes.php

    r112138 r112140  
    33if (!defined("_ECRIRE_INC_VERSION")) return;
    44
    5 function action_corriger_lien_interne_dist(){
     5function action_corriger_liens_internes_dist(){
    66       
    77}
     
    1212*/
    1313
    14 function convertisseur_corrigers_liens_internes($id_article,$id_secteur){
     14function convertisseur_corriger_liens_internes($id_article,$id_secteur,$champ="texte"){
    1515        include_spip("base/abstract_sql");
    1616       
    17         $texte = sql_getfetsel("texte", "spip_articles", "id_article=$id_article") ;
     17        $texte = sql_getfetsel($champ, "spip_articles", "id_article=$id_article") ;
     18       
    1819        // recaler des liens [->123456] ?
    1920        include_spip("inc/lien");
     
    2122                foreach($liens as $l){
    2223                        if(preg_match("/^(?:art)?([0-9]+)$/", $l[4],$m)){
     24                                $id_source = $m[1];
    2325                                // trouver l'article dont l'id_source est $l[4] dans le secteur
    2426                                if($id_dest = sql_getfetsel("id_article", "spip_articles", "id_source=$id_source and id_secteur=$id_secteur")){
     
    2628                                       
    2729                                        $lien_corrige = str_replace($l[4], $id_dest, $l[0]) ;
    28                                        
    29                                         spip_log("$id_article : $lien_actuel => $lien_corrige","correction_liens_internes.4");
     30                                        //var_dump("$id_article ($champ) : $lien_actuel => $lien_corrige");
     31                                        spip_log("$id_article ($champ) : $lien_actuel => $lien_corrige","correction_liens_internes.4");
    3032                                       
    3133                                        // maj le texte
    3234                                        $texte_corrige = str_replace($lien_actuel, $lien_corrige, $texte);
    33                                         //sql_update("spip_articles", array("texte" => sql_quote($texte_corrige)), "id_article=$id_article");
     35                                        sql_update("spip_articles", array($champ => sql_quote($texte_corrige)), "id_article=$id_article");
    3436                                       
    3537                                        // attention s'il y a plusieurs liens
     
    3739                                }else{
    3840                                        // $commande = escapeshellarg("Dans $id_article (source $id_source)" . $l[0] . " : lien vers " . $l[4] . " non trouvé") ;
    39                                         spip_log("$id_article : dans " . $l[0] . " : lien vers " . $id_source . " non trouvé","correction_liens_internes_ko.4");
     41                                        spip_log("$id_article ($champ) : dans " . $l[0] . ", lien vers " . $id_source . " non trouvé","correction_liens_internes_ko.4");
    4042                                }
    4143                        }
  • _plugins_/convertisseur/trunk/spip-cli/ConvertisseurImporter.php

    r112131 r112140  
    118118                                        $progress->setBarWidth(100);
    119119                                        $progress->setRedrawFrequency(1);
    120                                         $progress->setMessage(" Import de $source/*.txt en cours dans la rubrique $id_parent ... ", 'message'); /**/ 
     120                                        $progress->setMessage(" Import de $source/*.txt en cours dans la rubrique $id_parent ... ", 'message'); /**/
    121121                                        $progress->setMessage("", 'inforub');
    122122                                        $progress->start();
    123                                        
    124                                         if(is_file("liens_a_corriger.txt"))
    125                                                 unlink("liens_a_corriger.txt");
    126123                                       
    127124                                        foreach($fichiers as $f){
     
    336333                                                                        // insertion du doc
    337334                                                                        $id_document = sql_getfetsel("id_document", "spip_documents", "fichier=" . sql_quote($d['fichier']));
     335                                                                       
    338336                                                                        if(!$id_document){
    339337                                                                                $id_document = sql_insertq("spip_documents", $document_a_inserer);
     
    354352                                                                        if($id_document){
    355353                                                                                // ressortir le texte propre...
    356                                                                                 $texte = sql_getfetsel("texte", "spip_articles", "id_article=$id_article");
    357                                                                                 $texte = preg_replace("/(<(doc|img|emb))". $id_doc . "/i", "\${1}" . $id_document, $texte);
    358                                                                                 sql_update("spip_articles", array("texte" => sql_quote($texte)), "id_article=$id_article");
     354                                                                                $texte_art = sql_getfetsel("texte", "spip_articles", "id_article=$id_article");
     355                                                                                $texte_art = preg_replace("/(<(doc|img|emb))". $id_doc . "/i", "\${1}" . $id_document, $texte_art);
     356                                                                                sql_update("spip_articles", array("texte" => sql_quote($texte_art)), "id_article=$id_article");
    359357                                                                        }
    360358                                                                }
    361359                                                        }
    362360                                                       
    363                                                         // recaler des liens [->123456] ?
     361                                                        // recaler des liens [->123456] dans les textes
    364362                                                        // si on ne conserve pas le meme id_article
    365363                                                        include_spip("inc/lien");
     
    389387                                                        if($v){
    390388                                                                list($id_article, $id_source) = explode("\t", $v);
    391                                                                 include_spip("action/corriger_lien_interne");
    392                                                                 convertisseur_corriger_lien_interne($id_article,$id_parent);
     389                                                                include_spip("action/corriger_liens_internes");
     390                                                                convertisseur_corriger_liens_internes($id_article,$id_parent,'texte');
     391                                                                convertisseur_corriger_liens_internes($id_article,$id_parent,'chapo');
    393392                                                        }
    394393                                                }
Note: See TracChangeset for help on using the changeset viewer.