View previous topic :: View next topic |
Author |
Message |
ven Smarty Rookie
Joined: 28 Jan 2007 Posts: 6
|
Posted: Sat Mar 03, 2007 9:52 am Post subject: Titelproblem, Umlaute ersetzen |
|
|
Hallo,
ich habe folgendes Problem: Die Detail-URL, die angezeigt wird, hat den Titel meiner in meinen Webkatalog eingetragenen Webseiten.
Sprich: "Hans tolle Webseite für alles"
Wäre dann als URL: www.meinewebseite.de/details/Hans_tolle_Webseite_für_alles.html
Problem ist, dass ich die Umlaute das rauskriegen muss. Ich habs wie folgt versucht, aber es klappt einfach nicht:
{$link.TITLE|escape|trim|replace:" ":"_"|replace:"Ä":"Ae"|replace:"Ü":"Ue"|replace:"Ö":"Oe"|replace:"ä":"ae"|replace:"ö":"oe"|replace:"ü":"ue"|replace:"Ä":"Ae"|replace:"Ö":"Oe"|replace:"Ü":"Ue"|replace:"ä":"ae"|replace:"ö":"oe"|replace:"ü":"ue"}
Kann mir da jemand weiterhelfen? |
|
Back to top |
|
Stoke Smarty n00b
Joined: 24 Feb 2007 Posts: 4
|
Posted: Sat Mar 03, 2007 10:40 am Post subject: |
|
|
Machs einfach in php, wie das mit Smarty funktioniert kann ich dir leider auch nicht sagen...
Hier mal meine Funktion dafür, vielleicht hilft dir das
Schreib sie dir einfach so um wie du sie brauchst!
Code: | function umlaut($text) {
$char = '/ä/';
$replace = 'ä';
$text = preg_replace($char, $replace, $text);
$char = '/Ä/';
$replace = 'Ä';
$text = preg_replace($char, $replace, $text);
$char = '/ö/';
$replace = 'ö';
$text = preg_replace($char, $replace, $text);
$char = '/Ö/';
$replace = 'Ö';
$text = preg_replace($char, $replace, $text);
$char = '/ü/';
$replace = 'ü';
$text = preg_replace($char, $replace, $text);
$char = '/Ü/';
$replace = 'Ü';
$text = preg_replace($char, $replace, $text);
$char = '/ß/';
$replace = 'ß';
$text = preg_replace($char, $replace, $text);
return $text;
} |
Hoffe dass ich helfen konnte!
Gruß,
Stoke |
|
Back to top |
|
ven Smarty Rookie
Joined: 28 Jan 2007 Posts: 6
|
Posted: Sat Mar 03, 2007 11:07 am Post subject: |
|
|
Das müsste ich dann wahrscheinlich vor die ausgabe/weitergabe des $Titels an die .tpl Datei setzen richtig? Ich weiß leider nicht wo die verarbeitet/weitergegeben wird. |
|
Back to top |
|
Stoke Smarty n00b
Joined: 24 Feb 2007 Posts: 4
|
Posted: Sat Mar 03, 2007 4:58 pm Post subject: |
|
|
Nein, das hat mit den Templates nix zu tun.
Das kommt in die php Datei (normalerweise hat man für Funktionen eine functions.php, die man einfach includet wenn sie gebraucht wird; aber das is eigentlich egal).
Danach übergibst die Variable wie gehabt ans Template, nur dass du eben die Funktion aufrufst.
So in etwa:
Code: | $smarty->assign('titel', umlaut($titel)); |
|
|
Back to top |
|
ven Smarty Rookie
Joined: 28 Jan 2007 Posts: 6
|
Posted: Sun Mar 04, 2007 4:17 pm Post subject: |
|
|
alles klar danke. und wie kann ich die variable an ein bestimmtes template weitergeben? weil das template an die ich die variable weitergeben möchte besitzt eine .php datei. |
|
Back to top |
|
gnuffmaster Smarty Elite
Joined: 13 Jul 2006 Posts: 440 Location: Düsseldorf, Germany
|
|
Back to top |
|
Stoke Smarty n00b
Joined: 24 Feb 2007 Posts: 4
|
Posted: Fri Mar 09, 2007 6:38 pm Post subject: |
|
|
Naja, ich wollte ne Funktion die nur die Umlaute ersetzt.
htmlentities() eretzt ja alle Sonderzeichen, somit kann man kein HTML mehr aus der Datenbank ausgeben. |
|
Back to top |
|
Max-3D Smarty Regular
Joined: 22 Dec 2005 Posts: 37
|
Posted: Sun Oct 27, 2013 8:04 pm Post subject: |
|
|
Bei mir geht der Code oben perfekt !!!
Danke ich brauchte es, suchte es und 1 Minute später ließ es perfekt
Gruß Maxen |
|
Back to top |
|
|