From 26e94dda8952c4bb6bb2db04815aae0bcc27053b Mon Sep 17 00:00:00 2001 From: ARNO* <arno@rezo.net> Date: Thu, 19 May 2005 11:12:00 +0000 Subject: [PATCH] Enrichissement image_typo (retour, alt, et classes) --- ecrire/inc_filtres.php3 | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/ecrire/inc_filtres.php3 b/ecrire/inc_filtres.php3 index 5edeedf86a..cd496b8776 100644 --- a/ecrire/inc_filtres.php3 +++ b/ecrire/inc_filtres.php3 @@ -1130,7 +1130,7 @@ function image_typo() { // Recuperer les differents arguments $numargs = func_num_args(); $arg_list = func_get_args(); - $text = $arg_list[0]; + $texte = $arg_list[0]; for ($i = 1; $i < $numargs; $i++) { if (ereg("\=", $arg_list[$i])) { $nom_variable = substr($arg_list[$i], 0, strpos($arg_list[$i], "=")); @@ -1142,7 +1142,7 @@ function image_typo() { } // Construire requete et nom fichier - $text = ereg_replace("\ ", "~", $text); + $text = ereg_replace("\ ", "~", $texte); $taille = $variable["taille"]; if ($taille < 1) $taille = 16; @@ -1153,6 +1153,8 @@ function image_typo() { $fond = $variable["fond"]; if (strlen($fond) < 6) $fond = "ffffff"; + $alt = $variable["alt"]; + $ombre = $variable["ombre"]; $ombrex = $variable["ombrex"]; $ombrey = $variable["ombrey"]; @@ -1161,7 +1163,8 @@ function image_typo() { $align = $variable["align"]; if (!$variable["align"]) $align="left"; - + + $retour = $variable["retour"]; $police = $variable["police"]; if (strlen($police) < 2) $police = "dustismo.ttf"; @@ -1173,20 +1176,23 @@ function image_typo() { $string = "$text-$taille-$couleur-$fond-$ombre-$ombrex-$ombrey-$align-$police-$largeur"; $query = md5($string); $dossier = _DIR_IMG. creer_repertoire(_DIR_IMG, 'cache-texte'); - $fichier = "$dossier/$query.png"; + $fichier = "$dossier$query.png"; + + $flag_gd_typo = function_exists("imageftbbox"); + - if (!file_exists($fichier)) { + if (!file_exists($fichier) AND $flag_gd_typo) { // Il faut completer avec un vrai _SPIP_PATH, de facon a pouvoir livrer des /polices dans les dossiers de squelettes $font = find_in_path("polices/$police", "ecrire"); $imgbidon = imageCreateTrueColor($largeur, 45); $retour = printWordWrapped($imgbidon, $taille+5, 0, $largeur, $font, $black, $text, $taille); $hauteur = $retour["height"]; - $largeur = $retour["width"]; + $largeur_reelle = $retour["width"]; $espace = $retour["espace"]; imagedestroy($imgbidon); - $im = imageCreateTrueColor($largeur+$ombrex-$espace, $hauteur+5+$ombrey); + $im = imageCreateTrueColor($largeur_reelle+$ombrex-$espace, $hauteur+5+$ombrey); imagealphablending ($im, FALSE ); imagesavealpha ( $im, TRUE ); @@ -1200,8 +1206,7 @@ function image_typo() { // Le texte à dessiner // Remplacez le chemin par votre propre chemin de police //global $text; - - + if (strlen($ombre) == 6) printWordWrapped($im, $taille+$ombrey+5, $ombrex, $largeur, $font, $grey, $text, $taille, $align); printWordWrapped($im, $taille+5, 0, $largeur, $font, $black, $text, $taille, $align); @@ -1213,12 +1218,20 @@ function image_typo() { $image = $fichier; - } else { + } else if ($flag_gd_typo) { $image = $fichier; } if ($image) { - return "<img src='$image' style='border: 0px;'>"; + $dimensions = getimagesize($image); + $largeur = $dimensions[0]; + $hauteur = $dimensions[1]; + if ($retour == "image_seule") + return "<img src='$image' style='border: 0px; width: ".$largeur."px; height: ".$hauteur.px."' alt='$alt' class='image_typo'>"; + else if ($retour == "fichier_seul") + return "$image"; + else + return "<img src='$image' style='border: 0px; width: ".$largeur."px; height: ".$hauteur.px."' alt='$alt' class='image_typo'><span class='texte_typo'>$texte</span>"; } else { return $texte; } -- GitLab