wie übergebe ich Seitentitel an UdT?

Diskussionen zur Smarty-Template-Engine
Locked
gardapro
Forum Members
Forum Members
Posts: 53
Joined: Mon Jan 04, 2010 1:52 pm

wie übergebe ich Seitentitel an UdT?

Post by gardapro »

Ich möchte den jeweiligen Seitentitel als Variable an ein phpscript in einem benutzerdefinierten Tag übergeben. Habe bis jetzt aber noch keine Lösung gefunden. Kann mit jemand helfen?
gardapro
Forum Members
Forum Members
Posts: 53
Joined: Mon Jan 04, 2010 1:52 pm

Re: wie übergebe ich Seitentitel an UdT?

Post by gardapro »

Habe die Lösung gefunden:
Eintrag im UdT:

  global $gCms;
  $smarty = &$gCms->GetSmarty();
  $smarty_data = "{title}";
  $smarty->_compile_source('temporary template', $smarty_data, $_compiled );
  @ob_start();
  $smarty->_eval('?>' . $_compiled);
  $_contents = @ob_get_contents();
  @ob_end_clean();
NaN

Re: wie übergebe ich Seitentitel an UdT?

Post by NaN »

OMG!   :o

Das geht doch auch viel einfacher ;)

Im Template:

Code: Select all


{capture assign="title"}{title}{/capture}
{DEIN_UDT title=$title}

oder

Code: Select all


{DEIN_UDT title=$content_obj->mName}

Und im UDT dann einfach:

Code: Select all


if (isset($params['title'])
...

also alle Parameter, die Du Deinem UDT übergibst, können im UDT über ein Array namens $params['PARAMETER NAME'] erreicht werden.
Da ist nix mit kompilieren ;D


Oder ganz einfach, ohne capture, assign oder irgendwelche Parameter:

Template:

Code: Select all


{DEIN_UDT}

und im UDT:

Code: Select all


global $gCms;
$title = $gCms->smarty->_tpl_vars['content_obj']->mName;

CMSms verbraucht nich umsonst so viel RAM ;)
So muss man nicht ständig irgendwas neu berechnen lassen oder auf die DB zugreifen.
Ist fast alles was irgendwie wichtig sein könnte (und eigentlich noch viel mehr  ::) ) im $gCms Objekt gespeichert.
Man muss nur wissen wie man da ran kommt ;D
cyberman

Re: wie übergebe ich Seitentitel an UdT?

Post by cyberman »

Locked

Return to “Smarty-Tipps und -Tricks”