Wie rufe ich ein Modul aus einem Tag heraus auf?

Hilfe zu Modulen und Tags
Post Reply
leerraum
Forum Members
Forum Members
Posts: 180
Joined: Wed Apr 22, 2009 2:54 pm

Wie rufe ich ein Modul aus einem Tag heraus auf?

Post 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
cyberman

Re: Wie rufe ich ein Modul aus einem Tag heraus auf?

Post 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}
leerraum
Forum Members
Forum Members
Posts: 180
Joined: Wed Apr 22, 2009 2:54 pm

Re: Wie rufe ich ein Modul aus einem Tag heraus auf?

Post 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.
cyberman

Re: Wie rufe ich ein Modul aus einem Tag heraus auf?

Post 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
leerraum
Forum Members
Forum Members
Posts: 180
Joined: Wed Apr 22, 2009 2:54 pm

Re: Wie rufe ich ein Modul aus einem Tag heraus auf?

Post 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.
cyberman

Re: Wie rufe ich ein Modul aus einem Tag heraus auf?

Post 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 ...
leerraum
Forum Members
Forum Members
Posts: 180
Joined: Wed Apr 22, 2009 2:54 pm

Re: Wie rufe ich ein Modul aus einem Tag heraus auf?

Post 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.
Attachments
da.gif
cyberman

Re: Wie rufe ich ein Modul aus einem Tag heraus auf?

Post by cyberman »

Via $gCms->modules['TTT']['object'] oder $gCms->modules['TrueTypeText']['object'] ... musst mal schauen, wie das Modul genau benamst ist.
NaN

Re: Wie rufe ich ein Modul aus einem Tag heraus auf?

Post 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();
}

Post Reply

Return to “Module und Tags”