Discussion:
[TYPO3-german] Best practice: Wie auf Typoscript-Settings aus einer anderen Extension zugreifen
Chris
2016-09-20 09:08:17 UTC
Permalink
Hallo zusammen,

ich frage mich gerade, was der besten Weg ist, aus einer eigenen Extension die TYPOscript-Settings einer anderen Extension zu erweitern.

Konkret erweitere ich die News Extension um einen Autor. Wenn nun eine News angezeigt wird, wird der Name des Autors verlinkt. Der Link soll auf eine Autor-Detail-Seite gehen. Die Pid der Autor-Detail-Seite habe ich natürlich im Moment der Darstellung einer News nicht.

Nun habe ich in dem TS-Setup meiner Extension folgendes erweitert:

plugin.tx_news {
settings {
newsAuthor < plugin.tx_newsauthor.settings
}
}

Nun kann ich in dem Template folgendermaßen den Link bauen:
<f:link.action action="show" controller="NewsAuthor" extensionName="newsauthor" pluginName="newsauthor" arguments="{newsAuthor: newsItem.newsAuthor}" pageUid="{settings.newsAuthor.authorDetailPid}">
Vorname Nachname
</f:link.action>


Das Gleiche benötige ich auch noch in die andere Richtung, also in meiner Extension muss ich auf die Settings der News Extenions zugreifen.

plugin.tx_newsauthor {
settings {
newsDetailPid < plugin.tx_news.settings.newsDetailPid
}
}

Ist das "the TYPO3 way" oder wird das eigentlich anders gelöst?

Danke für euer Feedback
chris
Philipp Gampe
2016-09-20 09:19:45 UTC
Permalink
Hi Chris,
Post by Chris
Ist das "the TYPO3 way" oder wird das eigentlich anders gelöst?
Das sieht so gut aus.

Grüße
--
Philipp Gampe – PGP-Key 0AD96065 – LFCS
TYPO3 CMS Certified Integrator – Certified Developer – Active contributor
TYPO3 .... inspiring people to share!
Dr. Dieter Porth
2016-09-20 12:41:23 UTC
Permalink
Hallo Chris,

Zusätzlich sinnvoll wäre es in jedem Fall, die Dependencie in der
ext_emconf.php anzugeben, um deine Extension gegen das ungeteste
Einspielen von Updates der News-Extension zu 'schützen'.

Natürlich kannst du das Typoscript-Settings anderer Extension auf die
von dir beschriebene Art und Weise erweitern oder auch überschreiben,
aber ...
Denke aber auch an den nächsten Programmierer, der die Aufsetzung mit
deine Extension warten soll. Der wird sich in der News-Extension bei den
Flexforms, bei der Dokumentation und beim TypoScript wie ein Idiot
suchen, um den ursprünglichen Sinn von
settings.newsAuthor.authorDetailPid zu verstehen.

Da du ohnehin das modifizierte Template ohnehin in deiner Extension
definierst, wäre es da nicht der sinnvollste Weg, alle Erweiterungen
auch in deiner Extension direkt zu definieren?
Dann könntest du die Seiten-ID auch direkt als Variable an dein
Fluidtemplate übergeben, statt den komplizierten Umweg über das
TypoScruippt zu wählen.

Mit besten Grüßen
Dieter

Anregung:
Für deinen Fall könntest du vielleicht auch per TCA/Override/ in deiner
Extension das Autorenfeld der News-Extension redefinieren oder die
entsprechende News-Tabelle um ein eigene Felder erweitern, um so bei der
Eingabe von News nur die Angabe von ausgewählten Autoren mit definierten
Profilen zuzulassen. (Property-Mappiung)
Dann könntest du direkt auf die Detailseite der jeweiligen Autoren
verlinken oder ein Plugin zur Ausgabe von Autoren schreiben.
...
Aber das wird natürlich aufwendig.
...

Loading...