function myinviter_sendEmails($id = null, $force = false) { global $xoopsConfig; $errors = array(); $sent = 0; $emailsperpack = intval($GLOBALS['myinviter']->getConfig('emailsperpack')); if ($emailsperpack == 0 && $id == null) { $errors[] = 'No id or no pack number'; return $errors; } $timebpacks = intval($GLOBALS['myinviter']->getConfig('timebpacks')); $now = time(); $last = myinviter_getLastTime(); if ($now - $last <= $timebpacks && !$force) { $errors[] = 'Not enough time'; return $errors; } $from = $GLOBALS['myinviter']->getConfig('from'); //custom, system, user $html = $GLOBALS['myinviter']->getConfig('html'); $sandbox = $GLOBALS['myinviter']->getConfig('sandbox'); $sandboxemail = trim($GLOBALS['myinviter']->getConfig('sandboxemail')); $defaultuid = intval($GLOBALS['myinviter']->getConfig('defaultuid')); if (empty($sandboxemail)) { $sandboxemail = $xoopsConfig['adminmail']; } if ($from == 'custom') { $fromname = trim($GLOBALS['myinviter']->getConfig('fromname')); $fromemail = trim($GLOBALS['myinviter']->getConfig('fromemail')); if (empty($fromname) || empty($fromemail)) { $from = 'system'; } } if ($from == 'system') { $fromname = $xoopsConfig['sitename']; $fromemail = $xoopsConfig['adminmail']; } $this_handler = $GLOBALS['myinviter']->getHandler('item'); $objs = $this_handler->getWaitingObjects($id, 0, $emailsperpack); if (count($objs) == 0) { myinviter_setLastTime($now); $errors[] = 'No waiting emails'; return $errors; } $member_handler = xoops_gethandler('member'); foreach ($objs as $obj) { $thisUser = $member_handler->getUser($obj->getVar('userid')); //Was this user removed? Then get the default one! if (!is_object($thisUser)) { $thisUser = $member_handler->getUser($defaultuid); } if (!is_object($thisUser)) { $errors[] = 'No default user'; return $errors; } $xoopsMailer = xoops_getMailer(); $xoopsMailer->useMail(); $xoopsMailer->setTemplateDir(XOOPS_ROOT_PATH . '/modules/myinviter/language/'); if ($html == 1) { $xoopsMailer->multimailer->ContentType = "text/html"; $xoopsMailer->setTemplate('myinviter_invitation_html.tpl'); $avatar = $thisUser->getVar('user_avatar'); if ($avatar == 'blank.gif' || $avatar == '') { $avatar = XOOPS_URL . '/modules/myinviter/images/noavatar.gif'; } else { $avatar = XOOPS_URL . '/uploads/' . $avatar; } $xoopsMailer->assign("USER_AVATAR", $avatar); } else { $xoopsMailer->setTemplate('myinviter_invitation.tpl'); } if ($sandbox == 1) { $xoopsMailer->setToEmails(array($sandboxemail)); } else { $xoopsMailer->setToEmails(array($obj->getVar('email', 'n'))); } if ($from == 'user') { $fromname = $thisUser->getVar('uname', 'n'); $fromemail = $thisUser->getVar('email', 'n'); } $xoopsMailer->setFromEmail($fromemail); $xoopsMailer->setFromName($fromname); xoops_loadLanguage('main', 'myinviter'); $xoopsMailer->setSubject(sprintf($GLOBALS['myinviter']->getConfig('subject'), $thisUser->getVar('uname'))); $xoopsMailer->assign("ADMINMAIL", $xoopsConfig['adminmail']); $xoopsMailer->assign("USER_UNAME", $thisUser->getVar('uname')); $xoopsMailer->assign("USER_UID", $thisUser->getVar('uid')); $xoopsMailer->assign("INVITED_NAME", $obj->getVar('name')); $key = md5($obj->getVar('email') . XOOPS_ROOT_PATH); $xoopsMailer->assign("BLACKLIST_URL", MYINVITER_URL . '/blacklist.php?email=' . $obj->getVar('email') . '&key=' . $key); if (!$xoopsMailer->send(true)) { $errors[] = $xoopsMailer->getErrors(false); // do not use html in error message $this_handler->insertError($obj); } else { $this_handler->insertSent($obj); $sent++; //All Ok? Set log /* $log_handler =& xoops_getmodulehandler('log', 'myinviter'); $log = $log_handler->create(); $log->setVar('log_userid',$thisUser->getVar('uid')); $log->setVar('log_date', time()); $log_handler->insert($log); */ } unset($xoopsMailer); } myinviter_setLastTime($now); $lastcount = myinviter_getEmailsSent(); myinviter_setEmailsSent($lastcount + $sent); if (xoops_isActiveModule('log')) { Xmf_Module_Helper::getInstance('log')->getHandler('item')->addItem('myinviter', 'emailssent', $sent); } return $errors; }
function index_index($start = 0) { global $xoopsTpl, $limit; include_once XOOPS_ROOT_PATH . '/class/xoopsformloader.php'; include_once XOOPS_ROOT_PATH . '/modules/myinviter/include/functions.php'; $this_handler = $GLOBALS['myinviter']->getHandler('item'); $session = $GLOBALS['myinviter']->getHelper('session'); $count = $this_handler->getCountByStatus($session->get('status')); $xoopsTpl->assign('count', $count); $xoopsTpl->assign('sent', myinviter_getEmailsSent()); $xoopsTpl->assign('status', $session->get('status')); if ($count > 0) { if ($count > $limit) { include_once XOOPS_ROOT_PATH . '/class/pagenav.php'; $nav = new XoopsPageNav($count, $limit, $start, 'start', 'op=list'); $xoopsTpl->assign('pag', '<div style="float:left; padding-top:2px;" align="center">' . $nav->renderNav() . '</div>'); } else { $xoopsTpl->assign('pag', ''); } $objs = $this_handler->getItems(null, $start, $limit, $session->get('status')); $xoopsTpl->assign('objs', $this_handler->toArray($objs)); unset($objs); } else { $xoopsTpl->assign('pag', ''); } $select = new XoopsFormSelect('', 'status', $session->get('status')); $select->addOption(MYINVITER_STATUS_WAITING, _AM_MYINVITER_STATUS_WAITING); $select->addOption(MYINVITER_STATUS_ERROR, _AM_MYINVITER_STATUS_ERROR); $select->addOption(MYINVITER_STATUS_BLACKLIST, _AM_MYINVITER_STATUS_BLACKLIST); $select->addOption(MYINVITER_STATUS_SENT, _AM_MYINVITER_STATUS_SENT); $select->addOption(MYINVITER_STATUS_NOTSENT, _AM_MYINVITER_STATUS_NOTSENT); $select->setExtra('onChange="document.form.submit()"'); $xoopsTpl->assign('selectform', $select->render()); $grabdomain = new XoopsFormText('', 'grabdomain', 50, 50, $session->get('domain')); $xoopsTpl->assign('domainform', $grabdomain->render()); $grabprovider = new XoopsFormSelect('', 'grabprovider', $session->get('provider')); $providers = explode('|', $GLOBALS['myinviter']->getConfig('providers')); foreach ($providers as $provider) { $options[$provider] = $provider; } $grabprovider->addOptionArray($options); $xoopsTpl->assign('providerform', $grabprovider->render()); $grabstart = new XoopsFormText('', 'grabstart', 3, 30, $session->get('start')); $xoopsTpl->assign('startform', $grabstart->render()); $grablimit = new XoopsFormText('', 'grablimit', 3, 30, $session->get('limit')); $xoopsTpl->assign('limitform', $grablimit->render()); return $xoopsTpl->fetch(XOOPS_ROOT_PATH . '/modules/myinviter/templates/myinviter_admin_index.html'); }