Página 1 de 2
Mostrar los Top Posteadores en una página externa
Publicado: 01 Abr 2010, 21:45
por Elpingo
URL:
http://forum.maktotal.net
Versión phpBB: phpBB3 (3.0.7-PL1)
MODs Instalados: tinypicplugin_phpBB3_v1.0.7, Prime_Links, Ad Management 1.0.8, bbcode_buttons_quickreply, Update_attachment, UMIL_1.0.1-pl1, Highslide-4.1.8-Mod-v4.0.5, phpBB_SEO_Ultimate_SEO_URL_v0.6.2, top_posters_1_0_0a, AJAX_Reg_Checks_100, User Reputation Points 0.3.1 (3.0.6), phpbb3 advanced similar topics, sitemap-1.0.6, Similar Topics 1.0.4
Plantilla(s) usada(s): Buziness Board
Servidor: Linux
Actualización desde otra versión: 3.0.5 > 3.0.6 > 3.0.7 PL-1
Conversión desde otro sistema de foros: No
Hola amigos, tengo instalado el Mod Top Posters y necesito saber como puedo mostrar los Top Posteadores en una pagina externa.
A quien me pueda pasar el codigo o una orientación, muy agradecido.!

Re: Mostrar los Top Posteadores en una página externa
Publicado: 02 Abr 2010, 07:45
por DaVidU
página externa te refieres a una creada por ti dentro del foro o otro sistema ? podrías darnos el enlace donde quieres ponerlo
la url de tu firma no funciona

Re: Mostrar los Top Posteadores en una página externa
Publicado: 02 Abr 2010, 18:51
por Elpingo
Si Davidu, el sitio esta momentaneamente offline por que ayer decidi cambiar de servidor y hasta tanto se delegue el ns seguirá asi.
Con respecto a la consulta que hice, me refiero a una pagina externa al foro, como por ejemplo, un portal, y de hecho esa es la idea, hacer un portal
y quisiera mostrar las estadisticas del sitio en el portal, como la cantidad de post, usuarios on line, top posteadores, usuarios mejor puntuados, etc..
Si alguien sabe o conoce un sistema de estadisiticas para implementar en un portal, estaria mas que agradecido.
Re: Mostrar los Top Posteadores en una página externa
Publicado: 02 Abr 2010, 18:57
por Alorse
y el portal donde estaria?
un ejemplo
tusitio.com/foro/index.php
el portal estaria aquí
tusitio.com/foro/portal.php o aquí
tusitio.com/portal.php (esto es una pagina externa)
Espero haberme hecho entender, haber si te podemos ayudar de una mejor manera.
Porcierto, si no podemos ver tu foro no te podemos seguir ayudando, avisanos cuando este online nuevamente.

Re: Mostrar los Top Posteadores en una página externa
Publicado: 02 Abr 2010, 20:00
por Elpingo
Gracias Alorse, si efectivamente la pagina externa seria como tu dices,
forum.maktotal.net/index.php y phpBB lo tengo en
forum.maktotal.net/forum/ entonces la idea es mostrar las estadisticas en el index.php que sería el portal del sitio.

