Page 1 of 1
Wie rufe ich ein Modul aus einem Tag heraus auf?
Posted: Wed Nov 03, 2010 4:31 pm
by leerraum
Hi,
ich bin grade dabei mir einen kleinen Tag für eine Infobox zu basteln. Die Infobox soll TruetypeText im Header verwenden, also muss ich das irgendwie aufrufen, oder?
Ich habs so versucht, aber das geht so nicht. Wie muss ich das machen?
Code: Select all
function smarty_cms_function_infobox($params, &$smarty)
{
if(isset($params['width']) && isset($params['height']) && isset($params['title']) && isset($params['inhalt'])) {
$echostring = '<div style="width:100px; height:200px; background-color:#fef5fd; "><div style="width:100px;min-height:10px;background-color:e5e2eb;" >{cms_module module="TruetypeText" style="NoteboxMenupoints" text="hallowelt"}</div>hiersolldertexthin</div>';
return $echostring;
}else {
return;
}
}
function smarty_cms_help_function_infobox() {
echo lang('help_function_infobox');
}
function smarty_cms_about_function_infobox() {
}
Vielen Dank!
leerraum
Re: Wie rufe ich ein Modul aus einem Tag heraus auf?
Posted: Wed Nov 03, 2010 4:51 pm
by cyberman
Wo kommt denn der Text her?
Wenn der Text nicht bereits als Smarty-Variable zur Verfügung steht, kannst du den Text in PHP an Smarty zuweisen
Code: Select all
$smarty->assign('textvariable', 'hallowelt');
und dann das Modul diese Variable verarbeiten lassen
Code: Select all
{cms_module module='TruetypeText' style='NoteboxMenupoints' text=$textvariable}
Re: Wie rufe ich ein Modul aus einem Tag heraus auf?
Posted: Wed Nov 03, 2010 4:57 pm
by leerraum
Mensch, du bist heute Abend aber auf Zack
Der Text wird als Parameter 'Inhalt' an den Tag übergeben. Mein Problem ist, wenn ich den Tag aufrufe, gibt er mir den "{cms_module module="TruetypeText" style="NoteboxMenupoints" text="hallowelt"}" komplett als String aus, ohne das Modul aufzurufen. Ob ich als Parameter eine Variable oder fixen Text verwende, dürfte eigentlich keine Rolle spielen.
Re: Wie rufe ich ein Modul aus einem Tag heraus auf?
Posted: Wed Nov 03, 2010 5:07 pm
by cyberman
Eben, deswegen habe ich dir ja einen anderen Vorschlag gemacht

.
Hintergrund ist der, dass Tags von Smarty nicht noch mal extra geparst werden, sondern einfach nur dein echostring ausgegeben wird.
Oder du schiebst es mit eval manuell an
http://www.smarty.net/manual/en/languag ... n.eval.php
Beispiel 8-7
Re: Wie rufe ich ein Modul aus einem Tag heraus auf?
Posted: Thu Nov 04, 2010 4:36 pm
by leerraum
hm, das heißt ich müsste meinen Tag aufrufen, darin die Variable definieren und danach den eval aufruf machen?
macht nicht so viel sinn. ich möchte, dass der user später einfach den tag hinsetzt und dann der title schon aus ttt kommt..... ich fürchte ja fast, dass ich ein modul schreiben muss.
Re: Wie rufe ich ein Modul aus einem Tag heraus auf?
Posted: Thu Nov 04, 2010 6:16 pm
by cyberman
Du kannst natürlich auch via php auf das Modul zugreifen, aber nach deiner Beschreibung klang es für mich so, dass es einfacher auch ausreichend ist.
Und ein Modul muss es auch nicht zwingend sein, ein Tag ist viel performanter (muss nicht die ganze Modul-Api geladen werden).
Was ich allerdings noch nicht kapiert hab, wo der Text oder was auch immer herkommen soll ...
Re: Wie rufe ich ein Modul aus einem Tag heraus auf?
Posted: Wed Nov 10, 2010 10:51 am
by leerraum
Jetzt kommen wir der Sache näher. Wie kann ich per PHP auf TTT zugreifen?
Der Text wird direkt in den TinyMCE eingegeben. Siehe Anhang.
Re: Wie rufe ich ein Modul aus einem Tag heraus auf?
Posted: Wed Nov 10, 2010 10:59 am
by cyberman
Via $gCms->modules['TTT']['object'] oder $gCms->modules['TrueTypeText']['object'] ... musst mal schauen, wie das Modul genau benamst ist.
Re: Wie rufe ich ein Modul aus einem Tag heraus auf?
Posted: Wed Nov 10, 2010 11:01 am
by NaN
Bis Version 1.8.2 ging es noch so:
Code: Select all
global $gCms;
if(isset($gCms->modules['TrueTypeText']['object'])
&& $ttt =& $gCms->modules['TrueTypeText']['object'])
{
$ttt->DoSomethingTTTrelated();
}
Ab Version 1.9 geht das so:
Code: Select all
if($ttt =& cms_utils::get_module('TrueTypeText'))
{
$ttt->DoSomethingTTTrelated();
}