summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Fowler <spider@viovio.com>2005-12-28 16:01:51 +0000
committerChristian Fowler <spider@viovio.com>2005-12-28 16:01:51 +0000
commitfd43e1191a1b9e2a87d59e2772c5fd9ef0cd7bcd (patch)
tree332128f276d494292c5dfb908e03e6dfda147ca8
parent24f652cebb911f360f463ac8bb3d4dbf99a19bc8 (diff)
downloadnewsletters-fd43e1191a1b9e2a87d59e2772c5fd9ef0cd7bcd.tar.gz
newsletters-fd43e1191a1b9e2a87d59e2772c5fd9ef0cd7bcd.tar.bz2
newsletters-fd43e1191a1b9e2a87d59e2772c5fd9ef0cd7bcd.zip
more unsub changes and updates. getting closer
-rw-r--r--BitMailer.php17
-rw-r--r--BitNewsletter.php8
-rw-r--r--index.php32
-rw-r--r--templates/user_subscriptions.tpl17
4 files changed, 46 insertions, 28 deletions
diff --git a/BitMailer.php b/BitMailer.php
index 253b3c2..3f6d185 100644
--- a/BitMailer.php
+++ b/BitMailer.php
@@ -1,12 +1,12 @@
<?php
/**
- * $Header: /cvsroot/bitweaver/_bit_newsletters/Attic/BitMailer.php,v 1.5 2005/12/28 15:23:32 spiderr Exp $
+ * $Header: /cvsroot/bitweaver/_bit_newsletters/Attic/BitMailer.php,v 1.6 2005/12/28 16:01:51 spiderr Exp $
*
* Copyright (c) 2004 bitweaver.org
* All Rights Reserved. See copyright.txt for details and a complete list of authors.
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details
*
- * $Id: BitMailer.php,v 1.5 2005/12/28 15:23:32 spiderr Exp $
+ * $Id: BitMailer.php,v 1.6 2005/12/28 16:01:51 spiderr Exp $
*
* Class that handles editions of newsletters
* @package newsletters
@@ -15,7 +15,7 @@
*
* @author spiderr <spider@steelsun.com>
*
- * @version $Revision: 1.5 $ $Date: 2005/12/28 15:23:32 $ $Author: spiderr $
+ * @version $Revision: 1.6 $ $Date: 2005/12/28 16:01:51 $ $Author: spiderr $
*/
/**
@@ -154,8 +154,9 @@ class BitMailer extends phpmailer {
global $gBitDb;
$ret = NULL;
if( !empty( $pUrlCode ) ) {
- $query = "SELECT * FROM `".BIT_DB_PREFIX."tiki_mail_queue` tmq
- INNER JOIN `".BIT_DB_PREFIX."tiki_content` tc ON( tmq.`nl_content_id`=tc.`content_id` )
+ $query = "SELECT tmq.*, tc.*, tct.*, uu.`real_name`, uu.`login`, uu.`email` FROM `".BIT_DB_PREFIX."tiki_mail_queue` tmq
+ INNER JOIN `".BIT_DB_PREFIX."tiki_content` tc ON( tmq.`content_id`=tc.`content_id` )
+ INNER JOIN `".BIT_DB_PREFIX."tiki_content_types` tct ON( tct.`content_type_guid`=tc.`content_type_guid` )
LEFT OUTER JOIN `".BIT_DB_PREFIX."users_users` uu ON( tmq.`user_id`=uu.`user_id` )
WHERE `url_code`=? ";
$ret = $gBitDb->getRow( $query, array( $pUrlCode ) );
@@ -171,11 +172,11 @@ class BitMailer extends phpmailer {
if( is_array( $pMixed ) ) {
$col = key( $pMixed );
$bindVars[] = current( $pMixed );
- $query = "SELECT * FROM `".BIT_DB_PREFIX."tiki_mail_unsubscriptions` tmu
+ $query = "SELECT tmu.`content_id` AS `hash_key`, * FROM `".BIT_DB_PREFIX."tiki_mail_unsubscriptions` tmu
LEFT OUTER JOIN `".BIT_DB_PREFIX."users_users` uu ON( tmu.`user_id`=uu.`user_id` )
LEFT OUTER JOIN `".BIT_DB_PREFIX."tiki_content` tc ON( tmu.`content_id`=tc.`content_id` )
- WHERE $col=? ";
- $ret = $gBitDb->getRow( $query, $bindVars );
+ WHERE tmu.`$col`=? ";
+ $ret = $gBitDb->getAssoc( $query, $bindVars );
}
return( $ret );
}
diff --git a/BitNewsletter.php b/BitNewsletter.php
index 278ba42..1d365fd 100644
--- a/BitNewsletter.php
+++ b/BitNewsletter.php
@@ -1,12 +1,12 @@
<?php
/**
- * $Header: /cvsroot/bitweaver/_bit_newsletters/BitNewsletter.php,v 1.9 2005/12/25 02:23:44 spiderr Exp $
+ * $Header: /cvsroot/bitweaver/_bit_newsletters/BitNewsletter.php,v 1.10 2005/12/28 16:01:51 spiderr Exp $
*
* Copyright (c) 2004 bitweaver.org
* All Rights Reserved. See copyright.txt for details and a complete list of authors.
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details
*
- * $Id: BitNewsletter.php,v 1.9 2005/12/25 02:23:44 spiderr Exp $
+ * $Id: BitNewsletter.php,v 1.10 2005/12/28 16:01:51 spiderr Exp $
*
* Virtual base class (as much as one can have such things in PHP) for all
* derived tikiwiki classes that require database access.
@@ -16,7 +16,7 @@
*
* @author drewslater <andrew@andrewslater.com>, spiderr <spider@steelsun.com>
*
- * @version $Revision: 1.9 $ $Date: 2005/12/25 02:23:44 $ $Author: spiderr $
+ * @version $Revision: 1.10 $ $Date: 2005/12/28 16:01:51 $ $Author: spiderr $
*/
/**
@@ -244,7 +244,7 @@ class BitNewsletter extends LibertyContent {
while( $res = $result->fetchRow() ) {
$res["confirmed"] = $this->mDb->getOne( "SELECT COUNT(*) FROM `".BIT_DB_PREFIX."tiki_newsletter_subscriptions` WHERE `valid`=? AND `nl_id`=?",array( 'y', (int)$res["nl_id"] ) );
- $ret[$res['nl_id']] = $res;
+ $ret[$res['content_id']] = $res;
}
return $ret;
diff --git a/index.php b/index.php
index 466e619..b2f6268 100644
--- a/index.php
+++ b/index.php
@@ -1,6 +1,6 @@
<?php
-// $Header: /cvsroot/bitweaver/_bit_newsletters/index.php,v 1.9 2005/12/28 15:23:32 spiderr Exp $
+// $Header: /cvsroot/bitweaver/_bit_newsletters/index.php,v 1.10 2005/12/28 16:01:51 spiderr Exp $
// Copyright (c) 2002-2003, Luis Argerich, Garland Foster, Eduardo Polidor, et. al.
// All Rights Reserved. See copyright.txt for details and a complete list of authors.
@@ -21,15 +21,27 @@ if( isset( $_REQUEST["confirm_subscription"] ) ) {
}
}
+if( !$gBitUser->isRegistered() && !$gBitUser->hasPermission( 'bit_p_subscribe_newsletters' ) && empty( $_REQUEST["sub"] ) ) {
+ $gBitSystem->fatalError( tra("You must be logged in to subscribe to newsletters"));
+}
+
+require_once( NEWSLETTERS_PKG_PATH.'lookup_newsletter_inc.php' );
+$feedback = array();
+
+/* List newsletters */
+$listHash = array();
+$newsletters = $gContent->getList( $listHash );
+$gBitSmarty->assign_by_ref('newsletters', $newsletters );
+
if( isset( $_REQUEST["sub"] ) ) {
- if( strlen( $_REQUEST["sub"] ) == 32 ) {
- $gBitSmarty->assign( 'subInfo', BitMailer::lookupUrlCode( $_REQUEST["sub"] ) );
+ if( strlen( $_REQUEST["sub"] ) == 32 && ($subInfo = BitMailer::lookupUrlCode( $_REQUEST["sub"] )) ) {
+ $gBitSmarty->assign( 'subInfo', $subInfo );
+ $lookup['email'] = $subInfo['email'];
+ $unsubs = BitMailer::getUnsubscriptions( $lookup );
+ $gBitSmarty->assign( 'unsubs', $unsubs );
}
$mid = 'bitpackage:newsletters/user_subscriptions.tpl';
} elseif( isset( $_REQUEST["update"] ) ) {
- /* List newsletters */
- $listHash = array();
- $newsletters = $gContent->getList( $listHash );
vd( $newsletters );
vd( $_REQUEST );
$feedback['success'] = tra( "Your subscriptions were updated." );
@@ -38,13 +50,6 @@ vd( $_REQUEST );
$mid = 'bitpackage:newsletters/user_subscriptions.tpl';
}
-if( !$gBitUser->isRegistered() && !$gBitUser->hasPermission( 'bit_p_subscribe_newsletters' ) && empty( $_REQUEST["confirm_subscription"] ) ) {
- $gBitSystem->fatalError( tra("You must be logged in to subscribe to newsletters"));
-}
-
-require_once( NEWSLETTERS_PKG_PATH.'lookup_newsletter_inc.php' );
-$feedback = array();
-
$foo = parse_url($_SERVER["REQUEST_URI"]);
$gBitSmarty->assign('url_subscribe', httpPrefix(). $foo["path"]);
@@ -90,7 +95,6 @@ if( $gContent->isValid() ) {
}
}
*/
- $gBitSmarty->assign_by_ref('newsletters', $newsletters );
$gBitSmarty->assign( 'feedback', $feedback );
$mid = 'bitpackage:newsletters/newsletters.tpl';
}
diff --git a/templates/user_subscriptions.tpl b/templates/user_subscriptions.tpl
index 6f3e617..8c24ea3 100644
--- a/templates/user_subscriptions.tpl
+++ b/templates/user_subscriptions.tpl
@@ -8,6 +8,15 @@
{if $subInfo}
{formfeedback success=$success error=$gContent->mErrors}
{form enctype="multipart/form-data" id="editpageform"}
+ <input type="hidden" name="unsub_content_id" value="{$subInfo.content_id}" />
+ <div class="row">
+<em>
+ {formlabel label="In Response To"}
+ {forminput}
+ {tr}{$subInfo.content_description}{/tr}: {$subInfo.title}
+ {/forminput}
+</em>
+ </div>
<div class="row">
{formlabel label="User Information"}
{forminput}
@@ -18,13 +27,17 @@
<div class="row">
{formlabel label="Subscriptions"}
{forminput}
- <input type="checkbox" name="nl_content_id" value="{$subInfo.nl_content_id}" /> {$subInfo.title} </br>
+ {foreach from=$newsletters key=nlId item=nl}
+ <input type="checkbox" name="nl_content_id[]" value="{$nlId}" {if !$unsubs.$nlId}checked="checked"{/if}/> {$nl.title} <br/>
+ {foreachelse}
+ {tr}No newsletters were found{/tr}
+ {/foreach}
{/forminput}
</div>
<div class="row">
{formlabel label="Permanent Unsubscribe"}
{forminput}
- <input type="checkbox" name="unsubscribe_all" value="{$subInfo.nl_content_id}" {if $subInfo.unsubscribe_all}checked="checked"{/if} /> {tr}Remove myself from all lists, and receive no further mailings from{/tr} {$gBitSystem->getPreference('siteTitle','this site')}.</br>
+ <input type="checkbox" name="unsubscribe_all" value="y" {if $subInfo.unsubscribe_all}checked="checked"{/if} /> {tr}Remove myself from all lists, and receive no further mailings from{/tr} {$gBitSystem->getPreference('siteTitle','this site')}.</br>
{/forminput}
</div>
<div class="row submit">