Page 1 of 1

Benutzung von Tags in benutzerdefinierten Tags?

Posted: Thu Apr 05, 2007 12:05 pm
by LeisureLarry
Ist das obige möglich, d.h. kann man zB im Contentbereich einer Seite ein benutzerdefiniertes Tag einbinden, welches dann extrem einfach ausgedrückt mittels IF-ELSE-Anweisung zwischen der Anzeige von zwei anderen Tags entscheiden kann?

Grüße aus dem sonnigen Nürnberg
LeisureLarry

Re: Benutzung von Tags in benutzerdefinierten Tags?

Posted: Thu Apr 05, 2007 12:27 pm
by cyberman
Müsste via Smarty möglich sein, also ungefähr so

Code: Select all

{if ...}
   {udt-1}
{else}
   {udt-2}
{/if}
Wenn du noch mehr Verzweigungen benötigst, nimmst du {elseif}.

Re: Benutzung von Tags in benutzerdefinierten Tags?

Posted: Thu Apr 05, 2007 1:35 pm
by LeisureLarry
Das Problem ist, daß der Text (welcher unter anderem das Tag enthält) komplett aus der Datenbank per direktem PHP-Code ausgelesen wird. Kann ich da irgendwie manuell in meinem PHP-Code sagen, daß ich den Variableninhalt parsen bzw. rendern will?

Re: Benutzung von Tags in benutzerdefinierten Tags?

Posted: Thu Apr 05, 2007 2:04 pm
by cyberman
LeisureLarry wrote: komplett aus der Datenbank per direktem PHP-Code ausgelesen wird.
Ähmm, und wo es das Problem - dafür sind udts doch da  ::) ...
Kann ich da irgendwie manuell in meinem PHP-Code sagen,
Entweder ich stehe so kurz vor Ostern (Ende der Fastenzeit) heftig auf dem Schlauch, oder ich hab dich bislang falsch verstanden. Du kannst doch ganz normal in den udt

Code: Select all

echo $variable;
reinschreiben ...

Re: Benutzung von Tags in benutzerdefinierten Tags?

Posted: Thu Apr 05, 2007 2:29 pm
by LeisureLarry
Also, das Problem ist folgendes:

Im Code des ben. Tags steht zB 'print $text;' und '$text = "sdgksfdgf {tag} skfgfkf";'.

In diesem Falle wird das Tag bei mir nicht gerendert, sondern als Text ausgegeben.

Re: Benutzung von Tags in benutzerdefinierten Tags?

Posted: Fri Apr 06, 2007 4:56 am
by cyberman
Hmm, ich glaub, jetzt verstehe ich - mir fielen da drei Möglichkeiten ein:

1. Du deaktivierst im Tag kurz php, also so

Code: Select all

$text = "sdgksfdgf ?>{tag}<?php skfgfkf";
2. Das gleiche für die Smarty-Seite, also im Content

Code: Select all

{php}$text = "sdgksfdgf {/php}
{tag}
{php} skfgfkf";{/php}
Ist aber IMHO ziemlich unelegant und hat einen Nachteil. Da dies im Content steht, kann dir jeder andere Editor drin rumpfuschen.

3. Du verwendest Smarty für die Zuweisung (vor dem benutzerdefinierten Tag)

Code: Select all

{capture name=variable}
  {tag}
{/capture}
Im benutzerdefinierten Tag solltest du dann $variable verwenden können.

Code: Select all

$text = 'sdgksfdgf ' . $variable . ' skfgfkf";