Zum Inhalt springen

Parameterübergabe aus BE an Methode / USER_INT

Erstellt am 23. Mai 2016 · 1 Antwort · letzte Antwort am 3. Juni 2016

Tags: FlexForms, Frage

wwestphal ·

Hallo,

zunächst bitte ich um Nachsicht, falls ich meine Frage im falschen Forum gepostet haben sollte - ist mein erster Post hier.
Es scheinen auch drei Topis berührt zu sein: Extension Programmierung, TypoScript und evtl. BE

Ich möchte gerne folgendes Problem lösen:

Ich habe eine Service Klasse in einer Extension erstellt, die vereinfachend wie folgt aussieht:

namespace Mein\Klassenpfad\Service;
class MeinService
	var $cObj;
	public function liefereErgebnis($parameter1, $parameter2)
	{
		//hier passiert es.... letztlich soll JSON erzeugt und zurückgegeben werden
	}
}

Diese würde ich gerne mittels USER_INT aufrufen, da der Aufruf auf jeden nicht durch Typo3 gecached werden darf, also z.B. so

lib.meinService {
	userFunc = Mein\Klassenpfad\Service\MeinService->liefereErgebnis
}

Ohne Auswertung der Parameter funktioniert das schon. Was mir bislang aber noch nicht gelungen ist, ist besagte Parameter aus einen Content Element (ein BE User soll letztlich die Werte für $parameter1 und $parameter2 hinterlegen können) an die Methode zu übergeben.
Ich vermute, dass dies irgendwie mittels f:cObject ViewHelper geht(?)

<f:cObject typoscriptObjectPath="lib.meinService" data="{parameter1:wert1,parameter2:wert2 }}" />

Fragen:

a) Wie gelangen die Werte aus dem Content Element in das data Argument von c😮bject?
b) Wie gelange ich an diese Werte von $parameter1 und $parameter2 in der Mehtode 'liefereErgebnis', um sie dort verarbeiten zu können?

Sollte ich mit dem Ansatz USER_INT auf dem Holzweg sein, so würde ich mich auch über einen alternativen Lösungsweg freuen.

Typo3 / Version 7.6.5

Vielen Dank schon mal vorab!

Gruß

Wulf.

aemka ·

Nimm einen anderen Ansatz - Extbase Extension mit Controller & Action. Dazu dann ein plugin mit flexform, wo der Redakteur irgendwelche Werte setzt. Diese Werte hast du dann in deiner Controller Action in $this->settings und kannst du ans Fluid Template o. ä. übergeben und rendern was du magst.