Re: Mostrar los Top Posteadores en una página externa
Publicado: 04 Abr 2010, 03:39
por odenmc
Vaya, es algo bastante interesante en caso de que se pueda implementar, me sumo a la petición de Elpingo
Re: Mostrar los Top Posteadores en una página externa
Publicado: 04 Abr 2010, 04:05
por memoadian
Odenmc, se puede hacer, hay mods que lo hacen yo lo tengo en mi web, pero si te interesa puedes buscar, si no lo logras abrir un topic aparte.
Re: Mostrar los Top Posteadores en una página externa
Publicado: 04 Abr 2010, 04:50
por ahh72
odenmc escribió:Vaya, es algo bastante interesante en caso de que se pueda implementar, me sumo a la petición de Elpingo
debes de poner tus datos de soporte porque sin ellos no se te brindara ayuda, esta en las normas del foro
saludos
Re: Mostrar los Top Posteadores en una página externa
Publicado: 04 Abr 2010, 21:10
por odenmc
Creo que me he explicado mal, disculpas
Yo no pido nada, solo espero expectante a que contestéis a la petición de Elpingo que me parece bastante interesante, yo en realidad no quiero nada
De todos modos, gracias por vuestros comentarios, un saludo
Re: Mostrar los Top Posteadores en una página externa
Publicado: 04 Abr 2010, 21:14
por Alorse
Claro odenmc, pero a Elpingo no se le respondera hasta que no podamos ver su foro funcionando.
Un saludo.
Re: Mostrar los Top Posteadores en una página externa
Publicado: 04 Abr 2010, 21:17
por odenmc
Alorse escribió:Claro odenmc, pero a Elpingo no se le respondera hasta que no podamos ver su foro funcionando.
Un saludo.
Cierto, mis disculpas por haberos hecho perder el tiempo y no haber aportado nada al tema
Miraré en los foros oficiales a ver si veo algo y en caso de encontrar algo que pueda dar luz sobre el tema lo pondré aquí por si puede ayudaros ( Al menos hasta que elPingo reanude su foro de nuevo )
Un saludo y perdonad
Re: Mostrar los Top Posteadores en una página externa
Publicado: 05 Abr 2010, 23:29
por Alorse
El foro ya funciona, así que expplico como se hace...
Crea un archivo nuevo .php y agregale esto:
Código: Seleccionar todo
<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './foro/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('');
//Generate top poster list if enabled
global $cache, $config, $db, $user, $auth;
global $template;
$spammer_user_ids = array();
$spammer_user_ids = ($config['top_posters_excl_ids']) ? explode(",", $config['top_posters_excl_ids']) : array();
$acl_am = array();
if ($config['top_posters_excl_adm'])
{
$acl_am[] = 'a_';
}
if ($config['top_posters_excl_mod'])
{
$acl_am[] = 'm_';
}
$exclude_ids_ary = array();
$top_posters_list = $top_posters_hours_list = '';
if (sizeof($acl_am))
{
$user_ary = $auth->acl_get_list(false, $acl_am, false);
foreach ($user_ary as $forum_id => $forum_ary)
{
foreach ($forum_ary as $auth_option => $id_ary)
{
$exclude_ids_ary = array_merge($exclude_ids_ary, $id_ary);
}
}
}
$exclude_ids_ary = array_merge($exclude_ids_ary, $spammer_user_ids);
$exclude_ids_ary = array_unique($exclude_ids_ary);
$exclude_ids_ary_hours = ($config['top_posters_excl_hours']) ? $exclude_ids_ary : $spammer_user_ids;
$excluded_ids = (sizeof($exclude_ids_ary)) ? 'AND ' . $db->sql_in_set('user_id', $exclude_ids_ary, true) : '';
$excluded_ids_hours = (sizeof($exclude_ids_ary_hours)) ? 'AND ' . $db->sql_in_set('user_id', $exclude_ids_ary_hours, true) : '';
$top_posters = $config['amount_top_posters'];
// count top x posters
$sql = "SELECT username, user_id, user_type, user_colour, user_posts
FROM " . USERS_TABLE . "
WHERE user_id <> " . (int) ANONYMOUS . "
AND user_type <> " . (int) USER_IGNORE . "
AND user_posts > 0
" . $excluded_ids . "
ORDER BY user_posts DESC";
$result = $db->sql_query_limit($sql, $top_posters, 0, 0);
//delete the above line and uncomment below line if you want to cache the query for an hour
//$result = $db->sql_query_limit($sql, $top_posters, 0, 3600);
while ($row = $db->sql_fetchrow($result))
{
$top_posters_list .= (($top_posters_list != '') ? ', ' : '') . get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']) . ' ('. $row['user_posts'] .')';
}
$db->sql_freeresult($result);
// count x top posters in the last x hours
if ( $config['top_posters_hours'] )
{
$xhours = ( $config['top_posters_hours'] * 3600 );
$time = time() - $xhours;
$sql = "SELECT u.user_id, u.username, u.user_type, u.user_colour, COUNT(p.post_id) as total_posts
FROM " . USERS_TABLE . " u, " . POSTS_TABLE . " p
WHERE p.post_time > " . (int) $time . "
AND u.user_id = p.poster_id
AND u.user_id <> " . (int) ANONYMOUS . "
AND u.user_type <> " . (int) USER_IGNORE . "
" . $excluded_ids_hours . "
GROUP BY u.user_id
ORDER BY total_posts DESC";
$result = $db->sql_query_limit($sql, $top_posters, 0, 0);
while ($row = $db->sql_fetchrow($result))
{
$top_posters_hours_list .= (($top_posters_hours_list != '') ? ', ' : '') . '<em>' . get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']) . ' ('. $row['total_posts'] .')</em>';
}
$db->sql_freeresult($result);
}
$top_posters_hours = ( $config['top_posters_hours'] == 1 ) ? $user->lang['TOP_POSTERS_HOUR'] : sprintf($user->lang['TOP_POSTERS_HOURS'],$config['top_posters_hours']);
echo '<strong>Top Posteadores</strong><br />',$top_posters_list,'<br />';
echo 'En las ultimas ',$config['top_posters_hours'],' horas<br />',$top_posters_hours_list;
?>
Es todo, con eso ya se vera el Top de posteadores en el esta pagina externa.
Recuerda cambiar en la linea:
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './foro/'; donde dice
'./foro/', por la ruta de tu foro.
Todo esto es casi un
copy & paste del archivo original del MOD para que no creanq ue yo lo hice jeje
Acá dejo el ejemplo funcionando, no aparece nada en las última 24 horas ya que en ese foro nadie a escrito en tales horas.
Un saludo, ya me avisaras como funciona.
Re: Mostrar los Top Posteadores en una página externa
Publicado: 05 Abr 2010, 23:33
por Elpingo
Ya tengo el sitio On Line, espero vuestra ayuda
memoadian escribió:Odenmc, se puede hacer, hay mods que lo hacen yo lo tengo en mi web, pero si te interesa puedes buscar, si no lo logras abrir un topic aparte.
Si hay algun Mod que me permita mostrar las estadisticas del sitio en una página externa, pues por favor dime cual es...!
Gracias y saludos!!!
Re: Mostrar los Top Posteadores en una página externa
Publicado: 05 Abr 2010, 23:38
por Elpingo
Gracias Maestro... Alorse!!!
Es mucho joder si te pido la consulta a la base de datos para agregarle la cantidad total de post , los ultimos mensajes o respuestas, etc...?
Gracias nuevamente...!
Re: Mostrar los Top Posteadores en una página externa
Publicado: 05 Abr 2010, 23:42
por Alorse
Espera le trabajo un poquito, que ahi ya toca es sacar las consultas de otro archivo...