Página 1 de 2

[FlashChat] Quien esta Conectado?

Publicado: 19 Oct 2006, 05:53
por reef_01
Para los que tienen integrado el FlashChat en su foro, este MOD es para ver quien y cuantos estan conectados dentro del Chat.

Esta adaptado para XS, pero va en cualquier tipo de foro phpbb.

Ejemplos :

Imagen

Imagen

Código: Seleccionar todo

# 
#-----[ ABRIR ]------------------------------------------ 
# 
language/lang_spanish/lang_main.php 

# 
#-----[ BUSCAR ]----------------------------------------
# 
?>

# 
#-----[ ANTES, AGREGAR ]----------------------------
#
$lang['Chat_none'] = 'Ninguno';
$lang['Chat_user'] = 'Usuarios:';
$lang['Chat_online'] = 'Número de usuarios conectados en el chat:';
$lang['Chat_info'] = 'Estos datos estan basados en la actividad de usuarios dentro del chat';

# 
#-----[ ABRIR ]------------------------------------------ 
# 
includes/constants.php

# 
#-----[ BUSCAR ]----------------------------------------
#
define('CONFIG_TABLE', $table_prefix . 'config');

# 
#-----[ DESPUES, AGREGAR ]--------------------------
# 
define('CONNECTIONS', $table_prefix.'fc_connections');

#
#-----[ ABRIR ]------------------------------------------
#segun el tipo de foro puede llamarse el archivo forum.php o index.php
#
forum.php

#
#-----[ BUSCAR ]---------------------------------------
#
//
// Generate the page
//

#
#-----[ ANTES, AGREGAR ]--------------------------
#
// FlashChat Who is connected in Chat
$sql = "SELECT u.username, u.user_level, u.user_id
FROM ". CONNECTIONS ." c, ". USERS_TABLE ." u
WHERE u.user_id = c.userid
ORDER BY u.username ASC";
if ( !($result = $db->sql_query($sql)) )
{
  message_die(GENERAL_ERROR, 'Could not get user data', '', __LINE__, __FILE__, $sql);
}
$chatnums = $db->sql_numrows($result);
$user = array();
while ( $row = $db->sql_fetchrow($result) )
{
  $user[] = $row;
}
for($i = 0; $i < count($user); $i++)
{
	$user_link = color_group_colorize_name($user[$i]['user_id']);
	$userlist .= ( $userlist != '' ) ? ', ' . $user_link : $user_link;    
}
if ( $chatnums == 0 )
{
	$l_chat_user_s = $lang['Chat_none'];
}
else
{
    $l_chat_user_s = $userlist;
}
$template->assign_vars(array(
	'CHAT_USERNAME' => sprintf($l_chat_user_s, $chatnums),
	'CHAT_COUNT' => $chatnums,
	'CHAT_ONLINE' => $lang['Chat_online'],
	'CHAT_USER' => $lang['Chat_user'],
	'CHAT_INFO' => $lang['Chat_info'])
	);
  
# 
#-----[ ABRIR ]------------------------------------------ 
# 
templates/ca_aphrodite/index_body.tpl  

# 
#-----[ BUSCAR ]---------------------------------------
#
		<td class="row1 row-center" rowspan="5" width="95" valign="middle">

# 
#-----[ REMPLAZAR POR ]------------------------------
#
		<td class="row1 row-center" rowspan="6" width="95" valign="middle">
		
# 
#-----[ BUSCAR ]----------------------------------------
#
	<tr>
		<td class="row1"><span class="gensmall">
		{L_Online_today}<br />
		<!-- Start add - Last visit MOD -->
		{L_USERS_TODAY}&nbsp;{L_USERS_LASTHOUR}<br />
		{ADMINS_TODAY_LIST}<br />
		{MODS_TODAY_LIST}<br />
		{USERS_TODAY_LIST}<br />
		<!-- Start add - Last visit MOD -->
		</span>
		</td>
	</tr>

