forked from ccraig/cpoMMo
-
Notifications
You must be signed in to change notification settings - Fork 51
/
mailings.php
120 lines (100 loc) · 3.93 KB
/
mailings.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<?php
/**
* Copyright (C) 2005, 2006, 2007, 2008 Brice Burgess <[email protected]>
*
* This file is part of poMMo (http://www.pommo.org)
*
* poMMo is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
* by the Free Software Foundation; either version 2, or any later version.
*
* poMMo is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
* the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with program; see the file docs/LICENSE. If not, write to the
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*/
/**********************************
INITIALIZATION METHODS
*********************************/
require ('bootstrap.php');
require_once(Pommo::$_baseDir.'classes/Pommo_Mailing.php');
require_once(Pommo::$_baseDir.'classes/Pommo_Subscribers.php');
/**********************************
SETUP TEMPLATE, PAGE
*********************************/
require_once(Pommo::$_baseDir.'classes/Pommo_Template.php');
$view = new Pommo_Template();
$view->assign('title', Pommo::$_config['site_name'] . ' - ' . Pommo::_T('Mailing History'));
$config = Pommo_Api::configGet('public_history');
if ($config['public_history'] == 'on') {
Pommo::init(array('authLevel' => 0));
} else {
// Show message to the guest telling them that public mailings is not on
$view->display('public_mailings_disabled');
Pommo::kill();
}
$logger = & Pommo::$_logger;
$dbo = & Pommo::$_dbo;
/** SET PAGE STATE
* limit - # of mailings per page
* sort - Sorting of Mailings [subject, started]
* order - Order Type (ascending - ASC /descending - DESC)
*/
// Initialize page state with default values overriden by those held in $_REQUEST
$state =& Pommo_Api::stateInit('mailings_history',array(
'limit' => 100,
'sort' => 'finished',
'order' => 'asc',
'page' => 1),
$_REQUEST);
// if mail_id is passed, display the mailing.
if(isset($_GET['mail_id']) && is_numeric($_GET['mail_id'])) {
$input = current(Pommo_Mailing::get(array('id' => $_GET['mail_id'])));
// attempt personalizations
if(isset($_GET['email']) && isset($_GET['code'])) {
$subscriber = current(Pommo_Subscribers::get(array('email' => $_GET['email'], 'status' => 1)));
if($_GET['code'] == Pommo_Subscribers::getActCode($subscriber)) {
require_once(Pommo::$_baseDir.'classes/Pommo_Helper_Personalize.php'); // require once here so that mailer can use
$matches = array();
preg_match('/\[\[[^\]]+]]/', $input['body'], $matches);
if (!empty($matches)) {
$pBody = Pommo_Helper_Personalize::search($input['body']);
$input['body'] = Pommo_Helper_Personalize::replace($input['body'], $subscriber, $pBody);
}
preg_match('/\[\[[^\]]+]]/', $input['altbody'], $matches);
if (!empty($matches)) {
$pAltBody = Pommo_Helper_Personalize::search($input['altbody']);
$input['altbody'] = Pommo_Helper_Personalize::replace($input['altbody'], $subscriber, $pAltBody);
}
}
}
$view->assign($input);
$view->display('inc/mailing');
Pommo::kill();
}
/**********************************
VALIDATION ROUTINES
*********************************/
if(!is_numeric($state['limit']) || $state['limit'] < 10 || $state['limit'] > 200)
$state['limit'] = 100;
if($state['order'] != 'asc' && $state['order'] != 'desc')
$state['order'] = 'asc';
if($state['sort'] != 'start' &&
$state['sort'] != 'subject')
$state['sort'] = 'start';
/**********************************
DISPLAY METHODS
*********************************/
// Calculate and Remember number of pages
$tally = Pommo_Mailing::tally();
$state['pages'] = (is_numeric($tally) && $tally > 0) ?
ceil($tally/$state['limit']) :
0;
$view->assign('state',$state);
$view->assign('tally',$tally);
$view->assign('mailings', $mailings);
$view->display('user/mailings');