Changeset 59859 in spip-zone


Ignore:
Timestamp:
Mar 27, 2012, 8:55:29 PM (7 years ago)
Author:
fil@…
Message:

insertion normale des autoliens

Location:
_core_/plugins/textwheel
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • _core_/plugins/textwheel/inc/lien.php

    r59004 r59859  
    263263
    264264define('_EXTRAIRE_DOMAINE', '/^(?:(?:[^\W_]((?:[^\W_]|-){0,61}[^\W_,])?\.)+[a-z]{2,6}|localhost)\b/Si');
    265 
    266 // callback pour la fonction traiter_raccourci_liens()
    267 // http://doc.spip.org/@autoliens_callback
    268 function traiter_autoliens($r) {
    269         if (count($r)<2) return reset($r);
    270         list($tout, $l) = $r;
    271         if (!$l) return $tout;
    272         // reperer le protocole
    273         if (preg_match(',^(https?):/*,S', $l, $m)) {
    274                 $l = substr($l, strlen($m[0]));
    275                 $protocol = $m[1];
    276         } else  $protocol = 'http';
    277         // valider le nom de domaine
    278         if (!preg_match(_EXTRAIRE_DOMAINE, $l)) return $tout;
    279         // supprimer les ponctuations a la fin d'une URL
    280         preg_match('/^(.*?)([,.;?]?)$/', $l, $k);
    281         $url = $protocol.'://'.$k[1];
    282         $lien = charger_fonction('lien', 'inc');
    283         // deux fois <html> car inc_lien echappe un coup et restaure ensuite
    284         // => un perd 1 <html>
    285         $r = $lien($url,"<html><html>$url</html></html>",'','','','nofollow') . $k[2];
    286 
    287         // ajouter la class auto
    288         $r = inserer_attribut($r, 'class', trim(extraire_attribut($r,'class').' auto'));
    289 
    290         // si l'original ne contenait pas le 'http:' on le supprime du clic
    291         return ($m ? $r : str_replace('>http://', '>', $r));
    292 }
    293 
    294 define('_EXTRAIRE_LIENS', ',' . '\[[^\[\]]*(?:<-|->).*?\]' . '|<a\b.*?</a\b' . '|<\w.*?>' . '|((?:https?:/|www\.)[^"\'\s\[\]\}\)<>]*)' .',imsS');
    295 
    296 // Les URLs brutes sont converties en <a href='url'>url</a>
    297 // http://doc.spip.org/@traiter_raccourci_liens
    298 function traiter_raccourci_liens($t) {
    299         $t = preg_replace_callback(_EXTRAIRE_LIENS, 'traiter_autoliens', $t);
    300         // echapper les autoliens eventuellement inseres (en une seule fois)
    301         if (strpos($t,"<html>")!==false)
    302                 $t = echappe_html($t);
    303         return $t;
    304 }
    305 
    306265
    307266define('_RACCOURCI_CHAPO', '/^(\W*)(\W*)(\w*\d+([?#].*)?)$/');
  • _core_/plugins/textwheel/paquet.xml

    r59769 r59859  
    1616
    1717        <pipeline nom="trig_purger" inclure="inc/textwheel.php" />
    18 
     18        <pipeline nom="pre_liens" action="autoliens" inclure="inc/autoliens.php" />
    1919        <utilise nom="yaml" compatibilite="[1.3;[" />
    2020        <utilise nom="memoization" compatibilite="[0.9;[" />
Note: See TracChangeset for help on using the changeset viewer.