Page 1 of 1

FrontentUser und Plugins ganz schön kompliziert...

Posted: Fri Jan 18, 2008 11:52 am
by susiklein
Ich habe da ein kleines Problemchen... ??? :-\
Eigendlich zwei ::)

1. Problem:
Eine Visitenkarte einrichten zu lassen Sie können hier in einem Textfeld (subdomain) Ihre gewünschte Subdomain eintragen. Die Einrichtung wird manuell durchgeführt.
So lange die Domain nicht eingerichtet ist, soll das Textfeld (subdomain) dort stehen.
Sobald die Einrichtung erfolgt ist, soll im Adminbereich ein Listenfeld auf ja (ist eingerichtet) gestellt werden.
Nun soll aber im Bereich Einstellungen ändern statt das Textfeld nur noch der Text stehen:
Die Subdomain soundso ist eingerichtet worden.
Kann ich dafür irgendwie die reinen Werte der Felder verwenden und den Text dann dementsprechend anpassen oder gibt es in den aufzurufenden Variablen nur die Felder selbst?
ich habe hier auch schon dieses {get_template_vars} verwendet, aber bin leider durch die ganzen Arrays nicht ganz durchgestiegen.

2. Problem:
Bei selbst geschriebenen Plugins habe ich das Problem, dass ich die Userid des eingeloggten Benutzers nicht vom Template in die Datei mit übertragen kann. Denn ich möchte vergleichen, ob der User wirklich angemeldet ist oder nicht. Gibt es hier diese gewünschte Möglichkeit? Ich habe aus reiner Not ein Formular benutzt und es mit Post übersendet, jedoch gibt sich die Möglichkeit nicht immer. Vor allem, wenn sich dort kein Formular befindet ;D

3. Problem:
Das dritte Problem ist, dass ich bei diesen Plugins es irgendwie nicht schaffe, Variablen für das Template zu erzeugen. ich habe mir das Ding bereits angeschaut Dieses mit dem assign->blabla. ich habe bis jetzt noch nicht rausgefunden, warum es in einigen Dateien funktioniert und in anderen nicht.

Re: FrontentUser und Plugins ganz schön kompliziert...

Posted: Fri Jan 18, 2008 7:49 pm
by NaN
Ähm... nach Adam Riese sind das drei...  8)

zu 1.:
Wo, von wem und vor allem wie soll diese Visitenkarte angelegt werden?
Benutzt Du dazu ein oder mehrere Modul/e?
Wenn ja, welche/s?
Wenn nicht, dann brauchst Du womöglich eins (oder zwei...).
Wenn es dazu nix gibt, musst Du es wohl selber schreiben (bzw. schreiben lassen).

Wo genau im Adminbereich soll sich denn dieses Listenfeld (das dann auf "Ja" gestellt werden soll) befinden?
Kann ich dafür irgendwie die reinen Werte der Felder verwenden und den Text dann dementsprechend anpassen oder gibt es in den aufzurufenden Variablen nur die Felder selbst?
Von welchen Feldern ist hier die Rede?

Sorry, wenn ich mich mit der Beantwortung Deiner Fragen etwas dämlich anstelle, abe es fällt mir (noch) schwer mich in Deine Idee hineinzudenken.

zu 2.:
Die Variable dürfte sich entweder in dem array $params oder dem Objekt $gCms befinden. Lass Dir doch mal die Struktur der beiden genannten mit Hilfe des php-Befehls printr($params) ausgeben.
(Achtung: printr($gCms) dürfte eine Weile dauern)

zu 3.:
Wie genau sehen denn die Aufrufe im Script aus, bei denen es funktioniert bzw. nicht funktioniert? In welchen Dateien werden sie aufgerufen?
Prinzipiell sieht das meistens so aus:

Code: Select all

$smarty->assign('name_der_template_variable','$name_der_php_variable');
bzw.

Code: Select all

$this->smarty->assign('name_der_template_variable','$name_der_php_variable');
Ich habe allerdings noch keine Plugins geschrieben. Kann sein, dass das da anders ist.
In der Regel werden Plugins ja schon via Smarty vom Template aus als eine Art Funktion aufgerufen und sollten daher lediglich einen Wert zurückgeben, der dann anstelle des Tags stehen und vom Browser angezeigt werden soll, oder seh ich das falsch?

In Deinem Plugin sollte also am Ende nur stehen

Code: Select all

return($name_der_php_variable);
Wenn Du die Ausgabe des Plugins von einem Template abhängig machen willst, dann musst Du 1. ein solches Template schreiben und im Ordner plugins/templates unter name_des_templates.tpl speichern und 2. am Ende Deines Scriptes dann dieses Template mit Hilfe von

Code: Select all

ProcessTemplate('name_des_templates.tpl');
bzw.

Code: Select all

$this->ProcessTemplate('name_des_templates.tpl');
verarbeiten.

Re: FrontentUser und Plugins ganz schön kompliziert...

Posted: Thu Jan 24, 2008 5:39 pm
by cyberman
susiklein wrote: ich habe hier auch schon dieses {get_template_vars} verwendet, aber bin leider durch die ganzen Arrays nicht ganz durchgestiegen.
Arrays kannst du dir auch z.Bsp. mit {$entry|print_r} anzeigen lassen. PHP-Funktionen als Modifikatoren sind schon 'ne coole Sache  8) ...