Mailinglisten-Archive |
Hallo Hinrich, Am Montag, 25. Juni 2001 um 16:07 wurde geschrieben: >> > Wenn ich Funktionen registriere, kann ich dann im Template auch einen >> > Rückgabewert vergleichen? Nach dem Motto {if myfunc eq "passed"}? >> >> Nenne mal bitte ein konkretes Beispiel, dann werde ich Dir hoffentlich >> eine Lösung aufzeigen können. > function foo($params) { > extract($params); > if (!empty($test)) { > return eregi("(altavista)", $test)); > } > return 0; > } $smarty->>register_function("bot", "foo"); > {if bot test=$user_agent } > blafasel > {/if} Weshalb möchtest Du diese Funktion unbedingt innerhalb Smarty einbauen? Definiere die Funktion ganz normal innerhalb deines Scriptes. Übergib der Funktion die entsprechenden Parameter. Dann führts durch innerhalb des Scriptes dei Variabalenzuweisung: $useragent = foo($HTTP_USER_AGENT); $smarty->assign("bot", $useragent); durch. Im Template kannst Du dann ja die Variable $bot ansprechen und testen. Oder du führst die Tests schon im Script durch: $useragent = foo($HTTP_USER_AGENT); ($useragent == "altavista") ? $text = "Der Bot heisst Altavista" : $text = "Es ist kein Bot"; $smarty->assign("bot", $text); Reicht Dir das? Ich benutze nur selbstgestrickte Modifier um Variablen zu "gestalten". Die Funktionen habe ich immer in meine eigene Programmlogik (meistens als Klassen) reingesteckt. Grüße Andreas -- vocote.de e.K. Internetapplikationen Neudörfeler Str. 4a - D-08543 Jocketa Fon: +49-37439-77175 - Fax: +49-37439-77185 http://www.vocote.de - mailto:info_(at)_vocote.de
php::bar PHP Wiki - Listenarchive