[SPIP] ~v3.0.17-->v3.0.19
[ptitvelo/web/www.git] / www / plugins-dist / textwheel / inc / lien.php
index fb4b1b1..3441c0c 100644 (file)
@@ -111,7 +111,7 @@ function inc_lien_dist($lien, $texte='', $class='', $title='', $hlang='', $rel='
 // sinon les crochets ne peuvent plus servir qu'a ce type de raccourci
 define('_RACCOURCI_LIEN', "/\[([^][]*?([[][^]>-]*[]][^][]*)*)->(>?)([^]]*)\]/msS");
 
-// http://doc.spip.org/@expanser_liens
+// http://code.spip.net/@expanser_liens
 function expanser_liens($t, $connect='', $env=array())
 {
 
@@ -189,7 +189,7 @@ function expanser_un_lien($reg, $quoi='echappe', $env=null){
 
 // Meme analyse mais pour eliminer les liens
 // et ne laisser que leur titre, a expliciter si ce n'est fait
-// http://doc.spip.org/@nettoyer_raccourcis_typo
+// http://code.spip.net/@nettoyer_raccourcis_typo
 function nettoyer_raccourcis_typo($texte, $connect='')
 {
        $texte = pipeline('nettoyer_raccourcis_typo',$texte);
@@ -238,7 +238,7 @@ function nettoyer_raccourcis_typo($texte, $connect='')
 // pour ne pas confondre avec un autre raccourci
 define('_RACCOURCI_ATTRIBUTS', '/^((?:[^[]*?(?:\[[^]]*\])?)*?)([|]([^<>]*?))?([{]([a-z_]*)[}])?$/');
 
-// http://doc.spip.org/@traiter_raccourci_lien_atts
+// http://code.spip.net/@traiter_raccourci_lien_atts
 function traiter_raccourci_lien_atts($texte) {
 
        $bulle = $hlang = false;
@@ -291,7 +291,7 @@ define('_RACCOURCI_CHAPO', '/^(\W*)(\W*)(\w*\d+([?#].*)?)$/');
  * renvoie l'url reelle de redirection si le $url=true,
  * l'url brute contenue dans le chapo sinon
  *
- * http://doc.spip.org/@chapo_redirige
+ * http://code.spip.net/@chapo_redirige
  *
  * @param string $virtuel
  * @param bool $url
@@ -316,7 +316,7 @@ function virtuel_redirige($virtuel, $url=false){
 // 'titre': seulement T ci-dessus (i.e. le TITRE ci-dessus ou dans table SQL)
 // 'url':   seulement U  (i.e. generer_url_RACCOURCI)
 
-// http://doc.spip.org/@calculer_url
+// http://code.spip.net/@calculer_url
 function calculer_url ($ref, $texte='', $pour='url', $connect='', $echappe_typo = true) {
        $r = traiter_lien_implicite($ref, $texte, $pour, $connect, $echappe_typo);
        $r = ($r ? $r : traiter_lien_explicite($ref, $texte, $pour, $connect, $echappe_typo));
@@ -325,7 +325,7 @@ function calculer_url ($ref, $texte='', $pour='url', $connect='', $echappe_typo
 
 define('_EXTRAIRE_LIEN', ",^\s*(http:?/?/?|mailto:?)\s*$,iS");
 
-// http://doc.spip.org/@traiter_lien_explicite
+// http://code.spip.net/@traiter_lien_explicite
 function traiter_lien_explicite ($ref, $texte='', $pour='url', $connect='', $echappe_typo = true)
 {
        if (preg_match(_EXTRAIRE_LIEN, $ref))
@@ -362,8 +362,9 @@ function traiter_lien_explicite ($ref, $texte='', $pour='url', $connect='', $ech
 }
 
 function liens_implicite_glose_dist($texte,$id,$type,$args,$ancre,$connect=''){
-       if (function_exists($f = 'glossaire_' . $ancre))
-               $url = $f($texte, $id);
+       if ( ($ancre AND function_exists($f = 'glossaire_' . $ancre))
+         OR function_exists($f = 'glossaire_'))
+               $url = $f($texte, $id, $ancre);
        else
                $url = glossaire_std($texte);
        return $url;
@@ -381,7 +382,7 @@ function liens_implicite_glose_dist($texte,$id,$type,$args,$ancre,$connect=''){
  * unset($GLOBALS['lien_implicite_cible_public']);
  *  => retablit le comportement automatique
  *
- * http://doc.spip.org/@traiter_lien_implicite
+ * http://code.spip.net/@traiter_lien_implicite
  *
  * @param string $ref
  * @param string $texte
@@ -417,7 +418,7 @@ function traiter_lien_implicite ($ref, $texte='', $pour='url', $connect='')
        // dans le cas d'un lien vers un doc, ajouter le type='mime/type'
        if ($type == 'document'
        AND $mime = sql_getfetsel('mime_type', 'spip_types_documents',
-                       "extension IN (SELECT extension FROM spip_documents where id_document =".intval($id).")",
+                       "extension IN (".sql_get_select("extension","spip_documents","id_document=".sql_quote($id)).")",
                        '','','','',$connect)
        )
                $r['mime'] = $mime;
@@ -429,7 +430,7 @@ function traiter_lien_implicite ($ref, $texte='', $pour='url', $connect='')
 
 define('_RACCOURCI_URL', '/^\s*(\w*?)\s*(\d+)(\?(.*?))?(#([^\s]*))?\s*$/S');
 
-// http://doc.spip.org/@typer_raccourci
+// http://code.spip.net/@typer_raccourci
 function typer_raccourci ($lien) {
        if (!preg_match(_RACCOURCI_URL, $lien, $match)) return array();
        $f = $match[1];
@@ -467,7 +468,7 @@ function traiter_raccourci_titre($id, $type, $connect=NULL)
 // Le nom du modele doit faire au moins trois caracteres (evite <h2>)
 // Si $doublons==true, on repere les documents sans calculer les modeles
 // mais on renvoie les params (pour l'indexation par le moteur de recherche)
-// http://doc.spip.org/@traiter_modeles
+// http://code.spip.net/@traiter_modeles
 define('_PREG_MODELE',
        '(<([a-z_-]{3,})' # <modele
  .'\s*([0-9]*)\s*' # id
@@ -482,7 +483,7 @@ define('_RACCOURCI_MODELE',
 
 define('_RACCOURCI_MODELE_DEBUT', '@^' . _RACCOURCI_MODELE .'@isS');
 
-// http://doc.spip.org/@traiter_modeles
+// http://code.spip.net/@traiter_modeles
 function traiter_modeles($texte, $doublons=false, $echap='', $connect='', $liens = null, $env = array()) {
        // preserver la compatibilite : true = recherche des documents
        if ($doublons===true)
@@ -491,6 +492,7 @@ function traiter_modeles($texte, $doublons=false, $echap='', $connect='', $liens
        if (strpos($texte,"<")!==false AND
          preg_match_all('/<[a-z_-]{3,}\s*[0-9|]+/iS', $texte, $matches, PREG_SET_ORDER)) {
                include_spip('public/assembler');
+               $wrap_embed_html = charger_fonction("wrap_embed_html","inc",true);
                foreach ($matches as $match) {
                        // Recuperer l'appel complet (y compris un eventuel lien)
 
@@ -545,6 +547,9 @@ function traiter_modeles($texte, $doublons=false, $echap='', $connect='', $liens
                                // le remplacer dans le texte
                                if ($modele !== false) {
                                        $modele = protege_js_modeles($modele);
+                                       if ($wrap_embed_html){
+                                               $modele = $wrap_embed_html($mod,$modele);
+                                       }
                                        $rempl = code_echappement($modele, $echap);
                                        $texte = substr($texte, 0, $a)
                                                . $rempl
@@ -570,7 +575,7 @@ function traiter_modeles($texte, $doublons=false, $echap='', $connect='', $liens
 
 define('_RACCOURCI_ANCRE', "/\[#?([^][]*)<-\]/S");
 
-// http://doc.spip.org/@traiter_raccourci_ancre
+// http://code.spip.net/@traiter_raccourci_ancre
 function traiter_raccourci_ancre($letexte)
 {
        if (preg_match_all(_RACCOURCI_ANCRE, $letexte, $m, PREG_SET_ORDER))
@@ -588,7 +593,7 @@ function traiter_raccourci_ancre($letexte)
 define('_RACCOURCI_GLOSSAIRE', "/\[\?+\s*([^][<>]+)\]/S");
 define('_RACCOURCI_GLOSES', '/^([^|#{]*\w[^|#{]*)([^#]*)(#([^|{}]*))?(.*)$/S');
 
-// http://doc.spip.org/@traiter_raccourci_glossaire
+// http://code.spip.net/@traiter_raccourci_glossaire
 function traiter_raccourci_glossaire($texte)
 {
        if (!preg_match_all(_RACCOURCI_GLOSSAIRE,
@@ -618,7 +623,7 @@ function traiter_raccourci_glossaire($texte)
        return $texte;
 }
 
-// http://doc.spip.org/@glossaire_std
+// http://code.spip.net/@glossaire_std
 function glossaire_std($terme)
 {
        global $url_glossaire_externe;