summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTyler Bello <tylerbello@users.sourceforge.net>2009-10-08 16:53:06 +0000
committerTyler Bello <tylerbello@users.sourceforge.net>2009-10-08 16:53:06 +0000
commit5b440466e39a2fa5a737c3ab7000b5da442d6478 (patch)
treea4955acafe59431766dc44e1fe5bacd3c4afd8b4
parentcc1d6912738d0ef388dc995484fe61fea192c4db (diff)
downloadnewsletters-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.php14
-rw-r--r--templates/user_register_inc.tpl20
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>