Página 1 de 3
Ajax_Chat para grupos de usuarios determinados
Publicado: 23 Ene 2009, 21:22
por karbiko
URL:
http://www.fororegistrocivil.es" onclick="window.open(this.href);return false;
Versión phpBB: phpBB3 (3.0.4)
MODs Instalados: están en mi firma
Plantilla(s) usada(s): prosilver
Servidor:
Actualización desde otra versión: si de la 3.0.2
Conversión desde otro sistema de foros: No
He hecho una búsqueda sobre la posibilidad de que un chat sea de uso exclusivo para un grupo determinado de usuarios y sólo me salió
este enlace, pero que no se contestó y que, además, era para 2.0.22
En breve tengo pensado abrir el foro al público en general y tener una parte oculta para un grupo de usuarios, y quiero que éstos si que tengan acceso al Ajax_Chat.
¿Es posible hacerlo?
Lo he instalado en el index_body.htlm, y se ve perfectamente en el índice general del foro.
Si lo quisiera ver en todas las páginas que se abran dentro de la categoría y subforos a los que sólo pueden acceder siendo miembros de ese grupo, ¿Que tendría que hacer? ¿Ponerlo en lugar de en ese (index_body.html) en el overall_footer?
Si fuera allí... ¿podríais indicarme la línea de búsqueda y donde colocarlo?
Gracias..
Re: Ajax_Chat para grupos de usuarios determinados
Publicado: 23 Ene 2009, 22:27
por Manolo
Si te fijas hay una instruccion para que sea vea en el index_body
Si eso mismo lo pones en los view... creo que ya lo entendiste, no se explicarme mejor
Sobre lo otro habria que mirar si jugando con los permisos se podria hacer, yo lo instale para comprobar su funcionamiento y eso ni se me ocurrio, sino te contestan sobre ello intentare mirarlo.
Saludos
Re: Ajax_Chat para grupos de usuarios determinados
Publicado: 24 Ene 2009, 01:17
por Alorse
Pues hay una forma facil de hacerlo con moderadores y administradores pero con los demas grupos es complicado, podrias poner asi...
Código: Seleccionar todo
<!-- IF U_ACP or U_MCP --><!-- INCLUDE chat_body.html --><!-- ENDIF -->
Asi el chat solo estaria visible para estos, otra forma de darle permisos seria mediante los ID de los grupos, pero especificamente no se como se haria asi que mejor callo, para no irla a defecar...
Si alguien con los ID tiene ina idea concreta... seria bien bueno...
Re: Ajax_Chat para grupos de usuarios determinados
Publicado: 24 Ene 2009, 14:03
por karbiko
Gracias...
Funciona perfecto para los Administradores y Moderadores...
Le he incluido
delante y después de la
instrucción que dice Alorse ésto:
<!-- IF S_USER_LOGGED_IN -->
<!-- IF U_ACP or U_MCP -->
<!-- INCLUDE chat_body.html -->
<!-- ENDIF -->
<!-- ENDIF -->
De esta manera se consigue que sólo se vea el chat en el momento en que estás conectado....
A ver si logro averiguar la ID del grupo que creé para esos usuarios con permiso avazado.... o si alguien conoce alguna manera de darles ese permiso.
Estoy leyendo el
post del ajax_chat de Startrek Guide, pero tiene 340 páginas y no se qué términos (en inglés, jejejé) tengo que usar para una búsqueda avanzada....
PD: ¿Podéis editar mi primer mensaje y arreglar el enlace directo que puse? ... Creo que la coma que puse después del mismo, lo trastocó....
zenkiu verimach
Re: Ajax_Chat para grupos de usuarios determinados
Publicado: 24 Ene 2009, 18:57
por Manolo
Off Topic:
Karbiko no es la coma, es la url, ya la edite, mira con el boton citar como se tenia que poner
En la tabla phpbb_groups tienes las Id de cada grupo.
Saludos
Re: Ajax_Chat para grupos de usuarios determinados
Publicado: 24 Ene 2009, 22:38
por karbiko
Gracias Manolo....por ambas informaciones: ya vi el error de la url que yo estaba poniendo..
Gracias a la información que me has dado, ya se el groups_id del que quiero permitir que vea el chat... Es el grupo con id nº 7
Supongo que habrá que modificar la primera línea que me dijo Alorse y adaptarla a la id del grupo...
O sea:
<!-- IF U_ACP or U_MCP -->
Cambiarlo por:
Sería algo así..... Si la id del grupo al que pertenece el user es la "7" (la que se corresponde con el que yo he visto en mi tabla) entonces.... Muestra el Chat...
¿Como lo traduzco a código?
Pensaba que sería ésto, pero no va:
<!-- IF U_group_id="7"-->
Re: Ajax_Chat para grupos de usuarios determinados
Publicado: 24 Ene 2009, 22:51
por Alorse
Intenta asi haber si esto te funciona, solo estoy improvisando y me disculpor por ello, ya que nisiqeuira lo he probado...
Código: Seleccionar todo
<!-- IF $group_id == 7 --><!-- INCLUDE chat_body.html --><!-- ENDIF -->
Re: Ajax_Chat para grupos de usuarios determinados
Publicado: 24 Ene 2009, 23:12
por karbiko
No....
Había puesto la misma sentencia que has dicho, pero con un sólo símbolo de igual... y tampoco.
Lo he intentado poniendo el 7 entre comillas simples, comillas dobles, un sólo = (me daba error), etc... y no ha funcionado..
Gracias, no obstante, Alorse..
Re: Ajax_Chat para grupos de usuarios determinados
Publicado: 25 Ene 2009, 00:16
por Manolo
No tengo ni idea del codigo a usar, como no tengo sueño investigare, pero se me ocurre una cosa, si haces a ese grupo moderador, no global, le quitas los permisos que quieras y tal, con lo que ya hiciste funcionaria no?
Saludos
Re: Ajax_Chat para grupos de usuarios determinados
Publicado: 25 Ene 2009, 00:49
por karbiko
Huyyyy, mira que idea más buena....
Voy a investigar esa vía...
He estado viendo el viewonline.php y hay una consulta que saca la id del grupo y luego la compara con el nombre del grupo (if $row['group_name'] == 'BOTS')) y hace
nosequé.... (a tanto no llego descifrando el código)
Quizás sería, por esta vía, la solución al problema...
Os copio la consulta y véis si se puede aprovechar algo para ello.
Código: Seleccionar todo
// Grab group details for legend display
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);
$legend = '';
while ($row = $db->sql_fetchrow($result))
{
if $row['group_name'] == 'BOTS')
{
$legend .= (($legend != '') ? ', ' : '') . '<span style="color:#' . $row['group_colour'] . '">' . $user->lang['G_BOTS'] . '</span>';
}
else
{
$legend .= (($legend != '') ? ', ' : '') . '<a style="color:#' . $row['group_colour'] . '" href="' . append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group&g=' . $row['group_id']) . '">' . (($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name']) . '</a>';
}
}
$db->sql_freeresult($result);
Lo dicho, voy a investigar la vía que ha abierto Manolo...
Ya os cuento
Salu2
Re: Ajax_Chat para grupos de usuarios determinados
Publicado: 25 Ene 2009, 01:32
por karbiko
Probado y funcionando....
Creé un nuevo grupo, (Chatea, lo llamé) copiándole los permisos del grupo Moderadores Globales.
Edité los permisos de los grupos, poniendo los permisos de Moderador y de Administración TODOS EN NO.
Agregé a los usuarios a ese nuevo grupo, dejándo por defecto cualquiera de a los que pertenezca.
Entro como ese usuario, y voalá... se muestra el chat.
Entro como un usuario registrado y no se le muestra.
Manolo, fenomenal...
Muchas veces la manera de resolver las cosas es de la manera más sencilla y te vuelves loco dándole vueltas a como hacerlo...
Re: Ajax_Chat para grupos de usuarios determinados
Publicado: 25 Ene 2009, 01:51
por karbiko
Ya no puedo editar mi anterior msg.
Lo único que tiene como fallo, si así lo consideras, es que al estar ese grupo con permisos de moderación, le aparecen las opciones de moderar el chat
Re: Ajax_Chat para grupos de usuarios determinados
Publicado: 25 Ene 2009, 02:05
por Manolo
Si es un fallo, aunque al ser solo a un grupo privado no tanto, para comprobar si con los permisos se podria solucionar deberia realizar todo el proceso que hiciste tu, ahora es tarde, mañana si puedo lo intento a no ser que aparezca algun genio de estos que pululan por aqui y con un simple codigo solucionen el asunto
Saludos y mi reconocimiento a tu empecinamiento, te vi llegar a estos lares y reconforta que hay mas gente como yo que aprende leyendo

