| Current Path : /home/checkyd/www/squelettes/ |
| Current File : /home/checkyd/www/squelettes/mes_fonctions.php |
<?php
/*
* Fonction qui rectifie alignement images pour squelettes newsletter, met les titres h3 et les liens a en style
* #TEXTE|filtrenewsletter{style h3, style a}
*
*/
function filtrenewsletter($chn,$h3_style='',$a_style='') {
$chn = str_replace('style=\'float:left;', 'style=\'float:left; margin:2px 20px 5px 0;', $chn);
$chn = str_replace('style=\'float:right;', 'style=\'float:right; margin:2px 0 5px 20px;', $chn);
$chn = str_replace('<h3 class="spip">', '<h3 class="spip" style="'.$h3_style.'">', $chn);
$chn = str_replace('class=\'spip_out\'', 'class="spip_out" style="'.$a_style.'"', $chn);
$chn = str_replace('class=\'spip_in\'', 'class="spip_in" style="'.$a_style.'"', $chn);
return $chn;
}
function inc_lien($lien, $texte='', $class='', $title='', $hlang='', $rel='', $connect='')
{
// Si une langue est demandee sur un raccourci d'article, chercher
// la traduction ;
// - [{en}->art2] => traduction anglaise de l'article 2, sinon art 2
// - [{}->art2] => traduction en langue courante de l'art 2, sinon art 2
if ($hlang
AND $match = typer_raccourci($lien)) {
@list($type,,$id,,$args,,$ancre) = $match;
if ($id_trad = sql_getfetsel('id_trad', 'spip_articles', "id_article=$id")
AND $id_dest = sql_getfetsel('id_article', 'spip_articles',
"id_trad=$id_trad AND statut<>'refuse' AND lang=" . sql_quote($hlang))
)
$lien = "$type$id_dest";
else
$hlang = '';
}
$mode = ($texte AND $class) ? 'url' : 'tout';
$lien = calculer_url($lien, $texte, $mode, $connect);
if ($mode === 'tout') {
$texte = $lien['titre'];
if (!$class AND isset($lien['class'])) $class = $lien['class'];
$lang = isset($lien['lang']) ?$lien['lang'] : '';
$mime = isset($lien['mime']) ? " type='".$lien['mime']."'" : "";
$lien = $lien['url'];
}
if (substr($lien,0,1) == '#') # ancres pures (internes a la page)
$class = 'spip_ancre';
elseif (preg_match('/^\s*mailto:/',$lien)) # pseudo URL de mail
$class = "spip_mail";
elseif (preg_match('/^<html>/',$texte)) # cf traiter_lien_explicite
$class = "spip_url spip_out";
elseif (!$class) $class = "spip_out"; # si pas spip_in|spip_glossaire
// Si l'objet n'est pas de la langue courante, on ajoute hreflang
if (!$hlang AND $lang!==$GLOBALS['spip_lang'])
$hlang = $lang;
$lang = ($hlang ? " hreflang='$hlang'" : '');
if ($title) $title = ' title="'.texte_backend($title).'"';
// rel=external pour les liens externes
if (preg_match(',^https?://,S', $lien)
AND false === strpos("$lien/", url_de_base()))
$rel = trim("$rel external");
if ($rel) $rel = " rel='$rel'";
// ajout JP - on ajoute au lien le contexte langue si il existe, site fonctionne pas sans contexte lang, sauf pour les liens externes
if(_request('lang') && !preg_match("*spip_out*", $class) && !preg_match("*pdf*", $mime) && (( _request('lang') == 'fr') OR (_request('lang') == 'nl'))){
$lien .= "&lang="._request('lang');
}
// fin ajout JP
$lien = "<a href=\"".str_replace('"', '"', $lien)."\" class='$class'$lang$title$rel$mime>$texte</a>";
# ceci s'execute heureusement avant les tableaux et leur "|".
# Attention, le texte initial est deja echappe mais pas forcement
# celui retourne par calculer_url.
# Penser au cas [<imgXX|right>->URL], qui exige typo('<a>...</a>')
return typo($lien, true, $connect);
}
?>