コード例 #1
0
ファイル: misc.php プロジェクト: 0hyeah/yurivn
function do_mark_read()
{
    global $vbulletin, $foruminfo;
    mark_forums_read($foruminfo['forumid']);
    $tableinfo = $vbulletin->db->query_first("\n\tSHOW TABLES LIKE '" . TABLE_PREFIX . "forumrunner_push_data'\n    ");
    if ($tableinfo) {
        if ($foruminfo['forumid'] > 0) {
            require_once DIR . '/includes/functions_misc.php';
            $childforums = fetch_child_forums($foruminfo['forumid'], 'ARRAY');
            $return_forumids = $childforums;
            $return_forumids[] = $foruminfo['forumid'];
            $vbulletin->db->query_write("\n\t\tUPDATE " . TABLE_PREFIX . "forumrunner_push_data AS forumrunner_push_data\n\t\tLEFT JOIN " . TABLE_PREFIX . "thread AS thread\n\t\t    ON thread.threadid = forumrunner_push_data.vb_threadid\n\t\tSET forumrunner_push_data.vb_subsent = 0, forumrunner_push_data.vb_threadread = " . TIMENOW . "\n\t\tWHERE forumrunner_push_data.vb_userid = {$vbulletin->userinfo['userid']} AND thread.forumid IN (" . join(',', $return_forumids) . ")\n\t    ");
        } else {
            $vbulletin->db->query_write("\n\t\tUPDATE " . TABLE_PREFIX . "forumrunner_push_data\n\t\tSET vb_subsent = 0, vb_threadread = " . TIMENOW . "\n\t\tWHERE vb_userid = {$vbulletin->userinfo['userid']} AND vb_threadid > 0\n\t    ");
        }
    }
    return array('success' => 1);
}
コード例 #2
0
ファイル: functions_search.php プロジェクト: holandacz/nb4
function fetch_search_forumids(&$forumchoice, $childforums = 0)
{
    global $vbulletin, $stylevar, $display;
    // make sure that $forumchoice is an array
    if (!is_array($forumchoice)) {
        $forumchoice = array($forumchoice);
    }
    // initialize the $forumids for return by this function
    $forumids = array();
    foreach ($forumchoice as $forumid) {
        // get subscribed forumids
        if ($forumid === 'subscribed' and $vbulletin->userinfo['userid'] != 0) {
            DEVDEBUG("Querying subscribed forums for " . $vbulletin->userinfo['username']);
            $sforums = $vbulletin->db->query_read_slave("\n\t\t\t\tSELECT forumid FROM " . TABLE_PREFIX . "subscribeforum\n\t\t\t\tWHERE userid = " . $vbulletin->userinfo['userid']);
            if ($vbulletin->db->num_rows($sforums) == 0) {
                // no subscribed forums
                eval(standard_error(fetch_error('not_subscribed_to_any_forums')));
            }
            while ($sforum = $vbulletin->db->fetch_array($sforums)) {
                $forumids["{$sforum['forumid']}"] .= $sforum['forumid'];
            }
            unset($sforum);
            $vbulletin->db->free_result($sforums);
        } else {
            $forumid = intval($forumid);
            if (isset($vbulletin->forumcache["{$forumid}"]) and $vbulletin->forumcache["{$forumid}"]['link'] == '') {
                $forumids["{$forumid}"] = $forumid;
            }
        }
    }
    // now if there are any forumids we have to query, work out their child forums
    if (empty($forumids)) {
        $forumchoice = array();
        $display['forums'] = array();
    } else {
        // set $forumchoice to show the returned forumids
        #$forumchoice = implode(',', $forumids);
        // put current forumids into the display table
        $display['forums'] = $forumids;
        // get child forums of selected forums
        if ($childforums) {
            require_once DIR . '/includes/functions_misc.php';
            foreach ($forumids as $forumid) {
                $children = fetch_child_forums($forumid, 'ARRAY');
                if (!empty($children)) {
                    foreach ($children as $childid) {
                        $forumids["{$childid}"] = $childid;
                    }
                }
                unset($children);
            }
        }
    }
    // return the array of forumids
    return $forumids;
}
コード例 #3
0
ファイル: moderation.php プロジェクト: holandacz/nb4
     $permission = 'canmoderateposts';
     if (!can_moderate(0, 'canmoderateposts')) {
         print_no_permission();
     }
     $postselect = '';
     $postjoin = '';
     $postfrom = "FROM " . TABLE_PREFIX . "moderation AS moderation\n\t\tINNER JOIN " . TABLE_PREFIX . "post AS post ON (moderation.primaryid = post.postid)";
     $posttype = 'reply';
 }
 if ($vbulletin->options['threadmarking']) {
     cache_ordered_forums(1);
 }
 $modforums = array();
 if ($forumid) {
     require_once DIR . '/includes/functions_misc.php';
     $forums = fetch_child_forums($forumid, 'ARRAY');
     $forums[] = $forumid;
     $forums = array_flip($forums);
 } else {
     $forums = $vbulletin->forumcache;
 }
 foreach ($forums as $mforumid => $null) {
     $forumperms = $vbulletin->userinfo['forumpermissions']["{$mforumid}"];
     if (can_moderate($mforumid, $permission) and $forumperms & $vbulletin->bf_ugp_forumpermissions['canview']) {
         $modforums[] = $mforumid;
     }
 }
 if (empty($modforums)) {
     print_no_permission();
 }
 $forumjumpbits = construct_mod_forum_jump(-1, $forumid, '', $permission);
