diff --git a/ecrire/inc_filtres.php3 b/ecrire/inc_filtres.php3 index 21c81ce4e06e448f5651841c99a10b5b5db5d9fb..7117e9d3db6a0fa7768ba83fcb2f2223caaf83f3 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 e5279f9626bea522d912b041e80ba6eea1604d1a..2ee04b31940388f2083f66c62be2f61a3321cefd 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 aec82ec9e3ee99fe1f035bb85a585b40b392178c..5f04574d82f342ce33a9992f2f58f9396de6d9f1 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; }