Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..
Gracias.
La Administración de phpBB España.
Ayuda para programar estoTema Solucionado
Ayuda para programar esto Tema Solucionado
Hola,
me gustaría que cuando un usuario es baneado ya sea de forma temporal o permanente, aparezca un cartel en TODOS los mensajes que ha escrito indicando que el Usuario: xxxx han sido baneado durante: xxxxx por el siguiente motivo: xxxxx
Obviamente los xxxx saldrían de la base de datos.
Cuando me voy a Benar dentro del perfil de un usuario, hay dos campos que son los que me interesa, uno es el banlength que indica la duración de la exclusión, y el otro es el banreason que indica el motivo. Por lo que he visto, los datos los guarda en la tabla ban_list siendo los campos que me interesaría el ban_userid, ban_end y ban_reason.
Bien lo que no sé es como programarlo, en plan: Si ban_userid=id usuario del mensaje then mostrar El usuario xxx ha sido baneado hasta el: ban_end por el siguiente motivo: ban_reason
y que apareciera en todos sus mensajes. Vamos es como si a mi me banearan de esta web y en este mensaje justo encima de donde pone Hola, aparecería ese mensaje.
Saludos.
me gustaría que cuando un usuario es baneado ya sea de forma temporal o permanente, aparezca un cartel en TODOS los mensajes que ha escrito indicando que el Usuario: xxxx han sido baneado durante: xxxxx por el siguiente motivo: xxxxx
Obviamente los xxxx saldrían de la base de datos.
Cuando me voy a Benar dentro del perfil de un usuario, hay dos campos que son los que me interesa, uno es el banlength que indica la duración de la exclusión, y el otro es el banreason que indica el motivo. Por lo que he visto, los datos los guarda en la tabla ban_list siendo los campos que me interesaría el ban_userid, ban_end y ban_reason.
Bien lo que no sé es como programarlo, en plan: Si ban_userid=id usuario del mensaje then mostrar El usuario xxx ha sido baneado hasta el: ban_end por el siguiente motivo: ban_reason
y que apareciera en todos sus mensajes. Vamos es como si a mi me banearan de esta web y en este mensaje justo encima de donde pone Hola, aparecería ese mensaje.
Saludos.
URL: http://www.exiliadosfc.com
Plantilla(s) usuada(s): art_deluxe
MODs instalados: Automod, Prime Warnings, Advanced BBCode Box 3, Prime Trash Bin, AOS notifications, Share Topic Plus, Askimet, Alternate Login, NV newspage, Tapatalk.
Versión de phpBB: 3.0.11
Servidor: pago
Plantilla(s) usuada(s): art_deluxe
MODs instalados: Automod, Prime Warnings, Advanced BBCode Box 3, Prime Trash Bin, AOS notifications, Share Topic Plus, Askimet, Alternate Login, NV newspage, Tapatalk.
Versión de phpBB: 3.0.11
Servidor: pago
Mostrar estado de baneado y tiempo de baneo en viewtopic
He tocado algunas cosas y he logrado lo que deseas... así que abre el archivo viewtopic.php y busca:Antes agrega:Busca:Antes agrega:Busca: Después agrega:
Abre viewtopic_body.html de tu plantilla y busca:Antes agrega:
Y eso es todo, no olvides limpiar el caché despues de hacer los cambios.
Código: Seleccionar todo
unset($id_cache);
Código: Seleccionar todo
/* Usuarios baneados por Alorse */
$sql = 'SELECT b.*
FROM ' . BANLIST_TABLE . ' b
WHERE (b.ban_end >= ' . time() . '
OR b.ban_end = 0)';
$result = $db->sql_query($sql);
$ban_list = array();
while ($row2 = $db->sql_fetchrow($result))
{
$ban_list['ban_userid'][] = $row2['ban_userid'];
$ban_list['ban_end'][] = $row2['ban_end'];
$ban_list['ban_reason'][] = $row2['ban_reason'];
$ban_list['ban_start'][] = $row2['ban_start'];
}
$db->sql_freeresult($result);
/* Usuarios baneados por Alorse */
Código: Seleccionar todo
//
$postrow = array(
Código: Seleccionar todo
/* Usuarios baneados por Alorse */
if(sizeof($ban_list)){
$user->setup('acp/ban');
$user_ban = (in_array($poster_id, $ban_list['ban_userid'])) ? true : false;
$key_ban = (array_search($poster_id, $ban_list['ban_userid']));
$ban_end_text = array(0 => $user->lang['PERMANENT'], 30 => $user->lang['30_MINS'], 60 => $user->lang['1_HOUR'], 360 => $user->lang['6_HOURS'], 1440 => $user->lang['1_DAY'], 10080 => $user->lang['7_DAYS'], 20160 => $user->lang['2_WEEKS'], 40320 => $user->lang['1_MONTH'], -1 => $user->lang['UNTIL'] . ' -> ');
$time_length = ($ban_list['ban_end'][$key_ban]) ? ($ban_list['ban_end'][$key_ban] - $ban_list['ban_start'][$key_ban]) / 60 : 0;
}else{
$user_ban = false;
}
/* Usuarios baneados por Alorse */
Código: Seleccionar todo
'U_SEARCH' => $user_cache[$poster_id]['search'],
Código: Seleccionar todo
/* Usuarios baneados por Alorse */
'S_USER_BANNED' => $user_ban,
'S_USER_BANNED_TIME' => $user_ban ? ($time_length == 0) ? $user->lang['PERMANENT'] : sprintf($user->lang['BANNED_UNTIL_DURATION'], $ban_end_text[$time_length], $user->format_date($ban_list['ban_end'][$key_ban], false, true)) : 0,
'S_USER_BANNED_REASON' => $user_ban ? $ban_list['ban_reason'][$key_ban] : "",
/* Usuarios baneados por Alorse */
Código: Seleccionar todo
<div class="content">{postrow.MESSAGE}</div>
Código: Seleccionar todo
<!-- IF postrow.S_USER_BANNED -->
<p class="rules">
<!-- IF postrow.S_USER_BANNED -->El usuario {postrow.POST_AUTHOR_FULL} ha sido baneado durante: {postrow.S_USER_BANNED_TIME} por el siguiente motivo: {postrow.S_USER_BANNED_REASON}<!-- ELSEIF postrow.POSTER_WARNINGS -->{L_WARNINGS}: {postrow.POSTER_WARNINGS}<!-- ENDIF -->
</p>
<!-- ENDIF -->
Re: Mostrar estado de baneado y tiempo de baneo en viewtopic
Sencillamente IMPRESIONANTE.Alorse escribió:Por favor no cites mensajes tan grandes.
Sólo una duda, ¿hay alguna forma de que en la dureción sólo salga las semanas sin el hasta? por ejemplo, si baneo a un usuario 2 semanas, que ponga:
El usuario xzxx ha sido baneado durante 2 semanas.... sin el (hasta el ...). Imagino que eso será ya porque la base de datos lo guarda así.
Muchísimas Gracias de verdad.
Un saludo.
Última edición por Alorse el 24 Ene 2013, 20:27, editado 3 veces en total.
Razón: Editar citado
Razón: Editar citado
URL: http://www.exiliadosfc.com
Plantilla(s) usuada(s): art_deluxe
MODs instalados: Automod, Prime Warnings, Advanced BBCode Box 3, Prime Trash Bin, AOS notifications, Share Topic Plus, Askimet, Alternate Login, NV newspage, Tapatalk.
Versión de phpBB: 3.0.11
Servidor: pago
Plantilla(s) usuada(s): art_deluxe
MODs instalados: Automod, Prime Warnings, Advanced BBCode Box 3, Prime Trash Bin, AOS notifications, Share Topic Plus, Askimet, Alternate Login, NV newspage, Tapatalk.
Versión de phpBB: 3.0.11
Servidor: pago
Re: Ayuda para programar esto
Lo que pasa es que si baneas a alguien por 2 semanas, y solo falta un día para que se quite el baneo, ya a seguir saliendo 2 semanas y ni tú vas a saber cuanto es que hace falta.
Intenta hacer la resta para que mostrara solo tiempo que hace falta, pero se alargaba mucho, porque eran muchas condiciones, si faltan minutos, ni puede mostrar horas, días, semanas, meses, si faltan días, no puede mostrar semanas y meses, en fin, se volvía algo larguísimo.
Si quieres modificarlo la variable
Te recomiendo que lo dejes así.
Intenta hacer la resta para que mostrara solo tiempo que hace falta, pero se alargaba mucho, porque eran muchas condiciones, si faltan minutos, ni puede mostrar horas, días, semanas, meses, si faltan días, no puede mostrar semanas y meses, en fin, se volvía algo larguísimo.
Si quieres modificarlo la variable
$time_length
es la que tiene el tiempo de baneo y 'S_USER_BANNED_TIME'
es el encargado de mostrar el aviso del tiempo, puedes jugar con ellas, pero como te digo no es sencillo porque pueden haber muchos casos de tiempo de baneo.Te recomiendo que lo dejes así.
Re: Ayuda para programar esto
OK, tienes razón, no había caido en eso. Ahora tengo que mirar como puedo hacer que cuando sale el usuario, lo haga sin el link para ver su perfil, ya que me descuadra la linea.Alorse escribió:Lo que pasa es que si baneas a alguien por 2 semanas, y solo falta un día para que se quite el baneo, ya a seguir saliendo 2 semanas y ni tú vas a saber cuanto es que hace falta.
Intenta hacer la resta para que mostrara solo tiempo que hace falta, pero se alargaba mucho, porque eran muchas condiciones, si faltan minutos, ni puede mostrar horas, días, semanas, meses, si faltan días, no puede mostrar semanas y meses, en fin, se volvía algo larguísimo.
Si quieres modificarlo la variable$time_length
es la que tiene el tiempo de baneo y'S_USER_BANNED_TIME'
es el encargado de mostrar el aviso del tiempo, puedes jugar con ellas, pero como te digo no es sencillo porque pueden haber muchos casos de tiempo de baneo.
Te recomiendo que lo dejes así.

Saludos.
URL: http://www.exiliadosfc.com
Plantilla(s) usuada(s): art_deluxe
MODs instalados: Automod, Prime Warnings, Advanced BBCode Box 3, Prime Trash Bin, AOS notifications, Share Topic Plus, Askimet, Alternate Login, NV newspage, Tapatalk.
Versión de phpBB: 3.0.11
Servidor: pago
Plantilla(s) usuada(s): art_deluxe
MODs instalados: Automod, Prime Warnings, Advanced BBCode Box 3, Prime Trash Bin, AOS notifications, Share Topic Plus, Askimet, Alternate Login, NV newspage, Tapatalk.
Versión de phpBB: 3.0.11
Servidor: pago
Re: Ayuda para programar esto
Edité tu mensaje anterior porque citabas contenido, por favor no lo hagas a menos que en realidad sea necesario.
Para hacer lo que quieres en el viretopic_body.html cambia
Es todo.
Para hacer lo que quieres en el viretopic_body.html cambia
{postrow.POST_AUTHOR_FULL}
por {postrow.POST_AUTHOR}
.Es todo.
Re: Ayuda para programar esto
OK.Alorse escribió:Edité tu mensaje anterior porque citabas contenido, por favor no lo hagas a menos que en realidad sea necesario.
Para hacer lo que quieres en el viretopic_body.html cambia{postrow.POST_AUTHOR_FULL}
por{postrow.POST_AUTHOR}
.
Es todo.
Pues ya está, ahora sale perfecto.
Gracias de nuevo.
URL: http://www.exiliadosfc.com
Plantilla(s) usuada(s): art_deluxe
MODs instalados: Automod, Prime Warnings, Advanced BBCode Box 3, Prime Trash Bin, AOS notifications, Share Topic Plus, Askimet, Alternate Login, NV newspage, Tapatalk.
Versión de phpBB: 3.0.11
Servidor: pago
Plantilla(s) usuada(s): art_deluxe
MODs instalados: Automod, Prime Warnings, Advanced BBCode Box 3, Prime Trash Bin, AOS notifications, Share Topic Plus, Askimet, Alternate Login, NV newspage, Tapatalk.
Versión de phpBB: 3.0.11
Servidor: pago