コード例 #1
0
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~';
}
コード例 #2
0
ファイル: wikiplugin_mail.php プロジェクト: rjsmelo/tiki
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~';
}