Changeset 87573 in spip-zone


Ignore:
Timestamp:
Feb 21, 2015, 7:28:45 PM (5 years ago)
Author:
maieul@…
Message:

pour préparer l'application de la correction des liens internes
à ceux copiés-collés depuis le privé,
on fait une fonction spécifique pour ceux copiés-collés depuis le public.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/correction_liens_internes/trunk/correction_liens_internes_pipelines.php

    r87572 r87573  
    1414    return $flux;
    1515}
    16 
     16function correction_liens_internes_correction_url_public($mauvaise_url,$composants_url){
     17        // Pour le cas où on a copié-collé une URL depuis espace public.
     18        $ancre = isset($composants_url['fragment']) ? '#' . $composants_url['fragment'] : '';   
     19        list($fond, $contexte) = urls_decoder_url($mauvaise_url);
     20        if(
     21                ($objet = isset($contexte['type']) ? $contexte['type'] : $fond) &&
     22                ($id_objet = $contexte[id_table_objet($objet)])
     23        );
     24        else {
     25            // on tente de reconnaitre les formats simples...
     26            parse_str($composants_url["query"], $composants_url);
     27            if (($objet = $composants_url[_SPIP_PAGE]) && ($id_objet = $composants_url[id_table_objet($objet)]));
     28            else {
     29                list($composants_url, $objet) = nettoyer_url_page(str_replace(url_de_base(), '', $mauvaise_url), $composants_url);
     30                $id_objet = $composants_url[id_table_objet($objet)];
     31            }
     32        }
     33        return array($objet,$id_objet,$ancre);
     34}
    1735function correction_liens_internes_correction($texte){
    1836    // pas de liens, on s'en va...
     
    3957        $mauvais_raccourci = $lien[0];
    4058        $mauvaise_url = $lien[1];
    41         $composants_url =  parse_url($mauvaise_url);
    42     $ancre = isset($composants_url['fragment']) ? '#' . $composants_url['fragment'] : '';
    43         list($fond, $contexte) = urls_decoder_url($mauvaise_url);
    44         if(($objet = isset($contexte['type']) ? $contexte['type'] : $fond) && ($id_objet = $contexte[id_table_objet($objet)]));
    45         else {
    46             // on tente de reconnaitre les formats simples...
    47             parse_str($composants_url["query"], $composants_url);
    48             if (($objet = $composants_url[_SPIP_PAGE]) && ($id_objet = $composants_url[id_table_objet($objet)]));
    49             else {
    50                 list($composants_url, $objet) = nettoyer_url_page(str_replace(url_de_base(), '', $mauvaise_url), $composants_url);
    51                 $id_objet = $composants_url[id_table_objet($objet)];
    52             }
    53         }
    54         if($objet && $id_objet){
    55             if(isset($racc[$objet])) $objet = $racc[$objet];
    56             $bonne_url  = $objet . $id_objet . $ancre;
    57             $bon_raccourci = str_replace($mauvaise_url, $bonne_url, $mauvais_raccourci);
    58             $texte = str_replace($mauvais_raccourci, $bon_raccourci, $texte);
    59             spip_log(self() . (_request('self')?' / '._request('self'):'') // pour crayons notamment...
    60                 . " : $mauvais_raccourci => $bon_raccourci", 'liens_internes.' . _LOG_AVERTISSEMENT);
    61         }
     59        $composants_url =  parse_url($mauvaise_url);   
     60        list ($objet, $id_objet,$ancre) = correction_liens_internes_correction_url_public($mauvaise_url,$composants_url);
     61        if($objet && $id_objet){
     62                if(isset($racc[$objet])){
     63                        $objet = $racc[$objet];
     64                }
     65                $bonne_url  = $objet . $id_objet . $ancre;
     66                $bon_raccourci = str_replace($mauvaise_url, $bonne_url, $mauvais_raccourci);
     67                $texte = str_replace($mauvais_raccourci, $bon_raccourci, $texte);
     68                spip_log(self() . (_request('self')?' / '._request('self'):'')  //pour crayons notamment...
     69                        . " : $mauvais_raccourci => $bon_raccourci", 'liens_internes.' . _log_avertissement);
     70        }
    6271    }
    6372    return $texte;
Note: See TracChangeset for help on using the changeset viewer.