$param){
if ($elem == $element){
$result=$param;
}
}
return $result;
}
function taille_img_diaporama($largeur,$hauteur,$destlargeur=600,$desthauteur=500) {
$neolargeur=0;
$neohauteur=0;
// calcule la largeur sur base du rapport hauteurlargeur
if ($largeur > $destlargeur) {
$neolargeur=$destlargeur;
$neohauteur=($hauteur/($largeur/$destlargeur));
}
if (($neohauteur > $desthauteur) or ($neohauteur==0 and ($hauteur > $desthauteur))) {
//on reduit donc sur base de desthauteur
$neohauteur=$desthauteur;
$neolargeur=$largeur/($hauteur/$desthauteur);
}
// si ni neohauteur ni neolargeur ne sont definis, c'est qu'ils sont corrects
if ($neohauteur == 0) { $neohauteur=$hauteur; }
if ($neolargeur == 0) { $neolargeur=$largeur; }
return array($neolargeur,$neohauteur);
}
// remonte l'arborescence et retourne le premier thème trouvé pour une rubrique donnée
function premier_theme($id_rubrique){
$id_parent = $id_rubrique;
while($id_parent != 0) {
// un thème est-il présent pour cette rubrique?
$result = spip_query("SELECT id_theme FROM spip_magu_themes_rubriques WHERE id_rubrique=$id_rubrique");
if (spip_num_rows($result) == 1) {
$row = spip_fetch_array($result);
return $row['id_theme'];
}
// sinon, continuer et vérifier pour le parent
$result = spip_query("SELECT id_parent FROM spip_rubriques WHERE id_rubrique=$id_rubrique");
$row = spip_fetch_array($result);
$id_parent = $row['id_parent'];
$id_rubrique = $id_parent;
}
// aucun thème n'a été trouvé, on prend le thème par défaut
$result = spip_query("SELECT id_theme FROM spip_magu_themes_rubriques WHERE id_rubrique=0");
$row = spip_fetch_array($result);
return $row['id_theme'];
}
// retourne le logo d'un bloc libre si il existe
function logo_bloc($id_bloc){
$handle = @opendir("IMG/illu-bloc-libre/");
while($fichier = @readdir($handle)) {
if (ereg("^illu_bloc_libre-$id_bloc\.(jpg|png|gif)$", $fichier)) {
$logo = $fichier;
}
}
if (!isset($logo)){
return false;
} else {
return "IMG/illu-bloc-libre/$logo";
}
}
// retourne le logo d'un groupe si il existe
function logo_groupe($id_groupe){
$handle = @opendir("IMG/logo-groupe/");
while($fichier = @readdir($handle)) {
if (ereg("^logo-$id_groupe\.(jpg|png|gif)$", $fichier)) {
$logo = $fichier;
}
}
if (!isset($logo)){
return false;
} else {
return "IMG/logo-groupe/$logo";
}
}
function controlelargeur($texte) {
if ($texte==0) { $texte= 160; };
return $texte;
}
function controlehauteur($texte) {
if ($texte==0) { $texte = 120; };
return $texte;
}
function nospace($texte) {
$texte = ereg_replace(" ", "", $texte);
$texte = ereg_replace(" ", "", $texte);
return $texte;
}
function no_accent($chaine){
$chaine = strtr
// La ligne suivante entre parenthèse doit être sur une seule ligne, sinon erreur php
($chaine, "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ", "aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn");
$chaine = str_replace("\"", """, $chaine);
return $chaine;
}
/*
* +-------------------------------------+
* Nom du Filtre : Conversion des ancres
* +-------------------------------------+
* Date : vendredi 18 juin 2004
* Auteur : AliGator (aligator@macfr.com)
* +-------------------------------------+
* Fonctions de ce filtre :
* Ce script permet de gérer les ancres insérées dans un
* article sous la forme [nomancre<-] ou [#nomancre<-]
* pour les remplacer par une ancre HTML ()
* Ceci vous permet d'autoriser les auteurs des articles sur votre site
* à utiliser ce nouveau "raccourci typographique"
* +-------------------------------------+
*/
function gerer_ancres($texte)
{
$res = preg_replace("|\[\#?([A-Za-z0-9_]*)<-\]|U" ,
"" , $texte);
return $res;
}
function vignettewebmaton($texte) {
$texte= ereg_replace("/mp4/","/webmaton-vignettes/",$texte);
$texte = ereg_replace("\.mp4$", ".png", $texte);
if (file_exists($texte)) {
return $texte;
}
}
function transguillemet ($texte) {
$texte = ereg_replace("\"", "''", $texte);
$texte = ereg_replace("\n", "", $texte);
$texte = ereg_replace("\t", " ", $texte);
return $texte;
}
function lienitunes($texte){
$texte = ereg_replace("^http://", "itpc://", $texte);
return $texte;
}
function nomfichier($texte) {
$texte = explode('/', trim($texte, "/"));
return end($texte);
}
function sans_newline($texte){
$texte = ereg_replace("\n", "", $texte);
return $texte;
}
function premiere_lettre($texte){
$premiere = $texte{0};
if (eregi("^[a-z]$",$premiere)) {
return strtoupper($premiere);
} else {
return "#";
}
}
function balise_THEME($params) {
include_spip('inc/cherche-theme');
$theme=theme_actuel();
$morceaux=explode("|",$theme);
$params->code = "$morceaux[0]";
$params->type = 'html';
return $params;
}
function balise_LARGEUR_CORPS($params) {
$largeur=trouveintheme('LARGEURCORPS', '480');
$params->code = "'$largeur'";
$params->type = 'html';
return $params;
}
function balise_LARGEUR_CONTEXTE1($params) {
$largeur=trouveintheme('LARGEURCONTEXTE1', '150');
$params->code = "'$largeur'";
$params->type = 'html';
return $params;
}
function balise_LARGEUR_CONTEXTE2($params) {
$largeur=trouveintheme('LARGEURCONTEXTE2', '120');
$params->code = "'$largeur'";
$params->type = 'html';
return $params;
}
function trouveintheme($quoi, $defaut) {
include_spip('inc/cherche-theme');
include_spip('inc/xml-parser');
$letruc=$defaut;
$quoi=strtoupper($quoi);
$theme=theme_actuel();
$morceaux=explode("|",$theme);
if (count($morceaux)==1) {
$declinaison=FALSE;
} else {
$declinaison=$morceaux[1];
}
$theme=$morceaux[0];
$p =& new xmlParser();
$p->parse(_DIR_PLUGIN_ARTY.'themes/'.$theme.'/theme.xml');
foreach($p->output[0]['child'] as $tag) {
if ($tag['name']==$quoi) {
$letruc=$tag['content'];
}
if ($tag['name']=='DECLINAISON' && $tag['attrs']['CHEMIN']==$declinaison) {
foreach($tag['child'] as $tagchild) {
if ($tagchild['name']==$quoi) {
$letruc=$tagchild['content'];
}
}
}
}
return $letruc;
}
function parametres($texte){
// fabrique un array associatif des parametres du site, une seule lecture xml donc.
include_spip('inc/cherche-theme');
include_spip('inc/xml-parser');
$theme=theme_actuel();
$morceaux=explode("|",$theme);
if (count($morceaux)==1) {
$declinaison=FALSE;
} else {
$declinaison=$morceaux[1];
}
$theme=$morceaux[0];
$params_acceptes =array("separateur","titre");
if($texte == "theme") {
$letruc=$theme;
} else if (in_array($texte,$params_acceptes)) {
$p =& new xmlParser();
$p->parse(_DIR_PLUGIN_ARTY.'themes/'.$theme.'/theme.xml');
$texte=strtoupper($texte);
$letruc=trouvelem($p->output[0]['child'],$declinaison,$texte,"");
} else {
$p =& new xmlParser();
$p->parse(_DIR_PLUGIN_ARTY.'themes/'.$theme.'/theme.xml');
$navigation=trouvelem($p->output[0]['child'],$declinaison,"NAVIGATION","general");
$chemin=trouvelem($p->output[0]['child'],$declinaison,"CHEMIN_PAGE","general");
$footer=trouvelem($p->output[0]['child'],$declinaison,"FOOTER","general");
$contenus=trouvelem($p->output[0]['child'],$declinaison,"DIV_CONTENUS","non");
$letruc=array("theme" => $theme,"navigation" => $navigation,"footer" => $footer, "chemin" => $chemin,"contenus" => $contenus);
}
return $letruc;
}
function trouvelem($tableau,$declinaison,$elem,$defaut){
$elemtrouve=$defaut;
foreach($tableau as $tag) {
if ($tag['name']==$elem) {
$elemtrouve=$tag['content'];
}
if ($tag['name']=='DECLINAISON' && $tag['attrs']['CHEMIN']==$declinaison) {
foreach($tag['child'] as $tagchild) {
if ($tagchild['name']==$elem) {
$elemtrouve=$tagchild['content'];
}
}
}
}
return $elemtrouve;
}
?>