« Mai 2012»
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Kategorien

Blogrolls

Letzte Kommentare

Inline
04.02.2011 13:09

Archiv

Kopieren Sie diesen Link in Ihren RSS-Reader

RSS 0.91Nachrichten
RSS 2.0Nachrichten

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

16.05.2011
11:21

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###

Zurück