diff options
| author | Christian Fowler <spider@viovio.com> | 2006-01-22 20:21:57 +0000 |
|---|---|---|
| committer | Christian Fowler <spider@viovio.com> | 2006-01-22 20:21:57 +0000 |
| commit | 4125f646dfb95a5c09d772c6253dc88c707c8ec9 (patch) | |
| tree | 684b4ed080e314c811f7861faecaa915b6b44642 | |
| parent | b484e055a2d91d63b88d978b035c3047dd458b79 (diff) | |
| download | newsletters-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.php | 28 | ||||
| -rw-r--r-- | BitNewsletterEdition.php | 19 | ||||
| -rw-r--r-- | index.php | 8 | ||||
| -rw-r--r-- | newsletters.php | 4 | ||||
| -rw-r--r-- | templates/view_newsletter.tpl | 4 |
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 ); @@ -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}&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}&remove=1">{biticon ipackage=liberty iname="delete" iexplain="delete"}</a> {/if} {if $gBitUser->hasPermission( 'bit_p_print' )} |
