diff options
| author | Christian Fowler <spider@viovio.com> | 2010-03-03 21:25:52 +0000 |
|---|---|---|
| committer | Christian Fowler <spider@viovio.com> | 2010-03-03 21:25:52 +0000 |
| commit | afddab86926764d01cd305e8c5b38bb95d55c0dd (patch) | |
| tree | 765370eef487e6fa90030b89293f2fb9a432d794 /bit_setup_inc.php | |
| parent | 289fc885814b3c6f809cf405ab5113101dac5d26 (diff) | |
| download | newsletters-afddab86926764d01cd305e8c5b38bb95d55c0dd.tar.gz newsletters-afddab86926764d01cd305e8c5b38bb95d55c0dd.tar.bz2 newsletters-afddab86926764d01cd305e8c5b38bb95d55c0dd.zip | |
get unsubscribe_all button to work, clean up logic to use BitNewsletterMailer to handle subscriptions
Diffstat (limited to 'bit_setup_inc.php')
| -rw-r--r-- | bit_setup_inc.php | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/bit_setup_inc.php b/bit_setup_inc.php index 3bad4fc..93cb519 100644 --- a/bit_setup_inc.php +++ b/bit_setup_inc.php @@ -41,20 +41,26 @@ if( $gBitSystem->isPackageActive( NEWSLETTERS_PKG_NAME ) ) { if( !empty( $_REQUEST['newsletter_optin'] ) ) { // hidden flag to indicate at least one newsletter was displayed require_once NEWSLETTERS_PKG_PATH.'BitNewsletter.php'; - $newsletter = new BitNewsletter(); - $pParamHash = array(); - $newsletters = $newsletter->getList($pParamHash); - foreach ($newsletters as $nl){ - if( !empty( $_REQUEST['subscribe'] ) ){ - // we want to stay in at least one, which requires more complicated checking - if( !in_array($nl['nl_id'], $_REQUEST['subscribe'])){ //not checked, implies unsubscribe - $newsletter->unsubscribe($nl['nl_id'],false); + require_once NEWSLETTERS_PKG_PATH.'BitNewsletterMailer.php'; + + if( !empty( $_REQUEST['unsub_all'] ) ) { + $subHash['unsubscribe_all'] = 'y'; + } else { + $newsletter = new BitNewsletter(); + $pParamHash = array(); + $newsletters = $newsletter->getList($pParamHash); + foreach( array_keys( $newsletters ) as $nlContentId ) { + if( empty( $_REQUEST['nl_content_id'] ) || !in_array( $nlContentId, $_REQUEST['nl_content_id'] ) ) { + $subHash['unsub_content'][] = $nlContentId; + $subHash['unsubscribe_all'] = NULL; } - } else { - //we wish to unsubscribe from all newsletters - $newsletter->unsubscribe($nl['nl_id'],false); } } + + if( !empty( $subHash ) ) { + $subHash['sub_lookup'] = array( 'user_id' => $pObject->mUserId ); + BitNewsletterMailer::storeSubscriptions( $subHash ); + } } } } |
