From 8d23afe728931e90302e7f24b6e79118797d517c Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Thu, 12 May 2005 07:39:40 +0000 Subject: [PATCH] #LOGO_ARTICLE n'a plus de alt mais on peut faire [(#LOGO_ARTICLE||inserer_attribut{alt,#TITRE})] et ausi pourquoi pas [(#LOGO_ARTICLE||inserer_attribut{alt,#TITRE}|inserer_attribut{title,#TITRE})] le filtre inserer_attribut, par defaut, applique |texte_backend (on peut desactiver en mettant false en argument : [(#LOGO_ARTICLE||inserer_attribut{rien,#TITRE,false} --- ecrire/inc_filtres.php3 | 36 ++++++++++++++++++++++++++++-------- inc-balises.php3 | 1 - inc-calcul-outils.php3 | 8 ++++---- 3 files changed, 32 insertions(+), 13 deletions(-) diff --git a/ecrire/inc_filtres.php3 b/ecrire/inc_filtres.php3 index 21c81ce4e0..7117e9d3db 100644 --- a/ecrire/inc_filtres.php3 +++ b/ecrire/inc_filtres.php3 @@ -937,18 +937,38 @@ function alterner($i) { return $args[(intval($i)-1)%($num-1)+1]; } +// recuperer un attribut html d'une balise +// ($complet demande de retourner $r) +function extraire_attribut($balise, $attribut, $complet = false) { + if (preg_match(",(.*<[^>]*)([[:space:]]+$attribut=[[:space:]]*(['\"])?(.*?)\\3)([[:space:]/>].*>.*),ims", $balise, $r)) { + $att = $r[4]; + } + else + $att = NULL; -function extraire_attribut($balise, $attribut) { -# la mise en facteur ne marche pas.... -# if (preg_match("/<[^>]*\s+$attribut=(['\"])([^\\1]*)\\1/i", $balise, $r)) - if (preg_match("/<[^>]*\s+$attribut='([^']*)'/i", $balise, $r)) - return $r[1]; - else if (preg_match("/<[^>]*\s+$attribut=\"([^\"]*)\"/i", $balise, $r)) - return $r[1]; + if ($complet) + return array($att, $r); else - return ''; + return $att; +} + +// modifier (ou inserer) un attribut html dans une balise +function inserer_attribut($balise, $attribut, $val, $texte_backend=true) { + // preparer l'attribut + if ($texte_backend) $val = texte_backend($val); # supprimer les etc + $insert = " $attribut=\"".entites_html(texte_backend($val))."\" "; + + list($old,$r) = extraire_attribut($balise, $attribut, true); + if ($old !== NULL) { + $balise = $r[1].$insert.$r[5]; + } + else + $balise = preg_replace(",([[:space:]]/)?".">,", $insert."/>", $balise); + + return $balise; } + // fabrique un bouton de type $t de Name $n, de Value $v et autres attributs $a # a placer ailleurs que dans inc_filtres function boutonne($t, $n, $v, $a='') { diff --git a/inc-balises.php3 b/inc-balises.php3 index e5279f9626..2ee04b3194 100644 --- a/inc-balises.php3 +++ b/inc-balises.php3 @@ -598,7 +598,6 @@ function calculer_balise_logo ($p) { $code_lien = "''"; $code_lien .= ", '". addslashes($align) . "'"; } - $code_lien .= ",'logo $type_objet ' . $_id_objet"; // cas des documents if ($type_objet == 'DOCUMENT') { diff --git a/inc-calcul-outils.php3 b/inc-calcul-outils.php3 index aec82ec9e3..5f04574d82 100644 --- a/inc-calcul-outils.php3 +++ b/inc-calcul-outils.php3 @@ -37,7 +37,7 @@ function calcule_fichier_logo($on) { // Renvoie le code html pour afficher un logo, avec ou sans survol, lien, etc. -function affiche_logos($logos, $lien, $align, $alt='logo') { +function affiche_logos($logos, $lien, $align) { list ($arton, $artoff) = $logos; @@ -51,7 +51,7 @@ function affiche_logos($logos, $lien, $align, $alt='logo') { $mouseover = " onmouseover=\"this.src='$artoff'\" " ."onmouseout=\"this.src='$arton'\""; - $milieu = "<img src=\"$arton\" alt=\"".entites_html(strtolower($alt)).'"' + $milieu = "<img src=\"$arton\" alt=\"\"" . ($align ? " align='$align'" : '') . $taille . $mouseover @@ -253,7 +253,7 @@ function calcul_branche ($generation) { } // fonction appelee par la balise #LOGO_DOCUMENT -function calcule_logo_document($id_document, $doubdoc, &$doublons, $flag_fichier, $params, $lien, $align, $alt) { +function calcule_logo_document($id_document, $doubdoc, &$doublons, $flag_fichier, $params, $lien, $align) { if (!$id_document) return ''; if ($doubdoc) $doublons["documents"] .= ','.$id_document; @@ -311,7 +311,7 @@ function calcule_logo_document($id_document, $doubdoc, &$doublons, $flag_fichier // sinon calculer le code html de l'image, sauf si reduire_image le donne if (!$lien_logo) - $lien_logo = affiche_logos(array($logo), $lien, $align, $alt); + $lien_logo = affiche_logos(array($logo), $lien, $align); return $lien_logo; } -- GitLab