Jump to content

Пользователей онлайн, отключить показ (Полный список)


wick
 Share

Recommended Posts

Пользователей онлайн: x (за последние 15 минут)

 

13 пользователей, 443 гостей, 0 анонимных (Полный список)

Как отключить функцию - полный список для пользователей?

Link to comment
Share on other sites

В настройках групп могут просматривать кто в онлайн.

если его выключаю, то не видно списка пользователей в онлайн вообще

Link to comment
Share on other sites

Ну могу тогда подсказать только хардкодом.

Открыть /admin/applications/members/modules_public/online/online.php

 

   	if ( !$this->settings['allow_online_list'] )
   	{
   		$this->registry->output->showError( 'onlinelist_disabled', 10230 );
   	}

Ниже добавить

 

   	if ( IPSMember::isInGroup( $this->memberData, array( 3 ) ) )
   	{
   		$this->registry->output->showError( 'onlinelist_disabled', 10230.1 );
   	}

3 - ид нужной группы (несколько групп перечисляем через запятую).

  • Upvote 2
Link to comment
Share on other sites

Спасибо, то что надо в общем, помогло ) только вот эти циферки сбоку отображаються на страницу ошибки доступа 10230.1

Edited by siv1987
Link to comment
Share on other sites

только вот эти циферки сбоку отображаються на страницу ошибки доступа 10230.1

Это код ошибки, он отображается на всех ошибках (у каждой естественно свой).

 

PS

Не цитируйте длинные сообщения или сообщения с кодом.

  • Upvote 1
Link to comment
Share on other sites

Это код ошибки, он отображается на всех ошибках (у каждой естественно свой).

 

PS

Не цитируйте длинные сообщения или сообщения с кодом.

 

ок, спасибо за помощь!

Link to comment
Share on other sites

  • 1 year later...
если его выключаю, то не видно списка пользователей в онлайн вообще

Можно так еще закрыть список онлайн для гостей:

 

Ниже

 

