Zum Inhalt springen

Repository-Zugriff aus itemsProcFunc in Flexform

Erstellt am 7. Mai 2015 · 2 Antworten · letzte Antwort am 23. April 2016

Tags: Frage

schmidtpublic ·

Hallo!

Ich möchte in meinem Plugin im Backend nur eine Auswahl von Einträgen anzeigen die von der (auf jeder Seite unterschiedlichen) StoragePID/StartingPoint abhängig ist.

Der Zugriff mittels itemsProcFunc in meiner Flexform auf meinen Helper funktioniert.
Dort kann ich auch auf mein Repository zugreifen.
Die Abfrage z.B. $repository->findByUid(1) funktioniert auch - nicht aber der Zugriff irgendein anderes Feld. Vor allem nicht meiner PID (im Beispiel mal fest gesetzt):

$objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
$repository = $objectManager->get('Sp\\Servicelinks\\Domain\\Repository\\ServicelinksRepository');
$servicelinks = $repository->findByPid(8);

Ich verstehe ja, dass diese Art von Zugriff irgendwie das Instanzieren umgeht - aber wieso funktioniert dann die Abfrage auf UIDs?

Wenn natürlich jemand noch eine andere Idee hat wie ich auch ohne den Umweg einer itemsProcFunc in meiner Flexform das Feld startingPoint als Bedingung nutzen kann, wäre mir auch schon mal geholfen...

Viele Grüße vom Rhein

Stefan

salsamartin ·

Hallo Stefan,

wie hast Du die Aufgabe gelöst?
Funktioniert Deine Extension

Servicelinks

mittlerweile?

Ich stehe vor dem gleichen Problem...

Viele Grüße aus dem vorderen Odenwald!

freshman17 ·

Im Backend ist die Seiten Id im $_GET - Array verfügbar, geht z.B. so:

$pageId = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('id');

Wenn ich mich nicht täusche werden an die Methode, die userfunc aufruft, zwei Paramater übergeben. Die Alternative wäre die Seiten ID daraus sich zu holen. Muss man halt debuggen.

TCA:

'userFunc' => 'Foo\Bar\Backend\Editor->main'

In der Klasse

public function main( $configuration, $formEngine ) {
// Seiten Id aus $configuration extrahieren
}