[TYPO3-german] th_mailformplus und select multiple

"Kitsunet (Christian Müller)" christian at kitsunet.de
Wed Apr 25 08:15:26 CEST 2007


Hallo zum Bereich Auswertung und Speicherung kann ich beitragen, da ich
das Problem auch schon einmal hatte...
Die Änderungen habe ich dem Autor auch zugeschickt.

Also (Bei mir ca. Zeile 232):

   if (is_array($this->get_post)) {
		foreach($this->get_post as $k=>$v) {
		    if (!ereg('EMAIL_', $k)) {

		
    			 $globalMarkerArray['###value_'.$k.'###'] = $v;
			     $globalMarkerArray['###'.$k.'###'] = $v;
			     $globalMarkerArray['###checked_'.$k.'_'.$v.'###'] = 'checked';
			
			    # this is for log file in table tx_thmailformplus_log
			    # saving all submitted forms in CSV format
			     $csv_firstline .= $k.';';
			     $csv_line .= $v.';~';
			
		    }
		}
	    }

So sieht die Markerzuweisung für die E-Mail und das Log aus.
Das Änderst du so ab:

	    if (is_array($this->get_post)) {
		foreach($this->get_post as $k=>$v) {
		    if (!ereg('EMAIL_', $k)) {
		  if is_array($v){
			
		$globalMarkerArray['###'.$k.'###'] = implode(',',$v);

          }else{
    			 $globalMarkerArray['###value_'.$k.'###'] = $v;
			     $globalMarkerArray['###'.$k.'###'] = $v;
			     $globalMarkerArray['###checked_'.$k.'_'.$v.'###'] = 'checked';
			
			    # this is for log file in table tx_thmailformplus_log
			    # saving all submitted forms in CSV format
			     $csv_firstline .= $k.';';
			     $csv_line .= $v.';~';
			    }
		    }
		}
	    }

Damit bekommst du die ausgewählten Einträge als kommaseparierte Liste.
Wer es ganz hübsch haben will regelt den Separator über die
TS-Konfiguration.

Um das beim speichern in der DB auch so zu haben musst du diesen Teil
noch so machen (Bei mir ca. Zeile 183):

# prepare mapping form inputfields to DB fields
  $temp = explode(",", $conf['saveDB.']['mapping']);
	   foreach ($temp as $temp2) {
	    list($inputField,$dbField) = explode(":", $temp2);
			$this->conf['saveDB']['mapping'][$inputField] = $dbField;
                        if (is_array(t3lib_div::GPvar($inputField))) {
                        $this->conf['saveDB']['dbinsert'][$dbField] .=
implode(',',t3lib_div::GPvar($inputField));
                        } else{
			$this->conf['saveDB']['dbinsert'][$dbField] .=
t3lib_div::GPvar($inputField);
                        }
	    }

So ich hoffe damit kommst du soweit zurecht.

Viele
Grüße

Christian Müller
______________________________

KitsuNet

Mail: info at kitsunet.de
Fon: +49 (0)2222-9623307
Fax: +49 (0)180-50390004790
Mobil: +49(0)176-21765770
______________________________




Maik wrote:
> ahoi
> 
> das ist ein alt bekanntes problem.
> 
> als kleinen ersten lösungsansatz hab ich eine funktion geschrieben,
> welche rekursiv htmlspecialchars anwendet und
> somit auch verschachtelte arrays ordentlich wandelt
> 
> ###
> 
> function all_htmlspecialchars($val){
>     
>         if(is_array($val)){
>             foreach($val as $key=>$v){
>                 $val[$key] = $this->all_htmlspecialchars($v);
>             }
>         }
>         else{return htmlspecialchars($val);}
>        
>         return $val;
>     }
> ###
> 
> die muss nur in die class.tx_thmailformplus_pi1.php und alle aufrufe von
> htmlspecialchars
> müsssen durch aufrufe dieser funktion ersetzt werden (waren glaub ich 2
> vorkommen)
> 
> um die korrekte auswertung/speicherung der daten zu ermöglichen,
> musst du wohl oder übel ebenfalls die extension anfassen und den code etwas
> abändern. schreib danach am besten dem autor der ext ne mail mit den
> änderungen;
> er und die community wird sich über weiterentwicklung freuen
> 
> grüße
> maik
> 
> 
> 
> Harry Wijnvoord schrieb:
>> Oh sorry irgendwie wurde meine mail nicht in die hierarchie
>> eingeordnet... deshalb hier noch mal die orginalmail von ingo.
>>
>> Ich bin mittlerweile dem problem auf der spur, werde meinen workaround
>> hier posten.
>>
>> Ingo Knabe schrieb:
>>  > Hallo typoheads,
>>  >
>>  > ich habe hier ein kleineres prob zu klären...
>>  >
>>  > ich benutze typo 3.8.0 und th_mailformplus 3.6.1  - alles soweit ok.
>>  > Nun muss ich im form - template einfach mehrere Auswahlmöglichkeiten
>>  > anwählen können z.B. mehrere Ausgaben einer Zeitschrift bestellen.
>>  > im HTML-teil habe ich das mit
>>  >
>>  > <select name=Heft[] multiple=multiple>
>>  >
>>  > gelöst, leider wird mir in der Bestellbestätigungs-email aber nur eine
>>  > (die erste) Auswahl angezeigt.
>>  > Auch ein ###betreff[]### im Versand-Template funktioniert nicht, es
>>  > erscheint nur der Hinweis "Array"...
>>  >
>>  > Wie kann ich es schaffen, dass alle ausgewählten options angezeigt
>> werden??
>>  >
>>  > Danke für Eure Hilfe:
>>  >
>>  > Ingo
>>  >
>>  > Script-Auszug:
>>  >
>>  > --snipp--
>>  > <select name="betreff[]" class="select"
>>  > multiple="multiple">             <option value="Aktuelle
>>  > Ausgabe">Aktuelle Ausgabe</option>             <option
>>  > value="Abonnement" selected>Abonnement</option>             <option
>>  > value="Probeheft">Probeheft</option>
>>  > </select>
>>  >
>>  > (...)
>>  >
>>  > <!-- ###TEMPLATE_EMAIL_RECEIVER### begin
>>  >     OPTIONAL - this will be the email text that is sent to the admin
>>  > (plaintext!)
>>  >     (admin-email = the email you can specify in the mailformplus
>> plugin)
>>  > -->
>>  > Sehr geehrte(r) ###Vorname### ###Name###
>>  >
>>  > Sie haben heute folgende Bestellangaben eingegeben:
>>  >
>>  > Name:      ###Name### , ###Vorname###
>>  > Firma:     ###Firma###
>>  > eMail:     ###email###
>>  >
>>  > Adresse:   ###PLZ### ###Ort###
>>  > Anschrift: ###Strasse###
>>  > Land:      ###Land###
>>  > Telefon:   ###Telefon###
>>  > Telefax:   ###Telefax###
>>  >
>>  > Betreff:   ###betreff###
>>  >
>>  > Kommentar: ###Kommentar###
>>  >
>>  >
>> _______________________________________________
>> TYPO3-german mailing list
>> TYPO3-german at lists.netfielders.de
>> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-german
>>
>>   



More information about the TYPO3-german mailing list