Zum Inhalt springen

Powermail - TypoScript Feld blendet den Rest aus

Erstellt am 22. November 2008 · 12 Antworten · letzte Antwort am 5. Februar 2009

Tags: Frage

typomik ·

Hallo,

ich möchte eine Auswahl dynamisch befüllen. Habe dazu per Typoscript-Feld folgenden Testdaten aus dem Powermail Handbuch eingefügt:

lib.object = COA_INT
lib.object {
        10 = TEXT
        10.value = <label for="uid33">Select:</label>
        
        20 = CONTENT
        20.wrap = <select id="uid33" name="tx_powermail_pi1[uid33]" size="1">|</select>
        20 {
                table = tt_address
                select {
                        pidInList = 99
                        orderBy = name
                }
....

Als Ergebnis erscheint die Auswahlbox mit den richtigen Inhalten. Danach bricht allerdings das Formular ab.
Der Grund scheint darin zu liegen, dass im HTML-Code das schließende </fieldset> für das Typoscript-Feld fehlt.

Muß ich das von Hand einfügen? oder ist es ein bug?

Schöne Zeit
Kurt

PS: Barbara hat anscheinend das gleiche Problem -> siehe http://lists.netfielders.de/pipermail/typo3-english/2008-November/055624.html

typomik ·

Hi Alex,

leider das gleiche Ergebnis.

Hier mein vereinfachter Test ...

lib.object=COA
lib.object {
10=TEXT
10.value=<div id="powermaildiv_uid50" class="tx_powermail_pi1_fieldwrap_html tx_powermail_pi1_fieldwrap_html_select tx_powermail_pi1_fieldwrap_html_50">
20=TEXT
20.value=<label for="uid50">Packungsgröße</label>
30=TEXT
....

Die Selectbox wird wunderbar generiert, aber die danach folgenden Felder (in den folgenden Fieldsets) sind weg!

Grüsse
Kurt

einpraegsam.​net ·

Ich kann auf unserer Testumgebung keinen Fehler feststellen:
http://testumgebung.einpraegsam.net/powermail.html

Hier mein Code zum dritten Feld:

lib.object1 = COA
lib.object1 {
  10 = TEXT
  10.value = <div id="powermaildiv_uid50" class="tx_powermail_pi1_fieldwrap_html tx_powermail_pi1_fieldwrap_html_select tx_powermail_pi1_fieldwrap_html_50">
  20 = TEXT
  20.value = <label for="uid50">Packungsgröße</label>
  30 = TEXT
  30.value = <input type="text" />
  40 = TEXT
  40.value = </div>
 }

Eine Idee habe ich noch: Nimm mal die Umlaute und Sonderzeichen (ö, ß) testweise heraus

typomik ·

Hallo Alex,

Umlaute helfen leider nicht.

In der Testumgebung ist nur ein Fieldset angelegt. Das geht bei mir auch.
Interessant wird es, wenn danach ncoh ein oder mehrere Fieldsets kommen !!! (Ein-Seiten-Formular) !

beste Grüsse
Kurt

einpraegsam.​net ·

Sorry, auch ein Zuschalten eines weiteren Fieldsets (gleiche Seite oder Mehrseitig über PHP) zeigt den beschriebenen Fehler nicht.
Wenn du willst, kann ich dir gerne einen Zugang zu unserer Testumgebung geben (bei Interesse PM)

typomik ·

Hallo Alex,

ich habs mit Deiner Hilfe gelöst!

Mit meinen bescheidenen php Kenntnissen habe ich folgendes herausgefunden:

- in der Routine pi1/class.tx_powermail_html.php steht in der Funktion, die das Typoscript Feld verarbeitet u.a. folgendes ...

$row = array ( // $row for using .field in typoscript
				'uid' => $this->uid, // make current field uid available
				'label' => $this->dontAllow($this->title), // make current label available
				'ttcontent_uid' => $this->cObj->data['_LOCALIZED_UID'] > 0 ? $this->cObj->data['_LOCALIZED_UID'] : $this->cObj->data['uid'] // make current tt_content uid available
			);
			$this->cObj->start($row, 'tx_powermail_fields'); // enable .field to use uid and label in typoscript

so, wenn ich nun die letzte Zeile auskommentiere gehts!!!

Entdeckt habe ich das so:

1. powermail komplett löschen und neu installieren
2. versuchen, die db abfragen zu verstehen, die die Daten für einzelnen Felder bereitstellen, beispielsweise per ...

3. vorher / nachher Test mit ...

	print_r($this->cObj->data['uid']);

						$this->InnerMarkerArray['###POWERMAIL_FIELDS###'] .= $this->html_input_field->main($this->conf, $this->sessionfields, $this->cObj, $row, $this->tabindexArray()); // Get HTML code for each field
	
	print_r($this->cObj->data['uid']);

4. naja, und da sehe ich eben, dass bei allen fieldsets vor dem Typoscript-feld als uid die uid des tt_content Satzes steht. Nach dem typofeld steht plötzlich die uid 50 drauf --> das ist die uid vom typoscript feld.

ok, nur woher das kommt -> keine Ahnung
und warum das bei deiner Testinstallation nicht auch so ist -> keine Ahnung

schönen Tag noch

Kurt

kathrin-77 ·

Ich habe auch das gleiche Problem. Die Lösung von typomik hat super funktioniert. Ist zwar äußerst unschön, selbst rumzufummeln, aber es geht nun :-). Danke typomik. Hoffe, dass ich damit nicht etwas anderes zerstört habe.

@einpraegsam: Leider habe ich keine Testumgebung, sondern nur ein laufendes Projekt für einen Kunden, deshalb ist das Herausgeben der Zugangsdaten wohl eher nicht erwünscht. Aber Du kannst gern fragen, was ich für Dich nachschauen soll, damit die Ursache gefunden wird.