コード例 #4
0
/**
* Marks a forum, its child forums and all contained posts as read
*
* @param	integer	Forum ID to be marked as read - leave blank to mark all forums as read
*
* @return	array	Array of affected forum IDs
*/
function mark_forums_read($forumid = false)
{
    global $vbulletin;
    $db =& $vbulletin->db;
    $return_url = $vbulletin->options['forumhome'] . '.php' . $vbulletin->session->vars['sessionurl_q'];
    $return_phrase = 'markread';
    $return_forumids = array();
    if (!$forumid) {
        if ($vbulletin->userinfo['userid']) {
            // init user data manager
            $userdata =& datamanager_init('User', $vbulletin, ERRTYPE_STANDARD);
            $userdata->set_existing($vbulletin->userinfo);
            $userdata->set('lastactivity', TIMENOW);
            $userdata->set('lastvisit', TIMENOW - 1);
            $userdata->save();
            if ($vbulletin->options['threadmarking']) {
                $query = '';
                foreach ($vbulletin->forumcache as $fid => $finfo) {
                    // mark the forum and all child forums read
                    $query .= ", ({$fid}, " . $vbulletin->userinfo['userid'] . ", " . TIMENOW . ")";
                }
                if ($query) {
                    $query = substr($query, 2);
                    $db->query_write("\n\t\t\t\t\t\tREPLACE INTO " . TABLE_PREFIX . "forumread\n\t\t\t\t\t\t\t(forumid, userid, readtime)\n\t\t\t\t\t\tVALUES\n\t\t\t\t\t\t\t{$query}\n\t\t\t\t\t");
                }
            }
        } else {
            vbsetcookie('lastvisit', TIMENOW);
        }
        $return_forumids = array_keys($vbulletin->forumcache);
    } else {
        // temp work around code, I need to find another way to mass set some values to the cookie
        $vbulletin->input->clean_gpc('c', COOKIE_PREFIX . 'forum_view', TYPE_STR);
        global $bb_cache_forum_view;
        $bb_cache_forum_view = @unserialize(convert_bbarray_cookie($vbulletin->GPC[COOKIE_PREFIX . 'forum_view']));
        require_once DIR . '/includes/functions_misc.php';
        $childforums = fetch_child_forums($forumid, 'ARRAY');
        $return_forumids = $childforums;
        $return_forumids[] = $forumid;
        if ($vbulletin->options['threadmarking'] and $vbulletin->userinfo['userid']) {
            $query = "({$forumid}, " . $vbulletin->userinfo['userid'] . ", " . TIMENOW . ")";
            foreach ($childforums as $child_forumid) {
                // mark the forum and all child forums read
                $query .= ", ({$child_forumid}, " . $vbulletin->userinfo['userid'] . ", " . TIMENOW . ")";
            }
            $db->query_write("\n\t\t\t\tREPLACE INTO " . TABLE_PREFIX . "forumread\n\t\t\t\t\t(forumid, userid, readtime)\n\t\t\t\tVALUES\n\t\t\t\t\t{$query}\n\t\t\t");
            require_once DIR . '/includes/functions_bigthree.php';
            $foruminfo = fetch_foruminfo($forumid);
            $parent_marks = mark_forum_read($foruminfo, $vbulletin->userinfo['userid'], TIMENOW);
            if (is_array($parent_marks)) {
                $return_forumids = array_unique(array_merge($return_forumids, $parent_marks));
            }
        } else {
            foreach ($childforums as $child_forumid) {
                // mark the forum and all child forums read
                $bb_cache_forum_view["{$child_forumid}"] = TIMENOW;
            }
            set_bbarray_cookie('forum_view', $forumid, TIMENOW);
        }
        if ($vbulletin->forumcache["{$forumid}"]['parentid'] == -1) {
            $return_url = $vbulletin->options['forumhome'] . '.php' . $vbulletin->session->vars['sessionurl_q'];
        } else {
            $return_url = 'forumdisplay.php?' . $vbulletin->session->vars['sessionurl'] . 'f=' . $vbulletin->forumcache["{$forumid}"]['parentid'];
        }
        $return_phrase = 'markread_single';
    }
    return array('url' => $return_url, 'phrase' => $return_phrase, 'forumids' => $return_forumids);
}
コード例 #5
0
ファイル: member.php プロジェクト: holandacz/nb4
 } else {
     if ($vbulletin->GPC['find'] == 'lastposter' and $foruminfo['forumid']) {
         $_permsgetter_ = 'lastposter fperms';
         $forumperms = fetch_permissions($foruminfo['forumid']);
         if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canview'])) {
             print_no_permission();
         }
         if ($vbulletin->userinfo['userid'] and in_coventry($vbulletin->userinfo['userid'], true)) {
             $tachyjoin = "LEFT JOIN " . TABLE_PREFIX . "tachythreadpost AS tachythreadpost ON " . "(tachythreadpost.threadid = thread.threadid AND tachythreadpost.userid = " . $vbulletin->userinfo['userid'] . ')';
         } else {
             $tachyjoin = '';
         }
         // check if there is a forum password and if so, ensure the user has it set
         verify_forum_password($foruminfo['forumid'], $foruminfo['password']);
         require_once DIR . '/includes/functions_misc.php';
         $forumslist = $forumid . ',' . fetch_child_forums($foruminfo['forumid']);
         require_once DIR . '/includes/functions_bigthree.php';
         // this isn't including moderator checks, because the last post checks don't either
         if ($coventry = fetch_coventry('string')) {
             $globalignore_post = "AND post.userid NOT IN ({$coventry})";
             $globalignore_thread = "AND thread.postuserid NOT IN ({$coventry})";
         } else {
             $globalignore_post = '';
             $globalignore_thread = '';
         }
         cache_ordered_forums(1);
         $datecutoff = $vbulletin->forumcache["{$foruminfo['forumid']}"]['lastpost'] - 30;
         $thread = $db->query_first_slave("\n\t\tSELECT thread.threadid\n\t\t\t" . ($tachyjoin ? ', IF(tachythreadpost.lastpost > thread.lastpost, tachythreadpost.lastpost, thread.lastpost) AS lastpost' : '') . "\n\t\tFROM " . TABLE_PREFIX . "thread AS thread\n\t\t{$tachyjoin}\n\t\tWHERE thread.forumid IN ({$forumslist})\n\t\t\tAND thread.visible = 1\n\t\t\tAND thread.sticky IN (0,1)\n\t\t\tAND thread.open <> 10\n\t\t\t" . (!$tachyjoin ? "AND lastpost > {$datecutoff}" : '') . "\n\t\t\t{$globalignore_thread}\n\t\tORDER BY lastpost DESC\n\t\tLIMIT 1\n\t");
         if (!$thread) {
             eval(standard_error(fetch_error('invalidid', $vbphrase['user'], $vbulletin->options['contactuslink'])));
         }