Mailformplus: Auswahlliste mit Werten aus Datenbanktabelle generieren wurde Beantwortet

Autor Nachricht
Verfasst am: 15.11.2007 [11:34]
bassface

[Themenersteller]
dabei seit: 23.03.2007
Beiträge: 10

Liebe Typo3-Freunde! Ich möchte in ein mailfromplus-template eine Auswahlliste integrieren. Allerdings sollen die Werte für diese Liste aus einer Datenbanktabelle kommen. Könnte mir jemand einen Tipp geben, wie ich die Werte aus der Tabelle über TypoScript in die Dropdownbox bekomme? Bin für jede Antwort dankbar. lg. bassface banghead.gif

Wer anderen in die Nase beisst, ist böse meist.
Verfasst am: 15.11.2007 [11:47]
mtd04014

dabei seit: 24.08.2006
Beiträge: 125

hallo,

du könntest einen eigenen marker definieren und diesen mittels eine userfunction füllen:

Html4strict:Zeilennummerierung:  An / Aus

  1. ###dropdown###


Typoscript:Zeilennummerierung:  An / Aus

  1. plugin.tx_thmailformplus_pi1.markers.dropdown = USER
  2. plugin.tx_thmailformplus_pi1.markers.dropdown.userFunc = my_class->user_my_func


ein beispiel dazu gibts auf seite 24/25 im manual.

lg,
Reinhard
Verfasst am: 15.11.2007 [12:02]
bassface

[Themenersteller]
dabei seit: 23.03.2007
Beiträge: 10

Das ging ja schnell, vielen Dank! Ich werd's gleich ausprobieren ...

Wer anderen in die Nase beisst, ist böse meist.
Verfasst am: 16.11.2007 [11:23]
bassface

[Themenersteller]
dabei seit: 23.03.2007
Beiträge: 10

Einen schönen Vormittag! Ich habe jetzt folgendes versucht:

Typoscript:Zeilennummerierung:  An / Aus

  1. temp.seeit = COA
  2.  
  3. temp.seeit {
  4.  
  5.         10 = CONTENT
  6.  
  7.         10 {
  8.  
  9.                 table = tx_locations
  10.  
  11.                 renderObj = COA
  12.  
  13.                 renderObj {
  14.  
  15.                         10 = TEXT
  16.  
  17.                         10.field = location
  18.  
  19.                         wrap = <option> | </option>
  20.  
  21.                         }
  22.  
  23.                 }
  24.  
  25.         }
  26.  
  27.  
  28. plugin.tx_thmailformplus_pi1.markers.locationselect < temp.seeit


Die Tabelle in der Datenbank habe ich angelegt und mit Testwerten befüllt, auch der Marker im Template ist gesetzt - Allerdings bleibt die Dropdownliste leer. Müßte doch eigentlich funktionieren - oder? Kann mir bitte jmd. weiterhelfen?

lg. bassface

Wer anderen in die Nase beisst, ist böse meist.
Verfasst am: 31.12.2007 [18:09]
pschlae

dabei seit: 24.01.2005
Beiträge: 5

Ich habe es so gelöst:

Folgendes Script in fileadmin/scripts erstellt: user_dropdown.php
Php:Zeilennummerierung:  An / Aus

  1. <?
  2. class user_dropdown {
  3. var $cObj;// The backReference to the mother cObj object set at call time
  4. /**
  5. */
  6. function main($content,$conf){
  7.  
  8.  
  9.   $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
  10.     '*',
  11.     'static_countries',
  12.     '',
  13.     '',
  14.     'cn_short_de');
  15.   $content.="<option selected=\"selected\">Schweiz</option>";
  16.   $content.="<option>Deutschland</option>";
  17.   $content.="<option>Österreich</option>";
  18.   $content.="<option></option>";
  19.  
  20.   while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
  21.     $content.="<option>".$row["cn_short_de"]."</option>";
  22.   }
  23.   $GLOBALS['TYPO3_DB']->sql_free_result($res);
  24.  
  25.   return $content;
  26.   }
  27. }
  28. ?>


Im SETUP des Templates
Php:Zeilennummerierung:  An / Aus

  1. includeLibs.user_dropdown = fileadmin/scripts/user_dropdown.php
  2. plugin.tx_thmailformplus_pi1.markers.dropdown = USER
  3. plugin.tx_thmailformplus_pi1.markers.dropdown.userFunc = user_dropdown->main


Und im template von Mailform plus:
Html4strict:Zeilennummerierung:  An / Aus

  1.   <td>Land:</td><td><select name="land">###dropdown###</select></td>
  2. </tr>
Verfasst am: 23.03.2008 [23:21]
Takka

dabei seit: 19.02.2005
Beiträge: 15

