summaryrefslogtreecommitdiff
path: root/BitNewsletterEdition.php
diff options
context:
space:
mode:
authorChristian Fowler <spider@viovio.com>2005-12-11 22:53:05 +0000
committerChristian Fowler <spider@viovio.com>2005-12-11 22:53:05 +0000
commit8bbaa8db252a57322d4ad36f74637d7df198deee (patch)
tree09501e784259ed88f7cafab421d514342f20e881 /BitNewsletterEdition.php
parent63230d60adeed22fdf349ba4a838029c034551b0 (diff)
downloadnewsletters-8bbaa8db252a57322d4ad36f74637d7df198deee.tar.gz
newsletters-8bbaa8db252a57322d4ad36f74637d7df198deee.tar.bz2
newsletters-8bbaa8db252a57322d4ad36f74637d7df198deee.zip
schema changes for powerhouse tiki_mail_queue and tiki_mail_unsubscriptions. content generic in design. send now stuffs the queue and avoids duplicates on multiple sends. only piece left is a mailer class
Diffstat (limited to 'BitNewsletterEdition.php')
-rw-r--r--BitNewsletterEdition.php40
1 files changed, 33 insertions, 7 deletions
diff --git a/BitNewsletterEdition.php b/BitNewsletterEdition.php
index fa530d0..c2366f9 100644
--- a/BitNewsletterEdition.php
+++ b/BitNewsletterEdition.php
@@ -1,12 +1,12 @@
<?php
/**
- * $Header: /cvsroot/bitweaver/_bit_newsletters/BitNewsletterEdition.php,v 1.5 2005/12/11 08:52:21 spiderr Exp $
+ * $Header: /cvsroot/bitweaver/_bit_newsletters/BitNewsletterEdition.php,v 1.6 2005/12/11 22:53:05 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: BitNewsletterEdition.php,v 1.5 2005/12/11 08:52:21 spiderr Exp $
+ * $Id: BitNewsletterEdition.php,v 1.6 2005/12/11 22:53:05 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.5 $ $Date: 2005/12/11 08:52:21 $ $Author: spiderr $
+ * @version $Revision: 1.6 $ $Date: 2005/12/11 22:53:05 $ $Author: spiderr $
*/
/**
@@ -90,14 +90,15 @@ class BitNewsletterEdition extends LibertyAttachable {
$query = "SELECT tne.*, tc.*
FROM `".BIT_DB_PREFIX."tiki_newsletters_editions` tne
INNER JOIN `".BIT_DB_PREFIX."tiki_content` tc ON( tne.`content_id`=tc.`content_id` )
- WHERE `$lookupColumn`=? $whereSql";
- $result = $this->mDb->query($query,$bindVars);
- if ($result->numRows()) {
+ WHERE tne.`$lookupColumn`=? $whereSql";
+ if ( $result = $this->mDb->query($query,$bindVars) ) {
$this->mInfo = $result->fetchRow();
$this->mEditionId = $this->mInfo['edition_id'];
$this->mContentId = $this->mInfo['content_id'];
$this->mNewsletter = new BitNewsletter( $this->mInfo['nl_id'] );
$this->mNewsletter->load();
+ } else {
+ unset( $this->mEditionId );
}
}
return( count( $this->mInfo ) );
@@ -180,12 +181,37 @@ class BitNewsletterEdition extends LibertyAttachable {
foreach( $pGroupArray as $groupId ) {
$ret = array_merge( $ret, $gBitUser->getGroupUserData( $groupId, array( 'email', 'uu.user_id', 'login', 'real_name' ) ) );
}
+
+ $query = "SELECT * FROM `".BIT_DB_PREFIX."tiki_mail_unsubscriptions` WHERE `content_id`=? OR `unsubscribe_all` IS NOT NULL";
+ if( $unsubs = $this->mDb->getArray( $query, array( $this->mNewsletter->mContentId ) ) ) {
+ $ret = array_diff_assoc( $ret, $unsubs );
+ }
+ $query = "SELECT `email`, `user_id` FROM `".BIT_DB_PREFIX."tiki_mail_queue` WHERE `content_id`=?";
+ if( $dupes = $this->mDb->getAssoc( $query, array( $this->mContentId ) ) ) {
+ $ret = array_diff_keys( $ret, $dupes );
+ }
}
return $ret;
}
function queueRecipients( $pRecipients ) {
-vd( $pRecipients );
+ $ret = 0;
+ if( $this->isValid() ) {
+vd( $this->mContentId );
+ $queueTime = time();
+ foreach( array_keys( $pRecipients ) AS $email ) {
+ $insertHash['email'] = $email;
+ if( !empty( $pRecipients[$email]['user_id'] ) ) {
+ $insertHash['user_id'] = $pRecipients[$email]['user_id'];
+ }
+ $insertHash['content_id'] = $this->mContentId;
+ $insertHash['queue_date'] = $queueTime;
+ $this->mDb->associateInsert( BIT_DB_PREFIX.'tiki_mail_queue', $insertHash );
+ $ret++;
+ }
+die;
+ }
+ return $ret;
}
}