diff options
| author | Tyler Bello <tylerbello@users.sourceforge.net> | 2009-10-08 16:53:06 +0000 |
|---|---|---|
| committer | Tyler Bello <tylerbello@users.sourceforge.net> | 2009-10-08 16:53:06 +0000 |
| commit | 5b440466e39a2fa5a737c3ab7000b5da442d6478 (patch) | |
| tree | a4955acafe59431766dc44e1fe5bacd3c4afd8b4 | |
| parent | cc1d6912738d0ef388dc995484fe61fea192c4db (diff) | |
| download | newsletters-5b440466e39a2fa5a737c3ab7000b5da442d6478.tar.gz newsletters-5b440466e39a2fa5a737c3ab7000b5da442d6478.tar.bz2 newsletters-5b440466e39a2fa5a737c3ab7000b5da442d6478.zip | |
improvements to opt-out, boxes are now prechecked and added unsubscribe all box
| -rw-r--r-- | bit_setup_inc.php | 14 | ||||
| -rw-r--r-- | templates/user_register_inc.tpl | 20 |
2 files changed, 28 insertions, 6 deletions
diff --git a/bit_setup_inc.php b/bit_setup_inc.php index c94fc47..bb20d28 100644 --- a/bit_setup_inc.php +++ b/bit_setup_inc.php @@ -38,13 +38,19 @@ if( $gBitSystem->isPackageActive( NEWSLETTERS_PKG_NAME ) ) { } function newsletters_user_register( &$pObject ) { - if( !empty($_REQUEST['unsubscribe']) ){ require_once NEWSLETTERS_PKG_PATH.'BitNewsletter.php'; $newsletter = new BitNewsletter(); - foreach ( $_REQUEST['unsubscribe'] as $nl_id ){ - $newsletter->unsubscribe($nl_id,false); + $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); + } + }else{ //we wish to unsubscribe from all newsletters + $newsletter->unsubscribe($nl['nl_id'],false); + } } - } } } ?> diff --git a/templates/user_register_inc.tpl b/templates/user_register_inc.tpl index 4cab540..79fe5a9 100644 --- a/templates/user_register_inc.tpl +++ b/templates/user_register_inc.tpl @@ -1,9 +1,25 @@ +<script type = "text/javascript"> +{literal} +function unsubscribe_all(){ + +var checkboxes = document.getElementsByName('subscribe[]'); +for (var i = 0; i < checkboxes.length; i++){ + if( checkboxes[i].checked == true ){ + checkboxes[i].checked = false; + } +} + +} +{/literal} +</script> + <div class="row"> {formlabel label="Subscriptions"} {forminput} {foreach from=$newsletters item='newsletter'} - <input type="checkbox" name="unsubscribe[]" value="{$newsletter.nl_id}"/><strong>{$newsletter.title}</strong><br/> + <input type="checkbox" checked="true" name="subscribe[]" value="{$newsletter.nl_id}"/><strong>{$newsletter.title}</strong><br/> {/foreach} - {formhelp note="Check the box to opt-out of the specified newsletter."} + <input type="checkbox" onclick="unsubscribe_all();"/><strong>Unsubscribe All</strong><br/> + {formhelp note="Uncheck the boxes to opt-out of the specified newsletter."} {/forminput} </div> |
