[b]Anforderung:[/b] Im Powermail Formular soll eine Selectbox erscheinen mit den künftigen Daten von Mittwoch und Freitag:
- Freitag, 20. Juni
- Mittwoch, 25. Juni
- Freitag, 27. Juni
- etc...
Hier soll der Besucher sich ein Wunschdatum für ein Event auswählen können.
[b]Idee:[/b] Eine kleine Userfunc füllt ein TS Feld von Powermail mit den erforderlichen Daten
[b]Umsetzung:[/b]
Neue PHP Datei direkt im fileadmin anlegen mit Namen user_specialtimefordropdown.php:
<?php // This class generates a special dropdown list for powermail with dates class user_dropdown { var $limit = 26; // show the next X dates var $weekdays_de = array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"); // Array with all Weekdays in german var $months_de = array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"); // Array with all Month in german // Main function for additional google information german // init $content = ''; $counter = 0; // let's go for ($monat = 1; $monat <= 12; $monat++) { // loop from 1 up to 12 (every month) for ($tag = 1; $tag <= 31; $tag++) { // loop from 1 up to 31 (every day) if ( && && $counter < $this->limit ) { // if friday or wednesday AND if in future AND if within limit $option = ''; $option .= '11.00 C.E.T.'; $content .= '<option value="'.$option.'">'; $content .= $option; $content .= '</option>'."\n"; $counter++; // increase counter } } } } } } } ?>
Obiges PHP file via TS Objekt verfügbar machen:
[TS]includeLibs.user_specialtimefordropdown = fileadmin/user_specialtimefordropdown.php
# UID62
newObject = COA_INT
newObject.wrap = <div class="tx_powermail_pi1_fieldwrap_html tx_powermail_pi1_fieldwrap_html_text tx_powermail_pi1_fieldwrap_html_62">|</div>
newObject {
5 = TEXT
5.value = <label for="uid62">Bevorzugter Termin</label>
8 = TEXT
8.value = <select name="tx_powermail_pi1[uid62]" class="powermail_livedemo powermail_select powermail_uid62" id="uid62" tabindex="6">
10 = USER
10.userFunc = user_dropdown->user_main
20 = TEXT
20.value = </select>
}
[/TS]
In Powermail ein neues Typoscript Feld anlegen und mit dem newObject füllen lassen (im Beispiel-Bild steht fälschlicherweise lib.object anstatt newObject):
[img]http://www.design-and-style.de/temp/typo3/pm_select1.gif[/img]
Das wars...
[b]Improvements:[/b]
- Limit und Datumscodierung erfolgt alles im PHP - dies könnte natürlich in einer besseren Welt von TS übergeben werden
Grüße, Alex :D
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/