コード例 #1
0
/**
 * MyBB 1.8
 * Copyright 2014 MyBB Group, All Rights Reserved
 *
 * Website: http://www.mybb.com
 * License: http://www.mybb.com/about/license
 *
 */
function task_usercleanup($task)
{
    global $db, $lang, $cache, $plugins;
    // Expire any old warnings
    require_once MYBB_ROOT . 'inc/datahandlers/warnings.php';
    $warningshandler = new WarningsHandler('update');
    $warningshandler->expire_warnings();
    // Expire any post moderation or suspension limits
    $query = $db->simple_select("users", "uid, moderationtime, suspensiontime", "(moderationtime!=0 AND moderationtime<" . TIME_NOW . ") OR (suspensiontime!=0 AND suspensiontime<" . TIME_NOW . ")");
    while ($user = $db->fetch_array($query)) {
        $updated_user = array();
        if ($user['moderationtime'] != 0 && $user['moderationtime'] < TIME_NOW) {
            $updated_user['moderateposts'] = 0;
            $updated_user['moderationtime'] = 0;
        }
        if ($user['suspensiontime'] != 0 && $user['suspensiontime'] < TIME_NOW) {
            $updated_user['suspendposting'] = 0;
            $updated_user['suspensiontime'] = 0;
        }
        $db->update_query("users", $updated_user, "uid='{$user['uid']}'");
    }
    // Expire any suspended signatures
    $query = $db->simple_select("users", "uid, suspendsigtime", "suspendsignature != 0 AND suspendsigtime < '" . TIME_NOW . "'");
    while ($user = $db->fetch_array($query)) {
        if ($user['suspendsigtime'] != 0 && $user['suspendsigtime'] < TIME_NOW) {
            $updated_user = array("suspendsignature" => 0, "suspendsigtime" => 0);
            $db->update_query("users", $updated_user, "uid='" . $user['uid'] . "'");
        }
    }
    // Expire bans
    $query = $db->simple_select("banned", "*", "lifted!=0 AND lifted<" . TIME_NOW);
    while ($ban = $db->fetch_array($query)) {
        $updated_user = array("usergroup" => $ban['oldgroup'], "additionalgroups" => $ban['oldadditionalgroups'], "displaygroup" => $ban['olddisplaygroup']);
        $db->update_query("users", $updated_user, "uid='{$ban['uid']}'");
        $db->delete_query("banned", "uid='{$ban['uid']}'");
    }
    $cache->update_moderators();
    if (is_object($plugins)) {
        $plugins->run_hooks('task_usercleanup', $task);
    }
    add_task_log($task, $lang->task_usercleanup_ran);
}
コード例 #2
0
ファイル: usercp.php プロジェクト: mainhan1804/xomvanphong
 }
 $latest_warnings = '';
 if ($mybb->settings['enablewarningsystem'] != 0 && $mybb->settings['canviewownwarning'] != 0) {
     if ($mybb->settings['maxwarningpoints'] < 1) {
         $mybb->settings['maxwarningpoints'] = 10;
     }
     $warning_level = round($mybb->user['warningpoints'] / $mybb->settings['maxwarningpoints'] * 100);
     if ($warning_level > 100) {
         $warning_level = 100;
     }
     if ($mybb->user['warningpoints'] > $mybb->settings['maxwarningpoints']) {
         $mybb->user['warningpoints'] = $mybb->settings['maxwarningpoints'];
     }
     if ($warning_level > 0) {
         require_once MYBB_ROOT . 'inc/datahandlers/warnings.php';
         $warningshandler = new WarningsHandler('update');
         $warningshandler->expire_warnings();
         $lang->current_warning_level = $lang->sprintf($lang->current_warning_level, $warning_level, $mybb->user['warningpoints'], $mybb->settings['maxwarningpoints']);
         $warnings = '';
         // Fetch latest warnings
         $query = $db->query("\n\t\t\t\tSELECT w.*, t.title AS type_title, u.username, p.subject AS post_subject\n\t\t\t\tFROM " . TABLE_PREFIX . "warnings w\n\t\t\t\tLEFT JOIN " . TABLE_PREFIX . "warningtypes t ON (t.tid=w.tid)\n\t\t\t\tLEFT JOIN " . TABLE_PREFIX . "users u ON (u.uid=w.issuedby)\n\t\t\t\tLEFT JOIN " . TABLE_PREFIX . "posts p ON (p.pid=w.pid)\n\t\t\t\tWHERE w.uid='{$mybb->user['uid']}'\n\t\t\t\tORDER BY w.expired ASC, w.dateline DESC\n\t\t\t\tLIMIT 5\n\t\t\t");
         while ($warning = $db->fetch_array($query)) {
             $post_link = "";
             if ($warning['post_subject']) {
                 $warning['post_subject'] = $parser->parse_badwords($warning['post_subject']);
                 $warning['post_subject'] = htmlspecialchars_uni($warning['post_subject']);
                 $warning['postlink'] = get_post_link($warning['pid']);
                 eval("\$post_link .= \"" . $templates->get("usercp_warnings_warning_post") . "\";");
             }
             $issuedby = build_profile_link($warning['username'], $warning['issuedby']);
             $date_issued = my_date('relative', $warning['dateline']);
コード例 #3
0
ファイル: warnings.php プロジェクト: mainhan1804/xomvanphong
define('THIS_SCRIPT', 'warnings.php');
$templatelist = "warnings,warnings_warn_post,warnings_active_header,warnings_expired_header,warnings_warning,warnings_warn_existing,warnings_warn_type,warnings_warn_custom,warnings_warn_pm";
$templatelist .= ",warnings_view_post,warnings_view_user,warnings_view_revoke,warnings_view_revoked,smilieinsert_getmore,smilieinsert_smilie,smilieinsert_smilie_empty,smilieinsert,warnings_warn_type_result";
$templatelist .= ",multipage,multipage_end,multipage_jump_page,multipage_nextpage,multipage_page,multipage_page_current,multipage_page_link_current,multipage_prevpage,multipage_start,warnings_no_warnings,codebuttons,warnings_warn,warnings_view,warnings_warn_pm_anonymous";
require_once "./global.php";
require_once MYBB_ROOT . "inc/functions_warnings.php";
require_once MYBB_ROOT . "inc/functions_modcp.php";
require_once MYBB_ROOT . "inc/class_parser.php";
$parser = new postParser();
$lang->load("warnings");
if ($mybb->settings['enablewarningsystem'] == 0) {
    error($lang->error_warning_system_disabled);
}
// Expire old warnings
require_once MYBB_ROOT . 'inc/datahandlers/warnings.php';
$warningshandler = new WarningsHandler('update');
$warningshandler->expire_warnings();
$mybb->input['action'] = $mybb->get_input('action');
$plugins->run_hooks("warnings_start");
// Actually warn a user
if ($mybb->input['action'] == "do_warn" && $mybb->request_method == "post") {
    // Verify incoming POST request
    verify_post_check($mybb->get_input('my_post_key'));
    if ($mybb->usergroup['canwarnusers'] != 1) {
        error_no_permission();
    }
    $user = get_user($mybb->get_input('uid', MyBB::INPUT_INT));
    if (!$user['uid']) {
        error($lang->error_invalid_user);
    }
    $group_permissions = user_permissions($user['uid']);
コード例 #4
0
ファイル: functions.php プロジェクト: ateista-pl/forum
/**
 * Expire old warnings in the database.
 *
 * @return bool
 */
function expire_warnings()
{
    global $warningshandler;
    if (!is_object($warningshandler)) {
        require_once MYBB_ROOT . 'inc/datahandlers/warnings.php';
        $warningshandler = new WarningsHandler('update');
    }
    return $warningshandler->expire_warnings();
}