TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

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


Autor Nachricht
Verfasst am: 05. 08. 2009 [14:58]
suit
Themenersteller
Dabei seit: 09.01.2007
Beiträge: 47
Hallo,

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

PHP
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:
TYPOSCRIPT
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.

Profil
Verfasst am: 05. 08. 2009 [15:18]
einpraegsam.net
Moderator
Dabei seit: 17.01.2005
Beiträge: 8607
Stichwort ist userFunc - du rufst in mailformplus kein TEXT Element sonder eine userFunc auf - that's it

ProfilWWW
Verfasst am: 05. 08. 2009 [15:22]
wurgli
Dabei seit: 01.03.2006
Beiträge: 390
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.

TYPOSCRIPT
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

TYPOSCRIPT
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.

ProfilWWWICQ
Verfasst am: 05. 08. 2009 [15:30]
suit
Themenersteller
Dabei seit: 09.01.2007
Beiträge: 47
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:

PHP
main() {
  // mach nix
}


sowie

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


[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 05.08.2009 um 15:32.]
Profil
Verfasst am: 05. 08. 2009 [15:40]
wurgli
Dabei seit: 01.03.2006
Beiträge: 390
Danke, bei mir auch. icon_biggrin.gif

ProfilWWWICQ
Verfasst am: 05. 08. 2009 [15:47]
suit
Themenersteller
Dabei seit: 09.01.2007
Beiträge: 47
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.
Profil
Verfasst am: 05. 08. 2009 [18:08]
suit
Themenersteller
Dabei seit: 09.01.2007
Beiträge: 47
nvm - ich hab's jetzt als XCLASS-Extension in mailformplus eingebaut. Zwar nicht ganz das was ich wollte, aber auch ok.
Profil
Verfasst am: 09. 02. 2011 [22:16]
asosking
Dabei seit: 09.02.2011
Beiträge: 1
Hallo Suit
falls noch möglich: könntest du die Lösung posten, wäre sehr dankbar
Profil