コード例 #1
0
ファイル: announcement.php プロジェクト: hungnv0789/vhtm
	public static function create_array($ids)
	{
		global $vbulletin;

		$set = $vbulletin->db->query_read_slave("
			SELECT announcementid, startdate, title, announcement.views, forumid,
				user.username, user.userid, user.usertitle, user.customtitle, user.usergroupid,
				IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid, infractiongroupid
			FROM " . TABLE_PREFIX . "announcement AS announcement
			LEFT JOIN " . TABLE_PREFIX . "user AS user USING (userid)
			WHERE announcementid IN (" . implode(',', array_map('intval', $ids)) . ")
		");

		$items = array();
		while ($record = $vbulletin->db->fetch_array($set))
		{
			fetch_musername($record);
			$record['title'] = fetch_censored_text($record['title']);
			$record['postdate'] = vbdate($vbulletin->options['dateformat'], $record['startdate']);
			$record['statusicon'] = 'new';
			$record['views'] = vb_number_format($record['views']);
			$record['forumtitle'] = $vbulletin->forumcache["$record[forumid]"]['title'];
			$show['forumtitle'] = ($record['forumid'] == -1) ? false : true;

			$announcement = new vBForum_Search_Result_Announcement();
			$announcement->record = $record;
			$items[$record['announcementid']] = $announcement;
		}
		return $items;
	}
コード例 #2
0
ファイル: functions_forumlist.php プロジェクト: 0hyeah/yurivn
function cache_moderators($userid = null)
{
    global $vbulletin, $imodcache, $mod;
    $imodcache = array();
    $mod = array();
    $forummoderators = $vbulletin->db->query_read_slave("\n\t\tSELECT moderator.*, user.username,\n\t\tIF(user.displaygroupid = 0, user.usergroupid, user.displaygroupid) AS displaygroupid, infractiongroupid\n\t\tFROM " . TABLE_PREFIX . "moderator AS moderator\n\t\tINNER JOIN " . TABLE_PREFIX . "user AS user USING(userid)\n\t\t" . ($userid != null ? "WHERE moderator.userid = " . intval($userid) : "") . "\n\t");
    while ($moderator = $vbulletin->db->fetch_array($forummoderators)) {
        fetch_musername($moderator);
        $imodcache["{$moderator['forumid']}"]["{$moderator['userid']}"] = $moderator;
        $mod["{$moderator['userid']}"] = 1;
    }
    $vbulletin->db->free_result($forummoderators);
}
コード例 #3
0
function process_showgroups_userinfo($user)
{
    global $vbulletin, $permissions, $stylevar, $show;
    $user = array_merge($user, convert_bits_to_array($user['options'], $vbulletin->bf_misc_useroptions));
    $user = array_merge($user, convert_bits_to_array($user['adminoptions'], $vbulletin->bf_misc_adminoptions));
    cache_permissions($user, false);
    fetch_online_status($user, true);
    if (!$user['invisible'] or $permissions['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canseehidden']) {
        $user['lastonline'] = vbdate($vbulletin->options['dateformat'], $user['lastactivity'], 1);
    } else {
        $user['lastonline'] = ' ';
    }
    fetch_musername($user);
    return $user;
}
コード例 #4
0
ファイル: showgroups.php プロジェクト: holandacz/nb4
function process_showgroups_userinfo($user)
{
    global $vbulletin, $permissions, $stylevar, $show;
    $post =& $user;
    $datecut = TIMENOW - $vbulletin->options['cookietimeout'];
    require_once DIR . '/includes/functions_bigthree.php';
    fetch_online_status($user, true);
    if (!$user['invisible'] or $permissions['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canseehidden']) {
        $user['lastonline'] = vbdate($vbulletin->options['dateformat'], $user['lastactivity'], 1);
    } else {
        $user['lastonline'] = ' ';
    }
    fetch_musername($user);
    return $user;
}
コード例 #5
0
	/**
	* Prepare any data needed for the output
	*
	* @param	string	The id of the block
	* @param	array	Options specific to the block
	*/
	function prepare_output($id = '', $options = array())
	{
		global $show, $vbphrase;

		// don't include yourself in the visit count
		if ($this->profile->userinfo['userid'] != $this->registry->userinfo['userid'])
		{
			// profile visits
			$this->registry->db->query_write("
				UPDATE " . TABLE_PREFIX . "user SET
					profilevisits = profilevisits + 1
				WHERE userid = " . $this->profile->userinfo['userid']
			);
			$this->profile->userinfo['profilevisits']++; // reflect this view
		}
		$this->profile->prepare('profilevisits');

		// We shouldn't show as a profile visitor
		if ($this->registry->userinfo['userid'] AND $this->profile->userinfo['userid'] != $this->registry->userinfo['userid'])
		{
			$this->registry->db->query_write("
				REPLACE INTO " . TABLE_PREFIX . "profilevisitor
					(userid, visitorid, dateline, visible)
				VALUES
					(
						" . $this->profile->userinfo['userid'] . ",
						". $this->registry->userinfo['userid'] . ",
						" . TIMENOW . ",
						" . ($this->registry->userinfo['options'] & $this->registry->bf_misc_useroptions['invisible'] ? 0 : 1) . "
					)
			");
		}

		// ensure this setting makes sense
		if ($options['profilemaxvisitors'] < 2)
		{
			$options['profilemaxvisitors'] = 2;
		}

		$hook_query_fields = $hook_query_joins = $hook_query_where = '';
		($hook = vBulletinHook::fetch_hook('member_profileblock_recentvisitors_query')) ? eval($hook) : false;

		$visitors_db = $this->registry->db->query_read_slave("
			SELECT user.userid, user.username, user.usergroupid, user.displaygroupid, profilevisitor.visible, user.infractiongroupid
				$hook_query_fields
			FROM " . TABLE_PREFIX . "profilevisitor AS profilevisitor
			INNER JOIN " . TABLE_PREFIX . "user AS user ON (user.userid = profilevisitor.visitorid)
			$hook_query_joins
			WHERE profilevisitor.userid = " . $this->profile->userinfo['userid'] . "
				" . (!($this->registry->userinfo['permissions']['genericpermissions'] & $this->registry->bf_ugp_genericpermissions['canseehidden']) ? " AND (visible = 1 OR profilevisitor.visitorid = " . $this->registry->userinfo['userid'] . ")" : "") . "
				$hook_query_where
			ORDER BY profilevisitor.dateline DESC
			LIMIT $options[profilemaxvisitors]
		");

		$visitors = array();
		while ($user = $this->registry->db->fetch_array($visitors_db))
		{
			$visitors["$user[username]"] = $user;
		}

		uksort($visitors, 'strnatcasecmp');

		if (!is_array($buddylist))
		{
			if ($this->registry->userinfo['buddylist'] = trim($this->registry->userinfo['buddylist']))
			{
				$buddylist = preg_split('/\s+/', $this->registry->userinfo['buddylist'], -1, PREG_SPLIT_NO_EMPTY);
			}
			else
			{
				$buddylist = array();
			}
		}

		$visitorbits = '';
		foreach ($visitors AS $user)
		{
			fetch_musername($user);
			$user['invisiblemark'] = !$user['visible'] ? '*' : '';
			$user['buddymark'] = in_array($user['userid'], $buddylist) ? '+' : '';
			$templater = vB_Template::create('memberinfo_visitorbit');
				$templater->register('user', $user);
			$visitorbits .= $templater->render();
		}

		$this->block_data['visitorbits'] = $visitorbits;
		$this->block_data['visitorcount'] = vb_number_format($this->registry->db->num_rows($visitors_db));
	}
コード例 #6
0
function cache_events($range)
{
    global $vbulletin, $calendarinfo, $vbphrase, $serveroffset;
    $numdays = date('j', mktime(0, 0, 0, $range['nextmonth'] + 1, 1, $range['nextyear']) - 1);
    $beginday = gmmktime(0, 0, 0, $range['frommonth'], 1, $range['fromyear']) + -12 * 3600;
    $endday = gmmktime(24, 0, 0, $range['nextmonth'], $numdays, $range['nextyear']) + 12 * 3600;
    $event = array();
    $eventids = array();
    if ($calendarinfo['showholidays']) {
        // Holidays show across all calendars that a user has access to.
        $holidays = $vbulletin->db->query_read_slave("\n\t\t\tSELECT *\n\t\t\tFROM " . TABLE_PREFIX . "holiday\n\t\t");
        if ($vbulletin->db->num_rows($holidays)) {
            while ($ev = $vbulletin->db->fetch_array($holidays)) {
                $ev['visible'] = 1;
                $ev['title'] =& $vbphrase['holiday' . $ev['holidayid'] . '_title'];
                $ev['event'] =& $vbphrase['holiday' . $ev['holidayid'] . '_desc'];
                $ev['preview'] = strip_quotes($ev['event']);
                $ev['preview'] = htmlspecialchars_uni(strip_bbcode(fetch_trimmed_title($ev['preview'], 300), false, true));
                if ($ev['recurring'] == 6) {
                    $event['holiday1']["{$ev['recuroption']}"][] = $ev;
                } else {
                    $ev['dateline_from'] = $beginday;
                    $ev['dateline_to'] = $endday;
                    $offset = $vbulletin->userinfo['timezoneoffset'] ? $vbulletin->userinfo['tzoffset'] : $vbulletin->userinfo['timezoneoffset'];
                    $ev['dateline_from_user'] = $ev['dateline_from'] + $offset * 3600;
                    $ev['dateline_to_user'] = $ev['dateline_to'] + $offset * 3600;
                    $recuroption = substr($ev['recuroption'], 2);
                    $event['holiday2']["{$recuroption}"][] = $ev;
                }
            }
        }
    }
    $events = $vbulletin->db->query_read_slave("\n\t\tSELECT event.*,\n\t\tuser.username, IF(user.displaygroupid = 0, user.usergroupid, user.displaygroupid) AS displaygroupid,\n\t\tIF(dateline_to = 0, 1, 0) AS singleday\n\t\t" . iif($vbulletin->userinfo['userid'], ", subscribeevent.eventid AS subscribed") . "\n\t\tFROM " . TABLE_PREFIX . "event AS event\n\t\tLEFT JOIN " . TABLE_PREFIX . "user AS user ON (user.userid = event.userid)\n\t\t" . iif($vbulletin->userinfo['userid'], "LEFT JOIN " . TABLE_PREFIX . "subscribeevent AS subscribeevent ON (subscribeevent.eventid = event.eventid AND subscribeevent.userid = " . $vbulletin->userinfo['userid'] . ")") . "\n\t\tWHERE calendarid = {$calendarinfo['calendarid']} AND\n\t\t\t((dateline_to >= {$beginday} AND dateline_from < {$endday}) OR (dateline_to = 0 AND dateline_from >= {$beginday} AND dateline_from <= {$endday} ))\tAND\n\t\t\tvisible = 1\n\t\tORDER BY dateline_from\n\t");
    // Cache Events
    if ($vbulletin->db->num_rows($events)) {
        while ($ev = $vbulletin->db->fetch_array($events)) {
            if ($ev['userid'] != $vbulletin->userinfo['userid'] and !($vbulletin->userinfo['calendarpermissions']["{$calendarinfo['calendarid']}"] & $vbulletin->bf_ugp_calendarpermissions['canviewothersevent'])) {
                continue;
            }
            $ev['preview'] = strip_quotes($ev['event']);
            $ev['preview'] = htmlspecialchars_uni(strip_bbcode(fetch_trimmed_title($ev['preview'], 300), false, true));
            $offset = $ev['dst'] ? $vbulletin->userinfo['timezoneoffset'] : $vbulletin->userinfo['tzoffset'];
            $ev['dateline_from_user'] = $ev['dateline_from'] + $offset * 3600;
            $ev['dateline_to_user'] = $ev['dateline_to'] + $offset * 3600;
            fetch_musername($ev);
            if (!$ev['recurring']) {
                if ($ev['singleday']) {
                    $event['singleday']["{$ev['dateline_from']}"][] = $ev;
                } else {
                    $found = false;
                    $date = explode('-', gmdate('n-j-Y', $ev['dateline_from_user']));
                    $beginday = gmmktime(0, 0, 0, $date[0], $date[1], $date[2]);
                    while ($beginday <= $ev['dateline_to_user']) {
                        if (!$found) {
                            $event['ranged']["{$beginday}"][] = $ev;
                            $count = count($event['ranged']["{$beginday}"]) - 1;
                            $tempevent =& $event['ranged']["{$beginday}"]["{$count}"];
                            $found = true;
                        } else {
                            // if event ends at the start of the day, don't display it for that day
                            if ($ev['dateline_to_user'] != $beginday) {
                                $event['ranged']["{$beginday}"][] =& $tempevent;
                            }
                        }
                        $beginday += 86400;
                    }
                }
            } else {
                $event['recurring'][] = $ev;
            }
        }
    }
    return $event;
}
コード例 #7
0
ファイル: showthread.php プロジェクト: 0hyeah/yurivn
     $wrt['trtotal'] = 0;
     while ($threadreader = $vbulletin->db->fetch_array($readlist)) {
         if (intval($threadreader['userid'])) {
             $wrt['trtotal'] += 1;
             $threadreader['markinv'] = '';
             $threadreader[visible] = true;
             if ($threadreader['options'] & $vbulletin->bf_misc_useroptions['invisible']) {
                 $threadreader['visible'] = false;
                 if ($vbulletin->userinfo['permissions']['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canseehidden'] or $threadreader['userid'] == $vbulletin->userinfo['userid']) {
                     $threadreader['markinv'] = '*';
                     $threadreader['visible'] = true;
                 }
             }
             if ($threadreader['visible']) {
                 $count += 1;
                 fetch_musername($threadreader);
                 $threadreader['wrdate'] = $vbphrase['wrt_readtime'] . ' ';
                 $threadreader['comma'] = $vbphrase['comma_space'];
                 $threadreader['wrdate'] .= vbdate($vbulletin->options['dateformat'], $threadreader['dateline']) . ', ';
                 $threadreader['wrdate'] .= vbdate($vbulletin->options['timeformat'], $threadreader['dateline']);
                 $wrtlist[$count] = $threadreader;
             }
         }
     }
     if ($count) {
         $wrtlist[$count]['comma'] = '';
     }
     ($hook = vBulletinHook::fetch_hook('showthread_whoread_list')) ? eval($hook) : false;
 } else {
     $readers = $vbulletin->db->query_first_slave("\n\t\tSELECT COUNT(userid) AS whoread\n\t\t\tFROM " . TABLE_PREFIX . "contentread as whoread\n\t\t\tWHERE whoread.readtype = 'view'\n\t\t\tAND whoread.contentid = {$threadid}\n\t\t\tAND whoread.contenttypeid = {$contenttypeid}\n\t\t\tAND whoread.dateline > {$cutoff}\n\t\t");
     ($hook = vBulletinHook::fetch_hook('showthread_whoread_nonames')) ? eval($hook) : false;
コード例 #8
0
ファイル: calendar.php プロジェクト: 0hyeah/yurivn
     $customfieldssql = array();
     while ($custom = $db->fetch_array($customcalfields)) {
         $customfieldssql[] = $custom;
     }
 }
 $show['canmoveevent'] = can_moderate_calendar($calendarinfo['calendarid'], 'canmoveevents');
 $show['candeleteevent'] = can_moderate_calendar($calendarinfo['calendarid'], 'candeleteevents');
 require_once DIR . '/includes/functions_misc.php';
 // mainly for fetch_timezone
 require_once DIR . '/includes/functions_user.php';
 // to fetch user avatar
 foreach ($eventarray as $index => $eventinfo) {
     $eventinfo = fetch_event_date_time($eventinfo);
     $holidayid = $eventinfo['holidayid'];
     $customfields = '';
     fetch_musername($eventinfo);
     if (!$holidayid) {
         unset($holidayid);
         $eventfields = unserialize($eventinfo['customfields']);
         $bgclass = 'alt2';
         $show['customfields'] = false;
         foreach ($customfieldssql as $index => $value) {
             $description = $value['description'];
             $value['options'] = unserialize($value['options']);
             exec_switch_bg();
             $selectbits = '';
             $customoption = '';
             $customtitle = $value['title'];
             if (is_array($value['options'])) {
                 foreach ($value['options'] as $key => $val) {
                     if ($val == $eventfields["{$value['calendarcustomfieldid']}"]) {
コード例 #9
0
ファイル: memberlist.php プロジェクト: hungnv0789/vhtm
	$first = $itemcount + 1;

	while ($userinfo = $db->fetch_array($users) AND $counter++ < $perpage)
	{
		$userinfo = array_merge($userinfo , convert_bits_to_array($userinfo['options'] , $vbulletin->bf_misc_useroptions));
		$userinfo = array_merge($userinfo , convert_bits_to_array($userinfo['adminoptions'] , $vbulletin->bf_misc_adminoptions));
		cache_permissions($userinfo, false);

		// format posts number
		$userinfo['posts'] = vb_number_format($userinfo['posts']);
		if ($userinfo['usertitle'] == '')
		{
			$userinfo['usertitle'] = '&nbsp;';
		}

		fetch_musername($userinfo);
		$userinfo['datejoined'] = vbdate($vbulletin->options['dateformat'], $userinfo['joindate'], true);

		if (!$userinfo['lastvisittime'])
		{
			$userinfo['lastvisit'] = $vbphrase['n_a'];
		}
		else
		{
			$userinfo['lastvisit'] = vbdate($vbulletin->options['dateformat'], $userinfo['lastvisittime'], true);
		}

		if ($userinfo['lastpost'])
		{
			$show['searchlink'] = true;
		}
コード例 #10
0
ファイル: search.php プロジェクト: holandacz/nb4
     $url = '';
 }
 $threadcolspan = 7;
 $announcecolspan = 6;
 if ($show['inlinemod']) {
     $threadcolspan++;
     $announcecolspan++;
 }
 if (!$show['threadicons']) {
     $threadcolspan--;
     $announcecolspan--;
 }
 if (!empty($search['announceids']) and $vbulletin->GPC['pagenumber'] == 1) {
     $announcements = $db->query_read_slave("\n\t\t\tSELECT announcementid, startdate, title, announcement.views, forumid,\n\t\t\t\tuser.username, user.userid, user.usertitle, user.customtitle, user.usergroupid,\n\t\t\t\tIF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid, infractiongroupid\n\t\t\tFROM " . TABLE_PREFIX . "announcement AS announcement\n\t\t\tLEFT JOIN " . TABLE_PREFIX . "user AS user USING (userid)\n\t\t\tWHERE announcementid IN ({$search['announceids']})\n\t\t\tORDER BY startdate DESC\n\t\t");
     while ($announcement = $db->fetch_array($announcements)) {
         fetch_musername($announcement);
         $announcement['title'] = fetch_censored_text($announcement['title']);
         $announcement['postdate'] = vbdate($vbulletin->options['dateformat'], $announcement['startdate']);
         $announcement['statusicon'] = 'new';
         $announcement['views'] = vb_number_format($announcement['views']);
         $announcementidlink = "&amp;a={$announcement['announcementid']}";
         $announcement['forumtitle'] = $vbulletin->forumcache["{$announcement['forumid']}"]['title'];
         $show['forumtitle'] = $announcement['forumid'] == -1 ? false : true;
         eval('$announcebits .= "' . fetch_template('threadbit_announcement') . '";');
     }
 }
 // get highlight words
 if (!empty($display['highlight'])) {
     $highlightwords = '&amp;highlight=' . urlencode(implode(' ', $display['highlight']));
 } else {
     $highlightwords = '';
コード例 #11
0
ファイル: vietvbb_topx_ajax.php プロジェクト: 0hyeah/yurivn
     $get_new_posts[fullthreadtitle] = strip_tags($get_new_posts[title]);
     if ($trimthreadtitle > 0) {
         $get_new_posts[titletrimmed] = fetch_trimmed_title($get_new_posts[fullthreadtitle], $trimthreadtitle);
     } else {
         $get_new_posts[titletrimmed] = $get_new_posts[fullthreadtitle];
     }
     if ($get_new_posts[lastpost] > $vbulletin->userinfo['lastvisit']) {
         $get_new_posts[newpost] = true;
     }
     $get_new_posts[fullusername] = strip_tags($get_new_posts[username]);
     if ($trimusername > 0) {
         $get_new_posts[username] = fetch_trimmed_title($get_new_posts[fullusername], $trimusername);
     } else {
         $get_new_posts[username] = $get_new_posts[fullusername];
     }
     $get_new_posts[musername] = fetch_musername($get_new_posts);
     $get_new_posts_forumtitle = strip_tags($vbulletin->forumcache["{$get_new_posts['forumid']}"]['title_clean']);
     $get_new_posts[fullforumtitle] = strip_tags($get_new_posts_forumtitle);
     if ($vbulletin->options['vietvbbtopstats_bold_remove']) {
         $get_new_posts[musername] = str_replace($vietvbb_afs_bpar, "", $get_new_posts[musername]);
     }
     $get_new_postdate = vbdate($vbulletin->options['vietvbbtopstats_date_format'], $get_new_posts[lastpost]);
     $get_new_posttime = vbdate($vbulletin->options['vietvbbtopstats_time_format'], $get_new_posts[lastpost]);
     $get_new_startdate = vbdate($vbulletin->options['vietvbbtopstats_date_format'], $get_new_posts[dateline]);
     $get_new_starttime = vbdate($vbulletin->options['vietvbbtopstats_time_format'], $get_new_posts[dateline]);
     eval('$vietvbbtopstats_top .= "' . $vbulletin->templatecache['vietvbb_topstats_latest_posts'] . '";');
 }
 if (!$vietvbbtopstats_top) {
     $vietvbbtopstats_top = 'No Result';
 }
 print_output($vietvbbtopstats_top);
コード例 #12
0
ファイル: blog.php プロジェクト: Kheros/MMOver
 $blog['lastentrytime'] = vbdate($vbulletin->options['timeformat'], $blog['lastblog']);
 $lastentrycats = explode(',', $blog['categories']);
 $lastcommentcats = explode(',', $blog['categories_lastcomment']);
 $show['lastentry'] = array_intersect($vbulletin->userinfo['blogcategorypermissions']['cantview'], $lastentrycats) ? false : true;
 $show['lastcomment'] = array_intersect($vbulletin->userinfo['blogcategorypermissions']['cantview'], $lastcommentcats) ? false : true;
 if ($blogtype == 'all') {
     $blog['entrytitle'] = fetch_trimmed_title($blog['lastblogtitle'], 20);
     if ($blog['title']) {
         $blog['title'] = fetch_trimmed_title($blog['title'], 50);
     }
     $templater = vB_Template::create('blog_blog_row');
     $templater->register('blog', $blog);
     $templater->register('thread', $thread);
     $blogbits .= $templater->render();
 } else {
     fetch_musername($blog);
     fetch_avatar_html($blog);
     $blog['onlinestatus'] = 0;
     $blog['commentexcerpt'] = htmlspecialchars_uni(fetch_trimmed_title($blog['pagetext'], 50));
     // now decide if we can see the user or not
     if ($blog['lastactivity'] > TIMENOW - $vbulletin->options['cookietimeout'] and $blog['lastvisit'] != $blog['lastactivity']) {
         if ($blog['invisible']) {
             if ($vbulletin->userinfo['permissions']['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canseehidden'] or $blog['userid'] == $vbulletin->userinfo['userid']) {
                 // user is online and invisible BUT bbuser can see them
                 $blog['onlinestatus'] = 2;
             }
         } else {
             // user is online and visible
             $blog['onlinestatus'] = 1;
         }
     }
コード例 #13
0
 /**
  * Builds the applicable notice HTML
  *
  * @return	string	Applicable notice HTML
  */
 protected function build_notices()
 {
     global $vbulletin, $vbphrase, $show;
     $notices = '';
     if (!defined('NONOTICES') and !empty($vbulletin->noticecache) and is_array($vbulletin->noticecache)) {
         $return_link = $vbulletin->scriptpath;
         require_once DIR . '/includes/functions_notice.php';
         if ($vbulletin->userinfo['userid'] == 0) {
             $vbulletin->userinfo['musername'] = fetch_musername($vbulletin->userinfo);
         }
         foreach (fetch_relevant_notice_ids() as $_noticeid) {
             $show['notices'] = true;
             if ($vbulletin->noticecache["{$_noticeid}"]["dismissible"] == 1 and $vbulletin->userinfo['userid']) {
                 // only show the dismiss link for registered users; guest who wants to dismiss?  Register please.
                 $show['dismiss_link'] = true;
             } else {
                 $show['dismiss_link'] = false;
             }
             $notice_html = str_replace(array('{musername}', '{username}', '{userid}', '{sessionurl}', '{sessionurl_q}'), array($vbulletin->userinfo['musername'], $vbulletin->userinfo['username'], $vbulletin->userinfo['userid'], vB::getCurrentSession()->get('sessionurl'), vB::getCurrentSession()->get('sessionurl_q')), $vbphrase["notice_{$_noticeid}_html"]);
             // Legacy Hook 'notices_noticebit' Removed //
             $templater = vB_Template::create('navbar_noticebit');
             $templater->register('notice_html', $notice_html);
             $templater->register('_noticeid', $_noticeid);
             $notices .= $templater->render();
         }
     }
     return $notices;
 }
コード例 #14
0
/**
* Converts are blog ids to titles for Who's Online
*
* @return	void
*/
function blog_online_ids_titles()
{
	global $blogids, $blogtextids, $blogtrackbackids, $bloguserids, $vbulletin;
	global $wol_blog, $wol_blogtext, $wol_blogtrackback, $wol_bloguser, $wol_user;

	if ($blogtrackbackids)
	{
		$blograckbackidquery = $vbulletin->db->query_read_slave("
			SELECT blogid, blogtrackbackid
			FROM " . TABLE_PREFIX . "blog_trackback
			WHERE blogtrackbackid IN (0$blogtrackbackids)
		");
		while ($blogtrackbackidqueryr = $vbulletin->db->fetch_array($blogtrackbackidquery))
		{
			$blogids .= ',' . $blogtrackbackidqueryr['blogid'];
			$wol_blogtrackback["$blogtrackbackidqueryr[blogtrackbackid]"] = $blogtrackbackidqueryr['blogid'];
		}
	}

	if ($blogtextids)
	{
		$blogtextidquery = $vbulletin->db->query_read_slave("
			SELECT blogid, blogtextid, title
			FROM " . TABLE_PREFIX . "blog_text
			WHERE blogtextid IN (0$blogtextids)
		");
		while ($blogtextidqueryr = $vbulletin->db->fetch_array($blogtextidquery))
		{
			$blogids .= ',' . $blogtextidqueryr['blogid'];
			$wol_blogtext["$blogtextidqueryr[blogtextid]"]['blogid'] = $blogtextidqueryr['blogid'];
			$wol_blogtext["$blogtextidqueryr[blogtextid]"]['title'] = $blogtextidqueryr['title'];
		}
	}

	if ($blogids)
	{
		$blogresults = $vbulletin->db->query_read_slave("
			SELECT blog.title, blogid, blog.userid, state, blog.options
			FROM " . TABLE_PREFIX . "blog AS blog
			LEFT JOIN " . TABLE_PREFIX . "blog_user AS blog_user ON (blog_user.bloguserid = blog.userid)
			WHERE blogid IN (0$blogids)
		");
		while ($blogresult = $vbulletin->db->fetch_array($blogresults))
		{
			$wol_blog["$blogresult[blogid]"]['title'] = $blogresult['title'];
			$wol_blog["$blogresult[blogid]"]['userid'] = $blogresult['userid'];
			$wol_blog["$blogresult[blogid]"]['state'] = $blogresult['state'];
			$wol_blog["$blogresult[blogid]"]['private'] = ($blogresult['options'] & $vbulletin->bf_misc_vbblogoptions['private']);
			$bloguserids .= ",$blogresult[userid]";
		}
	}

	if ($bloguserids)
	{
		$fields = $joins = '';
		if ($vbulletin->userinfo['userid'])
		{
			$fields = ", ignored.relationid AS ignoreid, buddy.relationid AS buddyid";
			$joins = "
				LEFT JOIN " . TABLE_PREFIX . "userlist AS ignored ON (ignored.userid = bu.bloguserid AND ignored.relationid = " . $vbulletin->userinfo['userid'] . " AND ignored.type = 'ignore')
				LEFT JOIN " . TABLE_PREFIX . "userlist AS buddy ON (buddy.userid = bu.bloguserid AND buddy.relationid = " . $vbulletin->userinfo['userid'] . " AND buddy.type = 'buddy')
			";
		}

		$userresults = $vbulletin->db->query_read_slave("
			SELECT bu.title, bu.bloguserid, bu.options_member, bu.options_guest, bu.options_buddy, bu.options_ignore, bu.memberids, bu.memberblogids,
				user.userid, user.username, IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid, user.infractiongroupid, user.usergroupid, user.membergroupids
				$fields
			FROM " . TABLE_PREFIX . "blog_user AS bu
			LEFT JOIN " . TABLE_PREFIX . "user AS user ON (bu.bloguserid = user.userid)
			$joins
			WHERE bu.bloguserid IN (0$bloguserids)
		");
		while ($userresult = $vbulletin->db->fetch_array($userresults))
		{
			cache_permissions($userresult, false);
			fetch_musername($userresult);
			$wol_user["$userresult[userid]"] = $userresult['musername'];

			$member = ($userresult['options_member'] & $vbulletin->bf_misc_vbblogsocnetoptions['canviewmyblog'] ? 1 : 0);
			$guest = ($userresult['options_guest'] & $vbulletin->bf_misc_vbblogsocnetoptions['canviewmyblog'] ? 1 : 0);
			$buddy = ($userresult['options_buddy'] & $vbulletin->bf_misc_vbblogsocnetoptions['canviewmyblog'] ? 1 : 0);
			$ignore = ($userresult['options_ignore'] & $vbulletin->bf_misc_vbblogsocnetoptions['canviewmyblog'] ? 1 : 0);

			$wol_bloguser["$userresult[bloguserid]"]['title'] = $userresult['title'];
			$wol_bloguser["$userresult[bloguserid]"]['canviewmyblog'] =
			(
				(
					!$userresult['buddyid']
						OR
					$buddy
				)
				AND
				(
					!$userresult['ignoreid']
						OR
					$ignore
				)
				AND
				(
					(
						$member
							AND
						$vbulletin->userinfo['userid']
					)
					OR
					(
						$guest
							AND
						!$vbulletin->userinfo['userid']
					)
				)
				OR
				(
					$ignore
						AND
					$userresult['ignoreid']
				)
				OR
				(
					$buddy
						AND
					$userresult['buddyid']
				)
				OR
					$userresult['userid'] == $vbulletin->userinfo['userid']
				OR
					can_moderate_blog()
				OR
					is_member_of_blog($vbulletin->userinfo, $userresult)
			) ? true : false;

		}
	}
}
コード例 #15
0
ファイル: misc.php プロジェクト: 0hyeah/yurivn
function do_stats()
{
    global $vbulletin, $db;
    $activeusers = '';
    if (($vbulletin->options['displayloggedin'] == 1 or $vbulletin->options['displayloggedin'] == 2 or $vbulletin->options['displayloggedin'] > 2 and $vbulletin->userinfo['userid']) and !$show['search_engine']) {
        $datecut = TIMENOW - $vbulletin->options['cookietimeout'];
        $numbervisible = 0;
        $numberregistered = 0;
        $numberguest = 0;
        $hook_query_fields = $hook_query_joins = $hook_query_where = '';
        ($hook = vBulletinHook::fetch_hook('forumhome_loggedinuser_query')) ? eval($hook) : false;
        $forumusers = $db->query_read_slave("\n\t    SELECT\n\t    user.username, (user.options & " . $vbulletin->bf_misc_useroptions['invisible'] . ") AS invisible, user.usergroupid, user.lastvisit,\n\t    session.userid, session.inforum, session.lastactivity, session.badlocation,\n\t    IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid, infractiongroupid\n\t    {$hook_query_fields}\n\t    FROM " . TABLE_PREFIX . "session AS session\n\t    LEFT JOIN " . TABLE_PREFIX . "user AS user ON(user.userid = session.userid)\n\t    {$hook_query_joins}\n\t    WHERE session.lastactivity > {$datecut}\n\t    {$hook_query_where}\n\t    " . iif($vbulletin->options['displayloggedin'] == 1 or $vbulletin->options['displayloggedin'] == 3, "ORDER BY username ASC") . "\n\t    ");
        if ($vbulletin->userinfo['userid']) {
            // fakes the user being online for an initial page view of index.php
            $vbulletin->userinfo['joingroupid'] = iif($vbulletin->userinfo['displaygroupid'], $vbulletin->userinfo['displaygroupid'], $vbulletin->userinfo['usergroupid']);
            $userinfos = array($vbulletin->userinfo['userid'] => array('userid' => &$vbulletin->userinfo['userid'], 'username' => &$vbulletin->userinfo['username'], 'invisible' => &$vbulletin->userinfo['invisible'], 'inforum' => 0, 'lastactivity' => TIMENOW, 'lastvisit' => &$vbulletin->userinfo['lastvisit'], 'usergroupid' => &$vbulletin->userinfo['usergroupid'], 'displaygroupid' => &$vbulletin->userinfo['displaygroupid'], 'infractiongroupid' => &$vbulletin->userinfo['infractiongroupid']));
        } else {
            $userinfos = array();
        }
        $inforum = array();
        while ($loggedin = $db->fetch_array($forumusers)) {
            $userid = $loggedin['userid'];
            if (!$userid) {
                // Guest
                $numberguest++;
                if (!isset($inforum["{$loggedin['inforum']}"])) {
                    $inforum["{$loggedin['inforum']}"] = 0;
                }
                if (!$loggedin['badlocation']) {
                    $inforum["{$loggedin['inforum']}"]++;
                }
            } else {
                if (empty($userinfos["{$userid}"]) or $userinfos["{$userid}"]['lastactivity'] < $loggedin['lastactivity']) {
                    $userinfos["{$userid}"] = $loggedin;
                }
            }
        }
        if (!$vbulletin->userinfo['userid'] and $numberguest == 0) {
            $numberguest++;
        }
        foreach ($userinfos as $userid => $loggedin) {
            $numberregistered++;
            if ($userid != $vbulletin->userinfo['userid'] and !$loggedin['badlocation']) {
                if (!isset($inforum["{$loggedin['inforum']}"])) {
                    $inforum["{$loggedin['inforum']}"] = 0;
                }
                $inforum["{$loggedin['inforum']}"]++;
            }
            fetch_musername($loggedin);
            ($hook = vBulletinHook::fetch_hook('forumhome_loggedinuser')) ? eval($hook) : false;
            if (fetch_online_status($loggedin)) {
                $numbervisible++;
            }
        }
        // memory saving
        unset($userinfos, $loggedin);
        $db->free_result($forumusers);
        $totalonline = $numberregistered + $numberguest;
        $numberinvisible = $numberregistered - $numbervisible;
        // ### MAX LOGGEDIN USERS ################################
        if (intval($vbulletin->maxloggedin['maxonline']) <= $totalonline) {
            $vbulletin->maxloggedin['maxonline'] = $totalonline;
            $vbulletin->maxloggedin['maxonlinedate'] = TIMENOW;
            build_datastore('maxloggedin', serialize($vbulletin->maxloggedin), 1);
        }
        $recordusers = vb_number_format($vbulletin->maxloggedin['maxonline']);
        $recorddate = vbdate($vbulletin->options['dateformat'], $vbulletin->maxloggedin['maxonlinedate'], true);
        $recordtime = vbdate($vbulletin->options['timeformat'], $vbulletin->maxloggedin['maxonlinedate']);
        $showloggedinusers = true;
    } else {
        $showloggedinusers = false;
    }
    cache_ordered_forums(1, 1);
    // get total threads & posts from the forumcache
    $totalthreads = 0;
    $totalposts = 0;
    if (is_array($vbulletin->forumcache)) {
        foreach ($vbulletin->forumcache as $forum) {
            $totalthreads += $forum['threadcount'];
            $totalposts += $forum['replycount'];
        }
    }
    $totalthreads = vb_number_format($totalthreads);
    $totalposts = vb_number_format($totalposts);
    // get total members and newest member from template
    $numbermembers = vb_number_format($vbulletin->userstats['numbermembers']);
    $newuserinfo = array('userid' => $vbulletin->userstats['newuserid'], 'username' => $vbulletin->userstats['newusername']);
    $activemembers = vb_number_format($vbulletin->userstats['activemembers']);
    $showactivemembers = ($vbulletin->options['activememberdays'] > 0 and $vbulletin->options['activememberoptions'] & 2) ? true : false;
    $out = array('threads' => $totalthreads, 'posts' => $totalposts, 'members' => $numbermembers, 'newuser' => $newuserinfo['username']);
    $out = array_merge($out, array('record_users' => $recordusers, 'record_date' => $recorddate . ' ' . $recordtime, 'online_members' => $numberregistered, 'online_guests' => $numberguest));
    $top = $db->query_first_slave("SELECT username FROM " . TABLE_PREFIX . "user ORDER BY posts DESC LIMIT 1");
    if ($top['username']) {
        $out['top_poster'] = $top['username'];
    } else {
        $out['top_poster'] = 'N/A';
    }
    if ($showactivemembers) {
        $out['active_members'] = $activemembers;
    } else {
        $out['active_members'] = 'N/A';
    }
    return $out;
    return array('top_poster' => '');
}
コード例 #16
0
ファイル: class_postbit.php プロジェクト: hungnv0789/vhtm
	/**
	* Process this post's user info assuming its a guest.
	*/
	function process_unregistered_user()
	{
		global $show, $vbphrase;

		$this->post['rank'] = '';
		$this->post['postsperday'] = 0;
		$this->post['displaygroupid'] = 1;
		$this->post['username'] = $this->post['postusername'];
		fetch_musername($this->post);
		//$this->post['usertitle'] = $vbphrase['guest'];
		$this->post['usertitle'] = $this->registry->usergroupcache['1']['usertitle'];
		$this->post['joindate'] = '';
		$this->post['posts'] = 'n/a';
		$this->post['avatar'] = '';
		$this->post['profile'] = '';
		$this->post['email'] = '';
		$this->post['useremail'] = '';
		$this->post['icqicon'] = '';
		$this->post['aimicon'] = '';
		$this->post['yahooicon'] = '';
		$this->post['msnicon'] = '';
		$this->post['skypeicon'] = '';
		$this->post['homepage'] = '';
		$this->post['findposts'] = '';
		$this->post['signature'] = '';
		$this->post['reputationdisplay'] = '';
		$this->post['onlinestatus'] = '';

		$show['avatar'] = false;
		$show['reputation'] = false;
		$show['pmlink'] = false;
		$show['homepage'] = false;
		$show['emaillink'] = false;
		$show['profile'] = false;
		$show['search'] = false;
		$show['buddy'] = false;
		$show['infraction'] = false;
	}
コード例 #17
0
ファイル: poll.php プロジェクト: holandacz/nb4
 $pollinfo['question'] = $bbcode_parser->parse(unhtmlspecialchars($pollinfo['question']), $foruminfo['forumid'], 1);
 $splitoptions = explode('|||', $pollinfo['options']);
 $splitvotes = explode('|||', $pollinfo['votes']);
 $pollinfo['numbervotes'] = array_sum($splitvotes);
 if ($vbulletin->userinfo['userid'] > 0) {
     $pollvotes = $db->query_read_slave("\n\t\t\tSELECT voteoption\n\t\t\tFROM " . TABLE_PREFIX . "pollvote\n\t\t\tWHERE userid = " . $vbulletin->userinfo['userid'] . " AND\n\t\t\t\tpollid = {$pollid}\n\t\t");
     $uservote = array();
     while ($pollvote = $db->fetch_array($pollvotes)) {
         $uservote["{$pollvote['voteoption']}"] = 1;
     }
 }
 if ($pollinfo['public']) {
     $public = $db->query_read_slave("\n\t\t\tSELECT user.userid, user.usergroupid, user.displaygroupid, user.username, voteoption, user.infractiongroupid\n\t\t\tFROM " . TABLE_PREFIX . "pollvote AS pollvote\n\t\t\tINNER JOIN " . TABLE_PREFIX . "user AS user ON (pollvote.userid = user.userid)\n\t\t\tWHERE pollid = {$pollinfo['pollid']}\n\t\t\tORDER BY username ASC\n\t\t");
     $allnames = array();
     while ($name = $db->fetch_array($public)) {
         fetch_musername($name);
         $allnames["{$name['voteoption']}"][] = '<a href="member.php?' . $vbulletin->session->vars['sessionurl'] . "u={$name['userid']}\">{$name['musername']}</a>";
     }
 }
 foreach ($splitvotes as $index => $value) {
     $option['uservote'] = iif($uservote[$index + 1], '*');
     $option['question'] = $bbcode_parser->parse($splitoptions["{$index}"], $foruminfo['forumid'], true);
     $option['votes'] = $value;
     //get the vote count for the option
     if ($option['votes'] <= 0) {
         $option['percent'] = 0;
     } else {
         if ($pollinfo['multiple']) {
             $option['percent'] = vb_number_format($option['votes'] < $pollinfo['voters'] ? $option['votes'] / $pollinfo['voters'] * 100 : 100, 2);
         } else {
             $option['percent'] = vb_number_format($options['votes'] < $pollinfo['numbervotes'] ? $option['votes'] / $pollinfo['numbervotes'] * 100 : 100, 2);
コード例 #18
0
ファイル: class_profileblock.php プロジェクト: 0hyeah/yurivn
 /**
  * Prepare any data needed for the output
  *
  * @param	string	The id of the block
  * @param	array	Options specific to the block
  */
 function prepare_output($id = '', $options = array())
 {
     global $show, $vbphrase;
     // don't include yourself in the visit count
     if ($this->profile->userinfo['userid'] != $this->registry->userinfo['userid']) {
         // profile visits
         $this->registry->db->query_write("\n\t\t\t\tUPDATE " . TABLE_PREFIX . "user SET\n\t\t\t\t\tprofilevisits = profilevisits + 1\n\t\t\t\tWHERE userid = " . $this->profile->userinfo['userid']);
         $this->profile->userinfo['profilevisits']++;
         // reflect this view
     }
     $this->profile->prepare('profilevisits');
     // We shouldn't show as a profile visitor
     if ($this->registry->userinfo['userid'] and $this->profile->userinfo['userid'] != $this->registry->userinfo['userid']) {
         $this->registry->db->query_write("\n\t\t\t\tREPLACE INTO " . TABLE_PREFIX . "profilevisitor\n\t\t\t\t\t(userid, visitorid, dateline, visible)\n\t\t\t\tVALUES\n\t\t\t\t\t(\n\t\t\t\t\t\t" . $this->profile->userinfo['userid'] . ",\n\t\t\t\t\t\t" . $this->registry->userinfo['userid'] . ",\n\t\t\t\t\t\t" . TIMENOW . ",\n\t\t\t\t\t\t" . ($this->registry->userinfo['options'] & $this->registry->bf_misc_useroptions['invisible'] ? 0 : 1) . "\n\t\t\t\t\t)\n\t\t\t");
     }
     // ensure this setting makes sense
     if ($options['profilemaxvisitors'] < 2) {
         $options['profilemaxvisitors'] = 2;
     }
     $hook_query_fields = $hook_query_joins = $hook_query_where = '';
     ($hook = vBulletinHook::fetch_hook('member_profileblock_recentvisitors_query')) ? eval($hook) : false;
     $visitors_db = $this->registry->db->query_read_slave("\n\t\t\tSELECT user.userid, user.username, user.usergroupid, user.displaygroupid, profilevisitor.visible, user.infractiongroupid\n\t\t\t\t{$hook_query_fields}\n\t\t\tFROM " . TABLE_PREFIX . "profilevisitor AS profilevisitor\n\t\t\tINNER JOIN " . TABLE_PREFIX . "user AS user ON (user.userid = profilevisitor.visitorid)\n\t\t\t{$hook_query_joins}\n\t\t\tWHERE profilevisitor.userid = " . $this->profile->userinfo['userid'] . "\n\t\t\t\t" . (!($this->registry->userinfo['permissions']['genericpermissions'] & $this->registry->bf_ugp_genericpermissions['canseehidden']) ? " AND (visible = 1 OR profilevisitor.visitorid = " . $this->registry->userinfo['userid'] . ")" : "") . "\n\t\t\t\t{$hook_query_where}\n\t\t\tORDER BY profilevisitor.dateline DESC\n\t\t\tLIMIT {$options['profilemaxvisitors']}\n\t\t");
     $visitors = array();
     while ($user = $this->registry->db->fetch_array($visitors_db)) {
         $visitors["{$user['username']}"] = $user;
     }
     uksort($visitors, 'strnatcasecmp');
     if (!is_array($buddylist)) {
         if ($this->registry->userinfo['buddylist'] = trim($this->registry->userinfo['buddylist'])) {
             $buddylist = preg_split('/\\s+/', $this->registry->userinfo['buddylist'], -1, PREG_SPLIT_NO_EMPTY);
         } else {
             $buddylist = array();
         }
     }
     $visitorcount = 0;
     $visitorbits = array();
     foreach ($visitors as $user) {
         fetch_musername($user);
         $user['invisiblemark'] = !$user['visible'] ? '*' : '';
         $user['buddymark'] = in_array($user['userid'], $buddylist) ? '+' : '';
         $visitorcount++;
         $user['comma'] = $vbphrase['comma_space'];
         $visitorbits[$visitorcount] = $user;
     }
     // Last element
     if ($visitorcount) {
         $visitorbits[$visitorcount]['comma'] = '';
     }
     $this->block_data['visitorbits'] = $visitorbits;
     $this->block_data['visitorcount'] = $visitorcount;
 }
コード例 #19
0
	/**
	* Process note as if an unregistered user posted
	*/
	function process_unregistered_user()
	{
		$this->message['rank'] = '';
		$this->message['notesperday'] = 0;
		$this->message['displaygroupid'] = 1;
		$this->message['username'] = $this->message['postusername'];
		fetch_musername($this->message);
		$this->message['usertitle'] = $this->registry->usergroupcache['1']['usertitle'];
		$this->message['joindate'] = '';
		$this->message['notes'] = 'n/a';
		$this->message['avatar'] = '';
		$this->message['profile'] = '';
		$this->message['email'] = '';
		$this->message['useremail'] = '';
		$this->message['icqicon'] = '';
		$this->message['aimicon'] = '';
		$this->message['yahooicon'] = '';
		$this->message['msnicon'] = '';
		$this->message['skypeicon'] = '';
		$this->message['homepage'] = '';
		$this->message['findnotes'] = '';
		$this->message['signature'] = '';
		$this->message['reputationdisplay'] = '';
		$this->message['onlinestatus'] = '';
	}
コード例 #20
0
ファイル: functions.php プロジェクト: hungnv0789/vhtm
/**
* Fetches an array containing info for the specified user, or false if user is not found
*
* Values for Option parameter:
* 1 - Nothing ...
* 2 - Get avatar
* 4 - Process user's online location
* 8 - Join the customprofilpic table to get the userid just to check if we have a picture
* 16 - Join the administrator table to get various admin options
* 32 - Join the sigpic table to get the userid just to check if we have a picture
* 64 - Get user's custom CSS
* 128 - Is the logged in User a friend of this person?
* Therefore: Option = 6 means 'Get avatar' and 'Process online location'
* See fetch_userinfo() in the do=getinfo section of member.php if you are still confused
*
* @param	integer	(ref) User ID
* @param	integer	Bitfield Option (see description)
*
* @return	array	The information for the requested user
*/
function fetch_userinfo(&$userid, $option = 0, $languageid = 0)
{
	global $vbulletin, $usercache, $vbphrase;

	if ($userid == $vbulletin->userinfo['userid'] AND $option != 0 AND isset($usercache["$userid"]))
	{
		// clear the cache if we are looking at ourself and need to add one of the JOINS to our information.
		unset($usercache["$userid"]);
	}

	$userid = intval($userid);

	// return the cached result if it exists
	if (isset($usercache["$userid"]))
	{
		return $usercache["$userid"];
	}

	$hook_query_fields = $hook_query_joins = '';
	($hook = vBulletinHook::fetch_hook('fetch_userinfo_query')) ? eval($hook) : false;

	// no cache available - query the user
	$user = $vbulletin->db->query_first_slave("
		SELECT " .
			iif(($option & FETCH_USERINFO_ADMIN), ' administrator.*, ') . "
			userfield.*, usertextfield.*, user.*, UNIX_TIMESTAMP(passworddate) AS passworddate, user.languageid AS saved_languageid,
			IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid" .
			iif(($option & FETCH_USERINFO_AVATAR) AND $vbulletin->options['avatarenabled'], ', avatar.avatarpath, NOT ISNULL(customavatar.userid) AS hascustomavatar, customavatar.dateline AS avatardateline, customavatar.width AS avwidth, customavatar.height AS avheight, customavatar.height_thumb AS avheight_thumb, customavatar.width_thumb AS avwidth_thumb, customavatar.filedata_thumb').
			iif(($option & FETCH_USERINFO_PROFILEPIC), ', customprofilepic.userid AS profilepic, customprofilepic.dateline AS profilepicdateline, customprofilepic.width AS ppwidth, customprofilepic.height AS ppheight') .
			iif(($option & FETCH_USERINFO_SIGPIC), ', sigpic.userid AS sigpic, sigpic.dateline AS sigpicdateline, sigpic.width AS sigpicwidth, sigpic.height AS sigpicheight') .
			(($option & FETCH_USERINFO_USERCSS) ? ', usercsscache.cachedcss, IF(usercsscache.cachedcss IS NULL, 0, 1) AS hascachedcss, usercsscache.buildpermissions AS cssbuildpermissions' : '') .
			(isset($vbphrase) ? '' : fetch_language_fields_sql()) .
			(($vbulletin->userinfo['userid'] AND ($option & FETCH_USERINFO_ISFRIEND)) ?
				", IF(userlist1.friend = 'yes', 1, 0) AS isfriend, IF (userlist1.friend = 'pending' OR userlist1.friend = 'denied', 1, 0) AS ispendingfriend" .
				", IF(userlist1.userid IS NOT NULL, 1, 0) AS u_iscontact_of_bbuser, IF (userlist2.friend = 'pending', 1, 0) AS requestedfriend" .
				", IF(userlist2.userid IS NOT NULL, 1, 0) AS bbuser_iscontact_of_user" : "") . "
			$hook_query_fields
		FROM " . TABLE_PREFIX . "user AS user
		LEFT JOIN " . TABLE_PREFIX . "userfield AS userfield ON (user.userid = userfield.userid)
		LEFT JOIN " . TABLE_PREFIX . "usertextfield AS usertextfield ON (usertextfield.userid = user.userid) " .
		iif(($option & FETCH_USERINFO_AVATAR) AND $vbulletin->options['avatarenabled'], "LEFT JOIN " . TABLE_PREFIX . "avatar AS avatar ON (avatar.avatarid = user.avatarid) LEFT JOIN " . TABLE_PREFIX . "customavatar AS customavatar ON (customavatar.userid = user.userid) ") .
		iif(($option & FETCH_USERINFO_PROFILEPIC), "LEFT JOIN " . TABLE_PREFIX . "customprofilepic AS customprofilepic ON (user.userid = customprofilepic.userid) ") .
		iif(($option & FETCH_USERINFO_ADMIN), "LEFT JOIN " . TABLE_PREFIX . "administrator AS administrator ON (administrator.userid = user.userid) ") .
		iif(($option & FETCH_USERINFO_SIGPIC), "LEFT JOIN " . TABLE_PREFIX . "sigpic AS sigpic ON (user.userid = sigpic.userid) ") .
		(($option & FETCH_USERINFO_USERCSS) ? 'LEFT JOIN ' . TABLE_PREFIX . 'usercsscache AS usercsscache ON (user.userid = usercsscache.userid)' : '') .
		iif(!isset($vbphrase), "LEFT JOIN " . TABLE_PREFIX . "language AS language ON (language.languageid = " . (!empty($languageid) ? $languageid : "IF(user.languageid = 0, " . intval($vbulletin->options['languageid']) . ", user.languageid)") . ") ") .
		(($vbulletin->userinfo['userid'] AND ($option & FETCH_USERINFO_ISFRIEND)) ?
			"LEFT JOIN " . TABLE_PREFIX . "userlist AS userlist1 ON (userlist1.relationid = user.userid AND userlist1.type = 'buddy' AND userlist1.userid = " . $vbulletin->userinfo['userid'] . ")" .
			"LEFT JOIN " . TABLE_PREFIX . "userlist AS userlist2 ON (userlist2.userid = user.userid AND userlist2.type = 'buddy' AND userlist2.relationid = " . $vbulletin->userinfo['userid'] . ")" : "") . "
		$hook_query_joins
		WHERE user.userid = $userid
	");
	if (!$user)
	{
		return false;
	}

	if (!isset($vbphrase) AND $user['lang_options'] === null)
	{
		trigger_error('The requested language does not exist, reset via tools.php.', E_USER_ERROR);
	}

	$user['languageid'] = (!empty($languageid) ? $languageid : $user['languageid']);

	// decipher 'options' bitfield
	$user['options'] = intval($user['options']);

	foreach ($vbulletin->bf_misc_useroptions AS $optionname => $optionval)
	{
		$user["$optionname"] = ($user['options'] & $optionval ? 1 : 0);
		//DEVDEBUG("$optionname = $user[$optionname]");
	}

	foreach($vbulletin->bf_misc_adminoptions AS $optionname => $optionval)
	{
		$user["$optionname"] = ($user['adminoptions'] & $optionval ? 1 : 0);
	}

	// make a username variable that is safe to pass through URL links
	$user['urlusername'] = urlencode(unhtmlspecialchars($user['username']));

	fetch_musername($user);

	// get the user's real styleid (not the cookie value)
	$user['realstyleid'] = $user['styleid'];

	$user['securitytoken_raw'] = sha1($user['userid'] . sha1($user['salt']) . sha1(COOKIE_SALT));
	$user['securitytoken'] = TIMENOW . '-' . sha1(TIMENOW . $user['securitytoken_raw']);

	$user['logouthash'] =& $user['securitytoken'];

	if ($option & FETCH_USERINFO_LOCATION)
	{ // Process Location info for this user
		require_once(DIR . '/includes/functions_online.php');
		$user = fetch_user_location_array($user);
	}

	($hook = vBulletinHook::fetch_hook('fetch_userinfo')) ? eval($hook) : false;

	$usercache["$userid"] = $user;
	return $usercache["$userid"];
}
コード例 #21
0
ファイル: joinrequests.php プロジェクト: 0hyeah/yurivn
     }
 }
 // set a shortcut to the vbulletin->usergroupcache entry for this group
 $usergroup =& $vbulletin->usergroupcache["{$vbulletin->GPC['usergroupid']}"];
 // initialize $joinrequestbits
 $joinrequestbits = '';
 $numrequests =& $usergroups["{$vbulletin->GPC['usergroupid']}"];
 // if there are some requests for this usergroup, display them
 if ($numrequests > 0) {
     // set defaults
     sanitize_pageresults($numrequests, $vbulletin->GPC['pagenumber'], $vbulletin->GPC['perpage'], 100, 20);
     $startat = ($vbulletin->GPC['pagenumber'] - 1) * $vbulletin->GPC['perpage'];
     $pagenav = construct_page_nav($vbulletin->GPC['pagenumber'], $vbulletin->GPC['perpage'], $numrequests, 'joinrequests.php?' . $vbulletin->session->vars['sessionurl'] . "usergroupid={$vbulletin->GPC['usergroupid']}&amp;pp=" . $vbulletin->GPC['perpage']);
     $requests = $db->query_read_slave("\n\t\t\tSELECT req.*, user.username, IF(user.displaygroupid = 0, user.usergroupid, user.displaygroupid) AS displaygroupid, infractiongroupid\n\t\t\tFROM " . TABLE_PREFIX . "usergrouprequest AS req\n\t\t\tINNER JOIN " . TABLE_PREFIX . "user AS user USING(userid)\n\t\t\tWHERE req.usergroupid = " . $vbulletin->GPC['usergroupid'] . "\n\t\t\tLIMIT {$startat}, " . $vbulletin->GPC['perpage'] . "\n\t\t");
     while ($request = $db->fetch_array($requests)) {
         fetch_musername($request);
         $request['date'] = vbdate($vbulletin->options['dateformat'], $request['dateline'], 1);
         $request['time'] = vbdate($vbulletin->options['timeformat'], $request['dateline']);
         exec_switch_bg();
         ($hook = vBulletinHook::fetch_hook('joinrequest_view_bit')) ? eval($hook) : false;
         $templater = vB_Template::create('joinrequestsbit');
         $templater->register('bgclass', $bgclass);
         $templater->register('request', $request);
         $joinrequestbits .= $templater->render();
     }
 }
 // end if ($numrequests > 0)
 $show['joinrequests'] = iif($joinrequestbits != '', true, false);
 // make the navbar elements
 $navbits = construct_navbits(array('usercp.php' . $vbulletin->session->vars['sessionurl_q'] => $vbphrase['user_control_panel'], 'profile.php?' . $vbulletin->session->vars['sessionurl'] . "do=editusergroups" => $vbphrase['group_memberships'], '' => "{$vbphrase['join_requests']}: '{$usergroup['title']}'"));
 $includecss['joinrequests'] = 'joinrequests.css';
コード例 #22
0
ファイル: usercp.php プロジェクト: Kheros/MMOver
    }
    unset($bbcode_parser);
}
// ############################### start pending friends ###############################
$show['pendingfriendrequests'] = false;
if ($vbulletin->options['socnet'] & $vbulletin->bf_misc_socnet['enable_friends']) {
    list($pendingfriendrequests) = $vbulletin->db->query_first("\r\n\t\tSELECT COUNT(*)\r\n\t\tFROM " . TABLE_PREFIX . "userlist AS userlist\r\n\t\tLEFT JOIN " . TABLE_PREFIX . "userlist AS userlist_ignore ON (userlist_ignore.userid = " . $vbulletin->userinfo['userid'] . " AND userlist_ignore.relationid = userlist.userid AND userlist_ignore.type = 'ignore')\r\n\t\tWHERE userlist.relationid = " . $vbulletin->userinfo['userid'] . "\r\n\t\t\tAND userlist.friend = 'pending' AND userlist_ignore.type IS NULL\r\n\t", DBARRAY_NUM);
    $show['pendingfriendrequests'] = $pendingfriendrequests ? true : false;
    if ($show['pendingfriendrequests']) {
        $pendingfriends = $vbulletin->db->query_read("\r\n\t\t\tSELECT user.*\r\n\t\t\tFROM " . TABLE_PREFIX . "userlist AS userlist\r\n\t\t\tLEFT JOIN " . TABLE_PREFIX . "userlist AS userlist_ignore ON (userlist_ignore.userid = " . $vbulletin->userinfo['userid'] . " AND userlist_ignore.relationid = userlist.userid AND userlist_ignore.type = 'ignore')\r\n\t\t\tINNER JOIN " . TABLE_PREFIX . "user AS user ON\r\n\t\t\t\t(user.userid = userlist.userid)\r\n\t\t\tWHERE userlist.relationid = " . $vbulletin->userinfo['userid'] . "\r\n\t\t\t\tAND userlist.friend = 'pending' AND userlist_ignore.type IS NULL\r\n\t\t\tORDER BY user.lastactivity DESC\r\n\t\t\tLIMIT " . min(5, $pendingfriendrequests));
        $pendingfriendbits = array();
        $pendingfriendbits_joined = '';
        $i = 0;
        while ($pendingfriend = $vbulletin->db->fetch_array($pendingfriends)) {
            $loggedin =& $pendingfriend;
            fetch_musername($loggedin);
            $show['comma_leader'] = $pendingfriendbits_joined != '';
            $templater = vB_Template::create('forumdisplay_loggedinuser');
            $templater->register('loggedin', $loggedin);
            $pendingfriendbits_joined .= $templater->render();
        }
        if ($pendingfriendrequests > 5) {
            $pendingfriendstext = construct_phrase($vbphrase['you_have_pending_friend_requests_from_x_and_y_more'], $pendingfriendbits_joined, vb_number_format($pendingfriendrequests - 5));
        } else {
            $pendingfriendstext = construct_phrase($vbphrase['you_have_pending_friend_requests_from_x'], $pendingfriendbits_joined);
        }
        $pendingfriendrequests = vb_number_format($pendingfriendrequests);
    }
}
// ############################### start visitor messages ###############################
$show['newvisitormessages'] = false;
コード例 #23
0
ファイル: class_userprofile.php プロジェクト: holandacz/nb4
 /**
  * Prepares the User's 'marked-up' username
  *
  */
 function prepare_musername()
 {
     $this->prepared['musername'] = fetch_musername($this->userinfo);
 }
コード例 #24
0
function fetch_thanks($postid = 0, $postids = '', $fetch_again = false)
{
    global $vbulletin;
    static $cache, $act;
    ($hook = vBulletinHook::fetch_hook('post_thanks_function_fetch_thanks_start')) ? eval($hook) : false;
    if (!$cache && !$act || $fetch_again) {
        $cache = array();
        if ($postids) {
            $post_ids = "0{$postids}";
        } else {
            $post_ids = $postid;
        }
        if ($vbulletin->options['post_thanks_use_musername']) {
            $thanks = $vbulletin->db->query_read("SELECT * FROM " . TABLE_PREFIX . "post_thanks AS post_thanks INNER JOIN " . TABLE_PREFIX . "user AS user USING (userid) WHERE post_thanks.postid IN (" . $post_ids . ") ORDER BY post_thanks.username ASC");
        } else {
            $thanks = $vbulletin->db->query_read("SELECT * FROM " . TABLE_PREFIX . "post_thanks WHERE postid IN (" . $post_ids . ") ORDER BY username ASC");
        }
        while ($thank = $vbulletin->db->fetch_array($thanks)) {
            $cache[$thank['postid']][$thank['userid']]['userid'] = $thank['userid'];
            if ($vbulletin->options['post_thanks_use_musername']) {
                $cache[$thank['postid']][$thank['userid']]['username'] = fetch_musername($thank);
            } else {
                $cache[$thank['postid']][$thank['userid']]['username'] = $thank['username'];
            }
            $cache[$thank['postid']][$thank['userid']]['date'] = $thank['date'];
            $cache[$thank['postid']][$thank['userid']]['postid'] = $thank['postid'];
        }
    }
    ($hook = vBulletinHook::fetch_hook('post_thanks_function_fetch_thanks_end')) ? eval($hook) : false;
    $act = true;
    return $cache[$postid];
}
コード例 #25
0
ファイル: moderation.php プロジェクト: holandacz/nb4
 do {
     if (!$pagenumber) {
         $pagenumber = 1;
     }
     $start = ($pagenumber - 1) * $perpage;
     $picturebits = '';
     $pictures = $vbulletin->db->query_read("\n\t\t\tSELECT SQL_CALC_FOUND_ROWS\n\t\t\t\tuser.*, albumpicture.dateline, albumpicture.albumid, album.title AS albumtitle\n\t\t\t\t" . ($vbulletin->options['avatarenabled'] ? ",avatar.avatarpath, NOT ISNULL(customavatar.userid) AS hascustomavatar, customavatar.dateline AS avatardateline,customavatar.width AS avwidth,customavatar.height AS avheight" : "") . "\n\t\t\t\t,picture.pictureid, picture.extension, picture.filesize, picture.idhash, picture.caption,\n\t\t\t\tpicture.thumbnail_filesize, picture.thumbnail_dateline, picture.thumbnail_width, picture.thumbnail_height\n\t\t\t\t{$hook_query_fields}\n\t\t\tFROM " . TABLE_PREFIX . "picture AS picture\n\t\t\tLEFT JOIN " . TABLE_PREFIX . "user AS user ON (picture.userid = user.userid)\n\t\t\tLEFT JOIN " . TABLE_PREFIX . "albumpicture AS albumpicture ON (albumpicture.pictureid = picture.pictureid)\n\t\t\tLEFT JOIN " . TABLE_PREFIX . "album AS album ON (album.albumid = albumpicture.albumid)\n\t\t\t" . ($vbulletin->options['avatarenabled'] ? "LEFT JOIN " . TABLE_PREFIX . "avatar AS avatar ON(avatar.avatarid = user.avatarid) LEFT JOIN " . TABLE_PREFIX . "customavatar AS customavatar ON(customavatar.userid = user.userid)" : "") . "\n\t\t\t{$hook_query_joins}\n\t\t\tWHERE picture.state = 'moderation'\n\t\t\t\t{$datecut}\n\t\t\t\t{$hook_query_where}\n\t\t\tORDER BY {$sqlsortfield} {$sqlsortorder}\n\t\t\tLIMIT {$start}, {$perpage}\n\t\t");
     list($picturetotal) = $vbulletin->db->query_first("SELECT FOUND_ROWS()", DBARRAY_NUM);
     if ($start >= $picturetotal) {
         $pagenumber = ceil($picturetotal / $perpage);
     }
 } while ($start >= $picturetotal and $picturetotal);
 require_once DIR . '/includes/functions_album.php';
 $show['picture'] = true;
 while ($picture = $db->fetch_array($pictures)) {
     fetch_musername($picture);
     $picture['albumtitle'] = fetch_word_wrapped_string(fetch_censored_text($picture['albumtitle']));
     // $picture contains comment, picture, and album info
     $pictureinfo = prepare_pictureinfo_thumb($picture, $picture);
     eval('$picturebits .= "' . fetch_template('moderation_picturebit') . '";');
 }
 $pagenavbits = array("do=viewpics");
 if ($perpage != $vbulletin->options['vm_perpage']) {
     $pagenavbits[] = "pp={$perpage}";
 }
 if ($daysprune != ($vbulletin->userinfo['daysprune'] ? $vbulletin->userinfo['daysprune'] : 30)) {
     $pagenavbits[] = "daysprune={$daysprune}";
 }
 if ($sortfield != 'dateline') {
     $pagenavbits[] = "sortfield={$sortfield}";
 }
コード例 #26
0
ファイル: functions_online.php プロジェクト: hungnv0789/vhtm
function convert_ids_to_titles()
{

	global $vbulletin;
	global $albumids, $attachmentids, $calendarids, $eventids, $forumids,
		$infractionids, $pmids, $postids, $searchids, $socialgroupids, $threadids, $userids;
	global $wol_album, $wol_attachment, $wol_calendar, $wol_event, $wol_inf, $wol_pm,
		$wol_post, $wol_search, $wol_socialgroup, $wol_thread, $wol_user;

/*
	if ($attachmentids)
	{
		$postidquery = $vbulletin->db->query_read_slave("
			SELECT postid, attachmentid
			FROM " . TABLE_PREFIX . "attachment
			WHERE attachmentid IN (0$attachmentids)
		");
		while ($postidqueryr = $vbulletin->db->fetch_array($postidquery))
		{
			$postids .= ',' . $postidqueryr['postid'];
			$wol_attachment["$postidqueryr[attachmentid]"] = $postidqueryr['postid'];
		}
	}
*/

	if ($postids)
	{
		$postidquery = $vbulletin->db->query_read_slave("
			SELECT threadid, postid
			FROM " . TABLE_PREFIX . "post
			WHERE postid IN (0$postids)
		");
		while ($postidqueryr = $vbulletin->db->fetch_array($postidquery))
		{
			$threadids .= ',' . $postidqueryr['threadid'];
			$wol_post["$postidqueryr[postid]"] = $postidqueryr['threadid'];
		}
	}

	if ($socialgroupids)
	{
		$socialgroups = $vbulletin->db->query_read_slave("
			SELECT name, groupid
			FROM " . TABLE_PREFIX . "socialgroup
			WHERE groupid IN (0$socialgroupids)
		");

		while ($socialgroup = $vbulletin->db->fetch_array($socialgroups))
		{
			$wol_socialgroup["$socialgroup[groupid]"]['name'] = $socialgroup['name'];
		}
	}

	if ($albumids)
	{
		$albums = $vbulletin->db->query_read_slave("
			SELECT album.title, album.albumid, album.state, album.userid
			FROM " . TABLE_PREFIX . "album AS album
			LEFT JOIN " . TABLE_PREFIX . "profileblockprivacy AS profileblockprivacy ON
				(profileblockprivacy.userid = album.userid AND profileblockprivacy.blockid = 'albums')
			WHERE album.albumid IN (0$albumids)
				AND (profileblockprivacy.requirement = 0 OR profileblockprivacy.requirement IS NULL)
		");

		while ($album = $vbulletin->db->fetch_array($albums))
		{
			$wol_album["$album[albumid]"] = $album;
		}
	}

	if ($threadids)
	{
		$threadresults = $vbulletin->db->query_read_slave("
			SELECT thread.title, thread.prefixid, thread.threadid, thread.forumid, thread.postuserid, thread.visible
			" . iif($vbulletin->options['threadpreview'] > 0, ",post.pagetext AS preview") . "
			" . iif($vbulletin->options['threadsubscribed'] AND $vbulletin->userinfo['userid'], ", NOT ISNULL(subscribethread.subscribethreadid) AS issubscribed") . "
			FROM " . TABLE_PREFIX . "thread AS thread
			" . iif($vbulletin->options['threadpreview'] > 0, "LEFT JOIN " . TABLE_PREFIX . "post AS post ON(post.postid = thread.firstpostid)") . "
			" . iif($vbulletin->options['threadsubscribed'] AND $vbulletin->userinfo['userid'], " LEFT JOIN " . TABLE_PREFIX . "subscribethread AS subscribethread ON(subscribethread.threadid = thread.threadid AND subscribethread.userid = " . $vbulletin->userinfo['userid'] . " AND canview = 1)") . "
			WHERE thread.threadid IN (0$threadids)
		");
		while ($threadresult = $vbulletin->db->fetch_array($threadresults))
		{
			$wol_thread["$threadresult[threadid]"]['title'] = $threadresult['title'];
			$wol_thread["$threadresult[threadid]"]['prefixid'] = $threadresult['prefixid'];
			$wol_thread["$threadresult[threadid]"]['forumid'] = $threadresult['forumid'];
			$wol_thread["$threadresult[threadid]"]['postuserid'] = $threadresult['postuserid'];
			$wol_thread["$threadresult[threadid]"]['isdeleted'] = ($threadresult['visible'] == 2) ? true : false;
			$wol_thread["$threadresult[threadid]"]['visible'] = ($threadresult['visible'] == 1) ? true : false;
			$wol_thread["$threadresult[threadid]"]['issubscribed'] = $threadresult['issubscribed'];

			// format thread preview if there is one
			$userperms = fetch_permissions($threadresult['forumid']);
			if (!empty($threadresult['preview']) AND $vbulletin->options['threadpreview'] > 0 AND ($userperms & $vbulletin->bf_ugp_forumpermissions['canviewthreads']))
			{
				// Get Buddy List
				$buddy = array();
				if (trim($vbulletin->userinfo['buddylist']))
				{
					$buddylist = preg_split('/( )+/', trim($vbulletin->userinfo['buddylist']), -1, PREG_SPLIT_NO_EMPTY);
					foreach ($buddylist AS $buddyuserid)
					{
						$buddy["$buddyuserid"] = 1;
					}
				}
				DEVDEBUG('buddies: ' . implode(', ', array_keys($buddy)));
				// Get Ignore Users
				$ignore = array();
				if (trim($vbulletin->userinfo['ignorelist']))
				{
					$ignorelist = preg_split('/( )+/', trim($vbulletin->userinfo['ignorelist']), -1, PREG_SPLIT_NO_EMPTY);
					foreach ($ignorelist AS $ignoreuserid)
					{
						if (!$buddy["$ignoreuserid"])
						{
							$ignore["$ignoreuserid"] = 1;
						}
					}
				}
				DEVDEBUG('ignored users: ' . implode(', ', array_keys($ignore)));

				if (!$ignore["$threadresult[postuserid]"])
				{
					$threadresult['preview'] = strip_quotes($threadresult['preview']);
					$threadresult['preview'] = htmlspecialchars_uni(strip_bbcode(fetch_trimmed_title($threadresult['preview'], $vbulletin->options['threadpreview']), false, true));
					$wol_thread["$threadresult[threadid]"]['preview'] = $threadresult['preview'];
				}
			}
		}
	}

	if ($calendarids)
	{
		$calendarresults = $vbulletin->db->query_read_slave("
			SELECT calendarid, title
			FROM " . TABLE_PREFIX . "calendar
			WHERE calendarid IN (0$calendarids)
		");
		while ($calendarresult = $vbulletin->db->fetch_array($calendarresults))
		{
			$wol_calendar["$calendarresult[calendarid]"] = $calendarresult['title'];
		}
	}

	if ($infractionids)
	{
		$infractions = $vbulletin->db->query_read_slave("
			SELECT infractionid, userid
			FROM " . TABLE_PREFIX . "infraction
			WHERE infractionid IN (0$infractionids)
		");
		while ($infraction = $vbulletin->db->fetch_array($infractions))
		{
			$wol_inf["$infraction[infractionid]"]['userid'] = $infraction['userid'];
			$userids .= ',' . $infraction['userid'];
		}
	}

	if ($eventids)
	{
		$eventresults = $vbulletin->db->query_read_slave("
			SELECT eventid, title, userid, calendarid
			FROM " . TABLE_PREFIX . "event
			WHERE eventid IN (0$eventids)
		");
		while ($eventresult = $vbulletin->db->fetch_array($eventresults))
		{
			$wol_event["$eventresult[eventid]"]['title'] = $eventresult['title'];
			$wol_event["$eventresult[eventid]"]['calendarid'] = $eventresult['calendarid'];
			$wol_event["$eventresult[eventid]"]['postuserid'] = $eventresult['userid'];
		}
	}

	if ($pmids AND ($vbulletin->userinfo['permissions']['wolpermissions'] & $vbulletin->bf_ugp_wolpermissions['canwhosonlinefull']))
	{
		$pmresults = $vbulletin->db->query_read_slave("
			SELECT pmtext.fromuserid, pm.pmid
			FROM " . TABLE_PREFIX . "pm AS pm
			LEFT JOIN " . TABLE_PREFIX . "pmtext AS pmtext ON (pm.pmtextid = pmtext.pmtextid)
			WHERE pmid IN (0$pmids)
			");
		while ($pmresult = $vbulletin->db->fetch_array($pmresults))
		{
			$wol_pm["$pmresult[pmid]"] = $pmresult['fromuserid'];

			$userids .= ',' . intval($pmresult['fromuserid']);
		}
	}

	if ($searchids AND ($vbulletin->userinfo['permissions']['wolpermissions'] & $vbulletin->bf_ugp_wolpermissions['canwhosonlinefull']))
	{
		//rework this to get what the code assumes the array looks like from the new search code.
		//in particular the searchuser value has been changed from a string to a bool based on usage
		//and the fact that we don't really have it.
		require_once(DIR . "/vb/search/core.php");
		require_once(DIR . '/vb/search/criteria.php');
		$searchresults = $vbulletin->db->query_read_slave("
			SELECT searchlog.searchlogid AS searchid, searchlog.userid, searchlog.criteria
			FROM " . TABLE_PREFIX . "searchlog AS searchlog
			WHERE searchlog.searchlogid IN (0$searchids)
		");
		while ($searchresult = $vbulletin->db->fetch_array($searchresults))
		{
			if ($searchresult['criteria'])
			{
				$criteria = unserialize($searchresult['criteria']);

				$targetuserid = $criteria->get_target_userid();
				if ($targetuserid)
				{
					$userids .= ",userid";
				}

				$searchresult['targetuserid'] = $targetuserid;
				$searchresult['searchuser'] = (bool) $targetuserid;
				$searchresult['query'] = $criteria->get_raw_keywords();
				unset($searchresult['criteria']);
			}
			$wol_search["$searchresult[searchid]"] = $searchresult;
		}
	}

	if ($userids AND ($vbulletin->userinfo['permissions']['wolpermissions'] & $vbulletin->bf_ugp_wolpermissions['canwhosonlinefull']))
	{
		$userresults = $vbulletin->db->query_read_slave("
			SELECT userid, username, IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid
			FROM " . TABLE_PREFIX . "user AS user
			WHERE userid IN (0$userids)
		");
		while ($userresult = $vbulletin->db->fetch_array($userresults))
		{
			fetch_musername($userresult);
			$wol_user["$userresult[userid]"]['musername'] = $userresult['musername'];
			$wol_user["$userresult[userid]"]['username'] = $userresult['username'];
		}
	}

	($hook = vBulletinHook::fetch_hook('online_ids_titles')) ? eval($hook) : false;
}
コード例 #27
0
ファイル: online.php プロジェクト: holandacz/nb4
            $guests["{$count}"]['host'] = @gethostbyaddr($users['host']);
        }
        $guests["{$count}"]['count'] = $count + 1;
        $guests["{$count}"]['useragent'] = htmlspecialchars_uni($users['useragent']);
        $count++;
        ($hook = vBulletinHook::fetch_hook('online_user')) ? eval($hook) : false;
    }
}
if (!$foundviewer and $vbulletin->userinfo['userid'] and ($vbulletin->GPC['who'] == '' or $vbulletin->GPC['who'] == 'members')) {
    // Viewing user did not show up so fake him
    construct_im_icons($vbulletin->userinfo);
    $userinfo["{$vbulletin->userinfo['userid']}"] = $vbulletin->userinfo;
    $userinfo["{$vbulletin->userinfo['userid']}"]['location'] = '/online.php';
    $userinfo["{$vbulletin->userinfo['userid']}"]['host'] = IPADDRESS;
    $userinfo["{$vbulletin->userinfo['userid']}"]['lastactivity'] = TIMENOW;
    fetch_musername($userinfo["{$vbulletin->userinfo['userid']}"]);
    $userinfo["{$vbulletin->userinfo['userid']}"]['hidden'] = iif($vbulletin->userinfo['invisible'], '*');
    $userinfo["{$vbulletin->userinfo['userid']}"]['invisible'] = 0;
    if ($vbulletin->options['WOLresolve'] and $permissions['wolpermissions'] & $vbulletin->bf_ugp_wolpermissions['canwhosonlineip']) {
        $userinfo["{$vbulletin->userinfo['userid']}"]['host'] = @gethostbyaddr($userinfo["{$vbulletin->userinfo['userid']}"]['host']);
    }
}
$show['ip'] = iif($permissions['wolpermissions'] & $vbulletin->bf_ugp_wolpermissions['canwhosonlineip'], true, false);
$show['ajax_resolve'] = ($show['ip'] and !$vbulletin->options['WOLresolve']);
$show['useragent'] = iif($vbulletin->GPC['ua'], true, false);
$show['hidden'] = iif($permissions['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canseehidden'], true, false);
$show['badlocation'] = iif($permissions['wolpermissions'] & $vbulletin->bf_ugp_wolpermissions['canwhosonlinebad'], true, false);
if (is_array($userinfo)) {
    foreach ($userinfo as $key => $val) {
        if (!$val['invisible']) {
            $userinfo["{$key}"] = process_online_location($val, 1);
コード例 #28
0
ファイル: global.php プロジェクト: holandacz/nb4
eval('$ad_location[\'ad_navbar_below\'] = "' . fetch_template('ad_navbar_below') . '";');
eval('$ad_location[\'ad_footer_start\'] = "' . fetch_template('ad_footer_start') . '";');
eval('$ad_location[\'ad_footer_end\'] = "' . fetch_template('ad_footer_end') . '";');
// process editor css if required
if ($show['editor_css']) {
    require_once DIR . '/includes/functions_editor.php';
    construct_editor_styles_js($style['editorstyles']);
    eval('$editor_css = "' . fetch_template('editor_css') . '";');
}
// #############################################################################
// handle notices
if (!empty($vbulletin->noticecache) and is_array($vbulletin->noticecache)) {
    $notices = '';
    require_once DIR . '/includes/functions_notice.php';
    if ($vbulletin->userinfo['userid'] == 0) {
        $vbulletin->userinfo['musername'] = fetch_musername($vbulletin->userinfo);
    }
    foreach (fetch_relevant_notice_ids() as $_noticeid) {
        $show['notices'] = true;
        $notice_html = str_replace(array('{musername}', '{username}', '{userid}', '{sessionurl}'), array($vbulletin->userinfo['musername'], $vbulletin->userinfo['username'], $vbulletin->userinfo['userid'], $vbulletin->session->vars['sessionurl']), $vbphrase["notice_{$_noticeid}_html"]);
        ($hook = vBulletinHook::fetch_hook('notices_noticebit')) ? eval($hook) : false;
        eval('$notices .= "' . fetch_template('navbar_noticebit') . '";');
    }
} else {
    $show['notices'] = false;
    $notices = '';
}
// #############################################################################
// set up user notifications
$show['notifications'] = false;
if ($vbulletin->userinfo['userid']) {
コード例 #29
0
ファイル: functions_online.php プロジェクト: holandacz/nb4
function convert_ids_to_titles()
{
    global $vbulletin;
    global $albumids, $attachmentids, $calendarids, $eventids, $forumids, $infractionids, $pmids, $postids, $searchids, $socialgroupids, $threadids, $userids;
    global $wol_album, $wol_attachment, $wol_calendar, $wol_event, $wol_inf, $wol_pm, $wol_post, $wol_search, $wol_socialgroup, $wol_thread, $wol_user;
    if ($attachmentids) {
        $postidquery = $vbulletin->db->query_read_slave("\n\t\t\tSELECT postid, attachmentid\n\t\t\tFROM " . TABLE_PREFIX . "attachment\n\t\t\tWHERE attachmentid IN (0{$attachmentids})\n\t\t");
        while ($postidqueryr = $vbulletin->db->fetch_array($postidquery)) {
            $postids .= ',' . $postidqueryr['postid'];
            $wol_attachment["{$postidqueryr['attachmentid']}"] = $postidqueryr['postid'];
        }
    }
    if ($postids) {
        $postidquery = $vbulletin->db->query_read_slave("\n\t\t\tSELECT threadid, postid\n\t\t\tFROM " . TABLE_PREFIX . "post\n\t\t\tWHERE postid IN (0{$postids})\n\t\t");
        while ($postidqueryr = $vbulletin->db->fetch_array($postidquery)) {
            $threadids .= ',' . $postidqueryr['threadid'];
            $wol_post["{$postidqueryr['postid']}"] = $postidqueryr['threadid'];
        }
    }
    if ($socialgroupids) {
        $socialgroups = $vbulletin->db->query_read_slave("\n\t\t\tSELECT name, groupid\n\t\t\tFROM " . TABLE_PREFIX . "socialgroup\n\t\t\tWHERE groupid IN (0{$socialgroupids})\n\t\t");
        while ($socialgroup = $vbulletin->db->fetch_array($socialgroups)) {
            $wol_socialgroup["{$socialgroup['groupid']}"]['name'] = $socialgroup['name'];
        }
    }
    if ($albumids) {
        $albums = $vbulletin->db->query_read_slave("\n\t\t\tSELECT title, albumid, state, userid\n\t\t\tFROM " . TABLE_PREFIX . "album\n\t\t\tWHERE albumid IN (0{$albumids})\n\t\t");
        while ($album = $vbulletin->db->fetch_array($albums)) {
            $wol_album["{$album['albumid']}"] = $album;
        }
    }
    if ($threadids) {
        $threadresults = $vbulletin->db->query_read_slave("\n\t\t\tSELECT thread.title, thread.prefixid, thread.threadid, thread.forumid, thread.postuserid, thread.visible\n\t\t\t" . iif($vbulletin->options['threadpreview'] > 0, ",post.pagetext AS preview") . "\n\t\t\t" . iif($vbulletin->options['threadsubscribed'] and $vbulletin->userinfo['userid'], ", NOT ISNULL(subscribethread.subscribethreadid) AS issubscribed") . "\n\t\t\tFROM " . TABLE_PREFIX . "thread AS thread\n\t\t\t" . iif($vbulletin->options['threadpreview'] > 0, "LEFT JOIN " . TABLE_PREFIX . "post AS post ON(post.postid = thread.firstpostid)") . "\n\t\t\t" . iif($vbulletin->options['threadsubscribed'] and $vbulletin->userinfo['userid'], " LEFT JOIN " . TABLE_PREFIX . "subscribethread AS subscribethread ON(subscribethread.threadid = thread.threadid AND subscribethread.userid = " . $vbulletin->userinfo['userid'] . " AND canview = 1)") . "\n\t\t\tWHERE thread.threadid IN (0{$threadids})\n\t\t");
        while ($threadresult = $vbulletin->db->fetch_array($threadresults)) {
            $wol_thread["{$threadresult['threadid']}"]['title'] = $threadresult['title'];
            $wol_thread["{$threadresult['threadid']}"]['prefixid'] = $threadresult['prefixid'];
            $wol_thread["{$threadresult['threadid']}"]['forumid'] = $threadresult['forumid'];
            $wol_thread["{$threadresult['threadid']}"]['postuserid'] = $threadresult['postuserid'];
            $wol_thread["{$threadresult['threadid']}"]['isdeleted'] = $threadresult['visible'] == 2 ? true : false;
            $wol_thread["{$threadresult['threadid']}"]['visible'] = $threadresult['visible'] == 1 ? true : false;
            $wol_thread["{$threadresult['threadid']}"]['issubscribed'] = $threadresult['issubscribed'];
            // format thread preview if there is one
            $userperms = fetch_permissions($threadresult['forumid']);
            if (!empty($threadresult['preview']) and $vbulletin->options['threadpreview'] > 0 and $userperms & $vbulletin->bf_ugp_forumpermissions['canviewthreads']) {
                // Get Buddy List
                $buddy = array();
                if (trim($vbulletin->userinfo['buddylist'])) {
                    $buddylist = preg_split('/( )+/', trim($vbulletin->userinfo['buddylist']), -1, PREG_SPLIT_NO_EMPTY);
                    foreach ($buddylist as $buddyuserid) {
                        $buddy["{$buddyuserid}"] = 1;
                    }
                }
                DEVDEBUG('buddies: ' . implode(', ', array_keys($buddy)));
                // Get Ignore Users
                $ignore = array();
                if (trim($vbulletin->userinfo['ignorelist'])) {
                    $ignorelist = preg_split('/( )+/', trim($vbulletin->userinfo['ignorelist']), -1, PREG_SPLIT_NO_EMPTY);
                    foreach ($ignorelist as $ignoreuserid) {
                        if (!$buddy["{$ignoreuserid}"]) {
                            $ignore["{$ignoreuserid}"] = 1;
                        }
                    }
                }
                DEVDEBUG('ignored users: ' . implode(', ', array_keys($ignore)));
                if (!$ignore["{$threadresult['postuserid']}"]) {
                    $threadresult['preview'] = strip_quotes($threadresult['preview']);
                    $threadresult['preview'] = htmlspecialchars_uni(strip_bbcode(fetch_trimmed_title($threadresult['preview'], $vbulletin->options['threadpreview']), false, true));
                    $wol_thread["{$threadresult['threadid']}"]['preview'] = $threadresult['preview'];
                }
            }
        }
    }
    if ($calendarids) {
        $calendarresults = $vbulletin->db->query_read_slave("\n\t\t\tSELECT calendarid, title\n\t\t\tFROM " . TABLE_PREFIX . "calendar\n\t\t\tWHERE calendarid IN (0{$calendarids})\n\t\t");
        while ($calendarresult = $vbulletin->db->fetch_array($calendarresults)) {
            $wol_calendar["{$calendarresult['calendarid']}"] = $calendarresult['title'];
        }
    }
    if ($infractionids) {
        $infractions = $vbulletin->db->query_read_slave("\n\t\t\tSELECT infractionid, userid\n\t\t\tFROM " . TABLE_PREFIX . "infraction\n\t\t\tWHERE infractionid IN (0{$infractionids})\n\t\t");
        while ($infraction = $vbulletin->db->fetch_array($infractions)) {
            $wol_inf["{$infraction['infractionid']}"]['userid'] = $infraction['userid'];
            $userids .= ',' . $infraction['userid'];
        }
    }
    if ($eventids) {
        $eventresults = $vbulletin->db->query_read_slave("\n\t\t\tSELECT eventid, title, userid, calendarid\n\t\t\tFROM " . TABLE_PREFIX . "event\n\t\t\tWHERE eventid IN (0{$eventids})\n\t\t");
        while ($eventresult = $vbulletin->db->fetch_array($eventresults)) {
            $wol_event["{$eventresult['eventid']}"]['title'] = $eventresult['title'];
            $wol_event["{$eventresult['eventid']}"]['calendarid'] = $eventresult['calendarid'];
            $wol_event["{$eventresult['eventid']}"]['postuserid'] = $eventresult['userid'];
        }
    }
    if ($pmids and $vbulletin->userinfo['permissions']['wolpermissions'] & $vbulletin->bf_ugp_wolpermissions['canwhosonlinefull']) {
        $pmresults = $vbulletin->db->query_read_slave("\n\t\t\tSELECT pmtext.fromuserid, pm.pmid\n\t\t\tFROM " . TABLE_PREFIX . "pm AS pm\n\t\t\tLEFT JOIN " . TABLE_PREFIX . "pmtext AS pmtext ON (pm.pmtextid = pmtext.pmtextid)\n\t\t\tWHERE pmid IN (0{$pmids})\n\t\t\t");
        while ($pmresult = $vbulletin->db->fetch_array($pmresults)) {
            $wol_pm["{$pmresult['pmid']}"] = $pmresult['fromuserid'];
            $userids .= ',' . intval($pmresult['fromuserid']);
        }
    }
    if ($searchids and $vbulletin->userinfo['permissions']['wolpermissions'] & $vbulletin->bf_ugp_wolpermissions['canwhosonlinefull']) {
        $searchresults = $vbulletin->db->query_read_slave("\n\t\t\tSELECT searchid, search.userid, query, searchuser, user.userid AS targetuserid\n\t\t\tFROM " . TABLE_PREFIX . "search AS search\n\t\t\tLEFT JOIN " . TABLE_PREFIX . "user AS user ON (user.username = search.searchuser)\n\t\t\tWHERE searchid IN (0{$searchids})\n\t\t");
        while ($searchresult = $vbulletin->db->fetch_array($searchresults)) {
            if ($searchresult['searchuser']) {
                if (!$searchresult['targetuserid']) {
                    $result = $vbulletin->db->query_first_slave("\n\t\t\t\t\t\tSELECT userid AS targetuserid\n\t\t\t\t\t\tFROM " . TABLE_PREFIX . "user\n\t\t\t\t\t\tWHERE username = '******'searchuser'])) . "'\n\t\t\t\t\t");
                }
                if ($result['targetuserid']) {
                    $searchresult['targetuserid'] = $result['targetuserid'];
                }
                if ($searchresult['targetuserid']) {
                    $userids .= ",{$searchresult['targetuserid']}";
                }
            }
            $wol_search["{$searchresult['searchid']}"] = $searchresult;
        }
    }
    if ($userids and $vbulletin->userinfo['permissions']['wolpermissions'] & $vbulletin->bf_ugp_wolpermissions['canwhosonlinefull']) {
        $userresults = $vbulletin->db->query_read_slave("\n\t\t\tSELECT userid, username, IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid\n\t\t\tFROM " . TABLE_PREFIX . "user AS user\n\t\t\tWHERE userid IN (0{$userids})\n\t\t");
        while ($userresult = $vbulletin->db->fetch_array($userresults)) {
            fetch_musername($userresult);
            $wol_user["{$userresult['userid']}"] = $userresult['musername'];
        }
    }
    ($hook = vBulletinHook::fetch_hook('online_ids_titles')) ? eval($hook) : false;
}
コード例 #30
0
ファイル: group.php プロジェクト: holandacz/nb4
}
// #######################################################################
if ($_REQUEST['do'] == 'viewmembers') {
    $vbulletin->input->clean_array_gpc('r', array('perpage' => TYPE_UINT, 'pagenumber' => TYPE_UINT));
    $perpage = $vbulletin->GPC['perpage'];
    $pagenumber = $vbulletin->GPC['pagenumber'];
    $totalmembers = $group['members'];
    sanitize_pageresults($totalmembers, $pagenumber, $perpage);
    $groupmembers = $vbulletin->db->query_read("\n\t\tSELECT userfield.*, usertextfield.*, user.*, UNIX_TIMESTAMP(passworddate) AS passworddate,\n\t\t\tIF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid, (user.options & " . $vbulletin->bf_misc_useroptions['invisible'] . ") AS invisible,\n\t\t\t" . ($vbulletin->options['avatarenabled'] ? 'avatar.avatarpath, NOT ISNULL(customavatar.userid) AS hascustomavatar, customavatar.dateline AS avatardateline, customavatar.width AS avwidth, customavatar.height AS avheight,' : '') . "\n\t\t\tcustomprofilepic.userid AS profilepic, customprofilepic.dateline AS profilepicdateline, customprofilepic.width AS ppwidth, customprofilepic.height AS ppheight,\n\t\t\tuser.icq AS icq, user.aim AS aim, user.yahoo AS yahoo, user.msn AS msn, user.skype AS skype\n\t\tFROM " . TABLE_PREFIX . "socialgroupmember AS socialgroupmember\n\t\tINNER JOIN " . TABLE_PREFIX . "user AS user ON (user.userid = socialgroupmember.userid)\n\t\tLEFT JOIN " . TABLE_PREFIX . "userfield AS userfield ON (user.userid = userfield.userid)\n\t\tLEFT JOIN " . TABLE_PREFIX . "usertextfield AS usertextfield ON (usertextfield.userid = user.userid)\n\t\t" . ($vbulletin->options['avatarenabled'] ? "LEFT JOIN " . TABLE_PREFIX . "avatar AS avatar ON (avatar.avatarid = user.avatarid) LEFT JOIN " . TABLE_PREFIX . "customavatar AS customavatar ON (customavatar.userid = user.userid) " : '') . "\n\t\tLEFT JOIN " . TABLE_PREFIX . "customprofilepic AS customprofilepic ON (user.userid = customprofilepic.userid)\n\t\tWHERE socialgroupmember.groupid = " . $vbulletin->GPC['groupid'] . " AND socialgroupmember.type = 'member'\n\t\tORDER BY user.username\n\t\tLIMIT " . ($pagenumber - 1) * $perpage . ", {$perpage}\n\t");
    require_once DIR . '/includes/functions_bigthree.php';
    while ($groupmember = $vbulletin->db->fetch_array($groupmembers)) {
        $width = 0;
        $height = 0;
        $alt = exec_switch_bg();
        fetch_avatar_from_userinfo($groupmember, true);
        fetch_musername($groupmember);
        $user =& $groupmember;
        fetch_online_status($user, true);
        construct_im_icons($user, true);
        ($hook = vBulletinHook::fetch_hook('group_memberbit')) ? eval($hook) : false;
        eval('$member_list .= "' . fetch_template('memberinfo_small') . '";');
    }
    $navbits = array('group.php' . $vbulletin->session->vars['sessionurl_q'] => $vbphrase['social_groups'], 'group.php?' . $vbulletin->session->vars['sessionurl'] . 'groupid=' . $group['groupid'] => $group['name'], '' => $vbphrase['member_list']);
    $custompagetitle = $group['name'] . ' - ' . $vbphrase['member_list'];
    $pagenav = construct_page_nav($pagenumber, $perpage, $totalmembers, 'group.php?' . $vbulletin->session->vars['sessionurl'] . 'do=viewmembers&amp;groupid=' . $group['groupid'] . ($perpage ? "&amp;pp={$perpage}" : ''));
    eval('$memberinfo_css = "' . fetch_template('memberinfo_css') . '";');
    $templatename = 'socialgroups_memberlist';
}
// #######################################################################
if ($_REQUEST['do'] == 'search') {
    $navbits = array('group.php' . $vbulletin->session->vars['sessionurl_q'] => $vbphrase['social_groups'], '' => $vbphrase['advanced_search']);