<?php /* $Id$ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2007 osCommerce This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License v2 (1991) as published by the Free Software Foundation. */ $osC_ObjectInfo = new osC_ObjectInfo(osC_Newsletters_Admin::getData($_GET['nID'])); ?> <h1><?php echo osc_link_object(osc_href_link_admin(FILENAME_DEFAULT, $osC_Template->getModule()), $osC_Template->getPageTitle()); ?> </h1> <?php if ($osC_MessageStack->size($osC_Template->getModule()) > 0) { echo $osC_MessageStack->get($osC_Template->getModule()); } ?> <p align="right"><?php echo '<input type="button" value="' . $osC_Language->get('button_back') . '" onclick="document.location.href=\'' . osc_href_link_admin(FILENAME_DEFAULT, $osC_Template->getModule() . '&page=' . $_GET['page']) . '\';" class="operationButton" />'; ?>
function sendNewsletters() { global $toC_Json, $osC_Database, $osC_Language; $time_start = explode(' ', PAGE_PARSE_START_TIME); $max_execution_time = 0.8 * (int) ini_get('max_execution_time'); $email = osC_Newsletters_Admin::getData($_REQUEST['newsletters_id']); $error = false; $Qrecipients = $osC_Database->query('select c.customers_firstname, c.customers_lastname, c.customers_email_address from :table_customers c left join :table_newsletters_log nl on (c.customers_email_address = nl.email_address and nl.newsletters_id = :newsletters_id) where c.customers_newsletter = 1 and nl.email_address is null'); $Qrecipients->bindTable(':table_customers', TABLE_CUSTOMERS); $Qrecipients->bindTable(':table_newsletters_log', TABLE_NEWSLETTERS_LOG); $Qrecipients->bindInt(':newsletters_id', $_REQUEST['newsletters_id']); $Qrecipients->execute(); if ($Qrecipients->numberOfRows() > 0) { $osC_Mail = new osC_Mail(null, null, null, EMAIL_FROM, $email['title']); $osC_Mail->setBodyHTML($email['content']); while ($Qrecipients->next()) { $osC_Mail->clearTo(); $osC_Mail->addTo($Qrecipients->value('customers_firstname') . ' ' . $Qrecipients->value('customers_lastname'), $Qrecipients->value('customers_email_address')); $osC_Mail->send(); $Qlog = $osC_Database->query('insert into :table_newsletters_log (newsletters_id, email_address, date_sent) values (:newsletters_id, :email_address, now())'); $Qlog->bindTable(':table_newsletters_log', TABLE_NEWSLETTERS_LOG); $Qlog->bindInt(':newsletters_id', $_REQUEST['newsletters_id']); $Qlog->bindValue(':email_address', $Qrecipients->value('customers_email_address')); $Qlog->execute(); $time_end = explode(' ', microtime()); $timer_total = number_format($time_end[1] + $time_end[0] - ($time_start[1] + $time_start[0]), 3); if ($timer_total > $max_execution_time) { $error === true; } } $Qrecipients->freeResult(); } if ($error === false) { $Qupdate = $osC_Database->query('update :table_newsletters set date_sent = now(), status = 1 where newsletters_id = :newsletters_id'); $Qupdate->bindTable(':table_newsletters', TABLE_NEWSLETTERS); $Qupdate->bindInt(':newsletters_id', $_REQUEST['newsletters_id']); $Qupdate->execute(); $response = array('success' => true, 'feedback' => $osC_Language->get('ms_success_action_performed')); } else { $response = array('success' => false, 'feedback' => $osC_Language->get('ms_error_action_not_performed')); } echo $toC_Json->encode($response); }
function __construct() { global $osC_Language, $osC_MessageStack; $this->_page_title = $osC_Language->get('heading_title'); if (!isset($_GET['action'])) { $_GET['action'] = ''; } if (!isset($_GET['page']) || isset($_GET['page']) && !is_numeric($_GET['page'])) { $_GET['page'] = 1; } if (!empty($_GET['action'])) { switch ($_GET['action']) { case 'preview': $this->_page_contents = 'preview.php'; break; case 'save': if (isset($_GET['nID']) && is_numeric($_GET['nID'])) { $this->_page_contents = 'edit.php'; } else { $this->_page_contents = 'new.php'; } if (isset($_POST['subaction']) && $_POST['subaction'] == 'confirm') { $data = array('title' => $_POST['title'], 'content' => $_POST['content'], 'module' => $_POST['module']); if (osC_Newsletters_Admin::save(isset($_GET['nID']) && is_numeric($_GET['nID']) ? $_GET['nID'] : null, $data)) { $osC_MessageStack->add($this->_module, $osC_Language->get('ms_success_action_performed'), 'success'); } else { $osC_MessageStack->add($this->_module, $osC_Language->get('ms_error_action_not_performed'), 'error'); } osc_redirect_admin(osc_href_link_admin(FILENAME_DEFAULT, $this->_module . '&page=' . $_GET['page'])); } break; case 'send': $this->_page_contents = 'send.php'; break; case 'log': $this->_page_contents = 'log.php'; break; case 'delete': $this->_page_contents = 'delete.php'; if (isset($_POST['subaction']) && $_POST['subaction'] == 'confirm') { if (osC_Newsletters_Admin::delete($_GET['nID'])) { $osC_MessageStack->add($this->_module, $osC_Language->get('ms_success_action_performed'), 'success'); } else { $osC_MessageStack->add($this->_module, $osC_Language->get('ms_error_action_not_performed'), 'error'); } osc_redirect_admin(osc_href_link_admin(FILENAME_DEFAULT, $this->_module . '&page=' . $_GET['page'])); } break; case 'batchDelete': if (isset($_POST['batch']) && is_array($_POST['batch']) && !empty($_POST['batch'])) { $this->_page_contents = 'batch_delete.php'; if (isset($_POST['subaction']) && $_POST['subaction'] == 'confirm') { $error = false; foreach ($_POST['batch'] as $id) { if (!osC_Newsletters_Admin::delete($id)) { $error = true; break; } } if ($error === false) { $osC_MessageStack->add($this->_module, $osC_Language->get('ms_success_action_performed'), 'success'); } else { $osC_MessageStack->add($this->_module, $osC_Language->get('ms_error_action_not_performed'), 'error'); } osc_redirect_admin(osc_href_link_admin(FILENAME_DEFAULT, $this->_module . '&page=' . $_GET['page'])); } } break; } } }