News:

Want to get involved in developing SMF, then why not lend a hand on our github!

Main Menu

Top 10 poster - Ultimo mes

Started by underc0de, May 22, 2017, 10:21:22 AM

Previous topic - Next topic

underc0de

https://www.simplemachines.org/community/index.php?topic=541823.0

Quote from: Gluz on December 16, 2015, 02:56:06 PM
Cambia al final la parte que dice así:
$temp_array[] = $member['link'];

Por esto:
$temp_array[] = $member['link'] . ' - ' . $member['posts'];

Hola, no se si fue por el update de SMF o no se, pero dejó de funcionar el código!
Espero que puedas ayudarme.

Saludos!

Por favor, evita revivir temas antiguos.  Tema dividido.  Enlace incluido para añadir el contexto - Iris.

Gluz

¿Te da algún error en el log de errores?
¿Qúe es lo que se muestra en donde debería salir el resultado de ese código?

underc0de

Quote from: Gluz on May 22, 2017, 05:01:57 PM
¿Te da algún error en el log de errores?
¿Qúe es lo que se muestra en donde debería salir el resultado de ese código?

Hola, como siempre gracias por responder. El código tenía un error. Ya pude encontrarlo

function ssi_topPosterMonth($topNumber = 10, $output_method = 'echo')
{
global $db_prefix, $scripturl, $smcFunc;

$monthStartUnix = strtotime(date('Y') . date('m') . '01T000000');

// Find the latest poster.
$request = $smcFunc['db_query']('', '
SELECT id_member, poster_name, COUNT(id_member) as counts
FROM {db_prefix}messages
WHERE poster_time > {int:startDate}
GROUP BY id_member
ORDER BY counts DESC, poster_name ASC
LIMIT {int:topNumber}',
array(
'topNumber' => $topNumber,
'startDate' => $monthStartUnix,
)
);
$return = array();
while ($row = $smcFunc['db_fetch_assoc']($request))
$return[] = array(
'id' => $row['id_member'],
'name' => $row['poster_name'],
'href' => $scripturl . '?action=profile;u=' . $row['id_member'],
'link' => '<a href="' . $scripturl . '?action=profile;u=' . $row['id_member'] . '">' . $row['poster_name'] . '</a>',
'posts' => $row['counts']
);
$smcFunc['db_free_result']($request);


// Just return all the top posters.
if ($output_method != 'echo')
return $return;

// Make a quick array to list the links in.
$temp_array = array();
foreach ($return as $member)
$temp_array[] = $member['link'];

echo implode('<br /> ', $temp_array);
}


Ahí esta el que funciona.
Mil gracias por todo!

Gluz

Oh, ya veo, un espacio donde no debería  :P

Que bien que ya te funcionó, me pregunto si antes funcionaba por mera coincidencia o que pasaría, pues alguna actualización (probablemente de PHP) causó que el código se evaluara correctamente y de ahí que no mostrara resultados.

Advertisement: