[TYPO3-german] Abfrage Stammbaum mittels TypoScript

Stephan Schuler Stephan.Schuler at netlogix.de
Thu Mar 14 02:22:25 CET 2013


Hallo zusammen.


Die Antwort ist zwar vermutlich eher akademisch wenn bereits eine schnelle und zufriedenstellende Lösung existiert. Trotzdem muss ich das mal los werden.

CONTENT hat eine Property "renderObj", mit der das Rendering für einen einzelnen Record definiert wird.
Sollte diese Property nicht belegt sein wird erwartet, dass eine Rootleveldefinition existiert, deren Name dem gelesenen Tabellennamen entspricht.

Damit sollte sich wunderbar Rekursion abbilden lassen.

http://pastebin.com/cf9CFsuj

Natürlich ist das Beispiel vereinfacht. Ein Stammbaum zeichnet sich dadurch aus, dass ein Knoten keine Person sondern eine "zwischenmenschliche Beziehung" ist die aus zwei Personen besteht, und dass eine Person im Laufe ihres Lebens durchaus in mehreren dieser Beziehungen stecken kann. Mein Beispiel geht davon aus, dass eine Person immer genau einen Elternteil hat. Würde mein Code diese Vereinfachung nicht treffen, müsste ich mir um Stiefkinder Gedanken machen.

Mein Beispiel wird vom Vater aus gelesen. Sollte vom Kind aus gelesen werden, darf meine Vereinfachung natürlich entfallen.

Man möge mir außerdem verzeihen, wenn der Select falsch ist oder ich Flüchtigkeitsfehler gemacht haben sollte. Ich will damit nur kurz demonstrieren, wie Rekursion mit TypoScript machbar sein sollte. Dabei dürfte der eigentliche Wert des renderObj zur Laufzeit referenziert werden, sodass der TypoScript-Parser aus dem Spiel ist.

Und natürlich haben wir pro Knoten einen SQL-Query, Performance sieht also auch anders aus.

Ich würde übrigens auch eher eine User-Func mit einem Fluid-Standalone-View in Betracht ziehen. Ein einziges Array das die Hierarchie des Stammbaumes abbildet kann ich mit einem SQL-Query pro menschlicher Generation sowie etwa sechs Zeilen PHP konstruieren. Ein Fluid-Template kann das völlig ohne ORM nehmen und durch ein bis vier Partials anständig zeichnen.


Gruß,



Stephan Schuler

Web-Entwickler

Telefon: +49 (911) 539909 - 0
E-Mail: Stephan.Schuler at netlogix.de
Website: media.netlogix.de


--
netlogix GmbH & Co. KG
IT-Services | IT-Training | Media
Andernacher Straße 53 | 90411 Nürnberg
Telefon: +49 (911) 539909 - 0 | Fax: +49 (911) 539909 - 99
E-Mail: info at netlogix.de | Internet: http://www.netlogix.de

netlogix GmbH & Co. KG ist eingetragen am Amtsgericht Nürnberg (HRA 13338)
Persönlich haftende Gesellschafterin: netlogix Verwaltungs GmbH (HRB 20634)
Umsatzsteuer-Identifikationsnummer: DE 233472254
Geschäftsführer: Stefan Buchta, Matthias Schmidt



________________________________________
Von: typo3-german-bounces at lists.typo3.org [typo3-german-bounces at lists.typo3.org]" im Auftrag von "JoH asenau [info at cybercraft.de]
Gesendet: Dienstag, 12. März 2013 14:48
An: typo3-german at lists.typo3.org
Betreff: Re: [TYPO3-german] Abfrage Stammbaum mittels TypoScript

Am 12.03.2013 14:05, schrieb Patric Eckhart:
> Ich danke euch allen für die Antworten.
> Ich werd mir das näher anschauen. Hab mit dem Kunden eben vereinbart,
> dass man bis zur Ebene
> der Urgroßeltern vortreten soll. Sollte ich als mit HMENU machen können
> oder sogar ganz einfach als CONTENT Obj.
> Performanter ist denk ich jedoch das HMENU was meint ihr?

HMENU sollte das IMHO in einem Query abfrühstücken können.
Bei CONTENT hättest Du jeweils einen pro Ebene.

Und wenn's nur bis zu den Urgrosseltern gehen soll, ist vollständige
Rekursion ja auch nicht wirklich nötig, von daher wäre Extbase/Fluid da
eher Overhead als Hilfe.

Frohes Schaffen

Jo

--
Wenn man keine Ahnung hat: Einfach mal Fresse halten!
(If you have no clues: simply shut your gob sometimes!)
Dieter Nuhr, German comedian
Xing: http://contact.cybercraft.de
Twitter: http://twitter.com/bunnyfield
TYPO3 cookbook (2nd edition): http://www.typo3experts.com
_______________________________________________
TYPO3-german mailing list
TYPO3-german at lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


More information about the TYPO3-german mailing list