getActCode() public static method

returns the activation code for the passed subscriber
public static getActCode ( $subscriber )
 public static function replace(&$msg, &$s, &$personalizations)
 {
     $body = $msg;
     foreach ($personalizations as $p) {
         // lookup replace string
         switch (strtolower($p['field'])) {
             case 'email':
                 $replace = $s['email'];
                 break;
             case 'ip':
                 $replace = $s['ip'];
                 break;
             case 'registered':
                 $replace = $s['registered'];
                 break;
             case '!unsubscribe':
                 $replace = Pommo::$_http . Pommo::$_baseUrl . 'update.php?email=' . $s['email'] . '&code=' . Pommo_Subscribers::getActCode($s);
                 break;
             case '!weblink':
                 $replace = Pommo::$_http . Pommo::$_baseUrl . 'mailings.php?mail_id=' . $_GET['id'] . '&email=' . $s['email'] . '&code=' . Pommo_Subscribers::getActCode($s);
                 break;
             case '!subscriber_id':
                 $replace = $s['id'];
                 break;
             case '!mailing_id':
                 $replace = $_GET['id'];
                 break;
             default:
                 $replace = $s['data'][$p['field_id']];
                 break;
         }
         // attempt to add default if replacement is empty
         if (empty($replace)) {
             $replace = $p['default'];
         }
         $body = str_replace($p['search'], $replace, $body);
     }
     return $body;
 }
示例#2
0
	SETUP TEMPLATE, PAGE
 *********************************/
require_once Pommo::$_baseDir . 'classes/Pommo_Template.php';
$smarty = new Pommo_Template();
// make sure email/login is valid
$subscriber = current(Pommo_Subscribers::get(array('email' => empty($_REQUEST['email']) ? '0' : $_REQUEST['email'], 'status' => 1)));
if (empty($subscriber)) {
    Pommo::redirect('login.php');
}
// see if an anctivation email was sent to this subscriber in the last 2 minutes;
$query = "\n\tSELECT \n\t\t*\n\tFROM \n\t\t" . $dbo->table['scratch'] . "\n\tWHERE\n\t\t`type`=1\n\t\tAND `int`=%i\n\t\tAND `time` > (NOW() - INTERVAL 2 MINUTE)\n\tLIMIT 1";
$query = $dbo->prepare($query, array($subscriber['id']));
$test = $dbo->query($query, 0);
// attempt to send activation code if once has not recently been sent
if (empty($test)) {
    $code = Pommo_Subscribers::getActCode($subscriber);
    if (Pommo_Helper_Messages::sendMessage(array('to' => $subscriber['email'], 'code' => $code, 'type' => 'activate'))) {
        $smarty->assign('sent', true);
        // timestamp this activation email
        $query = "\n\t\t\tINSERT INTO " . $dbo->table['scratch'] . "\n\t\t\tSET\n\t\t\t\t`type`=1,\n\t\t\t\t`int`=%i";
        $query = $dbo->prepare($query, array($subscriber['id']));
        $dbo->query($query);
        // remove ALL activation email timestamps older than 2 minutes
        $query = "\n\t\t\tDELETE FROM \n\t\t\t\t" . $dbo->table['scratch'] . "\n\t\t\tWHERE\n\t\t\t\t`type`=1\n\t\t\t\tAND `time` < (NOW() - INTERVAL 2 MINUTE)";
        $query = $dbo->prepare($query, array());
        $dbo->query($query);
    }
} else {
    $smarty->assign('sent', false);
}
$smarty->assign('email', $subscriber['email']);
示例#3
0
文件: update.php 项目: soonick/poMMo
Pommo::init(array('authLevel' => 0, 'noSession' => true));
$logger =& Pommo::$_logger;
$dbo =& Pommo::$_dbo;
/**********************************
	SETUP TEMPLATE, PAGE
 *********************************/
require_once Pommo::$_baseDir . 'classes/Pommo_Template.php';
$view = new Pommo_Template();
// Prepare for subscriber form -- load in fields + POST/Saved Subscribe Form
$view->prepareForSubscribeForm();
// fetch the subscriber, validate code
$subscriber = current(Pommo_Subscribers::get(array('email' => empty($_REQUEST['email']) ? '0' : $_REQUEST['email'], 'status' => 1)));
if (empty($subscriber)) {
    Pommo::redirect('login.php');
}
if ($_REQUEST['code'] != Pommo_Subscribers::getActCode($subscriber)) {
    Pommo::kill(Pommo::_T('Invalid activation code.'));
}
// check if we have pending request
if (Pommo_Pending::isPending($subscriber['id'])) {
    $input = urlencode(serialize(array('Email' => $_POST['Email'])));
    Pommo::redirect('pending.php?input=' . $input);
}
$config = Pommo_Api::configGet(array('notices'));
$notices = unserialize($config['notices']);
if (!isset($_POST['d'])) {
    $view->assign('d', $subscriber['data']);
}
// check for an update + validate new subscriber info (also converts dates to ints)
if (!empty($_POST['update']) && Pommo_Validate::subscriberData($_POST['d'])) {
    $newsub = array('id' => $subscriber['id'], 'email' => $subscriber['email'], 'data' => $_POST['d']);
示例#4
0
$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);
            }
        }
    }