protected function _listAll()
{

Добавить:

 

if( ! $this->memberData['member_id'] )
       {
           $this->registry->output->showError('no_permission', 10230.1, false, false, 403);
       }

Link to comment
Share on other sites

Ниже добавить

А можно такое же, но что бы закрыть доступ к определённым разделам форума?

Дело в том что есть один неплохой хук статистики, но в нём почему то нет функции протекции, то есть пользователь может видеть заголовки как тем и разделов, несмотря на маски доступа.

Link to comment
Share on other sites

А можно такое же, но что бы закрыть доступ к определённым разделам форума?

if ( in_array( $forumID, array(1,2,3) ) )
       {
           $this->registry->output->showError('no_permission', 10230.1, false, false, 403);
       }

Edited by Strategius
Link to comment
Share on other sites

Чёто не получается у меня. Не понимаю где там указаны параметры протекции?

 

<?php

class TopXStats
{
/**#@+
 * Registry Object Shortcuts
 *
 * @access	protected
 * @var		object
 */
protected $registry;
protected $DB;
protected $settings;
protected $lang;
protected $member;
protected $memberData;
protected $statistics;
/**#@-*/

public function __construct()
{
	/* Make registry objects */
	$this->registry	= ipsRegistry::instance();
	$this->DB		= $this->registry->DB();
	$this->settings =& $this->registry->fetchSettings();
	$this->lang		= $this->registry->getClass('class_localization');
	$this->member	= $this->registry->member();
	$this->memberData =& $this->registry->member()->fetchMemberData();

	$blocks = 0;

	for ( $i = 1; $i <= 6; $i ++ )
	{
		$setting = $this->settings[ "en30_statblock{$i}" ];

		if ( $setting != 0 )
		{
			$blocks++;
		}
	}

	if ( $blocks > 3 )
	{
		$latestPosts = 11;
	}
	else
	{
		$latestPosts = 5;
	}

	$this->statistics = array(
										1	=> array(
															'key'		=> 'latest_forum_news',
															'select'	=> array(	'select' => 'tid as id, title, start_date as statistic',
																						'from' => 'topics',
																						'where' => 'forum_id IN(' . $this->settings['en30_latestnewsforums'] . ')',
																						'order' => 'start_date DESC',
																						'limit' => array( 0, $this->settings['en30_xstats'] )
																					 ),
															'hover'	=> 'Date',
															'icon'		=> 'member.png',
															'act'		=> 'showtopic'
															),

										2	=> array(
															'key'		=> 'most_popular_forums',
															'select'	=> array(	'select' => 'id, name as title, posts as statistic',
																						'from' => 'forums',
																						'where' => 'parent_id != -1',
																						'order' => 'posts DESC',
																						'limit' => array( 0, $this->settings['en30_xstats'] )
																					 ),
															'hover'	=> 'Replies',
															'icon'		=> 'forum.png',
															'act'		=> 'showforum'
															),

										3	=> array(
															'key'		=> 'top_posters',
															'select'	=> array(	'select' => 'member_id as id, posts as statistic, members_display_name as title, member_group_id',
																						'from' => 'members',
																						'order' => 'posts DESC',
																						'limit' => array( 0, $this->settings['en30_xstats'] )
																					 ),
															'hover'	=> 'Posts',
															'icon'		=> 'member.png',
															'act'		=> 'showuser'
															),

										4	=> array(
															'key'		=> 'top_sheriffs',
															'select'	=> array(	'select' => 'wl.wlog_addedby as id, COUNT(wlog_id) as statistic',
																						'from' => array( 'warn_logs' => 'wl' ),
																						'group' => 'wl.wlog_addedby',
																						'order' => 'COUNT(wlog_id) DESC',
																						'limit' => array( 0, $this->settings['en30_xstats'] ),
																						'add_join'	=> array(
																														array(
																																'select' => 'm.member_group_id, m.members_display_name as title',
																																'from'	 => array( 'members' => 'm' ),
																																'where'	 => 'm.member_id  = wl.wlog_addedby',
																																'type'	 => 'left',
																																)
																													 )
																					 ),
															'hover'	=> 'Warnings Issued',
															'icon'		=> 'member.png',
															'act'		=> 'showuser'
															),

										5	=> array(
															'key'		=> 'most_wanted',
															'select'	=> array(	'select' => 'wl.wlog_mid as id, COUNT(wlog_id) as statistic',
																						'from' => array( 'warn_logs' => 'wl' ),
																						'where' => "wl.wlog_type = 'neg'",
																						'group' => 'wl.wlog_mid',
																						'order' => 'COUNT(wlog_id) DESC',
																						'limit' => array( 0, $this->settings['en30_xstats'] ),
																						'add_join'	=> array(
																														array(
																																'select' => 'm.member_group_id, m.members_display_name as title',
																																'from'	 => array( 'members' => 'm' ),
																																'where'	 => 'm.member_id  = wl.wlog_mid',
																																'type'	 => 'left',
																																)
																													 )
																					 ),
															'hover'	=> 'Warnings',
															'icon'		=> 'member.png',
															'act'		=> 'showuser'
															),

										6	=> array(
															'key'		=> 'new_members',
															'select'	=> array(	'select' => 'member_id as id, joined as statistic, members_display_name as title, member_group_id',
																						'from' => 'members',
																						'order' => 'joined DESC',
																						'limit' => array( 0, $this->settings['en30_xstats'] )
																					 ),
															'hover'	=> 'Date',
															'icon'		=> 'member.png',
															'act'		=> 'showuser'
															),

										7	=> array(
															'key'		=> 'recent_visitors',
															'select'	=> array(	'select' => 'member_id as id, last_visit as statistic, members_display_name as title, member_group_id',
																						'from' => 'members',
																						'order' => 'last_visit DESC',
																						'limit' => array( 0, $this->settings['en30_xstats'] )
																					 ),
															'hover'	=> 'Last Visit',
															'icon'		=> 'member.png',
															'act'		=> 'showuser'
															),

										8	=> array(
															'key'		=> 'top_thread_starters',
															'select'	=> array(	'select' => 't.starter_id as id, COUNT(tid) as statistic',
																						'from' => array( 'topics' => 't' ),
																						'group' => 't.starter_id',
																						'order' => 'COUNT(tid) DESC',
																						'limit' => array( 0, $this->settings['en30_xstats'] ),
																						'add_join'	=> array(
																														array(
																																'select' => 'm.member_group_id, m.members_display_name as title',
																																'from'	 => array( 'members' => 'm' ),
																																'where'	 => 'm.member_id  = t.starter_id',
																																'type'	 => 'left',
																																)
																													 )
																					 ),
															'hover'	=> 'Topics',
															'icon'		=> 'member.png',
															'act'		=> 'showuser'
															),

										9	=> array(
															'key'		=> 'recent_name_changes',
															'select'	=> array(	'select' => 'dc.dname_member_id as id, dc.dname_date as statistic, dc.dname_previous, dc.dname_current',
																						'from' => array( 'dnames_change' => 'dc' ),
																						'order' => 'dc.dname_date DESC',
																						'limit' => array( 0, $this->settings['en30_xstats'] ),
																						'add_join'	=> array(
																														array(
																																'select' => 'm.member_group_id',
																																'from'	 => array( 'members' => 'm' ),
																																'where'	 => 'm.member_id  = dc.dname_member_id',
																																'type'	 => 'left',
																																)
																													 )
																					 ),
															'hover'	=> 'Date',
															'icon'		=> 'member.png',
															'act'		=> 'showuser'
															),

										10	=> array(
															'key'		=> 'most_popular_members',
															'select'	=> array(	'select' => 'member_id as id, members_profile_views as statistic, members_display_name as title, member_group_id',
																						'from' => 'members',
																						'order' => 'members_profile_views DESC',
																						'limit' => array( 0, $this->settings['en30_xstats'] )
																					 ),
															'hover'	=> 'Profile Views',
															'icon'		=> 'member.png',
															'act'		=> 'showuser'
															),

										11	=> array(
															'key'		=> 'latest_profile_comments',
															'select'	=> array(	'select' => 'pc.comment_for_member_id as id, pc.comment_by_member_id, pc.comment_date, pc.comment_content as title',
																						'from' => array( 'profile_comments' => 'pc' ),
																						'order' => 'pc.comment_date DESC',
																						'limit' => array( 0, $this->settings['en30_xstats'] ),
																						'add_join'	=> array(
																														array(
																																'select' => 'm.member_group_id, m.members_display_name as statistic',
																																'from'	 => array( 'members' => 'm' ),
																																'where'	 => 'm.member_id = pc.comment_by_member_id',
																																'type'	 => 'left',
																																)
																													 )
																					 ),
															'hover'	=> 'Commenter',
															'icon'		=> 'post.png',
															'act'		=> 'showuser'
															),

										12	=> array(
															'key'		=> 'top_member_reputation',
															'select'	=> array(	'select' => 'pp.pp_member_id as id, pp.pp_reputation_points as statistic',
																						'from' => array( 'profile_portal' => 'pp' ),
																						'order' => 'pp.pp_reputation_points DESC',
																						'limit' => array( 0, $this->settings['en30_xstats'] ),
																						'add_join'	=> array(
																														array(
																																'select' => 'm.member_group_id, m.members_display_name as title',
																																'from'	 => array( 'members' => 'm' ),
																																'where'	 => 'm.member_id  = pp.pp_member_id',
																																'type'	 => 'left',
																																)
																													 )
																					 ),
															'hover'	=> 'Reputation',
															'icon'		=> 'member.png',
															'act'		=> 'showuser'
															),

										13 => array(
															'key'		=> 'most_views',
															'select'	=> array(	'select' => 'tid as id, title, views as statistic',
																						'from' => 'topics',
																						'order' => 'views DESC',
																						'limit' => array( 0, $this->settings['en30_xstats'] )
																					 ),
															'hover'	=> 'Topic Views',
															'icon'		=> 'post.png',
															'act'		=> 'showtopic'
															),

										14 => array(
															'key'		=> 'latest_polls',
															'select'	=> array(	'select' => 'p.tid as id, p.start_date as statistic, p.poll_question as title',
																						'from' => array( 'polls' => 'p' ),
																						'order' => 'p.start_date DESC',
																						'limit' => array( 0, $this->settings['en30_xstats'] ),
																						'add_join'	=> array(
																														array(
																																'select' => 't.title as title2',
																																'from'	 => array( 'topics' => 't' ),
																																'where'	 => 't.tid = p.tid',
																																'type'	 => 'left',
																																)
																													 )
																					 ),
															'hover'	=> 'Date',
															'icon'		=> 'poll.png',
															'act'		=> 'showtopic'
															),

										15 => array(
															'key'		=> 'most_replies',
															'select'	=> array(	'select' => 'tid as id, title, posts as statistic',
																						'from' => 'topics',
																						'order' => 'posts DESC',
																						'limit' => array( 0, $this->settings['en30_xstats'] )
																					 ),
															'hover'	=> 'Replies',
															'icon'		=> 'post.png',
															'act'		=> 'showtopic'
															),

										16	=> array(
															'key'		=> 'recent_attachments',
															'select'	=> array(	'select' => 'a.attach_file as title, a.attach_rel_id as pid, a.attach_date as statistic',
																						'from' => array( 'attachments' => 'a' ),
																						'order' => 'attach_date DESC',
																						'limit' => array( 0, $this->settings['en30_xstats'] ),
																						'add_join'	=> array(
																														array(
																																'select' => 'p.topic_id as id',
																																'from'	 => array( 'posts' => 'p' ),
																																'where'	 => 'p.pid = a.attach_rel_id',
																																'type'	 => 'left',
																																)
																													 )
																					 ),
															'hover'	=> 'Date',
															'icon'		=> 'attachment.png',
															'act'		=> 'showtopic={tid}&pid={pid}#entry{pid}'
															),

										17	=> array(
															'key'		=> 'top_thread_reputation',
															'select'	=> array(	'select' => 'rc.type_id, rc.rep_points as statistic',
																						'from' => array( 'reputation_cache' => 'rc' ),
																						'where' => 'rc.type_id = t.topic_firstpost',
																						'order' => 'rep_points DESC',
																						'limit' => array( 0, $this->settings['en30_xstats'] ),
																						'add_join'	=> array(
																														array(
																																'select' => 't.title, t.tid as id',
																																'from'	 => array( 'topics' => 't' ),
																																'where'	 => 'rc.type_id = t.topic_firstpost',
																																'type'	 => 'left',
																																)
																													 )
																					 ),
															'hover'	=> 'Reputation',
															'icon'		=> 'post.png',
															'act'		=> 'showtopic'
															),

										18	=> array(
															'key'		=> 'latest_posts',
															'select'	=> array(	'select' => 't.tid as id, t.title, t.last_poster_id as id2',
																						'from' => array( 'topics' => 't' ),
																						'where'	 => "t.forum_id NOT IN({$this->settings['en30_topxexcludeforums']}) and (pi.perm_type='forum' and " . $this->DB->buildRegexp( "pi.perm_2", $this->member->perm_id_array ) . ") and t.approved=1 and (t.moved_to='' or t.moved_to" . $this->DB->buildIsNull( true ) . ")",
																						'order' => 't.last_post DESC',
																						'limit' => array( 0, $latestPosts ),
																						'add_join'	=> array(
																														array(
																																'select' => 'm.member_group_id, m.members_display_name as statistic',
																																'from'	 => array( 'members' => 'm' ),
																																'where'	 => 'm.member_id  = t.last_poster_id',
																																'type'	 => 'left',
																																),
																													array(
																															'select'	=> 'pi.perm_2',
																															'from'		=> array( 'permission_index' => 'pi' ),
																															'where'		=> "pi.app='forums' AND pi.perm_type='forum' AND pi.perm_type_id=t.forum_id",
																															'type'		=> 'left',
																														),
																													 )
																					 ),
															'hover'	=> 'Poster',
															'icon'		=> 'post.png',
															'act'		=> 'showtopic'
															),
										);
}

public function getOutput()
{
	if ( !$this->settings['en30_topxstats'] )
	{
		return;
	}

	if ( in_array( $this->memberData['member_group_id'], explode( ",", $this->settings['en30_topxexclude'] ) ) )
	{
		return;
	}

	$blockCount = 0;

	for ( $i = 1; $i <= 6; $i ++ )
	{
		$setting = $this->settings[ "en30_statblock{$i}" ];

		if ( $setting != 0 )
		{
			$blockCount++;
		}
	}

	$blocks = array();

	for ( $i = 1; $i <= 6; $i ++ )
	{
		$setting = $this->settings[ "en30_statblock{$i}" ];
		$blockRow = ( $i <= 3 ) ? 1 : 2;

		if ( $setting != 0 )
		{
			if ( ! is_numeric( $setting ) )
			{
				return "<br /><h3 style='color: red'>[EN30] Top X Stats v1.0.1 ERROR</h3><span style='font-weight: bold'>You must not select a statistic group heading (e.g. -----MEMBER STATISTICS-----) as a statistic. Please fix this in Admin CP -> Tools & Settings -> Hooks -> [EN30] Top X Stats v1.0.1 -> Block #{$i}.</span>";
			}

			if ( $setting == 1 && empty( $this->settings['en30_latestnewsforums'] ) )
			{
				return "<br /><h3 style='color: red'>[EN30] Top X Stats v1.0.1 ERROR</h3><span style='font-weight: bold'>If you have selected
				Latest Forum News as a statistic block, you must select at least
				1 news forum in Admin CP -> Tools & Settings -> Hooks -> [EN30] Top X Stats v1.0.1 -> News Forums.</span>";
			}

			$statistics = array();
			$class = 'row1';

			$this->DB->build( $this->statistics[ $setting ]['select'] );
			$this->DB->execute();

			while( $row = $this->DB->fetch() )
			{
				$row['act']									= $this->statistics[ $setting ]['act'];
				$row['link']									= "{$row['act']}={$row['id']}";
				$row['icon']								= $this->statistics[ $setting ]['icon'];	
				$row['hover']								= $this->statistics[ $setting ]['hover'];
				$row['makeTitleFormatted'] 		= false;
				$row['makeStatisticFormatted']	= false;

				if ( $setting == 9 )
				{						
					$row['title'] = "{$row['dname_previous']} - {$row['dname_current']}"; 
					$row['seoTitle']	= IPSText::makeSeoTitle( $row['dname_current'] );
				}
				else
				{
					$row['seoTitle']	= IPSText::makeSeoTitle( $row['title'] );
				}

				if ( $setting == 14 )
				{
					$row['title'] = ( ! empty( $row['title'] ) ) ? $row['title'] : $row['title2'];
				}

				if ( $setting == 16 )
				{
					$row['link'] = str_replace( array( "{tid}", "{pid}" ), array( $row['id'], $row['pid'] ), $row['act'] );	
				}

				if ( $setting == 11 )
				{
					$row['id2'] = $row['comment_by_member_id'];
					$row['seoTitle2'] = IPSText::makeSeoTitle( $row['statistic'] );
				}

				if ( $row['hover'] == 'Reputation' )
				{
					$row['statistic'] = "<span class='reputation positive rep_show' style='margin: 0; padding: 0 8px; font-size: 0.8em;' title='Репутация'>{$row['statistic']}</span>";
				}
				else if ( $row['hover'] == 'Date' )
				{
					$row['statistic'] = date( $this->settings['en30_statdateformat'], $row['statistic'] );
				}
				else if ( $row['hover'] == 'Last Visit' )
				{
					if ( date( 'd' ) != date( 'd', $row['statistic'] )  )
					{
						$row['statistic'] = date( $this->settings['en30_statdateformat'], $row['statistic'] );
					}
					else
					{
						$row['statistic'] = date( 'h:i A', $row['statistic'] );
					}
				}
				else
				{
					if ( in_array( $row['hover'], array( 'Replies', 'Topic Views', 'Profile Views', 'Topics', 'Warnings', 'Warnings Issued', 'Posts' ) ) )
					{
						$row['statistic'] = $this->registry->getClass('class_localization')->formatNumber( $row['statistic'] );
					}
				}

				$row['class'] = $class;

				if ( $class == 'row1' )
				{
					$class = 'row2';
				}
				else
				{
					$class = 'row1';
				}

				if ( $this->settings['en30_formatnames'] )
				{
					if ( in_array( $this->statistics[ $setting ]['key'], array( 'top_posters', 'top_sheriffs', 'most_wanted', 'new_members', 'recent_visitors', 'top_thread_starters', 'most_popular_members', 'top_member_reputation' ) ) )
					{
						$row['makeTitleFormatted'] = true;
					}

					if ( $row['hover'] == 'Commenter' )
					{
						$row['makeStatisticFormatted'] = true;
					}
				}

				$statistics[] = $row;
			}

			$blocks[] = array(	'lang'				=> "en30_{$this->statistics[ $setting ]['key']}",
										'img'				=> "{$this->statistics[ $setting ]['key']}.png",
										'row'				=> $blockRow,
										'stats'			=> $statistics,
									);
		}
		else
		{
			if ( $blockCount > 3 )
			{
				$blocks[] = array(	'lang'				=> "en30_spacer",
											'img'				=> "spacer.gif",
											'row'				=> $blockRow,
											'stats'			=> array(),
										);
			}
		}
	}

	$rowSpan = 0;

	if ( count( $blocks ) > 3 )
	{
		$rowSpan = 3;
	}

	$latestPosts = array();
	$class = 'row1';

	$this->DB->build( $this->statistics[18]['select'] );
	$this->DB->execute();

	while( $row = $this->DB->fetch() )
	{
		$row['act']									= $this->statistics[ 18 ]['act'];
		$row['link']									= "{$row['act']}={$row['id']}";
		$row['icon']								= $this->statistics[ 18 ]['icon'];
		$row['class'] 								= $class;
		$row['hover']								= $this->statistics[ 18 ]['hover'];
		$row['seoTitle']							= IPSText::makeSeoTitle( $row['title'] );
		$row['seoTitle2']							= IPSText::makeSeoTitle( $row['statistic'] );
		$row['makeTitleFormatted'] 		= false;
		$row['makeStatisticFormatted']	= false;

		if ( $class == 'row1' )
		{
			$class = 'row2';
		}
		else
		{
			$class = 'row1';
		}

		if ( $this->settings['en30_formatnames'] )
		{
			$row['makeStatisticFormatted'] = true;
		}

		$latestPosts[] = $row;
	}

	$this->html = $this->registry->getClass('output')->getTemplate('topxstats')->output( $blocks, $latestPosts, $rowSpan );

	return $this->html;
}
}

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...