Hallo,

genau an diesem Problem verzweifle ich gerade.
Ich möchte mehrere Drop-Down-Felder in meinem Formular haben, u.a. eine Länderauswahl mit daten aus den static_info_tables und weiteren Daten aus anderen (statischen, von mir selbst erstellten) Tabellen.

Die Klasse tx_staticinfotables_pi1 bietet dazu bereits die Methode "buildStaticInfoSelector", die genau dieses macht, nämlich einen HTML-Drop-Down-Selektor zu erstellen.

Mein Problem: in einer eigenen Extension verwende ich die o.g. Methode bereits erfolgreich. Schleierhaft ist mir aber, wie ich diese Methode per TypoScript aufrufe. Im Prinzip müsste das doch wie angegeben funktionieren. Tut es aber bei mir nicht...

Weiß jemand Rat?

Es gibt keine Probleme,
nur Lösungen....
Verfasst am: 24.03.2008 [13:34]
mtd04014

dabei seit: 24.08.2006
Beiträge: 125

In der Doku der static infotables findest du Möglichkeiten wie man ein Dropdown mittels PHP einbindet.
Mach doch einfach eine eigene userFunction, in der du mit PHP das Dropdown erzeugst.
Verfasst am: 24.03.2008 [23:25]
Takka

dabei seit: 19.02.2005
Beiträge: 15

Hallo mtd04014,

danke für den Tipp. Schreibe ich eine userFunction und binde sie wie oben beschrieben ein, in der ich nichts mache als die entsprechende Funktion aus der static_info_tables Klasse aufzurufen, klappt das ganze.

Trotzdem seltsam, dass sich die Methode nicht direkt aus TypoScript aufrufen lässt...

Naja, vorerst funktioniert's icon_cool.gif

Es gibt keine Probleme,
nur Lösungen....
Verfasst am: 06.05.2008 [13:15]
bassface

[Themenersteller]
dabei seit: 23.03.2007
Beiträge: 10

Falls das noch für jemanden von Interesse ist (spät aber doch): Meine Anforderung war, dass sich die Werte in der Auswahlbox im Typo3-BE editieren lassen, also auch einen entsprechenden SYS-Folder besitzen. Nachdem ich einen Sys-Folder (im Beispiel PID 120) angelegt hatte, hab ich das im Setup meines Templates über plugin.tx_thmailformplus_pi1.markers wie folgt gelöst:

Typoscript:Zeilennummerierung:  An / Aus

  1. temp.region = COA
  2. temp.region {
  3.         35 = TEXT
  4.         35 {
  5.                 value = <select name="region" class="selector" size="4" ###value_region### tabindex="6">
  6.         }
  7.        
  8.         40 = CONTENT
  9.         40 {
  10.                 table = tx_regions
  11.                 select {
  12.                         pidInList = 120
  13.                         orderBy = bezeichnung
  14.                         }
  15.                 renderObj = COA
  16.                 renderObj {
  17.                 11 = TEXT
  18.                 11.dataWrap = <option title="{field:bezeichnung}" value="{field:kurzform}" ###selected_region_{field:kurzform}###>{field:bezeichnung}</option>
  19.         }
  20.         }
  21.         45 = TEXT
  22.         45 {
  23.                 value = </select>
  24.         }
  25. }
  26.  
  27. plugin.tx_thmailformplus_pi1.markers.regionselector < temp.region


Dann nur noch den Marker ins Template einbauen. Fertig.
Grüße, bassface

Wer anderen in die Nase beisst, ist böse meist.
Verfasst am: 03.06.2008 [14:22]
Basti4k

dabei seit: 11.10.2007
Beiträge: 31

Hallo,

vielen Dank für eure Beispiele und Ergebnisse, hat mir gut weiter geholfen!

icon_cool.gifbasti

Anleitung für Typo3 und Extension und viele Tips:
blog.ingeniumdesign.de




 
TYPO3 Version 4.2.0 testen

TYPO3 Ver. 4.2.0 testen

Testen Sie die neue TYPO3 Version 4.2.0 kostenlos für einen Monat

TYPO3 Bücher

TYPO3 Workshops


TYPO3 Einführungsschulung
in Berlin:
Montag, 07.07.
in Espelkamp:
Montag, 04.08.

TYPO3 Intensivschulung
in Espelkamp:
Mi., 06.08. - Fr., 08.08.
in Würzburg:
Mo., 18.08. - Mi., 20.08.
in Köln:
Mo., 01.09. - Mi., 03.09.
in Berlin:
Mi., 24.09. - Fr., 26.09.

TYPO3 Extensionschulung
in Berlin:
Mo., 14.07. - Mi., 16.07.
in Espelkamp:
Mo., 11.08. - Mi., 13.08.