本文整理汇总了PHP中smail::SendBlogsBan2方法的典型用法代码示例。如果您正苦于以下问题:PHP smail::SendBlogsBan2方法的具体用法?PHP smail::SendBlogsBan2怎么用?PHP smail::SendBlogsBan2使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类smail
的用法示例。
在下文中一共展示了smail::SendBlogsBan2方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: updateUserBan
/**
* Изменяет текущий бан пользователя.
*
* @param int $uid UID пользователя.
* @param int $ban_where_old какой бан был: 0 - на всем сайте, 1 - в блогах.
* @param int $ban_where_new какой бан будет: 0 - на всем сайте, 1 - в блогах.
* @param string $reason причина
* @param int $reason_id ID причины, если она выбрана из списка (таблица admin_reasons)
* @param string $date_to дата окончания действия бана, или пустая строка если навсегда
*
* @return bool true - успех, false - провал
*/
public function updateUserBan($uid, $ban_where_old, $ban_where_new, $reason, $reason_id, $date_to = '')
{
$GLOBALS['DB']->start();
$date_to = $date_to ? $date_to : NULL;
$sWhere = $ban_where_old ? 'b.where = 1 AND u.ban_where = 1' : '(b.where = 0 OR b.where IS NULL) AND u.is_banned = B\'1\'';
$sQuery = 'UPDATE users_ban SET
"to" = ?, reason = ?i, comment = ?, admin = ?i, "where" = ?i
WHERE id = (
SELECT MAX(b.id) AS id FROM users_ban b
INNER JOIN users u ON b.uid = u.uid
WHERE b.uid = ?i AND ' . $sWhere . '
GROUP BY b.uid
) RETURNING id';
$sId = $GLOBALS['DB']->val($sQuery, $date_to, $reason_id, $reason, $_SESSION['uid'], $ban_where_new, $uid);
if ($sId && !$GLOBALS['DB']->error && $ban_where_old != $ban_where_new) {
// если вид бана изменился
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/smail.php';
$mail = new smail();
if ($ban_where_new) {
// меняем на бан в блогах
$GLOBALS['DB']->query('UPDATE users SET is_banned=B\'0\', ban_where = ?i WHERE uid=?i', $ban_where_new, $uid);
if (!$GLOBALS['DB']->error) {
$mail->SendBlogsBan2($uid, $reason);
}
} else {
// меняем на бан на всем сайте
$sSubscr = str_repeat('0', $GLOBALS['subscrsize']);
$GLOBALS['DB']->query('UPDATE users SET is_banned=B\'1\', ban_where = 0, subscr=B\'' . $sSubscr . '\' WHERE uid=?i;
UPDATE freelancer SET mailer=0 WHERE uid=?i;', $uid, $uid);
if (!$GLOBALS['DB']->error) {
$mail->SendBan2($uid, $reason);
$this->_afterUserBan($uid);
}
}
}
if ($sId && !$GLOBALS['DB']->error) {
$GLOBALS['DB']->commit();
return true;
} else {
$GLOBALS['DB']->rollback();
return false;
}
}