Neues Modul: Headlines als Bild generieren

silicone
Beiträge: 299
Registriert: Di 15. Mär 2005, 10:33
Kontaktdaten:

Beitrag von silicone » Sa 18. Nov 2006, 18:15

Dodger77 hat geschrieben:Andernfalls lässt sich die Farbe in "text_config.inc.php" spezifizieren.
Ja, da wird die besagte Var $text_color definiert. Mein Problem war, dass ich gern das Ganze für Headlines und Navi einsetzen wollte und mehr als eine Farbe brauchte. Ich hab das jetzt mit duplizieren des Scripts samt config gelöst.
Trotzdem verstehe ich nicht, warum ich $text_color nicht mitgeben kann.

Gruß,
Thomas

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 » Sa 18. Nov 2006, 19:45

silicone hat geschrieben:Trotzdem verstehe ich nicht, warum ich $text_color nicht mitgeben kann.
Weil das eben zur Zeit von dem verwendeten Script nicht unterstützt wird. Das könnte man natürlich ändern, wenn man die Zeit dazu hat.

moe_at
Beiträge: 5
Registriert: Fr 17. Jun 2005, 00:01
Kontaktdaten:

Text schatten / font shades!

Beitrag von moe_at » So 28. Okt 2007, 12:26

Hallo, ich verwende das Modul, und es funktioniert einwandfrei. Frage, kann man auch text schatten in config Datei definieren? wenn ja, wie?

Fantasmo
Beiträge: 8
Registriert: Fr 30. Nov 2007, 19:06
Kontaktdaten:

Beitrag von Fantasmo » Di 4. Dez 2007, 08:28

Ich weiß nicht, ob einer meiner Vorredner nicht folgendes schon selbst gemeint hat:

Ich wollte die Farbe für die Navigationsschrift separat mit "&t=#FFFFFF" übergeben. Also so, wie es eigentlich mit "&s=20" für die Schriftgröße vorgegeben war.

Da habe ich folgende Änderung in Anfänger-Phantasie-Php versucht:
Meine Ergänzung in "textadmin" für die Textfarbe:

Code: Alles auswählen

<select name="t">
					  <?php
					  if(isset($_POST['t'])){
					  $text_color = $_POST['t'];
					  }
					  
					  for($i == $text_color){
					 echo "<option value=\"$i\" selected>$i</option>";
					  }else{
					  echo "<option value=\"$i\">$i</option>";
					  }
					  }
					  
					  ?>
                    </select>
Mein Eintrag ind "Modul-Templates" in <a href></a> z.B. bei "navfirst_on.html"

Code: Alles auswählen

<img src="textmaker/text.php?text={NAME}&t=#000000">
PS:
Ich habs bis jetzt immer nur im Internet-Explorer angeschaut, jedenfalls ist um die Schriften ein Rahmen drum. Wie geht das weg? Irgendwo Border=no oder ähnlich ging nicht so recht.

wosch

Beitrag von wosch » Di 4. Dez 2007, 09:42

Fantasmo hat geschrieben:Ich habs bis jetzt immer nur im Internet-Explorer angeschaut, jedenfalls ist um die Schriften ein Rahmen drum. Wie geht das weg? Irgendwo Border=no oder ähnlich ging nicht so recht.
So:

Code: Alles auswählen

<img src="textmaker/text.php?text={NAME}&t=#000000" border="0"> 

Fantasmo
Beiträge: 8
Registriert: Fr 30. Nov 2007, 19:06
Kontaktdaten:

Beitrag von Fantasmo » Mi 5. Dez 2007, 09:28

Vielen Dank für die Antwort.

Allerdings, das mit Textfarbe separat übergeben (t=), geht so nicht oder? Jedenfalls ändert sich meine Farbe nicht.

Andyk
Beiträge: 38
Registriert: Sa 14. Okt 2006, 11:56
Kontaktdaten:

Beitrag von Andyk » Fr 7. Dez 2007, 23:44

Was für einen Grund gibt es eine Headline als Bild auszugeben?

Aus SEO sicht ist es eher schlecht, da Suchmaschinen <h1>,... bewerten.

Gruß
Andy

i-fekt
Beiträge: 1520
Registriert: Mo 3. Jan 2005, 02:15
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von i-fekt » Sa 8. Dez 2007, 14:38

^_^
Zuletzt geändert von i-fekt am Do 21. Okt 2010, 11:56, insgesamt 1-mal geändert.
Gruss,
Michael

