Zum Inhalt springen

tt_guest erweitern

Erstellt am 28. März 2005 · 7 Antworten · letzte Antwort am 3. Februar 2006

Tags: Frage

hans_k ·

hi,

bin noch ziemlich grün hinter den Ohren was das Erstellen von Extensions betrifft.
deshalb möchte ich zuerst einmal vorhandene ext. auf meine bedürfnisse anpassen.

bei der Guestbook extension tt_guest 1.0.8 wird das Formularfeld zur Eingabe von Daten über TypoScript definiert:

# Change/add to format the submit-form 
postform < styles.content.mailform 
postform.data > 
postform.dataArray { 
   10.label = Header: 
   10.type = *data[tt_guest][NEW][title]=input 
   20.label = Your comment: 
   20.type = *data[tt_guest][NEW][note]=textarea 
   30.label = Name: 
   30.type = *data[tt_guest][NEW][cr_name]=input 
   40.label = Email: 
   40.type = *data[tt_guest][NEW][cr_email]=input 
   50.label = Homepage: 
   50.type = *data[tt_guest][NEW][www]=input 

+++++++++++++++++ PROBLEM ++++++++++++++++++++++++ 

   60.type = data[tt_guest][NEW][teacher_id]=hidden 
   60.value = !!! Aktuelle ID des eingeloggren Backendbenutzers/ bzw. Frontendbenutzers !!! 

+++++++++++++++++++++++++++++++++++++++++++++++++ 

   70.label = Name of Pupil: 
   70.type = *data[tt_guest][NEW][pupil]=input 
   80.label = Name of Teacher 
   80.type = *data[tt_guest][NEW][teacher]=input 
   90.type = formtype_db=submit 
   90.value = Add yourself 
} 
postform.no_cache=1 
}

Wenn jemand einen Eintrag im Gästebuch macht soll automatisch die ID des aktuell eingeloggten Backendbenutzers mit in die Datenbank geschrieben werden.

Wie mache ich das am besten ? Zusätzlich würde ich gerne wissen wie die ID des eingeloggten Frontend Benutzers im TypoScript (Constants od. Setup Field ) ausgelesen werden kann ?

Vielen Dank im Voraus

Thomas

ops ·
hans_k schrieb

Wenn jemand einen Eintrag im Gästebuch macht soll automatisch die ID des aktuell eingeloggten Backendbenutzers mit in die Datenbank geschrieben werden.

Backendbenutzer? :o

Zusätzlich würde ich gerne wissen wie die ID des eingeloggten Frontend Benutzers im TypoScript (Constants od. Setup Field ) ausgelesen werden kann ?

mit {glob:TSFE:fe_user:user:uid}

Grüße,
Patrick

Thomas[/quote]

hans_k ·

Backendbenutzer? :o

Naja. ein Frontend User kann ja auch einem Backenduser zugeordnet werden, damit er z.B.: im Frontend Änderungen an der Seite durchführen kann. Nachdem hier ein Mapping auf den Backend User durchgeführt wird müsste man eigentlich eine ID des Backendusers abfragen können. ...

{glob:TSFE:fe_user:user:uid}

bringt nicht den gewünschten erfolg. obwohl ich mit einem FE User eingeloggt bin wird nichts in das Datenbankfeld beschrieben ...[/quote]

ops ·
hans_k schrieb

Naja. ein Frontend User kann ja auch einem Backenduser zugeordnet werden, damit er z.B.: im Frontend Änderungen an der Seite durchführen kann. Nachdem hier ein Mapping auf den Backend User durchgeführt wird müsste man eigentlich eine ID des Backendusers abfragen können. ...

meinst du die Extension FEUser->BELogin?

da gibts ein Feld tx_dkdfeuserbelogin_relatedbeuser...

{glob:TSFE:fe_user:user:uid}

bringt nicht den gewünschten erfolg. obwohl ich mit einem FE User eingeloggt bin wird nichts in das Datenbankfeld beschrieben ...

tca.php angepasst? oder wie und wo hast du das
neue Datenbankfeld angelegt/definiert?

Grüße,
Patrick

hans_k ·

ich habe die tabelle tt_guest um das neue Feld erweitert und das auch in der tca.php angepasst.
wenn ich einen statischen wert. also z.B.: 15 als value angebe wird es ja korrekt ins datenbankfeld hineingeschrieben.

hans_k ·

ich hab die Extension installiert.
folgendes funktioniert.

marks.FEUSER = TEXT
marks.FEUSER.insertData = 1
marks.FEUSER.value = {glob:TSFE:fe_user:user:uid}

Der Platzhalter im Designtemplate wird auch korrekt mit der ID des FE Users ersetzt.

Mein ursprüngliches Problem besteht allerdings noch(siehe oben):

60.type = *data[tt_guest][NEW][teacher_id]=hidden
60.value = {glob:TSFE:fe_user:user:uid}

hier wird lediglich der String "{glob:TSFE:fe_user:user:uid}" in das Datenbankfeld geschrieben.

wenn ich es mit

60.data = {glob:TSFE:fe_user:user:uid} versuche

wird nichts ins Datenbankfeld geschrieben...

Jo ·

TSFE:fe_user ist ein Objekt und kein Array. Z.Z. gibt es wohl keinen Weg, per TS darauf zuzugreifen (bitte korrigiert mich, falls doch). Für die Zukunft ist zu hoffen, dass man per TS auf den aktuellen FE User Datensatz zugreifen kann.

Ob ein User eingeloggt ist, lässt sich über TSFE:loginUser prüfen (Boolean).

Hier ein Beispiel, was einen Link zur Seiten-ID 41 erzeugt, auf der sich das Plugin „newloginbox“ zur Bearbeitung der Benutzerdaten befindet. Der Link wird nur angezeigt, wenn der Benutzer eingeloggt ist:

30 = TEXT
30.value = Benutzerdaten bearbeiten
30.if.isTrue.data = TSFE:loginUser
30.typolink {
  parameter = 41
  additionalParams = &tx_srfeuserregister_pi1[cmd]=edit
  ATagParams = class="tx-newloginbox-pi1"
}

Weitere Dokumentation zum Objekt TSFE:
Dokument: „TSref“
Kapitel: PHP include scripts
Abschnitt: Internal Vars in the main frontend object, TSFE (TypoScript Front End)

Beste Grüße!
Jo Schneider
http://www.typo3cms.info