/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
- * Copyright (c) 2001-2012 *
+ * Copyright (c) 2001-2016 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
return $r ? $r : traiter_lien_explicite($ref, $texte, $pour, $connect, $echappe_typo);
}
-define('_EXTRAIRE_LIEN', ",^\s*(http:?/?/?|mailto:?)\s*$,iS");
+define('_EXTRAIRE_LIEN', ',^\s*(?:' . _PROTOCOLES_STD . '):?/?/?\s*$,iS');
// http://doc.spip.org/@traiter_lien_explicite
function traiter_lien_explicite ($ref, $texte='', $pour='url', $connect='', $echappe_typo = true)
// 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 =".sql_quote($id).")",
+ "extension IN (".sql_get_select("extension","spip_documents","id_document=".sql_quote($id)).")",
'','','','',$connect)
)
$r['mime'] = $mime;
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)
$lien = array(
'href' => extraire_attribut($r[0],'href'),
'class' => extraire_attribut($r[0],'class'),
- 'mime' => extraire_attribut($r[0],'type')
+ 'mime' => extraire_attribut($r[0],'type'),
+ 'title' => extraire_attribut($r[0],'title'),
+ 'hreflang' => extraire_attribut($r[0],'hreflang')
);
$n = strlen($r[0]);
$a -= $n;
// dans les parametres, plutot que les liens echappes
if (!is_null($liens))
$params = str_replace($liens[0], $liens[1], $params);
- $modele = inclure_modele($type, $id, $params, $lien, $connect, $env);
+ $modele = inclure_modele($type, $id, $params, $lien, $connect, $env);
// en cas d'echec,
// si l'objet demande a une url,
// creer un petit encadre vers elle
// 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