# 
#-----[ DESPUES, AGREGAR ]--------------------------
# 
	<tr>
		<td class="row1"><span class="gensmall">
		{CHAT_INFO}<br />
		{CHAT_ONLINE} <b>{CHAT_COUNT}</b><br />
		<b>{CHAT_USER}</b> {CHAT_USERNAME}<br />
		</span>
		</td>
	</tr>


#
#-----[ ABRIR ]------------------------------------------
#Esto es opcional. Sirve para agregar el numero de conectados en el header.
#
includes/page_header.php

#
#-----[ BUSCAR ]---------------------------------------
#
		$template->assign_block_vars('switch_enable_pm_popup', array());
	}

#
#-----[ DESPUES, AGREGAR ]--------------------------
#
// FlashChat Who is connected in Chat
$sql = "SELECT u.user_id
FROM ". CONNECTIONS ." c, ". USERS_TABLE ." u
WHERE u.user_id = c.userid";
if ( !($result = $db->sql_query($sql)) )
{
  message_die(GENERAL_ERROR, 'Could not get user data', '', __LINE__, __FILE__, $sql);
}
    
$template->assign_vars(array(
  'USERCOUNT' => $db->sql_numrows($result))
);

#
#-----[ ABRIR ]------------------------------------------
#
templates/ca_aphrodite/overall_header.tpl

#
#-----[ BUSCAR ]----------------------------------------
#
<a href="{U_BOARDRULES}">{L_BOARDRULES}</a>&nbsp;?

#
#-----[ DESPUES, AGREGAR ]--------------------------
#
<a href="chat/flashchat.php" class="mainmenu" target="flashchat">Chat ({USERCOUNT})</a>&nbsp;?

# 
#-----[ GUARDAR/CERRAR ]-----------------------------
#

Respuesta: [FlashChat] Quien esta Conectado?

Publicado: 19 Oct 2006, 10:21
por invi
Te lo has currado bien reef, gracias.

Respuesta: [FlashChat] Quien esta Conectado?

Publicado: 19 Oct 2006, 19:07
por ThE KuKa
Mas o menos como lo puse aqui, pero con la diferencia de que lo integre en el indice y algun pequeño "retoque" :wink:

Gracias reef :D

Respuesta: [FlashChat] Quien esta Conectado?

Publicado: 20 Oct 2006, 12:20
por reef_01
Bueno, he editado nuevamente el MOD para arreglar ciertos errores, ya que solo funcionaba para los usuarios registrados y logueados, Ahora funciona para que lo puedan visualizar registrados y no registrados.

Y de paso he añadido este pequeño MOD al color group.
Por ello le doy gracias a mitch por su gran ayuda en ello. :bravo:

Nota: Preferi editarlo para evitar cualquier tipo de confucion. :ok:

:cerveza:

Respuesta: [FlashChat] Quien Esta Conectado?

Publicado: 20 Oct 2006, 13:28
por cporty
Muchísimas gracias, ésto es lo que yo preguntaba hace ya un tiempo en uno de mis posts.

Buen trabajo!

Respuesta: [FlashChat] Quien esta Conectado?

Publicado: 20 Oct 2006, 20:35
por ThE KuKa
Gran idea reef y Mitch la de integrarlo con Color Groups

Gracias a los dos.

Respuesta: [FlashChat] Quien Esta Conectado?

Publicado: 08 Nov 2006, 00:11
por ktm
ola me da error en page_header y forum.php y en ambos me manda a la linea donde esta

if ( !($result = $DB->sql_query($SQL)) )

