summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Fowler <spider@viovio.com>2006-01-22 20:21:57 +0000
committerChristian Fowler <spider@viovio.com>2006-01-22 20:21:57 +0000
commit4125f646dfb95a5c09d772c6253dc88c707c8ec9 (patch)
tree684b4ed080e314c811f7861faecaa915b6b44642
parentb484e055a2d91d63b88d978b035c3047dd458b79 (diff)
downloadnewsletters-4125f646dfb95a5c09d772c6253dc88c707c8ec9.tar.gz
newsletters-4125f646dfb95a5c09d772c6253dc88c707c8ec9.tar.bz2
newsletters-4125f646dfb95a5c09d772c6253dc88c707c8ec9.zip
lots of clean to newsletters - only show editions for nl_id, get delete links to go to the right place
-rw-r--r--BitNewsletter.php28
-rw-r--r--BitNewsletterEdition.php19
-rw-r--r--index.php8
-rw-r--r--newsletters.php4
-rw-r--r--templates/view_newsletter.tpl4
5 files changed, 39 insertions, 24 deletions
diff --git a/BitNewsletter.php b/BitNewsletter.php
index 4b24b8c..e8e1ae5 100644
--- a/BitNewsletter.php
+++ b/BitNewsletter.php
@@ -1,12 +1,12 @@
<?php
/**
- * $Header: /cvsroot/bitweaver/_bit_newsletters/BitNewsletter.php,v 1.12 2005/12/28 23:21:24 spiderr Exp $
+ * $Header: /cvsroot/bitweaver/_bit_newsletters/BitNewsletter.php,v 1.13 2006/01/22 20:21:56 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.12 2005/12/28 23:21:24 spiderr Exp $
+ * $Id: BitNewsletter.php,v 1.13 2006/01/22 20:21:56 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.12 $ $Date: 2005/12/28 23:21:24 $ $Author: spiderr $
+ * @version $Revision: 1.13 $ $Date: 2006/01/22 20:21:56 $ $Author: spiderr $
*/
/**
@@ -197,18 +197,23 @@ class BitNewsletter extends LibertyContent {
}
$this->prepGetList( $pListHash );
$bindVars = array();
+ $mid = '';
+
+ if( @$this->verifyId( $pListHash['nl_id'] ) ) {
+ $mid .= ' AND tn.nl_id=? ';
+ $bindVars[] = $pListHash['nl_id'];
+ }
+
if( !empty( $pListHash['find'] ) ) {
$findesc = '%' . $pListHash['find'] . '%';
- $mid = " where (`name` like ? or `description` like ?)";
+ $mid .= " AND (`name` like ? or `description` like ?)";
$bindVars[] = $findesc;
$bindVars[] = $findesc;
- } else {
- $mid = " ";
}
$query = "SELECT *
FROM `".BIT_DB_PREFIX."tiki_newsletters` tn INNER JOIN `".BIT_DB_PREFIX."tiki_content` tc ON( tn.`content_id`=tc.`content_id`)
- $mid
+ WHERE tn.`content_id`=tc.`content_id` $mid
ORDER BY ".$this->mDb->convert_sortmode( $pListHash['sort_mode'] );
$result = $this->mDb->query( $query, $bindVars, $pListHash['max_records'], $pListHash['offset'] );
@@ -265,10 +270,13 @@ class BitNewsletter extends LibertyContent {
$ret = FALSE;
if( $this->isValid() ) {
$this->mDb->StartTrans();
- $query = "delete from `".BIT_DB_PREFIX."tiki_newsletters` where `nl_id`=?";
- $result = $this->mDb->query( $query, array( $this->mNewsletterId ) );
- $query = "delete from `".BIT_DB_PREFIX."tiki_mail_subscriptions` where `nl_id`=?";
+ $query = "DELETE FROM `".BIT_DB_PREFIX."tiki_newsletters` where `nl_id`=?";
$result = $this->mDb->query( $query, array( $this->mNewsletterId ) );
+ // Clear out all individual subscriptions/unsubscriptions, but preserve the unsubscribe_all's
+ $query = "DELETE FROM `".BIT_DB_PREFIX."tiki_mail_subscriptions` WHERE `nl_content_id`=? AND `unsubscribe_all` IS NOT NULL";
+ $result = $this->mDb->query( $query, array( $this->mContentId ) );
+ $query = "UPDATE `".BIT_DB_PREFIX."tiki_mail_subscriptions` SET `nl_content_id`=NULL WHERE `nl_content_id`=? AND `unsubscribe_all` IS NOT NULL";
+ $result = $this->mDb->query( $query, array( $this->mContentId ) );
if( parent::expunge() ) {
$ret = TRUE;
$this->mDb->CompleteTrans();
diff --git a/BitNewsletterEdition.php b/BitNewsletterEdition.php
index 7c9a06a..7216372 100644
--- a/BitNewsletterEdition.php
+++ b/BitNewsletterEdition.php
@@ -1,12 +1,12 @@
<?php
/**
- * $Header: /cvsroot/bitweaver/_bit_newsletters/BitNewsletterEdition.php,v 1.14 2005/12/30 00:24:18 spiderr Exp $
+ * $Header: /cvsroot/bitweaver/_bit_newsletters/BitNewsletterEdition.php,v 1.15 2006/01/22 20:21:56 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.14 2005/12/30 00:24:18 spiderr Exp $
+ * $Id: BitNewsletterEdition.php,v 1.15 2006/01/22 20:21:56 spiderr Exp $
*
* Class that handles editions of newsletters
* @package newsletters
@@ -15,7 +15,7 @@
*
* @author spiderr <spider@steelsun.com>
*
- * @version $Revision: 1.14 $ $Date: 2005/12/30 00:24:18 $ $Author: spiderr $
+ * @version $Revision: 1.15 $ $Date: 2006/01/22 20:21:56 $ $Author: spiderr $
*/
/**
@@ -139,20 +139,25 @@ class BitNewsletterEdition extends LibertyAttachable {
$bindVars = array();
BitBase::prepGetList( $pListHash );
$mid = '';
+
+ if( @$this->verifyId( $pListHash['nl_id'] ) ) {
+ $mid .= (empty( $mid ) ? 'WHERE' : 'AND').' tn.nl_id=? ';
+ $bindVars[] = $pListHash['nl_id'];
+ }
+
if( $pListHash['find'] ) {
$findesc = '%' . $pListHash['find'] . '%';
- $mid = " WHERE (tc.`title` like ? or tc.`data` like ?)";
+ $mid .= (empty( $mid ) ? 'WHERE' : 'AND').' (tc.`title` like ? or tc.`data` like ?)';
$bindVars[] = $findesc;
$bindVars[] = $findesc;
}
-
$query = "SELECT `edition_id` AS `hash_key`, tne.*, tc.*, tc2.`title` AS `newsletter_title`
FROM `".BIT_DB_PREFIX."tiki_newsletters_editions` tne
INNER JOIN `".BIT_DB_PREFIX."tiki_content` tc ON( tc.`content_id`=tne.`content_id` )
- LEFT OUTER JOIN `".BIT_DB_PREFIX."tiki_newsletters` tn ON( tne.`nl_content_id`=tn.`content_id` )
+ INNER JOIN `".BIT_DB_PREFIX."tiki_newsletters` tn ON( tne.`nl_content_id`=tn.`content_id` )
LEFT OUTER JOIN `".BIT_DB_PREFIX."tiki_content` tc2 ON( tn.`content_id`=tc2.`content_id` )
$mid ORDER BY ".$this->mDb->convert_sortmode( $pListHash['sort_mode'] );
- $query_cant = "select count(*) from `".BIT_DB_PREFIX."tiki_newsletters` tn, `".BIT_DB_PREFIX."tiki_newsletters_editions` tne where tn.`content_id`=tne.`nl_content_id` $mid";
+ $query_cant = "select count(*) from `".BIT_DB_PREFIX."tiki_newsletters` tn INNER JOIN `".BIT_DB_PREFIX."tiki_newsletters_editions` tne ON(tn.`content_id`=tne.`nl_content_id`) $mid";
$ret = $gBitDb->getAssoc( $query, $bindVars, $pListHash['max_records'], $pListHash['offset'] );
foreach( array_keys( $ret ) as $k ) {
$ret[$k]['display_url'] = BitNewsletterEdition::getDisplayUrl( $k );
diff --git a/index.php b/index.php
index de5b43f..fed5687 100644
--- a/index.php
+++ b/index.php
@@ -1,5 +1,5 @@
<?php
-// $Header: /cvsroot/bitweaver/_bit_newsletters/index.php,v 1.15 2005/12/29 17:22:47 spiderr Exp $
+// $Header: /cvsroot/bitweaver/_bit_newsletters/index.php,v 1.16 2006/01/22 20:21:56 spiderr Exp $
// Copyright (c) 2006 - bitweaver.org - Christian Fowler, Max Kremmel, et. al
// All Rights Reserved. See copyright.txt for details and a complete list of authors.
@@ -21,9 +21,11 @@ $feedback = array();
/* List newsletters */
$listHash = array();
+if( !empty( $_REQUEST['nl_id'] ) ) {
+ $listHash['nl_id'] = $_REQUEST['nl_id'];
+}
$newsletters = $gContent->getList( $listHash );
$gBitSmarty->assign_by_ref('newsletters', $newsletters );
-
if( isset( $_REQUEST["sub"] ) || $gBitUser->isRegistered() ) {
if( isset( $_REQUEST["sub"] ) && strlen( $_REQUEST["sub"] ) == 32 && ($subInfo = BitMailer::lookupSubscription( array( 'url_code' => $_REQUEST["sub"] ) )) ) {
$lookup['email'] = $subInfo['email'];
@@ -123,4 +125,4 @@ $gBitSmarty->assign( 'feedback', $feedback );
// Display the template
$gBitSystem->display( $mid );
-?> \ No newline at end of file
+?>
diff --git a/newsletters.php b/newsletters.php
index 8830d1e..5276f72 100644
--- a/newsletters.php
+++ b/newsletters.php
@@ -1,6 +1,6 @@
<?php
-// $Header: /cvsroot/bitweaver/_bit_newsletters/newsletters.php,v 1.4 2005/12/29 21:27:12 spiderr Exp $
+// $Header: /cvsroot/bitweaver/_bit_newsletters/newsletters.php,v 1.5 2006/01/22 20:21:56 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.
@@ -22,7 +22,7 @@ if( isset( $_REQUEST["remove"] ) && $gContent->isValid() ) {
$gBitSystem->confirmDialog( $formHash, array( 'warning' => 'Are you sure you want to delete the newsletter '.$gContent->getTitle().'?' ) );
} else {
if( $gContent->expunge() ) {
- header( "Location: ".NEWSLETTERS_PKG_URL.'admin/' );
+ header( "Location: ".NEWSLETTERS_PKG_URL.'newsletters.php' );
die;
}
}
diff --git a/templates/view_newsletter.tpl b/templates/view_newsletter.tpl
index 80340d2..7dde128 100644
--- a/templates/view_newsletter.tpl
+++ b/templates/view_newsletter.tpl
@@ -3,8 +3,8 @@
{include file="bitpackage:liberty/services_inc.tpl" serviceLocation='icon'}
{if $gContent->isOwner() || $gBitUser->hasPermission( 'bit_p_admin_newsletters' )}
- <a href="{$smarty.const.NEWSLETTERS_PKG_URL}admin/index.php?nl_id={$gContent->mNewsletterId}">{biticon ipackage=liberty iname="edit" iexplain="edit"}</a>
- <a href="{$smarty.const.NEWSLETTERS_PKG_URL}admin/index.php?nl_id={$gContent->mNewsletterId}&amp;remove=1">{biticon ipackage=liberty iname="delete" iexplain="delete"}</a>
+ <a href="{$smarty.const.NEWSLETTERS_PKG_URL}newsletters.php?nl_id={$gContent->mNewsletterId}">{biticon ipackage=liberty iname="edit" iexplain="edit"}</a>
+ <a href="{$smarty.const.NEWSLETTERS_PKG_URL}newsletters.php?nl_id={$gContent->mNewsletterId}&amp;remove=1">{biticon ipackage=liberty iname="delete" iexplain="delete"}</a>
{/if}
{if $gBitUser->hasPermission( 'bit_p_print' )}