Add online status to Team probleem

Hulp nodig bij een modificaties of op zoek naar een MOD?
Forumregels

LEES: Richtlijnen voor Support. Vul de support template in!
phpBB3.0.x
Verschaf iemand geen servertoegang tenzij het niet anders kan. Maak altijd eerst een volledige backup en verander de inloggevens na afloop. Eigen risico.
Plaats reactie
Schryvers
Berichten: 57
Lid geworden op: 21 jan 2013, 08:30

Add online status to Team probleem

Bericht door Schryvers » 24 jan 2013, 05:21

Ik heb deze modificatie "geinstalleerd" laatst,
http://www.board3.de/viewtopic.php?f=54&t=5733

En het heeft gewoon altijd gewerkt, tot ik me vandaag uitlogde!

Als ik online ben, zie je bij Het Team blok het groene bolletje gewoon, maar zodra ik uitlog kom er "online" in tekst te staan (zoals jullie kunnen zien op de site), terwijl er een rood bolletje hoort te staan..

Ik heb al van alles geprobeerd maar ik krijg het niet meer werkend...? :cry:

Gebruikersavatar
Theriddler
Berichten: 1103
Lid geworden op: 20 apr 2012, 07:47
Contacteer:

Re: Add online status to Team probleem

Bericht door Theriddler » 24 jan 2013, 09:26

probeer de volgende bestanden te vervangen

- portal_leaders.php
- leaders_ext_side.html
- leaders_side.html

met deze:

portal/modules/portal_leaders.php

Code: Selecteer alles

<?php
/**
*
* @package Board3 Portal v2 - Leaders
* @copyright (c) Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
	exit;
}

/**
* @package Leaders
*/
class portal_leaders_module
{
	/**
	* Allowed columns: Just sum up your options (Exp: left + right = 10)
	* top		1
	* left		2
	* center	4
	* right		8
	* bottom	16
	*/
	public $columns = 10;

	/**
	* Default modulename
	*/
	public $name = 'THE_TEAM';

	/**
	* Default module-image:
	* file must be in "{T_THEME_PATH}/images/portal/"
	*/
	public $image_src = 'portal_team.png';

	/**
	* module-language file
	* file must be in "language/{$user->lang}/mods/portal/"
	*/
	public $language = 'portal_leaders_module';

