Powermail: dbEntry mit TS-Feldern und Multiple Upload-Erweiterung

  • marc-willmann marc-will...
    Padawan
    0 x
    52 Beiträge
    0 Hilfreiche Beiträge
    27. 05. 2009, 13:28

    Hallo,

    ich arbeite an einem Powermail-Formular, das einige Felder vorbelegen soll (zum Teil aus einer DB-Tabelle) und das Ergebnis nach dem Absenden wiederum in eine andere DB-Tabelle eintragen soll. Im Grunde funktioniert das auch schon, ... ABER ;-)

    1. Eines meiner Formularfelder holt die Daten aus einer Datenbank (nicht fe_user). Aus diesem Grund habe ich das Feld als TS-Feld deklariert und eine userFunc geschrieben, die das Feld befüllt. Das funktioniert soweit. Aber wie komme ich an die Daten wieder ran, um sie mittels dbEntry in die Datenbank zu schreiben? Das Feld hat im HTML-Quelltext kein uidXX als Namen erhalten, sondern ein tx_meineext_pi1[meinfeld].

    Ich mache das bisher so:
    [TS]tx_meineext_cars.type = TEXT
    tx_meineext_cars.type.data = TSFE:fe_user|sesData|powermail_262|uid2
    [/TS]

    Leider funktioniert folgendes NICHT:
    [TS]tx_meineext_cars.type = TEXT
    tx_meineext_cars.type.data = TSFE:fe_user|sesData|powermail_262|tx_meineext_pi1[meinfeld][/TS]

    2. Der Benutzer hat über das Formular die Möglichkeit, bis zu 5 Bilder hochzuladen. Dafür habe ich die powermail_mul-Extension installiert, die auch klasse funktioniert. Aber auch hier die Frage: Wie komme ich an die Bilder 2-5 heran, um diese in die Datenbank zu schreiben. Mit dem 1. Bild funktioniert es wunderbar über den o.g. Code.

    Hat jemand eine Idee für mich?

    Vielen Dank

    Marc


  • 1
  • einpraegsam.net einpraegs...
    MacGyver
    0 x
    9340 Beiträge
    80 Hilfreiche Beiträge
    27. 05. 2009, 13:46

    1. powermail verarbeitet und speichert Werte nur in der Session, wenn diese powermail konform vorliegen:
    [HTML]<input name="tx_powermail_pi1[uidZAHL]" ...[/HTML]

    Wenn du also auf andere Werte zugreifen willst, musst du diese selbst zuvor in der Session (z.B.) ablegen

    2. Gute Frage

    in2code.de - Wir leben TYPO3
    - Möchtest du TYPO3 komplett verstehen? Eigene Erweiterungen erstellen? Bei uns gibt es auch Schulungen https://www.in2code.de/produkte/typo3-schulungen/
    - Die Arbeit mit TYPO3 macht dir Spaß? Du stehst auf Berge? Komm zu uns! https://www.in2code.de/agentur/karriere/

  • marc-willmann marc-will...
    Padawan
    0 x
    52 Beiträge
    0 Hilfreiche Beiträge
    27. 05. 2009, 13:56

    zu 1.: Vielen Dank, das hat wunderbar geklappt. Ich habe in meiner userFunc den Namen entsprechend geändert und nun funktioniert's :-)

    zu 2: Hat noch jemand eine Idee?

  • Leinad Leinad
    Padawan
    0 x
    44 Beiträge
    0 Hilfreiche Beiträge
    30. 09. 2010, 17:51

    Ist zwar schon ne Weile her, aber bei meiner Google-Suche ganz vorne gewesen, daher hier mal die Lösung, ist eigentlich total einfach:

    1. plugin.tx_powermail_pi1{
    2. dbEntry.tx_whatever{
    3. _enable = TEXT
    4. _enable.value = 1
    5.  
    6. crdate = TEXT
    7. crdate.value = date:U
    8. tstamp < .crdate
    9.  
    10.  
    11.  
    12. images = COA
    13. images{
    14. 1 = TEXT
    15. 1.data = TSFE:fe_user|sesData|powermail_6|FILE|0
    16. 1.wrap = |,
    17. 2 < .1
    18. 2.data = TSFE:fe_user|sesData|powermail_6|FILE|1
    19. 3 < .1
    20. 3.data = TSFE:fe_user|sesData|powermail_6|FILE|2
    21. 4 < .1
    22. 4.data = TSFE:fe_user|sesData|powermail_6|FILE|3
    23. 5 < .1
    24. 5.data = TSFE:fe_user|sesData|powermail_6|FILE|4
    25. 6 < .1
    26. 6.data = TSFE:fe_user|sesData|powermail_6|FILE|5
    27. 7 < .1
    28. 7.data = TSFE:fe_user|sesData|powermail_6|FILE|5
    29. 8 < .1
    30. 8.data = TSFE:fe_user|sesData|powermail_6|FILE|6
    31. 9 < .1
    32. 9.data = TSFE:fe_user|sesData|powermail_6|FILE|7
    33. 10 < .1
    34. 10.data = TSFE:fe_user|sesData|powermail_6|FILE|8
    35.  
    36. }
    37. }
    38. }

  • IvoFrie IvoFrie
    T3PO
    0 x
    17 Beiträge
    0 Hilfreiche Beiträge
    27. 03. 2011, 13:30

    Hallo Leute,

    Auch ich muss diesen Thread nochmals hervorkramen ...

    Ich habe auf einem dreisprachigen T3 4.5.2 mit Powermail 1.5.7 und Powermail multiple upload 1.0.3 ein Formularfeld, bei dem man bis zu fünf Dateien hochladen kann.

    1. <div class="tx_powermail_pi1_fieldwrap_html tx_powermail_pi1_fieldwrap_html_file tx_powermail_pi1_fieldwrap_html_25">
    2. <p>Sie können bis zu 5 Dateien anhängen</p>
    3. <label for="uid25">Anhänge</label>
    4. <input id="uid25" type="file" name="tx_powermail_pi1[uid25]" class="powermail_projekterfassung powermail_multiupload powermail_uid25 style1" />
    5. <div id="files_list"></div>
    6. <script>
    7. <!-- Create an instance of the multiSelector class, pass it the output target and the max number of files -->
    8. var multi_selector = new MultiSelector( document.getElementById( 'files_list' ), 'uid25' , 5, 'Löschen', 0 );
    9. <!-- Pass in the file element -->
    10. multi_selector.addElement( document.getElementById( 'uid25' ) );
    11. </script>
    12. </div>

    Diese Angaben speichere ich mit folgendem Typoscript in meine Datenbank-Tabelle (funktioniert).
    1. table.field = COA
    2. table.field {
    3. 1 = TEXT
    4. 1.data = TSFE:fe_user|sesData|powermail_188|FILE|0
    5. 1.wrap = |,
    6. 2 < .1
    7. 2.data = TSFE:fe_user|sesData|powermail_188|FILE|1
    8. 3 < .1
    9. 3.data = TSFE:fe_user|sesData|powermail_188|FILE|2
    10. 4 < .1
    11. 4.data = TSFE:fe_user|sesData|powermail_188|FILE|3
    12. 5 < .1
    13. 5.data = TSFE:fe_user|sesData|powermail_188|FILE|4
    14. }

    Wie erwähnt, ist mein Projekt dreisprachig. Sowohl die Seiten als auch das Formular und die Felder sind lokalisiert, bis auf die Dateianhänge werden alle Werte sowohl in Sprache 2 als auch in Sprache 3 in die Datenbank gespeichert. Nur die Anhänge wollen nicht ... #angry#

    Hier der Quelltext aus der französischen Version:

    1. <div class="tx_powermail_pi1_fieldwrap_html tx_powermail_pi1_fieldwrap_html_file tx_powermail_pi1_fieldwrap_html_56">
    2. <p>You can attach up to 5 files.</p>
    3. <label for="uid56">Pièce jointe</label>
    4. <input id="uid56" type="file" name="tx_powermail_pi1[uid56]" class="powermail_projekterfassung powermail_multiupload powermail_uid56 style1" />
    5. <div id="files_list"></div>
    6. <script>
    7. <!-- Create an instance of the multiSelector class, pass it the output target and the max number of files -->
    8. var multi_selector = new MultiSelector( document.getElementById( 'files_list' ), 'uid56' , 5, 'Delete', 0 );
    9. <!-- Pass in the file element -->
    10. multi_selector.addElement( document.getElementById( 'uid56' ) );
    11. </script>
    12. </div>

    welche ich mit folgendem Typoscript in die Datenbank zu speichern versuche:
    1. table.field = COA
    2. table.field {
    3. 1 = TEXT
    4. 1.data = TSFE:fe_user|sesData|powermail_196|FILE|0
    5. 1.wrap = |,
    6. 2 < .1
    7. 2.data = TSFE:fe_user|sesData|powermail_196|FILE|1
    8. 3 < .1
    9. 3.data = TSFE:fe_user|sesData|powermail_196|FILE|2
    10. 4 < .1
    11. 4.data = TSFE:fe_user|sesData|powermail_196|FILE|3
    12. 5 < .1
    13. 5.data = TSFE:fe_user|sesData|powermail_196|FILE|4
    14. }

    Die IDs der Formulare und Felder stimmen alle überein.

    Ich habe bereits verschiedenes erfolglos probiert, zum Beispiel den Upload-Folder für jede Sprache separat zu definieren.

    Folgende Möglichkeiten bringen leider auch nichts:

    1. table.field = COA
    2. table.field {
    3. 10 = TEXT # in Fortsetzung der bereits in Deutsch vergebenen Werte
    4. 10.data = TSFE:fe_user|sesData|powermail_196|FILE|0
    5. 10.wrap = |,
    6. }

    oder
    1. table.field = COA
    2. table.field {
    3. 1 = TEXT
    4. 1.data = TSFE:fe_user|sesData|powermail_196|uid56|0
    5. 1.wrap = |,
    6. }

    oder
    1. table.field = COA
    2. table.field {
    3. 1 = TEXT
    4. 1.data = TSFE:fe_user|sesData|powermail_196|FILE|5 # in Fortsetzung der bereits in Deutsch vergebenen Werte
    5. 1.wrap = |,
    6. }

    Komischerweise funktioniert das auch mit der normalen "Dateiübertragung" nicht, wo liegt mein Denkfehler? Hat mir ein Experte einen Tipp?

    Viele Grüsse, Ivo

  • mchenzi mchenzi
    Jedi-Meister
    0 x
    317 Beiträge
    0 Hilfreiche Beiträge
    24. 03. 2015, 13:37

    gehts das immernur mit fe_user ? oder kann man auch irgendeine Tabelle nehmen?

  • einpraegsam.net einpraegs...
    MacGyver
    0 x
    9340 Beiträge
    80 Hilfreiche Beiträge
    25. 03. 2015, 09:55

    Man kann in eine beliebige Tabelle speichern - siehe Handbuch:
    http://docs.typo3.org/typo3cms/extensions/powermail/ForAdministrators/GoodToKnow/SavingValuesToThirdPartyTables/Index.html#savingvaluestothirdpartytables

    in2code.de - Wir leben TYPO3
    - Möchtest du TYPO3 komplett verstehen? Eigene Erweiterungen erstellen? Bei uns gibt es auch Schulungen https://www.in2code.de/produkte/typo3-schulungen/
    - Die Arbeit mit TYPO3 macht dir Spaß? Du stehst auf Berge? Komm zu uns! https://www.in2code.de/agentur/karriere/

  • 1