Hola les dejo TOP POST CON FILTROS
HOY, AYER, SEMANA, mes, historico!
1.- Buscan el recent.php
//Top poster week
Antes de eso Agregar
//Top poster mes by Mr.Freack
/* tops post ayer by foroposteadores */
$startime = mktime(0, 0, 0, date("n"), date("j")-1, date("Y"));
$startime = forum_time(false, $startime);
$request = db_query("
SELECT me.ID_MEMBER, me.memberName, me.realName, COUNT(*) as count_posts
FROM {$db_prefix}messages AS m
LEFT JOIN {$db_prefix}members AS me ON (me.ID_MEMBER = m.ID_MEMBER)
WHERE m.posterTime > $startime
AND m.ID_MEMBER != 0
GROUP BY me.ID_MEMBER
ORDER BY count_posts DESC
LIMIT 10", __FILE__, __LINE__);
$context['top_posters_ayer'] = array();
$max_num_posts = 1;
while ($row_members = mysql_fetch_assoc($request))
{$context['top_posters_ayer'][] = array(
'name' => $row_members['realName'],
'id' => $row_members['ID_MEMBER'],
'num_posts' => $row_members['count_posts'],
'href' => $scripturl . '?action=profile;u=' . $row_members['ID_MEMBER'],
'link' => '<a href="' . $scripturl . '?action=profile;u=' . $row_members['ID_MEMBER'] . '">' . $row_members['realName'] . '</a>');
if ($max_num_posts < $row_members['count_posts'])
$max_num_posts = $row_members['count_posts'];}
mysql_free_result($request);
foreach ($context['top_posters_ayer'] as $i => $j)
$context['top_posters_ayer'][$i]['post_percent'] = round(($j['num_posts'] * 100) / $max_num_posts);
unset($max_num_posts, $row_members, $j, $i);
$startime = mktime(0, 0, 0, date("n"), date("j")-1, date("Y"));
$startime = forum_time(false, $startime);
$request = db_query("
SELECT m.subject, m.ID_TOPIC, t.ID_TOPIC, t.puntos
FROM {$db_prefix}topics AS t INNER JOIN {$db_prefix}messages AS m ON t.ID_TOPIC = m.ID_TOPIC
WHERE m.posterTime > $startime
ORDER BY t.puntos DESC
LIMIT 10", __FILE__, __LINE__);
$context['top_posts_ayer'] = array();
while ($row = mysql_fetch_assoc($request))
$context['top_posts_ayer'][] = array(
'titulo' => $row['subject'],
'puntos' => $row['puntos'],
'id' => $row['ID_TOPIC']);
mysql_free_result($request);
/* tops post hoy by foroposteadores */
$startime = mktime(0, 0, 0, date("n"), date("j")-0, date("Y"));
$startime = forum_time(false, $startime);
$request = db_query("
SELECT me.ID_MEMBER, me.memberName, me.realName, COUNT(*) as count_posts
FROM {$db_prefix}messages AS m
LEFT JOIN {$db_prefix}members AS me ON (me.ID_MEMBER = m.ID_MEMBER)
WHERE m.posterTime > $startime
AND m.ID_MEMBER != 0
GROUP BY me.ID_MEMBER
ORDER BY count_posts DESC
LIMIT 10", __FILE__, __LINE__);
$context['top_posters_hoy'] = array();
$max_num_posts = 1;
while ($row_members = mysql_fetch_assoc($request))
{$context['top_posters_hoy'][] = array(
'name' => $row_members['realName'],
'id' => $row_members['ID_MEMBER'],
'num_posts' => $row_members['count_posts'],
'href' => $scripturl . '?action=profile;u=' . $row_members['ID_MEMBER'],
'link' => '<a href="' . $scripturl . '?action=profile;u=' . $row_members['ID_MEMBER'] . '">' . $row_members['realName'] . '</a>');
if ($max_num_posts < $row_members['count_posts'])
$max_num_posts = $row_members['count_posts'];}
mysql_free_result($request);
foreach ($context['top_posters_hoy'] as $i => $j)
$context['top_posters_hoy'][$i]['post_percent'] = round(($j['num_posts'] * 100) / $max_num_posts);
unset($max_num_posts, $row_members, $j, $i);
$startime = mktime(0, 0, 0, date("n"), date("j")-0, date("Y"));
$startime = forum_time(false, $startime);
$request = db_query("
SELECT m.subject, m.ID_TOPIC, t.ID_TOPIC, t.puntos
FROM {$db_prefix}topics AS t INNER JOIN {$db_prefix}messages AS m ON t.ID_TOPIC = m.ID_TOPIC
WHERE m.posterTime > $startime
ORDER BY t.puntos DESC
LIMIT 10", __FILE__, __LINE__);
$context['top_posts_hoy'] = array();
while ($row = mysql_fetch_assoc($request))
$context['top_posts_hoy'][] = array(
'titulo' => $row['subject'],
'puntos' => $row['puntos'],
'id' => $row['ID_TOPIC']);
mysql_free_result($request);
$startime = mktime(0, 0, 0, date("n"), date("j")-30, date("Y"));
$startime = forum_time(false, $startime);
$request = db_query("
SELECT me.ID_MEMBER, me.memberName, me.realName, COUNT(*) as count_posts
FROM {$db_prefix}messages AS m
LEFT JOIN {$db_prefix}members AS me ON (me.ID_MEMBER = m.ID_MEMBER)
WHERE m.posterTime > $startime
AND m.ID_MEMBER != 0
GROUP BY me.ID_MEMBER
ORDER BY count_posts DESC
LIMIT 10", __FILE__, __LINE__);
$context['top_posters_me'] = array();
$max_num_posts = 1;
while ($row_members = mysql_fetch_assoc($request))
{$context['top_posters_me'][] = array(
'name' => $row_members['realName'],
'id' => $row_members['ID_MEMBER'],
'num_posts' => $row_members['count_posts'],
'href' => $scripturl . '?action=profile;u=' . $row_members['ID_MEMBER'],
'link' => '<a href="' . $scripturl . '?action=profile;u=' . $row_members['ID_MEMBER'] . '">' . $row_members['realName'] . '</a>');
if ($max_num_posts < $row_members['count_posts'])
$max_num_posts = $row_members['count_posts'];}
mysql_free_result($request);
foreach ($context['top_posters_me'] as $i => $j)
$context['top_posters_me'][$i]['post_percent'] = round(($j['num_posts'] * 100) / $max_num_posts);
unset($max_num_posts, $row_members, $j, $i);
$startime = mktime(0, 0, 0, date("n"), date("j")-30, date("Y"));
$startime = forum_time(false, $startime);
$request = db_query("
SELECT m.subject, m.ID_TOPIC, t.ID_TOPIC, t.puntos
FROM {$db_prefix}topics AS t INNER JOIN {$db_prefix}messages AS m ON t.ID_TOPIC = m.ID_TOPIC
WHERE m.posterTime > $startime
ORDER BY t.puntos DESC
LIMIT 10", __FILE__, __LINE__);
$context['top_posts_me'] = array();
while ($row = mysql_fetch_assoc($request))
$context['top_posts_me'][] = array(
'titulo' => $row['subject'],
'puntos' => $row['puntos'],
'id' => $row['ID_TOPIC']);
mysql_free_result($request);
//Top poster week
$starttime = mktime(0, 0, 0, date("n"), date("j")-7, date("Y"));
$starttime = forum_time(false, $starttime);
$request = db_query("
SELECT me.ID_MEMBER, me.memberName, me.realName, COUNT(*) as count_posts
FROM {$db_prefix}messages AS m
LEFT JOIN {$db_prefix}members AS me ON (me.ID_MEMBER = m.ID_MEMBER)
WHERE m.posterTime > $starttime
AND m.ID_MEMBER != 0
GROUP BY me.ID_MEMBER
ORDER BY count_posts DESC
LIMIT 10", __FILE__, __LINE__);
$context['top_posters_week'] = array();
$max_num_posts = 1;
while ($row_members = mysql_fetch_assoc($request))
{
$context['top_posters_week'][] = array(
'name' => $row_members['realName'],
'id' => $row_members['ID_MEMBER'],
'num_posts' => $row_members['count_posts'],
'href' => $scripturl . '?action=profile;u=' . $row_members['ID_MEMBER'],
'link' => '<a href="' . $scripturl . '?action=profile;u=' . $row_members['ID_MEMBER'] . '">' . $row_members['realName'] . '</a>'
);
if ($max_num_posts < $row_members['count_posts'])
$max_num_posts = $row_members['count_posts'];
}
mysql_free_result($request);
foreach ($context['top_posters_week'] as $i => $j)
$context['top_posters_week'][$i]['post_percent'] = round(($j['num_posts'] * 100) / $max_num_posts);
unset($max_num_posts, $row_members, $j, $i);
2.- Luego vayan a su Recent.template.php y BUSCAN:
TAGS
Y Arriba Agregan
//TOP Post by Mr.Freack
$request = db_query("
SELECT m.subject, m.ID_TOPIC, t.ID_TOPIC, t.puntos
FROM (smf_topics AS t, smf_messages AS m)
WHERE t.ID_TOPIC = m.ID_TOPIC
ORDER BY t.puntos DESC
LIMIT 10 ", __FILE__, __LINE__);
$context['postporpuntos'] = array();
while ($row = mysql_fetch_assoc($request))
$context['postporpuntos'][] = array(
'titulo' => $row['subject'],
'puntos' => $row['puntos'],
'id' => $row['ID_TOPIC'],
);
mysql_free_result($request);
echo'<div class="act_comments" style="">
<div class="box_title" style="width: 287px;"><div class="box_txt ultimos_comments">Posts TOPS <a href="', $scripturl,
'?action=TOPs">(Ver más)</a></div>
<div class="box_rss" style="width: 282px;margin-top:-20px"><div class="icon_img"
style="float:right;display:none"></div></div></div>
<ul class="pestanas" style="width: 79%;">
<li><a href="#p5"><b>Histórico</b></a></li>
<li><a href="#p4"><b>Mes</b></a></li>
<li><a href="#p3"><b>Semana</b></a></li>
<li><a href="#p1"><b>Ayer</b></a></li>
<li><a href="#p2"><b>Hoy</b></a></li>
</ul>
<div class="box_buscar" style="margin-bottom:4px;width:278px;float:left" align="left">
<script type="text/javascript" src="'.$settings['theme_url'].'/tops.js"></script>
<div class="tab_container">
<div id="p2" class="contenido_" >';
$contador = 0;
foreach ($context['top_posts_hoy'] as $tpm)
{
$tamano = 38; // cantidad caracteres
$contador++;
if (strlen($tpm['titulo'])>$tamano) {$tpm['titulo']=substr($tpm['titulo'],0,$tamano-1)."...";}
echo ' '.$contador.'. <a class="size11" title="', $tpm['titulo'], '" href="', $scripturl ,'?topic=', $tpm['id'], '">', $tpm['titulo'],
'</a> <font class="size11">(', $tpm['puntos'], ' ', $txt['points_abrevation'], ')</font><br>';
}
echo'</div>
<div id="p1" class="contenido_" style="height: 90%;">';
$contador = 0;
foreach ($context['top_posts_ayer'] as $tpm)
{
$tamano = 38; // cantidad caracteres
$contador++;
if (strlen($tpm['titulo'])>$tamano) {$tpm['titulo']=substr($tpm['titulo'],0,$tamano-1)."...";}
echo ' '.$contador.'. <a class="size11" title="', $tpm['titulo'], '" href="', $scripturl ,'?topic=', $tpm['id'], '">', $tpm['titulo'],
'</a> <b><font class="size11">       (', $tpm['puntos'], ' ', $txt['points_abrevation'],
')</font></b><br>';
}
echo'</div>
<div id="p5" class="contenido_">';
foreach ($context['postporpuntos'] as $ppp){
$tamano = 38; // tamaño máximo en carácteres, los espacios también cuentan
$contador = 0;
$arrayTexto = split(' ',$ppp['titulo']);
$ppp['titulo'] = '';
while($tamano >= strlen($ppp['titulo']) + strlen($arrayTexto[$contador])){
$ppp['titulo'] .= ' '.$arrayTexto[$contador];
$contador++;
}
echo ' <font class="size11">'.$contar6++.'. <a title="', $ppp['titulo'], '" href="?topic=', $ppp['id'], '">', $ppp['titulo'], '</a> (',
$ppp['puntos'], ' pts)</font><br>';}
echo'</div>
<div id="p4" class="contenido_">';
$contador = 0;
foreach ($context['top_posts_me'] as $tpm)
{
$tamano = 38; // cantidad caracteres
$contador++;
if (strlen($tpm['titulo'])>$tamano) {$tpm['titulo']=substr($tpm['titulo'],0,$tamano-1)."...";}
echo ' '.$contador.'. <a class="size11" title="', $tpm['titulo'], '" href="', $scripturl ,'?topic=', $tpm['id'], '">', $tpm['titulo'],
'</a> <font class="size11"> (', $tpm['puntos'], ' ', $txt['points_abrevation'], ')</font><br>';
}
echo'</div>
<div id="p3" class="contenido_">';
$contador = 0;
foreach ($context['top_posts_week'] as $tpw)
{
$tamano = 38; // tamaño máximo en carácteres, los espacios también cuentan
$contador++;
if (strlen($tpw['titulo'])>$tamano) {$tpw['titulo']=substr($tpw['titulo'],0,$tamano-1)."...";}
echo ' <font class="size11">'.$contador.'. <a class="tooltip" title=" ', $tpw['titulo'], ' " href="?topic=', $tpw['id'], '">',
$tpw['titulo'], '</a> (', $tpw['puntos'], ' pts)</font><br>';
}
echo'</div>
</div></div></div>';
//fin TOP Post by Mr.Freack
3.- Luego de eso van a su estilos.......CSS y agregan al final:
/*top posts v2.1 by Mr.Freack*/
ul.pestanas{
margin: 0;
float: left;
list-style: none;
background:#cfcfcf;
align-text:right;
height:18px;
width:99.5%;
padding: 3px;
border-top:1px solid #EEE;
color:#2F2F2F;
}
ul.pestanas li {
float:right;
background:#cfcfcf;
margin: 0;
padding-left: 3px;
height:15px;
line-height: 15px;
color: #ffffff;}
ul.pestanas li a {
padding-left: 3px;
text-decoration: none;
color:#2F2F2F;
display: block;
font-size: 11px;
padding: 0 10px;
background:#cfcfcf;
outline: none;}
ul.pestanas li a:hover {
text-decoration:underline;
}
ul.pestanas li.active a{
-moz-border-radius:20px 20px 20px 20px;
-moz-box-shadow:0 -3px 12px rgba(0, 0, 0, 0.3) inset, 0 1px 3px rgba(0, 0, 0, 0.7) inset;
background:none repeat scroll 0 0 #8C8C8C;
color:#FFFFFF;
font-weight:bold;
padding:1px 8px;
text-shadow:0 1px 1px #000000; }
.entry_top {float:left; width: 360px;border-bottom:1px dashed #002d39;padding:5px 0 0 4px;margin-top:-6px}
.entry_top.stycky { background: #F4F4F4; }
.entry_top:hover { background: #f9942a;color:#000000}
.entry_top .icon{float:left;}
.entry_top .icon img { width:16px; }
.entry_top .text_container { float:left; margin-left: 5px;}
.entry_top .text_container:hover{ float:left; margin-left: 5px;}
.entry_top .title { float:left;font-size: 12px; overflow: hidden;width:327px;overflow: hidden;height:20px;line-height:20px;}
.entry_top .title a:visited { color: #404040; text-decoration: none;}
.entry_top .title a:hover { color: #404040; text-decoration: underline; }
.entry_top .info_icon {vertical-align:middle;float:left;cursor:pointer;}
.entry_top .data { display:none; color: #999; font-size: 11px;letter-spacing:0px;}
/*fin top by Mr.Freack*/
El bloque esta fixeado, Y editado!
Creditos a MR.FREAK y
FOROPOSTEADORES