* * 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 *********************************/ define('_poMMo_support', TRUE); require '../../bootstrap.php'; $pommo->init(); Pommo::requireOnce($pommo->_baseDir . 'inc/classes/mailctl.php'); echo 'Merci de patienter quelques secondes...'; ob_flush(); flush(); $code = PommoHelper::makeCode(); if (!PommoMailCtl::spawn($pommo->_baseUrl . 'support/tests/mailing.test2.php?code=' . $code, true)) { Pommo::kill('Echec du déclenchement du mécanisme. Vous devez corriger ce problème pour que poMMo puisse envoyer des e-mails.'); } sleep(6); if (!is_file($pommo->_workDir . '/mailing.test.php')) { // make sure we can write to the file if (!($handle = fopen($pommo->_workDir . '/mailing.test.php', 'w'))) { die('Impossible d\'écrire dans le fichier de test.'); } fclose($handle); unlink($pommo->_workDir . '/mailing.test.php'); Pommo::kill('Echec du déclenchement du mécanisme (problème d\'écriture au niveau du fichier de test). Vous devez corriger ce problème pour que poMMo puisse envoyer des e-mails.'); } $o = PommoHelper::parseConfig($pommo->_workDir . '/mailing.test.php'); unlink($pommo->_workDir . '/mailing.test.php') or die('impossible de supprimer mailing.test.php');
$table = $dbo->table[$key]; $sql = 'DROP TABLE IF EXISTS ' . $table; $dbo->query($sql); } if (isset($_REQUEST['debugInstall'])) { $dbo->debug(TRUE); } $install = PommoInstall::parseSQL(); if ($install) { // installation of DB went OK, set configuration values to user supplied ones $pass = $_POST['admin_password']; // install configuration $_POST['admin_password'] = md5($_POST['admin_password']); PommoAPI::configUpdate($_POST); // generate key to uniquely identify this installation $key = PommoHelper::makeCode(6); PommoAPI::configUpdate(array('key' => $key), TRUE); $pommo->reloadConfig(); // load configuration [depricated?], set message defaults, load templates Pommo::requireOnce($pommo->_baseDir . 'inc/helpers/messages.php'); PommoHelperMessages::resetDefault('all'); // install templates $file = $pommo->_baseDir . "install/sql.templates.php"; if (!PommoInstall::parseSQL(false, $file)) { $logger->addErr('Error Loading Default Mailing Templates.'); } // serialize the latest updates $GLOBALS['pommoFakeUpgrade'] = true; Pommo::requireOnce($pommo->_baseDir . 'install/helper.upgrade.php'); PommoUpgrade(); $logger->addMsg(Pommo::_T('Installation Complete! You may now login and setup poMMo.'));
function add(&$in) { global $pommo; $dbo =& $pommo->_dbo; // set the start time if not provided if (empty($in['start'])) { $in['start'] = time(); } if (empty($in['sent'])) { $in['sent'] = 0; } if (!PommoMailing::validate($in)) { return false; } $query = "\n\t\t\tINSERT INTO " . $dbo->table['mailings'] . "\n\t\t\tSET\n\t\t\t[fromname='%S',]\n\t\t\t[fromemail='%S',]\n\t\t\t[frombounce='%S',]\n\t\t\t[subject='%S',]\n\t\t\t[body='%S',]\n\t\t\t[altbody='%S',]\n\t\t\t[ishtml='%S',]\n\t\t\t[mailgroup='%S',]\n\t\t\t[subscriberCount=%I,]\n\t\t\t[finished=FROM_UNIXTIME(%I),]\n\t\t\t[sent=%I,]\n\t\t\t[charset='%S',]\n\t\t\t[status=%I,]\n\t\t\tstarted=FROM_UNIXTIME(%i)"; $query = $dbo->prepare($query, @array($in['fromname'], $in['fromemail'], $in['frombounce'], $in['subject'], $in['body'], $in['altbody'], $in['ishtml'], $in['group'], $in['tally'], $in['end'], $in['sent'], $in['charset'], $in['status'], $in['start'])); // fetch new subscriber's ID $id = $dbo->lastId($query); if (!$id) { return false; } // insert current if applicable if (!empty($in['status']) && $in['status'] == 1) { if (empty($in['code'])) { $in['code'] = PommoHelper::makeCode(); } $query = "\n\t\t\tINSERT INTO " . $dbo->table['mailing_current'] . "\n\t\t\tSET\n\t\t\t[command='%S',]\n\t\t\t[serial=%I,]\n\t\t\t[securityCode='%S',]\n\t\t\t[current_status='%S',]\n\t\t\tcurrent_id=%i"; $query = $dbo->prepare($query, @array($in['command'], $in['serial'], $in['code'], $in['current_status'], $id)); if (!$dbo->query($query)) { return false; } return $in['code']; } return $id; }
function add(&$subscriber, $type = null) { global $pommo; $dbo =& $pommo->_dbo; $logger =& $pommo->_logger; switch ($type) { case 'add': case 'del': case 'change': case 'password': break; default: $logger->addErr('Unknown type passed to PommoPending::add'); return false; } $p = array('subscriber_id' => $subscriber['id'], 'type' => $type, 'code' => PommoHelper::makeCode(), 'array' => $type == 'change' ? $subscriber : array()); $pending = PommoPending::make($p); if (!PommoPending::validate($pending)) { $logger->addErr('PommoPending::add() failed validation'); return false; } if (!empty($pending['array'])) { $pending['array'] = serialize($pending['array']); } // check for pre-existing pending request if (PommoPending::isPending($pending['subscriber_id'])) { return false; } $query = "\n\t\t\tINSERT INTO " . $dbo->table['subscriber_pending'] . "\n\t\t\tSET\n\t\t\t\t[pending_array='%S',]\n\t\t\t\tsubscriber_id=%i,\n\t\t\t\tpending_type='%s',\n\t\t\t\tpending_code='%s'"; $query = $dbo->prepare($query, array($pending['array'], $pending['subscriber_id'], $pending['type'], $pending['code'])); if (!$dbo->query($query)) { return false; } return $pending['code']; }
if ($logger->isErr() || !PommoValidate::subscriberData($subscriber['data'], array('active' => FALSE))) { $smarty->assign('back', TRUE); $smarty->display('user/process.tpl'); Pommo::kill(); } $comments = isset($_POST['comments']) ? substr($_POST['comments'], 0, 255) : false; /********************************** ADD SUBSCRIBER *********************************/ $config = PommoAPI::configGet(array('site_success', 'site_confirm', 'list_confirm', 'notices')); $notices = unserialize($config['notices']); Pommo::requireOnce($pommo->_baseDir . 'inc/helpers/messages.php'); if ($config['list_confirm'] == 'on') { // email confirmation required. // add user as "pending" $subscriber['pending_code'] = PommoHelper::makeCode(); $subscriber['pending_type'] = 'add'; $subscriber['status'] = 2; $id = PommoSubscriber::add($subscriber); if (!$id) { $logger->addErr('Error adding subscriber! Please contact the administrator.'); $smarty->assign('back', TRUE); } else { $logger->addMsg(Pommo::_T('Subscription request received.')); // send confirmation message. if (PommoHelperMessages::sendMessage(array('to' => $subscriber['email'], 'code' => $subscriber['pending_code'], 'type' => 'confirm'))) { $subscriber['registered'] = date("F j, Y, g:i a", $subscriber['registered']); if ($comments || isset($notices['pending']) && $notices['pending'] == 'on') { PommoHelperMessages::notify($notices, $subscriber, 'pending', $comments); } if ($config['site_confirm']) {