Re: Ajax_Chat para grupos de usuarios determinados Tema Solucionado
Publicado: 25 Ene 2009, 14:14
por mitch
Para lograr esto, en el
index.php
Buscar:
Código: Seleccionar todo
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
Agregar Despues:
Código: Seleccionar todo
// grupos chat box
$group_ids = array(
1,
2,
);
$user_ary = array();
$sql = 'SELECT user_id
FROM ' . USER_GROUP_TABLE . '
WHERE ' . $db->sql_in_set('group_id', $group_ids);
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$user_ary[$row['user_id']] = $row['user_id'];
}
$db->sql_freeresult($result);
// grupos chat box
*** En este código, al inicio, se ve un número 1 y abajo un número 2... allí tu colocas las ID's de los grupos que quieres tengan acceso al contenido (chat box).
ese 1 y 2 los puse de ejemplo.
Las ID's las puedes ver en el Panel de Control de Usuario, pestaña Grupos de Usuarios. Cada grupo tiene un enlace, y en ese enlace hay un número... esa es la ID
http://tupagina.com/phpBB3/memberlist.php?mode=group&g=11859 --> esa sería la ID del grupo por ejemplo.
Buscar:
Agregar ANTES:
Código: Seleccionar todo
// grupos chat box
'S_IS_IN_GROUP' => (in_array($user->data['user_id'], $user_ary)) ? 'ok' : '',
// grupos chat box
y luego en el
index_body.html de tu estilo
Buscar:
Cambiar por:
Código: Seleccionar todo
<!-- IF S_IS_IN_GROUP -->
<!-- INCLUDE chat_body.html -->
<!-- ENDIF -->
Eso... salu2
Re: Ajax_Chat para grupos de usuarios determinados
Publicado: 25 Ene 2009, 21:15
por ThE KuKa
Off Topic:
Me gusta la idea de karbiko, el código de Mitch... ya que a unos pocos "usuarios" se les debería prohibir el acceso al Chat, y esto seria interesante...