function wikiplugin_mail($data, $params) { global $userlib, $smarty, $tikilib, $user; static $ipluginmail=0; $smarty->assign_by_ref('ipluginmail', $ipluginmail); $default = array('showuser' => 'y', 'showuserdd' => 'n', 'showrealnamedd' => 'n', 'showgroupdd' => 'n', 'group' => array(), 'recurse' => 'y', 'recurseuser' => 0); $params = array_merge($default, $params); $default = array('mail_subject' =>'', 'mail_mess' => '', 'mail_user_dd' => '', 'mail_group_dd' => array()); $_REQUEST = array_merge($default, $_REQUEST); $mail_error = false; $preview = false; if ($params['showrealnamedd'] == 'y') { $users = $tikilib->list_users(0, -1, 'pref:realName_asc', '', true); $smarty->assign('names', $users['data']); } if ($params['showuserdd'] == 'y') { $users = $tikilib->list_users(0, -1, 'login_asc'); $smarty->assign_by_ref('users', $users['data']); } if ($params['showgroupdd'] == 'y') { if (!empty($params['group'])) { foreach ($params['group'] as $g) { $groups[$g] = $userlib->get_including_groups($g, $params['recurse']); } } else { $groups[] = $userlib->list_all_groups(); } $smarty->assign_by_ref('groups', $groups); } if (isset($_REQUEST["mail_preview$ipluginmail"])) { $to = wikiplugin_mail_to(array_merge($_REQUEST, $params)); $_SESSION['to'] = $to; $preview = true; $smarty->assign('preview', $preview); $smarty->assign('nbTo', count($to)); } if (isset($_REQUEST["mail_send$ipluginmail"])) { // send something $to = $_SESSION['to']; if (!empty($to)) { include_once ('lib/webmail/tikimaillib.php'); $mail = new TikiMail(null, $userlib->get_user_email($user)); $mail->setSubject($_REQUEST['mail_subject']); $mail->setText($_REQUEST['mail_mess']); if ($mail->send($to)) { //echo '<pre>MAIL'; print_r($to); echo '</pre>'; $smarty->assign_by_ref('sents', $to); } else { $mail_error = true; } } unset($_SESSION['to']); } $smarty->assign_by_ref('mail_error', $mail_error); if ($preview || $mail_error) { $smarty->assign('mail_user', isset($_REQUEST['mail_user'])? $_REQUEST['mail_user']:''); $smarty->assign('mail_user_dd', isset($_REQUEST['mail_user_dd'])? $_REQUEST['mail_user_dd']:array()); $smarty->assign('mail_group_dd', isset($_REQUEST['mail_group_dd'])? $_REQUEST['mail_group_dd']:array()); $smarty->assign('mail_subject', $_REQUEST['mail_subject']); $smarty->assign('mail_mess', $_REQUEST['mail_mess']); } $smarty->assign_by_ref('params', $params); return '~np~'.$smarty->fetch('wiki-plugins/wikiplugin_mail.tpl').'~/np~'; }
function wikiplugin_mail($data, $params) { global $user; $userlib = TikiLib::lib('user'); $smarty = TikiLib::lib('smarty'); $tikilib = TikiLib::lib('tiki'); static $ipluginmail = 0; $smarty->assign_by_ref('ipluginmail', $ipluginmail); $default = array('showuser' => 'y', 'showuserdd' => 'n', 'showrealnamedd' => 'n', 'showgroupdd' => 'n', 'group' => array(), 'recurse' => 'y', 'recurseuser' => 0, 'popup' => 'n', 'label_name' => tra('Send mail'), 'mail_subject' => '', 'bypass_preview' => 'n', 'debug' => 'n'); $params = array_merge($default, $params); $default = array('mail_subject' => '', 'mail_mess' => '', 'mail_user_dd' => '', 'mail_group_dd' => array()); $_REQUEST = array_merge($default, $_REQUEST); $mail_error = false; $preview = false; $smarty->assign('mail_popup', $params['popup']); $smarty->assign('mail_label_name', $params['label_name']); $smarty->assign('mail_subject', $params['mail_subject']); $smarty->assign('bypass_preview', $params['bypass_preview']); if ($params['showrealnamedd'] == 'y') { $users = $tikilib->list_users(0, -1, 'pref:realName_asc', '', true); $smarty->assign('names', $users['data']); } if ($params['showuserdd'] == 'y') { $users = $tikilib->list_users(0, -1, 'login_asc'); $smarty->assign_by_ref('users', $users['data']); } if ($params['showgroupdd'] == 'y') { if (!empty($params['group'])) { foreach ($params['group'] as $g) { $groups[$g] = $userlib->get_including_groups($g, $params['recurse']); } } else { $groups[] = $userlib->list_all_groups(); } $smarty->assign_by_ref('groups', $groups); } if (isset($_REQUEST["mail_preview{$ipluginmail}"])) { $to = wikiplugin_mail_to(array_merge($_REQUEST, $params)); $_SESSION['wikiplugin_mail_to'] = $to; $preview = true; $smarty->assign('preview', $preview); $smarty->assign('nbTo', count($to)); } if (isset($_REQUEST["mail_send{$ipluginmail}"])) { // send something if ($params['bypass_preview'] == 'y') { $to = wikiplugin_mail_to(array_merge($_REQUEST, $params)); } else { $to = $_SESSION['wikiplugin_mail_to']; } if (!empty($to)) { include_once 'lib/webmail/tikimaillib.php'; $mail = new TikiMail(null, $userlib->get_user_email($user)); $mail->setSubject($_REQUEST['mail_subject']); $mail->setText($_REQUEST['mail_mess']); $myself = array($userlib->get_user_email($GLOBALS['user'])); $mail->setBcc(array_diff($to, $myself)); if ($mail->send($myself)) { $smarty->assign('nbSentTo', count($to)); if ($userlib->user_has_permission($user, 'tiki_p_admin') && $params['debug'] == 'y') { $smarty->assign('sents', $to); } else { $smarty->assign('sents', array()); } } else { $mail_error = true; } } unset($_SESSION['wikiplugin_mail_to']); } $smarty->assign_by_ref('mail_error', $mail_error); if ($preview || $mail_error) { $smarty->assign('mail_user', isset($_REQUEST['mail_user']) ? $_REQUEST['mail_user'] : ''); $smarty->assign('mail_user_dd', isset($_REQUEST['mail_user_dd']) ? $_REQUEST['mail_user_dd'] : array()); $smarty->assign('mail_group_dd', isset($_REQUEST['mail_group_dd']) ? $_REQUEST['mail_group_dd'] : array()); $smarty->assign('mail_subject', $_REQUEST['mail_subject']); $smarty->assign('mail_mess', $_REQUEST['mail_mess']); } // Convert the array of mail_user into a string of emails separated by comma, and expose the values to the smarty tpl $smarty->assign('mail_user', isset($_REQUEST['mail_user']) ? implode(", ", $_REQUEST['mail_user']) : ''); $smarty->assign_by_ref('params', $params); return '~np~' . $smarty->fetch('wiki-plugins/wikiplugin_mail.tpl') . '~/np~'; }