	public function get_template_side($module_id)
	{
		global $config, $template, $user, $auth, $db, $phpEx, $phpbb_root_path;
		
		// Display a listing of board admins, moderators
		$user->add_lang('groups');

		if($config['board3_leaders_ext_' . $module_id])
		{
			$legends = array();
			$groups = array();

			if ($auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel'))
			{
				$sql = 'SELECT group_id, group_name, group_colour, group_type
					FROM ' . GROUPS_TABLE . '
					WHERE group_legend = 1
					ORDER BY group_name ASC';
			}
			else
			{
				$sql = 'SELECT g.group_id, g.group_name, g.group_colour, g.group_type
					FROM ' . GROUPS_TABLE . ' g
					LEFT JOIN ' . USER_GROUP_TABLE . ' ug
						ON (
							g.group_id = ug.group_id
							AND ug.user_id = ' . $user->data['user_id'] . '
							AND ug.user_pending = 0
						)
					WHERE g.group_legend = 1
						AND (g.group_type <> ' . GROUP_HIDDEN . ' OR ug.user_id = ' . $user->data['user_id'] . ')
					ORDER BY g.group_name ASC';
			}
			$result = $db->sql_query($sql);

			while ($row = $db->sql_fetchrow($result))
			{
				$groups[$row['group_id']] = array(
					'group_name'	=> $row['group_name'],
					'group_colour'	=> $row['group_colour'],
					'group_type'	=> $row['group_type'],
					'group_users'	=> array(),
				);
				$legends[] = $row['group_id'];
			}
			$db->sql_freeresult($result);

			if(sizeof($legends))
			{
				$sql = 'SELECT
							u.user_id AS user_id, u.username AS username, u.user_colour AS user_colour, ug.group_id AS group_id
                  FROM
                     ' . USERS_TABLE . ' AS u,
                     ' . USER_GROUP_TABLE . ' AS ug
                  WHERE
                     ug.user_id = u.user_id
                     AND '. $db->sql_in_set('ug.group_id', $legends) . '
                  ORDER BY UPPER(u.username) ASC';
				$result = $db->sql_query($sql);

				while ($row = $db->sql_fetchrow($result))
				{
				// Generate online information for user
				$sql = 'SELECT session_user_id, MAX(session_time) as online_time, MIN(session_viewonline) AS viewonline
				FROM ' . SESSIONS_TABLE . '
				WHERE ' . $db->sql_in_set('session_user_id', $row['user_id']) . '
				GROUP BY session_user_id';
				$result2 = $db->sql_query($sql);

				$update_time = $config['load_online_time'] * 60;
				$user_online = false;
				while ($row2 = $db->sql_fetchrow($result2))
				{
				$user_online = (time() - $update_time < $row2['online_time'] && (($row2['viewonline']) || $auth->acl_get('u_viewonline'))) ? true : false;
				}
				$db->sql_freeresult($result2);   
					$groups[$row['group_id']]['group_users'][] = array(
						'user_id'		=> $row['user_id'],
						'user_online'   => $user_online,
						'username'		=> $row['username'],
						'user_colour'	=> $row['user_colour'],
					);
				}
				$db->sql_freeresult($result);
			}

			if(sizeof($groups))
			{
				foreach($groups as $group_id => $group)
				{
					if(sizeof($group['group_users']))
					{
						$group_name = ($group['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $group['group_name']] : $group['group_name'];
						$u_group = append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group&g=' . $group_id);

						$template->assign_block_vars('group', array(
							'GROUP_NAME'	=> $group_name,
							'GROUP_COLOUR'	=> $group['group_colour'],
							'U_GROUP'		=> $u_group,
						));

						foreach($group['group_users'] as $group_user)
						{
							$template->assign_block_vars('group.member', array(
								'USER_ID'			=> $group_user['user_id'],
								'USER_ONLINE'        => $group_user['user_online'],
								'USERNAME_FULL'		=> get_username_string('full', $group_user['user_id'], $group_user['username'], $group_user['user_colour']),
							));
						}
					}
				}
			}
			return 'leaders_ext_side.html';
		}
		else
		{
			$sql = $db->sql_build_query('SELECT', array(
				'SELECT'	=> 'u.user_id, u.group_id as default_group, u.username, u.user_colour, u.user_allow_pm, g.group_id, g.group_name, g.group_colour, g.group_type, ug.user_id as ug_user_id',
				'FROM'		=> array(
					USERS_TABLE		=> 'u',
					GROUPS_TABLE	=> 'g'
				),
				'LEFT_JOIN'	=> array(
					array(
						'FROM'	=> array(USER_GROUP_TABLE => 'ug'),
						'ON'	=> 'ug.group_id = g.group_id AND ug.user_pending = 0 AND ug.user_id = ' . $user->data['user_id']
					)),
				'WHERE'		=> 'u.group_id = g.group_id AND ' . $db->sql_in_set('g.group_name', array('ADMINISTRATORS', 'GLOBAL_MODERATORS')),
				'ORDER_BY'	=> 'g.group_name ASC, u.username_clean ASC'
			));

			$result = $db->sql_query($sql);
			
			while ($row = $db->sql_fetchrow($result))
			{
				if ($row['group_name'] == 'ADMINISTRATORS')
				{
					$which_row = 'admin';
				}
				elseif ($row['group_name'] == 'GLOBAL_MODERATORS')
				{
					$which_row = 'mod';
				}

				if ($row['group_type'] == GROUP_HIDDEN && !$auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel') && $row['ug_user_id'] != $user->data['user_id'])
				{
					$group_name = $user->lang['GROUP_UNDISCLOSED'];
					$u_group = '';
				}
				else
				{
					$group_name = ($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name'];
					$u_group = append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group&g=' . $row['group_id']);
				}
				// Generate online information for user
				$sql = 'SELECT session_user_id, MAX(session_time) as online_time, MIN(session_viewonline) AS viewonline
				FROM ' . SESSIONS_TABLE . '
				WHERE ' . $db->sql_in_set('session_user_id', $row['user_id']) . '
				GROUP BY session_user_id';
				$result2 = $db->sql_query($sql);

				$update_time = $config['load_online_time'] * 60;
				$user_online = false;
				while ($row2 = $db->sql_fetchrow($result2))
				{
				$user_online = (time() - $update_time < $row2['online_time'] && (($row2['viewonline']) || $auth->acl_get('u_viewonline'))) ? true : false;
				}
				$db->sql_freeresult($result2);   

				$template->assign_block_vars($which_row, array(
					'USER_ID'			=> $row['user_id'],
					'USER_ONLINE'        => $user_online,
					'GROUP_NAME'		=> $group_name,
					'GROUP_COLOR'		=> $row['group_colour'],

					'U_GROUP'			=> $u_group,

					'USERNAME_FULL'		=> get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']),
					'USERNAME'			=> get_username_string('username', $row['user_id'], $row['username'], $row['user_colour']),
					'USER_COLOR'		=> get_username_string('colour', $row['user_id'], $row['username'], $row['user_colour']),
					'U_VIEW_PROFILE'	=> get_username_string('profile', $row['user_id'], $row['username'], $row['user_colour']),
				));
			}
			$db->sql_freeresult($result);
			return 'leaders_side.html';
		}
	}

	public function get_template_acp($module_id)
	{
		return array(
			'title'	=> 'ACP_PORTAL_LEADERS',
			'vars'	=> array(
				'legend1'				=> 'ACP_PORTAL_LEADERS',
				'board3_leaders_ext_' . $module_id	=> array('lang' => 'PORTAL_LEADERS_EXT',		'validate' => 'bool',	'type' => 'radio:yes_no',	'explain' => true),
			),
		);
	}

	/**
	* API functions
	*/
	public function install($module_id)
	{
		// Show normal team block by default
		set_config('board3_leaders_ext_' . $module_id, 0);
		return true;
	}

	public function uninstall($module_id)
	{
		global $db;

		$del_config = array(
			'board3_leaders_ext_' . $module_id,
		);
		$sql = 'DELETE FROM ' . CONFIG_TABLE . '
			WHERE ' . $db->sql_in_set('config_name', $del_config);
		return $db->sql_query($sql);
	}
}
styles\joustijl\template\portal\modules\leaders_ext_side.html

Code: Selecteer alles

{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{$IMAGE_SRC}" width="{$IMAGE_WIDTH}" height="{$IMAGE_HEIGHT}" alt="" />&nbsp;<!-- ENDIF -->{$TITLE}{$LR_BLOCK_H_R}
	<!-- BEGIN group -->
		<strong><a href="{group.U_GROUP}" style="color: #{group.GROUP_COLOUR};" class="username-coloured">{group.GROUP_NAME}</a></strong><br />
	<!-- BEGIN member -->
		<span style="float:left;"><img src="{T_THEME_PATH}/images/portal/portal_user.png" width="16" height="16" alt="" /></span><span style="float:left; padding-left:5px; padding-top:2px;"><strong>{group.member.USERNAME_FULL}</strong></span><!-- IF group.member.USER_ONLINE eq 'true' --><img src="{T_THEME_PATH}/images/portal/green-on-16.gif" width="16" height="16" alt="{L_ONLINE}" style="float: right;" /><!-- ELSE --><img src="{T_THEME_PATH}/images/portal/red-on-16.gif" width="16" height="16" alt="{L_ONLINE}" style="float: right;" /><!-- ENDIF --><br style="clear:both" />
	<!-- END member -->
	<br style="clear:both" />
	<!-- BEGINELSE -->
		{L_NO_GROUPS_P}
	<!-- END group -->
{$LR_BLOCK_F_L}{$LR_BLOCK_F_R}
styles\joustijl\template\portal\modules\leaders_side.html

Code: Selecteer alles

{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{$IMAGE_SRC}" width="{$IMAGE_WIDTH}" height="{$IMAGE_HEIGHT}" alt="" />&nbsp;<!-- ENDIF -->{$TITLE}{$LR_BLOCK_H_R}
	<strong>{L_ADMINISTRATORS}</strong><br />
	<!-- BEGIN admin -->
		<span style="float:left;"><img src="{T_THEME_PATH}/images/portal/portal_user.png" width="16" height="16" alt="" /></span><span style="float:left; padding-left:5px; padding-top:2px;"><strong>{admin.USERNAME_FULL}</strong></span><!-- IF admin.USER_ONLINE eq 'true' --><img src="{T_THEME_PATH}/images/portal/green-on-16.gif" width="16" height="16" alt="{L_ONLINE}" style="float: right;" /><!-- ELSE --><img src="{T_THEME_PATH}/images/portal/red-on-16.gif" width="16" height="16" alt="{L_ONLINE}" style="float: right;" /><!-- ENDIF --><br style="clear:both" />
	<!-- BEGINELSE -->
		{L_NO_ADMINISTRATORS_P}<br /><br />
	<!-- END admin -->
	<br style="clear:both" />
	<strong>{L_MODERATORS}</strong><br />
	<!-- BEGIN mod -->
		<span style="float:left;"><img src="{T_THEME_PATH}/images/portal/portal_user.png" width="16" height="16" alt="" /></span><span style="float:left; padding-left:5px; padding-top:2px;"><strong>{mod.USERNAME_FULL}</strong></span><!-- IF mod.USER_ONLINE eq 'true' --><img src="{T_THEME_PATH}/images/portal/green-on-16.gif" width="16" height="16" alt="{L_ONLINE}" style="float: right;" /><!-- ELSE --><img src="{T_THEME_PATH}/images/portal/red-on-16.gif" width="16" height="16" alt="{L_ONLINE}" style="float: right;" /><!-- ENDIF --><br style="clear:both" />
	<!-- BEGINELSE -->
		{L_NO_MODERATORS_P}
	<!-- END mod -->
{$LR_BLOCK_F_L}{$LR_BLOCK_F_R}
EDIT: Ik zie op jou site dat je geen gebruik maakt van die bolletjes maar van een plaatje met offline erop
eg. http://www.tattootalk.nl/styles/prosilv ... ffline.gifAfbeelding

Schryvers
Berichten: 57
Lid geworden op: 21 jan 2013, 08:30

Re: Add online status to Team probleem

Bericht door Schryvers » 25 jan 2013, 01:18

Ja klopt, ik heb het al gefixt om de een of andere reden van het rode bolletje Incorrupt, toen ik die nogmaals uploadde, deed ie het weer en inmiddels heb ik de plaatjes vervangen door Online offline.

Plaats reactie