[TYPO3-german] Frontend Edit für eigene Extension

Matthias Walker matthiaswalker at web.de
Mon Mar 20 10:17:41 CET 2006


Vielen Dank mal für deine Ideen.

Hm, an das "eigene FE Edit" wag ich mich im Moment noch nicht ran, da 
ich nicht genügend von php versteh (sollte ich vielleicht mal ändern...).
Die Verknüpfung mit einem FE User ist leider auch nicht so praktisch, da 
ich ja dann immer noch einiges im Hintergrund vornehmen muss - da ist es 
dann fast geschickter ist, ich editiere gleich alles selbst.

Mir kam gerade noch die Idee, ob ich nicht den FE User Admin so umbauen 
kann, dass er nicht auf fe_users sondern auf meine DB-table zugreift?! 
Macht das Sinn? Werd's mir auf jeden Fall jetzt mal anschauen...

Grüße
Matthias


Bernd Wilke schrieb:
> On Sat, 18 Mar 2006 23:21:14 +0100, Matthias Walker wrote:
> 
>> Hallo Liste,
>>
>> ich steh gerade ziemlich wie "der Ochs vorm Berg" :-)
> 
> hauptsache nicht stehen bleiben ;-)
>  
>> ich hab für unsere Vereins-HP eine Extension geschrieben um einige 
>> Athleten mit einem Profil zu präsentieren. Da ich noch ein ziemlicher 
>> Anfänger bin, hab ich mich bei der Erstellung geschickterweise am "Basic 
>> Extension Tutorial" orientiert und die dortige Ext: player_profile_basic 
>> nach meinen Wünschen angepasst. (Großes Dankeschön dabei an Oliver 
>> Hofmann für die Erstellung des Tut!!). Meine Ext funktioniert soweit 
>> auch ohne weiteres.
> 
> das ist doch schon ein gutes Zeichen.
>  
>> Hier nun mein Problem: ich würde das Ganze als FE-Edting anbieten 
>> wollen, d.h. jeder Athlet soll sein eigenes Profil im FE ändern können. 
>> Könnt ihr mir dabei weiterhelfen, wie ich das am geschicktesten/besten 
>> umsetzen kann?
>> (Da ich mich "nur" mit den Basics auskenne, fehlt mir vielleicht auch 
>> etwas der Überblick...)
> 
> meine Ideen dazu:
> 
> du brauchst ein Formular, in dem der Spieler seine Daten ändern kann.
> - das kannst du 'hardcoded' aus der Extension heraus generieren (dann aber
> unbedingt viele Klassen definieren, um das Layout des Formulars bei Bedarf
> ändern zu können ohne die Extension zu ändern)
> - oder du nutzt eine Vorlage mit Platzhaltern
> 	$this->cObj->fileResource($conf["templateFile"])
> 	$this->cObj->substituteMarkerArray(..,..);
> 
> damit du nicht in Konflikt mit anderen Extensions mit Formular kommst
> solltest du folgenden Namensmechanismus für deine Eingabefelder nutzen:
> 
> $inp='<input name="'.$this->prefixId.'[f1]" value="..." class="..." />'
> 
> $this->prefixId ist der eindeutge Name deines Plugins (tx_EXTENSION_pi1)
> deine gesamten Formulareingaben bekommst du dann mit:
> 	$formadata=$t3lib_div::GPVar($this->prefixId);
> 
> 
> 
> damit nur der Spieler seine Daten ändern kann brauchst du eine
> Identifizierung. Die wird in Typo3 typischerweise mit FE-User realisiert.
> Login, Logout, ...
> Jetzt müssen deine Daten mit nur einem FE-User verknüpft werden.
> Entweder deine Daten sind die (erweiterten) Daten der Tabelle fe_users,
> oder du hast eine neue Tabelle, in der du dann eine Verknüpfung zu fe_users
> eingebunden hast. Diese Verknüpfung muss natürlich bei der Anlage des
> Datensatzes im BE gefüllt werden.
> 
> der schematische Aufbnau deiner Extension:
> 
> als erstes überprüfen:
> ($userdata=$GLOBALS['TSFE']->fe_user->user)
> ist ein User angemeldet? = ist $userdata['uid'] mit Daten gefüllt? 
> wenn ja: hole Datensatz, der dazu gehört SELECT * FROM ... WHERE
> referenz=$userdata['uid']
> wenn nein: fehlermeldung ausgeben und beenden.
> 
> [1]
> 
> Lese Datensatz aus Datenbank ein
> ($GLOBALS['TYPO3']->exec_SELECTgetRows($fields,$table,$where))
> und zeige das Formular mit den Daten an (s.o.)
> 
> fertig!
> 
> d.h. noch werden die Formulardaten ja gar nicht gespeichert.
> dazu fügst du unter [1] in deiner Extension noch eine Abfrage ein, ob der
> Datensatz gerade abgeschickt wurde.  z.b.: if ($formdata['submit']) 
> 
> wenn ja: überprüfe auf korrekte Daten.
> alles korrekt: speichere die Daten in der Datenbank,
> ($GLOBALS['TYPO3']->exec_UPDATEquery($table,$where,$updatearray))
> 	gib Erfolgsmeldung aus. weiter wieder mit Formular oder beenden.
> wenn nein: Fehlermeldung ausgeben und Eingaben korrigiert in Formular
> eintragen.
> 
> 
> 
> ich hoffe das ist ausführlich genug und du hast jetzt alle Hinweise auf die
> Funktionen und Variablen, die du dabei brauchst.
> 
> viel Spaß
> Bernd Wilke
> 



More information about the TYPO3-german mailing list