[Typo3-german] Meine erste Extension.

Philipp Eggemann 12bitphil at web.de
Tue Aug 30 14:41:21 CEST 2005



German Typo3 Userlist <typo3-german at lists.netfielders.de> schrieb am 30.08.05 14:23:39:

Philipp Eggemann wrote:
> Hallo, bin noch ziemlich neu in Typo3 und schreibe gleich meine erste
> Extension/PlugIn. Hab erstmal einfach so losgelegt aber hänge grad n
> bissl. Ich benötige nun euren Rat. 1. ob das so funktionieren kann
> wie ich mir das vorstelle und 2. ob Ihr mir spezielle Literatur für
> meinen Fall empfehlen könnt.
> 
> Also, eine mit Typo3 kreierte Seite besteht bereits. Dort gibt es
> einen MP3 Player, erstellt mit Flash. Der Player liest Informationen
> wie Künstler, Titel, imglink, etc. aus einer externen Textdatei
> welche noch per Hand angelegt werden muß.

Was bedeutet, es gibt einen Player? Wo ist der in TYPO3 integriert? Im 
Template, als Inhaltselement auf jeder Künstlerseite?

 -----------------------------------------------------------------------------------------

Man klickt auf der Künstler Seite auf den Titel und der Player öffnet sich, sucht die entsprechende Textdatei und liest sie aus. Wie das exakt funzt kann ich nicht sagen da ich mit dem Player absolut NULL am Hut habe.

 -----------------------------------------------------------------------------------------

> Die Extension soll nun diesen Textstring automatisch generieren. Das
> bedeutet wenn ein neuer Künstler (Name, Bio, !MP3 Tracks!) angelegt
> wird, wird auch der Textstring mit den Informationen erzeugt und im
> entsprechenden Verzeichniss abgelegt.
> 
> So stelle ich mir das ganze nun vor: Ich erstelle ein Frontend PlugIn
> was auf jeder Künstler Seite eingefügt (unsichtbar) werden kann. Das
> PlugIn liest dann die benötigten Daten, welche vorher beim Künstler
> angelegt wurden, aus der Datenbank, erzeugt daraus einen Textstring
> und exportiert diesen als TXT Datei. Gleichzeitig soll aber auch die
> Möglichkeit bestehen die Daten für den Textstring manuelle
> einzugeben. Aber nicht im Frontend sondern im Backend. Und zwar in
> der Erweiterung unter "Seite editieren", also immer direkt auf der
> Künstler Seite.

Warum dieser Umweg über reguläre Seiten-Elemente, offensichtlich sind 
die einzugebenden Daten doch *immer* gleicher Natur?

Mein Vorschlag: Eine strunznormales FE-Plugin mit dem Kickstarter 
erstellen (für Deinen Fall kann man das CD-Sammlungsbeispiel aus den 
Dokuvideos zu 90 Prozent übernehmen), eine eigene DB mit den Feldern 
Künstler, Bio, Tracklist (bzw. warum nicht gleich die MP3-Dateien mit 
hochladen). Als FE-Plugin geht der klassische Listen-/Detailmodus für 
Deinen Fall auch sehr gut, das kann man ja später noch anpassen.

Für das Stringfeld mit den Infos für den Flashplayer gibt es drei 
Möglichkeiten:
1. Du bringst dem Player bei, das aus der DB oder sonstwo dynamisch 
herzuholen,
2. Du erstellst ein weiteres Feld Textstring in Deiner Tabelle, das per 
Userfunc oder Wizard automatisch/auf Knopfdruck mit den Werten aus den 
anderen Feldern gefüttert wird. Das ganze wird dann beim Speichern als 
Textdatei abgelegt.
3. Du machst ein Feld für die manuelle Eingabe des Textstrings, und Dein 
Plugin schreibt das manuelle Feld oder dynamisch erstellte Infos beim 
Laden in eine Datei. Diese Logik liegt dann im pi1/class...
 -----------------------------------------------------------------------------------------
Hm, so mache ich das doch? FE PlugIn, einfach auf der Künstler Seite einfügen, der Rest bzw. die Funktionen laufen dann beim Seitenaufruf automatisch ab. Aus der Datenbank kann ich den Plyer leider nicht auslesen lassen weil er wohl so bleiben soll wie er ist. Zu. 2. So soll es ja auch ablaufen. Besser stelle ich es mir halt so vor das die TXT bei jedem Seitenaufruf neu erstellt wird. Ändern sich Künstler Daten hat man immer die aktuellen Daten am Start. Von der Performance dürfte das ja keine Schwierigkeiten geben. Zu 3. Hier komme ich ja nicht weiter. Wie erstelle ich dieses Eingabefeld im Backend, bzw. stelle es zur Verfügung? Es muss auf jeden Fall beim PlugIn  sein und nicht beim Seiteninhalt (Templa Voila Ext.) Die class.tx_testphilipp_pi1.php habe ich schon gefunden und auch schon ein bisschen php rein geballert. Ich lese gerade die ID der aktuell geöffneten Seite aus. Nun will ich die Seiteninhalte in ein Array im PlugIn ziehen - aber ich finde die Tabellen nicht wo die Inhalte abgelegt sind. Hab zwar die Tabelle pages gefunden wo die UID ist und wo der TITEL steht - aber da ist nicht der Inhalt der Seite. 
 -----------------------------------------------------------------------------------------


Falls Du aus irgendwelchen Gründen manuell für jeden Künstler eine Seite 
mit normalen Inhalten + Deinem Plugin anlegen willst, kannst Du das Feld 
als Flexform gestalten, dass man dann jeweils ausfüllen kann. Damit 
würdest Du nur ein unsichtbares FE-Plugin ohne DB brauchen, dass bei 
jedem Aufruf den Textstring in ein File schreibt (also Deine 
ursprüngliche Anforderung erfüllt.), bitte nur bei Bedarf, sonst ist die 
Performance hinüber...
 -----------------------------------------------------------------------------------------
So würde ich es erstmal am liebsten machen: Selber Inhalte einfügen, TXt erstellen lassen. Aber wie gesagt, ich schaff es nicht eine Eingabemaske für das Plugin zu entwerfen - zumindest so, das ich das PlugIn auf jeder Seite zur Verfügung stelle und dort editiere.....
Warum sollte die Performance hinüber sein? Es ist ja nur ein einzeiliger Textstring.

Grüße, Phil





More information about the TYPO3-german mailing list