Page 1 of 1

wie übergebe ich Seitentitel an UdT?

Posted: Mon Mar 22, 2010 8:01 am
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?

Re: wie übergebe ich Seitentitel an UdT?

Posted: Mon Mar 22, 2010 11:09 am
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();

Re: wie übergebe ich Seitentitel an UdT?

Posted: Mon Mar 22, 2010 12:24 pm
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

Re: wie übergebe ich Seitentitel an UdT?

Posted: Tue Mar 23, 2010 7:24 am
by cyberman