PHP Classes

File: htdocs/modules/system/admin/mailusers/main.php

Recommend this page to a friend!
  Classes of Michael Beck   Xoops 2.5   htdocs/modules/system/admin/mailusers/main.php   Download  
File: htdocs/modules/system/admin/mailusers/main.php
Role: Example script
Content type: text/plain
Description: Example script
Class: Xoops 2.5
Modular content management publication system
Author: By
Last change: non-canonical order

In docblock var tags, use "type variableName" more consistently
Date: 5 years ago
Size: 18,253 bytes
 

Contents

Class file image Download
<?php /* * You may not change or alter any portion of this comment or credits * of supporting developers from this source code or any supporting source code * which is considered copyrighted (c) material of the original comment or credit authors. * * This program 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. */ /** * @copyright XOOPS Project http://xoops.org/ * @license GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html) * @package * @since * @author XOOPS Development Team, Kazumi Ono (AKA onokazu) */ // Check users rights if (!is_object($xoopsUser) || !is_object($xoopsModule) || !$xoopsUser->isAdmin($xoopsModule->mid())) { exit(_NOPERM); } // Check is active if (!xoops_getModuleOption('active_mailusers', 'system')) { redirect_header('admin.php', 2, _AM_SYSTEM_NOTACTIVE); } // Parameters $limit = 100; // Get Action type $op = system_CleanVars($_REQUEST, 'op', 'list', 'string'); // Define main template $GLOBALS['xoopsOption']['template_main'] = 'system_mailusers.tpl'; // Call Header xoops_cp_header(); // Define Stylesheet $xoTheme->addStylesheet(XOOPS_URL . '/modules/system/css/admin.css'); $xoTheme->addScript('browse.php?Frameworks/jquery/jquery.js'); $xoTheme->addScript('modules/system/js/admin.js'); switch ($op) { case 'list': default: // Define Breadcrumb and tips $xoBreadCrumb->addLink(_AM_SYSTEM_MAILUSERS_MANAGER, system_adminVersion('mailusers', 'adminpath')); $xoBreadCrumb->addHelp(system_adminVersion('mailusers', 'help')); $xoBreadCrumb->render(); $display_criteria = 1; $form = new XoopsThemeForm(_AM_SYSTEM_MAILUSERS_LIST, 'mailusers', 'admin.php?fct=mailusers', 'post', true); if (!empty($_POST['memberslist_id'])) { $user_count = count($_POST['memberslist_id']); $display_names = ''; for ($i = 0; $i < $user_count; ++$i) { $uid_hidden = new XoopsFormHidden('mail_to_user[]', $_POST['memberslist_id'][$i]); $form->addElement($uid_hidden); $display_names .= "<a href='" . XOOPS_URL . '/userinfo.php?uid=' . $_POST['memberslist_id'][$i] . "' rel='external'>" . XoopsUser::getUnameFromId($_POST['memberslist_id'][$i]) . '</a>, '; unset($uid_hidden); } $users_label = new XoopsFormLabel(_AM_SYSTEM_MAILUSERS_SENDTOUSERS2, substr($display_names, 0, -2)); $form->addElement($users_label); $display_criteria = 0; } if (!empty($display_criteria)) { $selected_groups = array(); $group_select = new XoopsFormSelectGroup('<div class="bold spacer">' . _AM_SYSTEM_MAILUSERS_GROUPIS . '<span class="bold green">*</span></div>', 'mail_to_group', false, $selected_groups, 5, true); $lastlog_min = new XoopsFormTextDateSelect(_AM_SYSTEM_MAILUSERS_LASTLOGMIN . '<span class="bold green">*</span>', 'mail_lastlog_min'); $lastlog_min->setValue(''); $lastlog_max = new XoopsFormTextDateSelect(_AM_SYSTEM_MAILUSERS_LASTLOGMAX . '<span class="bold green">*</span>', 'mail_lastlog_max'); $lastlog_max->setValue(''); $date = new XoopsFormElementTray('<div class="bold spacer">' . _AM_SYSTEM_MAILUSERS_DATE . '</div>', ''); $date->addElement($lastlog_min); $date->addElement($lastlog_max); $idle_more = new XoopsFormText(_AM_SYSTEM_MAILUSERS_IDLEMORE . '<span class="bold green">*</span>', 'mail_idle_more', 10, 5); $idle_less = new XoopsFormText(_AM_SYSTEM_MAILUSERS_IDLELESS . '<span class="bold green">*</span>', 'mail_idle_less', 10, 5); $idle = new XoopsFormElementTray('<div class="bold spacer">' . _AM_SYSTEM_MAILUSERS_DAY . '</div>', ''); $idle->addElement($idle_more); $idle->addElement($idle_less); $regd_min = new XoopsFormTextDateSelect(_AM_SYSTEM_MAILUSERS_REGDMIN . '<span class="bold green">*</span>', 'mail_regd_min'); $regd_min->setValue(''); $regd_max = new XoopsFormTextDateSelect(_AM_SYSTEM_MAILUSERS_REGDMAX . '<span class="bold green">*</span>', 'mail_regd_max'); $regd_max->setValue(''); $regdate = new XoopsFormElementTray('<div class="bold spacer">' . _AM_SYSTEM_MAILUSERS_REGDATE . '</div>', ''); $regdate->addElement($regd_min); $regdate->addElement($regd_max); $mailok_cbox = new XoopsFormCheckBox('', 'mail_mailok'); $mailok_cbox->addOption(1, _AM_SYSTEM_MAILUSERS_MAILOK . '<span class="bold green">*</span>'); $inactive_cbox = new XoopsFormCheckBox('', 'mail_inactive'); $inactive_cbox->addOption(1, _AM_SYSTEM_MAILUSERS_INACTIVE . '<span class="bold green">*</span>'); $inactive_cbox->setExtra("onclick='javascript:disableElement(\"mail_lastlog_min\");disableElement(\"mail_lastlog_max\");disableElement(\"mail_idle_more\");disableElement(\"mail_idle_less\");disableElement(\"mail_to_group[]\");'"); $criteria_tray = new XoopsFormElementTray(_AM_SYSTEM_MAILUSERS_SENDTOUSERS, '<br><br>'); $criteria_tray->setDescription('<span class="bold green">*</span>' . _AM_SYSTEM_MAILUSERS_OPTIONAL); $criteria_tray->addElement($group_select); //$criteria_tray->addElement($lastlog); $criteria_tray->addElement($date); //$criteria_tray->addElement($lastlog_max); $criteria_tray->addElement($idle); //$criteria_tray->addElement($idle_less); $criteria_tray->addElement($regdate); $criteria_tray->addElement($mailok_cbox); $criteria_tray->addElement($inactive_cbox); //$criteria_tray->addElement($regd_max); $form->addElement($criteria_tray); } $fname_text = new XoopsFormText(_AM_SYSTEM_MAILUSERS_MAILFNAME, 'mail_fromname', 30, 255, htmlspecialchars($xoopsConfig['sitename'], ENT_QUOTES)); $fromemail = !empty($xoopsConfig['adminmail']) ? $xoopsConfig['adminmail'] : $xoopsUser->getVar('email', 'E'); $femail_text = new XoopsFormText(_AM_SYSTEM_MAILUSERS_MAILFMAIL, 'mail_fromemail', 30, 255, $fromemail); $subject_caption = _AM_SYSTEM_MAILUSERS_MAILSUBJECT . "<br><br><span style='font-size:x-small;font-weight:bold;'>" . _AM_SYSTEM_MAILUSERS_MAILTAGS . "</span><br><span style='font-size:x-small;font-weight:normal;'>" . _AM_SYSTEM_MAILUSERS_MAILTAGS2 . '</span>'; $subject_text = new XoopsFormText($subject_caption, 'mail_subject', 50, 255); $body_caption = _AM_SYSTEM_MAILUSERS_MAILBODY . "<br><br><span style='font-size:x-small;font-weight:bold;'>" . _AM_SYSTEM_MAILUSERS_MAILTAGS . "</span><br><span style='font-size:x-small;font-weight:normal;'>" . _AM_SYSTEM_MAILUSERS_MAILTAGS1 . '<br>' . _AM_SYSTEM_MAILUSERS_MAILTAGS2 . '<br>' . _AM_SYSTEM_MAILUSERS_MAILTAGS3 . '<br>' . _AM_SYSTEM_MAILUSERS_MAILTAGS4 . '</span>'; $body_text = new XoopsFormTextArea($body_caption, 'mail_body', '', 10); $to_checkbox = new XoopsFormCheckBox(_AM_SYSTEM_MAILUSERS_SENDTO, 'mail_send_to', 'mail'); $to_checkbox->addOption('mail', _AM_SYSTEM_MAILUSERS_EMAIL); $to_checkbox->addOption('pm', _AM_SYSTEM_MAILUSERS_PM); $start_hidden = new XoopsFormHidden('mail_start', 0); $op_hidden = new XoopsFormHidden('op', 'send'); $submit_button = new XoopsFormButton('', 'mail_submit', _SEND, 'submit'); $form->addElement($fname_text); $form->addElement($femail_text); $form->addElement($subject_text); $form->addElement($body_text); $form->addElement($to_checkbox); $form->addElement($op_hidden); $form->addElement($start_hidden); $form->addElement($submit_button); $form->setRequired($subject_text); $form->setRequired($body_text); // Assign form $xoopsTpl->assign('form', $form->render()); break; // Send case 'send': // Define Breadcrumb and tips $xoBreadCrumb->addLink(_AM_SYSTEM_MAILUSERS_MANAGER, system_adminVersion('mailusers', 'adminpath')); $xoBreadCrumb->addLink(_AM_SYSTEM_MAILUSERS_LIST); $xoBreadCrumb->render(); if (!empty($_POST['mail_send_to'])) { $added = array(); $added_id = array(); $criteria = array(); $count_criteria = 0; // user count via criteria; if (!empty($_POST['mail_inactive'])) { $criteria[] = 'level = 0'; } else { if (!empty($_POST['mail_mailok'])) { $criteria[] = 'user_mailok = 1'; } if (!empty($_POST['mail_lastlog_min'])) { $time = strtotime(trim($_POST['mail_lastlog_min'])); if ($time > 0) { $criteria[] = "last_login > $time"; } } if (!empty($_POST['mail_lastlog_max'])) { $time = strtotime(trim($_POST['mail_lastlog_max'])); if ($time > 0) { $criteria[] = "last_login < $time"; } } if (!empty($_POST['mail_idle_more']) && is_numeric($_POST['mail_idle_more'])) { $f_mail_idle_more = (int)trim($_POST['mail_idle_more']); $time = 60 * 60 * 24 * $f_mail_idle_more; $time = time() - $time; if ($time > 0) { $criteria[] = "last_login < $time"; } } if (!empty($_POST['mail_idle_less']) && is_numeric($_POST['mail_idle_less'])) { $f_mail_idle_less = (int)trim($_POST['mail_idle_less']); $time = 60 * 60 * 24 * $f_mail_idle_less; $time = time() - $time; if ($time > 0) { $criteria[] = "last_login > $time"; } } } if (!empty($_POST['mail_regd_min'])) { $time = strtotime(trim($_POST['mail_regd_min'])); if ($time > 0) { $criteria[] = "user_regdate > $time"; } } if (!empty($_POST['mail_regd_max'])) { $time = strtotime(trim($_POST['mail_regd_max'])); if ($time > 0) { $criteria[] = "user_regdate < $time"; } } if (!empty($criteria) || !empty($_POST['mail_to_group'])) { $criteria_object = new CriteriaCompo(); $criteria_object->setStart(@$_POST['mail_start']); $criteria_object->setLimit($limit); foreach ($criteria as $c) { list($field, $op, $value) = explode(' ', $c); $crit = new Criteria($field, $value, $op); $crit->prefix = 'u'; $criteria_object->add($crit, 'AND'); } /* @var XoopsMemberHandler $member_handler */ $member_handler = xoops_getHandler('member'); $groups = empty($_POST['mail_to_group']) ? array() : array_map('intval', $_POST['mail_to_group']); $getusers = $member_handler->getUsersByGroupLink($groups, $criteria_object, true); $count_criteria = $member_handler->getUserCountByGroupLink($groups, $criteria_object); foreach ($getusers as $getuser) { if (!in_array($getuser->getVar('uid'), $added_id)) { $added[] = $getuser; $added_id[] = $getuser->getVar('uid'); } } } if (!empty($_POST['mail_to_user'])) { foreach ($_POST['mail_to_user'] as $to_user) { if (!in_array($to_user, $added_id)) { $added[] = new XoopsUser($to_user); $added_id[] = $to_user; } } } $added_count = count($added); //openTable(); if ($added_count > 0) { $myts = MyTextSanitizer::getInstance(); $xoopsMailer =& xoops_getMailer(); for ($i = 0; $i < $added_count; ++$i) { $xoopsMailer->setToUsers($added[$i]); } $xoopsMailer->setFromName($myts->stripSlashesGPC($_POST['mail_fromname'])); $xoopsMailer->setFromEmail($myts->stripSlashesGPC($_POST['mail_fromemail'])); $xoopsMailer->setSubject($myts->stripSlashesGPC($_POST['mail_subject'])); $xoopsMailer->setBody($myts->stripSlashesGPC($_POST['mail_body'])); if (in_array('mail', $_POST['mail_send_to'])) { $xoopsMailer->useMail(); } if (in_array('pm', $_POST['mail_send_to']) && empty($_POST['mail_inactive'])) { $xoopsMailer->usePM(); } $xoopsMailer->send(true); $xoopsTpl->assign('Sucess', $xoopsMailer->getSuccess()); $xoopsTpl->assign('Errors', $xoopsMailer->getErrors()); //echo $xoopsMailer->getSuccess(); //echo $xoopsMailer->getErrors(); if ($count_criteria > $limit) { $form = new XoopsThemeForm(_AM_SYSTEM_MAILUSERS_LIST, 'mailusers', 'admin.php?fct=mailusers', 'post', true); if (!empty($_POST['mail_to_group'])) { foreach ($_POST['mail_to_group'] as $mailgroup) { $group_hidden = new XoopsFormHidden('mail_to_group[]', $mailgroup); $form->addElement($group_hidden); } } $inactive_hidden = new XoopsFormHidden('mail_inactive', @$_POST['mail_inactive']); $lastlog_min_hidden = new XoopsFormHidden('mail_lastlog_min', $myts->htmlSpecialChars($myts->stripSlashesGPC($_POST['mail_lastlog_min']))); $lastlog_max_hidden = new XoopsFormHidden('mail_lastlog_max', $myts->htmlSpecialChars($myts->stripSlashesGPC($_POST['mail_lastlog_max']))); $regd_min_hidden = new XoopsFormHidden('mail_regd_min', $myts->htmlSpecialChars($myts->stripSlashesGPC($_POST['mail_regd_min']))); $regd_max_hidden = new XoopsFormHidden('mail_regd_max', $myts->htmlSpecialChars($myts->stripSlashesGPC($_POST['mail_regd_max']))); $idle_more_hidden = new XoopsFormHidden('mail_idle_more', $myts->htmlSpecialChars($myts->stripSlashesGPC($_POST['mail_idle_more']))); $idle_less_hidden = new XoopsFormHidden('mail_idle_less', $myts->htmlSpecialChars($myts->stripSlashesGPC($_POST['mail_idle_less']))); $fname_hidden = new XoopsFormHidden('mail_fromname', $myts->htmlSpecialChars($myts->stripSlashesGPC($_POST['mail_fromname']))); $femail_hidden = new XoopsFormHidden('mail_fromemail', $myts->htmlSpecialChars($myts->stripSlashesGPC($_POST['mail_fromemail']))); $subject_hidden = new XoopsFormHidden('mail_subject', $myts->htmlSpecialChars($myts->stripSlashesGPC($_POST['mail_subject']))); $body_hidden = new XoopsFormHidden('mail_body', $myts->htmlSpecialChars($myts->stripSlashesGPC($_POST['mail_body']))); $start_hidden = new XoopsFormHidden('mail_start', $_POST['mail_start'] + $limit); $mail_mailok_hidden = new XoopsFormHidden('mail_mailok', $myts->htmlSpecialChars($myts->stripSlashesGPC(@$_POST['mail_mailok']))); $op_hidden = new XoopsFormHidden('op', 'send'); $submit_button = new XoopsFormButton('', 'mail_submit', _AM_SYSTEM_MAILUSERS_SENDNEXT, 'submit'); $sent_label = new XoopsFormLabel(_AM_SYSTEM_MAILUSERS_SENT, sprintf(_AM_SYSTEM_MAILUSERS_SENTNUM, $_POST['mail_start'] + 1, $_POST['mail_start'] + $limit, $count_criteria + $added_count - $limit)); $form->addElement($sent_label); $form->addElement($inactive_hidden); $form->addElement($lastlog_min_hidden); $form->addElement($lastlog_max_hidden); $form->addElement($regd_min_hidden); $form->addElement($regd_max_hidden); $form->addElement($idle_more_hidden); $form->addElement($idle_less_hidden); $form->addElement($fname_hidden); $form->addElement($femail_hidden); $form->addElement($subject_hidden); $form->addElement($body_hidden); $form->addElement($op_hidden); $form->addElement($start_hidden); $form->addElement($mail_mailok_hidden); if (isset($_POST['mail_send_to']) && is_array($_POST['mail_send_to'])) { foreach ($_POST['mail_send_to'] as $v) { $form->addElement(new XoopsFormHidden('mail_send_to[]', $v)); } } else { $to_hidden = new XoopsFormHidden('mail_send_to', 'mail'); $form->addElement($to_hidden); } $form->addElement($submit_button); $form->display(); } else { echo '<h4>' . _AM_SYSTEM_MAILUSERS_SENDCOMP . '</h4>'; } } else { echo '<h4>' . _AM_SYSTEM_MAILUSERS_NOUSERMATCH . '</h4>'; } } break; } // Call Footer xoops_cp_footer();