k pasa? :( ara no lo verais pork ya lo quite xd pero esta mal ese código?

Respuesta: [FlashChat] Quien esta Conectado?

Publicado: 08 Nov 2006, 09:02
por reef_01
Lo que pasa que el foro por defecto pone db y sql en mayuscula, trata de ponerlo en minusculas y me dices que tal.

Por eso siempre es mejor descargar el archivo o el texto, en ves de copiarlo directamente.

Respuesta: [FlashChat] Quien Esta Conectado?

Publicado: 08 Nov 2006, 18:15
por ktm
si era eso ya esta en el index_body asias ;)

Re: [FlashChat] Quien Esta Conectado?

Publicado: 11 Nov 2007, 00:06
por Sebet
Hola a todos: he seguido paso por paso las instrucciones que reef_01 ha dado para que se vea en las estadisticas la gente que está conectada en el Flashchat pero tengo un pequeño problema (espero). Cuando abro el flashchat y actualizo el foro me aparece lo siguiente:

[quote]Fatal error: Call to undefined function: color_group_colorize_name() in /home/.sites/28/site136/web/phpbb2/index.php on line 648[/quoteicy]

Observando la linea del index.php encuentro que tengo

[quote]$user_link = color_group_colorize_name($user[$i]['user_id']);[/quoteicy]

He provado a eliminar esa linea de codigo y entonces si que me funciona el foro, pero en las estadisticas no me aparecen los nombres de la gente que está conectada en el chat en ese momento (si el numero). Lo he revisado unas cuantas veces y no se cual puede ser el problema, aunque creo que puede tener relación con la base de datos. En tal caso voy a necesitar ayuda.

Espero haberme explicado bien.

Muchas gracias.

Re: [FlashChat] Quien Esta Conectado?

Publicado: 11 Nov 2007, 01:24
por SHARKILLO
prueba con

$user_link = $color_group_colorize_name($user[$i]['user_id']);

Re: [FlashChat] Quien Esta Conectado?

Publicado: 11 Nov 2007, 01:36
por Sebet
Hola SHARKILLO: lo acabo de provar y me sigue apareciendo el mismo error.

Gracias de todas formas.

Re: [FlashChat] Quien Esta Conectado?

Publicado: 11 Nov 2007, 03:26
por esnola
Y te seguirá dando error si no tienes el color group mod instalado

Prueba cambiando:

Código: Seleccionar todo

$user_link = $color_group_colorize_name($user[$i]['user_id']);
por:

Código: Seleccionar todo

$user_link = '<a href="profile.php?mode=viewprofile&u='.$user[$i]['user_id'].'">'.$user[$i]['uername'].'</a>';
No te pondrá el nombre según el rango, pero si no tienes el mod anterior instalada ya bueno es.
Un saludo

Re: [FlashChat] Quien Esta Conectado?

Publicado: 11 Nov 2007, 04:43
por SHARKILLO
pues prueba lo que te ha dicho y no pongas el $ que te he dicho

Re: [FlashChat] Quien esta Conectado?

Publicado: 11 Nov 2007, 07:50
por reef_01
exactamente eso te sucede porque no tienes el mod de color grup instalado en tu foro...

Asi q, ya q no lo tienes has esto en el mismo mod del flashchat...

Buscar:

Código: Seleccionar todo

	$user_link = color_group_colorize_name($user[$i]['user_id']);
	$userlist .= ( $userlist != '' ) ? ', ' . $user_link : $user_link;
Remplazar:

Código: Seleccionar todo

    $style_color = '';
		if ( $user[$i]['user_level'] == ADMIN )
		{
		  $user[$i]['username'] = '<b>' . $user[$i]['username'] . '</b>';
			$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
		}
		else if ( $user[$i]['user_level'] == MOD )
		{
			$user[$i]['username'] = '<b>' . $user[$i]['username'] . '</b>';
			$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
		}

		$user_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $user[$i]['user_id']) . '"' . $style_color .'>' . $user[$i]['username'] . '</a>';
		$userlist .= ( $userlist != '' ) ? ', ' . $user_link : $user_link;
Pruebalo y luego nos lo cuentas... ya q no lo e probado pero debe de funcionar....