Zum Inhalt springen

fieldvalue überschrieben oder nicht zugreifbar?

Erstellt am 30. April 2009 · Noch keine Antworten

Tags: Frontend-Benutzer, Frage

kleintody ·

Hallo, allesamt!

Ich hab da ein Problem und bin gerade am Verzweifeln.
Folgendes möchte ich erreichen: Im Wesentlichen möchte ich das Benutzerprofil um ein Feld erweitern, in dem alle Sprachen festgehalten werden, die der Nutzer spricht.

Feld in der Tabelle ist angelegt, im Backend funktioniert die Auswahl und im mm_forum hab ich das Benutzerprofil erweitert. Auch die Anzeige des Wertes mit Umsetzung der IDs in Namen via Typoscript läuft.

Nun soll der Nutzer die Sprachen natürlich auch ändern können. Dazu wollte ich eine Selection-Box mit Mehrfachauswahl anbieten. In diese Selection-Box müssten alle Sprachen aus der Tabelle static_languages auf Basis ihrer IDs reingefüllt werden. Für alle derzeit als ausgewählt hinterlegten Sprachen müsste dann das "selected"-Attribut gesetzt werden.

Folgendes habe ich nun versucht:

input=COA

##### open selection box
input.2=HTML
input.2.value=<select size="5" multiple="true">

##### compile the options, i.e. the set of languages
input.3=CONTENT
input.3{
   ##### do a db-query that delivers all languages together with their ids
   ##### since we cannot query table static_languages directly, we must do
   ##### a little trick and do an outer join with a single record of the
   ##### table pages
   table=pages
   wrap=|
   select{
      selectFields=static_languages.uid,lg_name_en,lg_name_de
      uidInList = 5
      pidInList = 0
      join = static_languages ON(static_languages.pid=pages.pid)
   }
  
   ##### start rendering selection box entries
   renderObj=COA
   renderObj{
      ##### start current selection box entry
      10=TEXT
      10.value=<option value=
      ##### uid of language is option value 
      20=TEXT
      20.field=uid
      25=TEXT
      25{
     	noTrimWrap=| selected
 	if.isInList.field = uid
        if.value = 43,30
##### this doesn't work. but why?!
#####	if.value.field = fieldvalue
      }
      30=TEXT
      30.value=>
      ##### name of language is option description
      40=TEXT
      40.field=lg_name_en
      60=TEXT
      60.value=</option>    
   }
}

##### close selection box
input.5=HTML
input.5.value=</select>

##### print the current value for debugging
input.6= TEXT
input.6.field = fieldvalue

Das Problem ist, dass ich während des Aufbaus der SelectionBox nicht auf den "fieldvalue" zugreifen kann, in dem die Liste der ausgewählten Sprachen enthalten ist. Das geht erst ganz am Ende bei "input.6" wieder.
Habe ich irgendetwas falsch gemacht? Oder Gibt es irgendeine andere Möglichkeit, auf den in "fieldvalue" ursprünglich hinterlegten Wert zuzugreifen?

Vielen Dank für jeden Hinweis, den Ihr mir geben könnt...!

P.S.: Nicht wundern: In obigem Code habe ich im Wesentlichen auf Wraps & Co verzichtet, sondern zu Debugging-Zwecken alles auf zusätzliche Text-Elemente heruntergebrochen.