"Keep on riding this Bike!" (Jackson Mulham)

Andyk
Beiträge: 38
Registriert: Sa 14. Okt 2006, 11:56
Kontaktdaten:

Beitrag von Andyk » Sa 8. Dez 2007, 15:01

i-fekt hat geschrieben:
Andyk hat geschrieben:Was für einen Grund gibt es eine Headline als Bild auszugeben?
Ästhetische Gründe! Man baut Webseiten nicht für (Such)Maschinen sondern immer noch für Menschen!
Mmmh. Meine Kunden wollen eigentlich immer SEO Optimierte Seiten. Was nützt die beste Seite wenn sie keiner findet.
Google ist nunmal die Macht.

Fantasmo
Beiträge: 8
Registriert: Fr 30. Nov 2007, 19:06
Kontaktdaten:

Beitrag von Fantasmo » Di 11. Dez 2007, 00:33

Hallo,

ich bräuchte unbedingt noch einen Tipp zu meinem oben angesprochenen Codebeispiel, wie ich die Farbe immer separat ändern kann.

Ich habe einen Code in "textadmin" versucht (siehe oben), aber das funktioniert so nicht.

Brauche das unbedingt, da ich für "Navigation geklickt" oder "Navigation ungeklickt" dann jeweils versch. Farben machen möchte.

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 » Di 11. Dez 2007, 08:34

Fantasmo hat geschrieben:ich bräuchte unbedingt noch einen Tipp zu meinem oben angesprochenen Codebeispiel, wie ich die Farbe immer separat ändern kann.
Ich habe mir das nicht im Detail angeschaut, aber

Code: Alles auswählen

$_POST['t']
wird nicht funktionieren. Besser wäre wohl

Code: Alles auswählen

$_GET['t']
.

Fantasmo
Beiträge: 8
Registriert: Fr 30. Nov 2007, 19:06
Kontaktdaten:

Beitrag von Fantasmo » Mo 17. Dez 2007, 16:12

Ich habe "POST" mit "GET" erstetz, aber das funktioniert nicht.

Ich denke mal, der ganze Code geht evtl so nicht, für die Schriftfarbe... ich habe auch nur den Code von der Schriftgröße etwas umgeformt.
Ich kann also jetzt nix garantieren...

Wer weiß bescheid? Wie kann ich die Schriftfarbe separat mit &t=#000000 übergeben? Dann sind diesbezüglich auch mal alle meine Fragen geklärt und ich halte den Schnabel :D

wosch

Beitrag von wosch » Mo 17. Dez 2007, 18:35

Fantasmo hat geschrieben:Ich denke mal, der ganze Code geht evtl so nicht, für die Schriftfarbe... ich habe auch nur den Code von der Schriftgröße etwas umgeformt.
Gelesen auf der 2. Seite?
Dodger77 hat geschrieben:
silicone hat geschrieben:Aber wie schaffe ich es, die Textfarbe als Parameter mitzugeben??
Dafür muss du das verwendete Skript "text.php" anpassen. Andernfalls lässt sich die Farbe in "text_config.inc.php" spezifizieren.

econsul
Beiträge: 29
Registriert: Do 22. Jan 2004, 17:04
Kontaktdaten:

Probleme mit Umlauten seit Umstellung auf PHP5

Beitrag von econsul » So 13. Jan 2008, 22:49

Seit der Umstellung auf PHP5 werden die Umlaute nicht mehr angezeigt. Bzw. es erscheint ein Platzhalter anstelle des Buchstabens. Habt Ihr das Problem nicht?

Mit PHP4 hat es bestens funktioniert.
Hat mit PHP5 etwas an der Funktion urlencode geändert?

Der an text.php übergebene String sieht eigentlich in Ordnung aus:

Code: Alles auswählen

<img src="textmaker/text.php?text=VERW%D6HNBEREICH&s=16" alt="VERWÖHNBEREICH">

econsul
Beiträge: 29
Registriert: Do 22. Jan 2004, 17:04
Kontaktdaten:

Beitrag von econsul » Mo 14. Jan 2008, 23:38

Kann mir denn keiner helfen?

OK, dann helf ich mir halt selber.

ImageTTFText aus der Standard-GD-Library in PHP5 hat ein Codierungsproblem mit Umlauten. Für OpenType-Fonts konnte ich das Problem nicht lösen. Für TrueType gibts einen Workaround:

Einfach im File text.php ob dem Bildgenerator diesen Workaround einfügen. Ist zwar nicht schön, aber funktioniert mit TrueType:

