Search the FirstSpirit Knowledge Base
Hallo zusammen,
gerade wurde mir mal wieder prima geholfen. Schon mal vielen Dank dafür an die Community hier.
Uid des aufrufenden Absatztemplates ermitteln
Was mich aber jetzt schon die ganze Zeit umtreibt, wo kann ich denn solche Infos in der (den) FirstSpirit Doku(s) finden?
Schau ich mir z.B. die Online Doku unter
help/odfs/Vorlagenentwicklung/Vorlagensyntax/Systemobjekte/this/
an, so ist das Ergebnis ziemlich ernüchternd und unverständlich.
Und Templateentwicklung ist ja nun wahrlich keine Rocket-Sience, aber eben doch mehr als nur CMS_VALUE und CMS_IF.
Und sobald es über diese Trivalitäten hinausgeht, fühlt sich FirstSpirit für mich, der ich seit Jahren Software entwickle, wie ein großes Buch mit 28 Siegeln an. Als ob jegliche Infomation oder nützlicher Programmierhinweis so gut wie möglich versteckt werden muss oder nur Insidern vorbehalten sein darf. Ich finde schlicht und ergreifend nichts - und das nervt... und zwar extrem.
Vielleicht bin ich auch durch Jahre in den OpenSource Communities einfach "betriebsblind" und Suche völlig falsch nach den Informationen.
Bin daher hungrig auf Euren Input.
Danke schon mal und viele Grüße,
Jo
Hallo Joachim,
es freut mich, dass ich Dir im anderen Beitrag so gut weiterhelfen konnte! 🙂 Da ich auch nicht alle FirstSpirit-Kniffe auswendig kenne, muss ich auch ab und zu mal in der Dokumentation suchen, daher kann ich Dein Anliegen nachvollziehen.
Da wo die Online-Doku an ihre Grenzen stößt, hilft oftmals ein Blick in die FirstSpirit-Java-API weiter. So auch im von Dir beschriebenen Fall des Systemobjekts "this". Laut Online-Doku kann das darin zurückgegebene Objekt je nach verwendeter Stelle variieren. Mögliche Objekte sind unter anderem Page, PageRef oder Section. In dem von Dir verlinkten Beitrag haben wir uns in einer Section befunden. Wenn wir nun in der Online-Doku zu "this" auf den Section-Link klicken, gelangen wir zur Java-API der Section-Klasse. Die Section-Klasse implementiert das Interface IDProvider, über dessen getParent()-Methode man an das übergeordnete Objekt kommt. Dies ist dann zunächst auch wieder "nur" ein IDProvider. Da wir aber von einer Section ausgehend eine Ebene nach oben gegangen sind, wissen wir, dass dieser IDProvider ein Body sein muss. Schauen wir uns dann die Java-API zu Body an, finden wir dort die Methode getName(), um an den Namen zu kommen.
Man muss natürlich jetzt auch wissen, dass man innerhalb von Templates auf Objekten wie "this" auch ganz normal die vorhandenen Methoden aus der Java-API aufrufen kann. Also in diesem Beispiel: this.getParent().getName(). Darüber hinaus ist es aber auch möglich, diese Aufrufe durch this.parent.name abzukürzen. Dies war dann auch genau die Lösung, die ich im verlinkten Beitrag gepostet habe.
Ich hoffe, ich konnte Dir mit dieser Erklärung ein wenig weiterhelfen und dass Du Dich so in Zukunft etwas besser in unserer Doku zurechtfindest. 🙂
Viele Grüße
Donato
Hallo Donato,
vielen Dank für Deine ausführliche Erklärung. Mal schauen, wie weit ich damit kommen kann 🙂
Grüße
Jo