Zum Inhalt springen

Werte aus Frontend-Plugin in folgenden Marker einfügen.

Erstellt am 5. August 2009 · 7 Antworten · letzte Antwort am 9. Februar 2011

Tags: PHP, Frage

suit ·

Hallo,

folgendes Problem: ich hab' ein Frontend-Plugin in einer Seite eingebunden dessen main-Funktion (vereinfacht) so aussieht:

	function main($content,$conf)	{
		$this->conf=$conf;
		$this->pi_setPiVarDefaults();
		$this->pi_loadLL();
		$this->pi_USER_INT_obj=1;
	
		$content= $this->cObj->data['tx_name_meinwert'];
		return $content;
	}

Jetzt habe ich auf derselben Seite ein th_mailformplus eingebunden in dessen Template ein Marker ist

Diese befülle ich aktuell per TypoScript etwa so:

plugin.tx_thmailformplus_pi1.markers.meinmarker = TEXT
plugin.tx_thmailformplus_pi1.markers.meinmarker.value = foobar

Nun soll dieser Marker aber mit dem Rückgabewert des Plugins befüllt werden und die Ausgabe des Plugins ans Frontend unterdrückt werden.

Wie gehe ich hier vor - bzw. mache ich ggf. etwas gänzlich falsch?

Hintergrund: der normale Endbenutzer soll in dem Plugin einige Wert-Paare eintragen die an in mailformplus-gerechten HTML-Code konvertiert werden. Quasi ein einfach wartbares "include" mit Formularfeldern.

wurgli ·

Hallo,

hänge an der gleichen oder einer ähnlichen Stelle. Versuche dynamisch ein JS-File zu erstellen.

Versuche das ganze über ein PAGE-Objekt bzw. typeNum zu lösen, komme aber momentan auch nicht weiter.

tx_meineext = PAGE
tx_meineext {
	typeNum = 1728
	
	config {
		disableAllHeaderCode = 1
		disablePrefixComment = 1
		xhtml_cleaning = 0
		admPanel = 0
	}
	
	10 = TEXT
	10.value = Hallo weiß nicht weiter
}

und dann das ganze per

page.headerData.1728 = TEXT
page.headerData.1728.dataWrap =  <script type="text/javascript" src="index.php?id={field:uid}&type=1728" />|

reinzuhängen. Nur keine Ahnung wie ich an die Ausgabe im FE-Plugin komme. UID übergebe ich damit ich im Plugin weiß woher die Anfrage kommt und type frage ich natürlich vorher ab und leite es an die jeweilige Funktion weiter.

suit ·

Funktioniert wunderbar. Danke. (Edit: die sache mit userFunc)

Sieht jetzt so aus:

plugin.tx_thmailformplus_pi1.markers.meinmarker = USER
plugin.tx_thmailformplus_pi1.markers.meinmarker {
userFunc = tx_meinplugin_pi1->main
}

Und jetzt noch die Frage - kann ich die Ausgabe des Plugins unterdrücken oder muss ich das ganze zwingend umbenennen bzw aus der main-Funktion entfernen?

also so:

main() {
  // mach nix
}

sowie

user_main() {
  // mach alles wie gewünscht
}
suit ·

Kommando zurück.

$this->cObj->data referenziert natürlich nun auf das Element/Plugin mit dem mailformplus eingebunden wurde. Ich möchte aber aber auf die Werte des anderen Plugins zugreifen.

suit ·

nvm - ich hab's jetzt als XCLASS-Extension in mailformplus eingebaut. Zwar nicht ganz das was ich wollte, aber auch ok.