Themen
Letzte Nachrichten
- TYPO3 und Bilder bei Facebook Links
- 12.05.2012 18:35
- Google Analytics und die Datenschutzaufsicht
- 07.05.2012 13:19
- "Nervige" Title-Tags bei Links in TYPO3
- 26.02.2012 10:58
- TYPO3 Install Tool und session.auto-start is enabled
- 20.02.2012 21:28
Kategorien
- Commerce (7)
- Design (4)
- Technology (18)
Blogrolls
Letzte Kommentare
- Inline
- 04.02.2011 13:09
Meist gelesene Posts
- Wochentag lokalisiert mit Fluid aus einem DateTime Objekt...
- 916 mal angeschaut
- 03.02.2011 15:38
- TYPO3 Backend Layouts
- 674 mal angeschaut
- 27.04.2011 23:57
- TYPO3 4.5 und kb_nescefe und Security Token
- 657 mal angeschaut
- 18.03.2011 17:43
- JQuery und IE9
- 622 mal angeschaut
- 24.03.2011 10:31
Zur Zeit wird gefiltert nach: direct_mail_subscription
Filter zurücksetzen
tt_news, powermail und direct_mail_subscription verknüpfen
Aufgabenstellung
Events sollen mit tt_news (und newscalendar) dargestellt werden. Zu den einzelnen Veranstaltungen kann man sich per Formular anmelden. In dem Anmeldeformular gibt es auch eine Check-Box, die den Double-Opt-In zur Newsletteranmeldung anstoßen soll.
Daten aus tt_news an powermail übergeben
Auf die "Single-View" Seite von tt_news plazieren wir zusätzlich powermail. Über ein Erweiterungstemplate lesen wir den Newstitel (dieser Beinhaltet den Eventnamen) und das Datum aus und übergeben diese an powermail:
lib.news = COA
lib.news {
10 = RECORDS
10 {
# id des template-records
source = {GPvar:tx_ttnews|tt_news}
source.insertData = 1
tables = tt_news
conf.tt_news >
conf.tt_news = TEXT
conf.tt_news.field = title
}
20 = RECORDS
20 {
# id des template-records
source = {GPvar:tx_ttnews|tt_news}
source.insertData = 1
tables = tt_news
conf.tt_news >
conf.tt_news = TEXT
conf.tt_news.field = tx_newscalendar_calendardate
conf.tt_news.strftime = am %A, %d.%m.%Y
}
}
lib.newsTitel = COA
lib.newsTitel{
5 = TEXT
5.value = <input type="hidden" id="uid7" name="tx_powermail_pi1[uid7]" value="
10 = COA
10 < lib.news
15 = TEXT
15.value = "/>
20 = COA
20 < lib.news
}
Im Powermail fügt man ein TYPOScript Objekt ein - in unserem Fall als erstes Element, so dass der Name des Events gleich ganz oben steht.
Double-Opt-In von direct_mail_subscription auslösen
Powermail unterstützt userfunc somit kann man beim Absenden des Formulars den Double-Opt-In starten:
Wir ergänzen das Erweiterungstemplate um folgenden TYPOScript:
# include library
includeLibs.user_powermailvorgangsnummer = fileadmin/libs/user.tx_powermaildirectmailsubscription.php
plugin.tx_powermail_pi1.dynamicTyposcript {
directmailsubscription = USER
directmailsubscription {
userFunc = user_powermaildirectmailsubscription->subscribe
# subscribe field
userFunc.subscribe = uid5
# name field
userFunc.name = uid1
# email field
userFunc.email = uid3
#content uid
userFunc.formuid = 24
}
}
die Ids muss man sich entsprechend aus dem Formular heraussuchen.
user.tx_powermaildirectmailsubscription.php könnte z.B. so aussehen:
<?php
require_once (PATH_tslib.'media/scripts/fe_adminLib.inc');
require_once(t3lib_extMgm::extPath('direct_mail_subscription').'pi/class.dmailsubscribe.php');
class user_powermaildirectmailsubscription {
/**
* subscribe() subscribe user
*
* @param string $content: content to userFunc is empty
* @param array $conf: conf array from ts
* @return void
*/
function subscribe($content = '', $conf = array()) {
$subscribe = $GLOBALS['TSFE']->fe_user->sesData['powermail_'.$conf['userFunc.']['formuid']][$conf['userFunc.']['subscribe']];
if (strlen(implode(",", $subscribe)) > 0) {
$email = $GLOBALS['TSFE']->fe_user->sesData['powermail_'.$conf['userFunc.']['formuid']][$conf['userFunc.']['email']];
$name = $GLOBALS['TSFE']->fe_user->sesData['powermail_'.$conf['userFunc.']['formuid']][$conf['userFunc.']['name']];
$conf = $GLOBALS['TSFE']->tmpl->setup['plugin.']['feadmin.']['dmailsubscription.'];
// simulate registerprocess
$_POST['FE']['tt_address']['email'] = $email;
$_POST['FE']['tt_address']['module_sys_dmail_html'] = 1;
// Initialisierung feAdmin Objekt
$ua = new user_feAdmin();
$ua->cObj = t3lib_div::makeInstance('tslib_cObj');
$ua->init($content,$conf);
}
}
}
?>
Jetzt muss man noch diese Userfunktion auslösen. Dazu bauen wir folgenden Marker in die Empfänger-Mail:
###POWERMAIL_TYPOSCRIPT_DIRECTMAILSUBSCRIPTION###