Code: Alles auswählen

function umlWorkaround($text) { 
 $text = (string) $text; 
 $text_out = ""; 
 
 for($i = 0, $n = strlen($text); $i < $n; $i++) { 
 $text_out .= "&#" . ord($text[$i]) . ";"; 
 } 

 return $text_out; 
 }

$text = umlWorkaround($text);
Und für die Bequemen hier das ganze File:

Code: Alles auswählen

<?php
/**
 * dynTEXTmaker - Generate dynamic text buttons on the fly
 * 
 * @version 0.1
 * @copyright 19.08.2003
 * @author Marc Giombetti <marc@giombetti.com> 
 * 
 */
include("text_config.inc.php");

 if(isset($PATH_INFO) && $usekinkyurl == "1"){
    
     $vardata = explode('/', $PATH_INFO);
    
     $num_param = count($vardata);
    
     if($num_param % 2 == 0){
        
         $vardata[] = '';
         $num_param++;
         }
    
     for($i = 1; $i < $num_param; $i += 2){
        
         $$vardata[$i] = $vardata[$i + 1];
         }
     $text = urldecode($text);
     }else{
     $text = urldecode($_GET['text']);
     $s = $_GET['s'];
     }

 if(empty($s) || !is_numeric($s)){
     $s = $sizedefault;
     }else{
     if($s < $sizemin){
         $s = $sizemin;
         }
    
     if($s > $sizemax){
         $s = $sizemax;
         }
     }
 if(empty($text)){
     $text = $text_default;
     }
/**
 * hex2dec()
 * 
 * @param string $hex Hexadecimal color
 * @return array array('r','g','b')
 */
 function hex2dec($hex){
    $color = str_replace('#', '', $hex);
     $ret = array(
        'r' => hexdec(substr($color, 0, 2)),
         'g' => hexdec(substr($color, 2, 2)),
         'b' => hexdec(substr($color, 4, 2))
        );
     return $ret;
    }

/**
 * Workaround für Umlaute (nur TrueType-Fonts) 
 * 
 */

function umlWorkaround($text) { 
 $text = (string) $text; 
 $text_out = ""; 
 
 for($i = 0, $n = strlen($text); $i < $n; $i++) { 
 $text_out .= "&#" . ord($text[$i]) . ";"; 
 } 

 return $text_out; 
 }

$text = umlWorkaround($text);

if($usecache == 1){
    $cachestring = md5("$$bg_color|$text_color|$text|$font|$s");
    $imcache = @ImageCreateFromPNG ("$cachefolder$cachestring.png");
    if($imcache){
        ImagePNG($imcache);
        }else{
         Header("Content-type: image/png");
         $size = imagettfbbox($s, 0, $font, $text);
         $dx = abs($size[2] - $size[0]);
         $dy = abs($size[5] - $size[3]);
         $xpad = 9;
         $ypad = 9;
         $im = imagecreate($dx + $xpad, $dy + $ypad);
         $bgc = hex2dec($bg_color);
         $bg = ImageColorAllocate($im, $bgc['r'], $bgc['g'], $bgc['b']);
         $mac = hex2dec($text_color);
         $main = ImageColorAllocate($im, $mac['r'], $mac['g'], $mac['b']);
         ImageTTFText($im, $s, 0, (int)($xpad / 2), $dy + (int)($ypad / 2)-1, $main, $font, $text);
         ImagePng($im, "$cachefolder$cachestring.png");
         $imcache = @ImageCreateFromPNG ("$cachefolder$cachestring.png");
         ImagePNG($imcache);
         }
    }else{
    
     Header("Content-type: image/png");
     $size = imagettfbbox($s, 0, $font, $text);
     $dx = abs($size[2] - $size[0]);
     $dy = abs($size[5] - $size[3]);
     $xpad = 9;
     $ypad = 9;
     $im = imagecreate($dx + $xpad, $dy + $ypad);
     $bgc = hex2dec($bg_color);
     $bg = ImageColorAllocate($im, $bgc['r'], $bgc['g'], $bgc['b']);
     $mac = hex2dec($text_color);
     $main = ImageColorAllocate($im, $mac['r'], $mac['g'], $mac['b']);
     ImageTTFText($im, $s, 0, (int)($xpad / 2), $dy + (int)($ypad / 2)-1, $main, $font, $text);
     ImagePng($im);
     ImageDestroy($im);
    }
?> 


Gesperrt