[TYPO3-german] Webanwendung portieren -> Wie viel Extensions?

Andreas Wolf typo3ml at andreaswolf.info
Tue Aug 28 20:21:31 CEST 2007


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hallo Michael,

> Ich möchte eine Webanwendung portieren, die ein relativ komplexes 
> Datenmodell (> 40 Tabellen) verwendet.
> Viele der Entitäten sollen auch im Frontend einzeln oder als Liste 
> angezeigt werden, würden also nach entsprechenden Plugins verlangen.
> Nun meine evtl. etwas dumme Frage: Muss ich für jede Entität eine eigene 
> Extension bauen bzw. ist das sinnvoll im Hinblick auf Modularität und 
> Übersichtlichkeit?
nein, das ist m.E., ohne deine Anwendung zu kennen, nicht sinnvoll. Da
die Tabellen ja vermutlich irgendwie zusammenhängen, wäre es Unsinn, die
auf mehrere Extensions aufzuteilen.

> So weit ich es verstanden habe, wird für jedes Frontend Plugin eine 
> Extension notwendig sein. Die Verwaltung der Daten im Backend verlangt 
> jedoch nicht zwingend eine Extension pro Tabelle, da ich da ja relativ 
> frei bin wie ich die Dateneingabe und -manipulation gruppiere.
Wenn ich mich nicht irre, hast du noch eine etwas falsche Vorstellung
von dem, was Extensions und Plugins in TYPO3 sind und wie die
miteinander und mit Tabellen zusammenhängen.
Eine Extension ist zunächst mal nur der Container für eine (nahezu)
beliebige Anzahl an Tabellen, Frontend-Plugin und Backend-Module. Du
kannst natürlich für jede Tabelle eine eigene Erweiterung machen, dann
noch eine Erweiterung für jedes Ausgabe-Plugin, aber das macht die Sache
nur unübersichtlich.
Für deinen Zweck wäre es vermutlich - vielleicht postest du mal ein paar
mehr Details, dann stochern wir hier nicht so im Nebel rum ;) - am
Besten, ein Plugin zu machen, das dann die Tabellen-Strukturen
bereitstellt. Wenn du willst, kannst du auch noch (ein oder mehrere)
Backend-Module zur Datenpflege machen, wenn dir die Möglichkeiten, die
TYPO3 out of the box bietet, nicht ausreichen, oder die Formulare zu
unkomfortabel sind.

Für die Frontend-Ausgabe reicht je nachdem ein Plugin, und wenn deine
Datenstruktur nicht zu komplex ist (miteinander verknüpfte Tabellen
etc.), dann kannst du u.U. sogar komplett auf PHP-Code verzichten und
das Ganze über TypoScript lösen. Das ist recht gut beschrieben z.B. im
TYPO3-Kochbuch aus dem O'Reilly-Verlag. Jo Hasenau, einer der Autoren,
postet auch regelmäßig hier.
Neben dem Kochbuch solltest du dir noch die TSref [1], die Core API [2]
und evtl. "TypoScript by Example" [3] besorgen. Viel Lesestoff für den
Anfang, aber die TSref ist ein unentbehrliches Nachschlagewerk, in dem
alle TS-Optionen mit verfügbaren Parametern aufgelistet und kurz
beschrieben sind.

Vielleicht solltest du dir auch mal die Extensions lib und div ansehen,
die vom Extension Coordination Team entwickelt werden. Dieses Duo
implementiert eine Basis in TYPO3, um Erweiterungen mit dem MVC-Ansatz
bauen zu können (MVC = Model, View, Controller, also die Kapselung der
Daten im Model, die Ansicht wird im/in der View gekapselt und der
Controller steuert das Ganze). Das könnte für ein recht umfangreiches
Projekt wie deins ganz nützlich sein, weil du damit neue Ansichten
relativ einfach hinzufügen kannst, wenn das Model erstmal ausgereift
ist. Es reduziert auf jeden Fall den Aufwand bei mehreren ähnlichen
Ansichten deutlich.

So, das war jetzt viel Input für den Anfang, aber ein Stichwort will ich
dir noch mitgeben - ob es was nutzt, musst du selber entscheiden: IRRE.
Darunter versteht man in TYPO3-Kreisen das Inline Relational Record
Editing, mit dem in einem Datensatz weitere zu diesem Datensatz
verwandte Datensätze angelegt und gepflegt werden können. Das ist noch
was anderes als die "üblichen" Relationen, die TYPO3 auch beherrscht.
Damit hast du den Kind-Datensatz direkt in deinem Eltern-Datensatz
abgelegt und kannst ihn dort bearbeiten, ohne ihn extra öffnen zu müssen.

Und jetzt ist aber gut mit Verwirrung ;)

Grüße

Andreas

[1]
<http://typo3.org/documentation/document-library/references/doc_core_tsref/4.1.0/view/>
[2]
<http://typo3.org/documentation/document-library/core-documentation/doc_core_api/4.1.0/view/>
[3]
<http://typo3.org/documentation/document-library/core-documentation/doc_core_tsbyex/0.0.16/view/>

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFG1GeqwA09wjioC/0RArMrAJsFTuKemjdEAH2LSlWRgM2vIXAyJgCfR3sa
RfAV3KtyVdTgilOnf6DY1u0=
=KSmZ
-----END PGP SIGNATURE-----


More information about the TYPO3-german mailing list