phpbar.de logo

Mailinglisten-Archive

[php] Smarty

[php] Smarty

Andreas Kaiser php_(at)_phpcenter.de
Tue, 26 Jun 2001 09:25:12 +0200


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