Versión de YaBB SE: 1.5.5
Versión de PHP: 4.3.4
Versión de MySQL: 4.0.x
Plataforma del Servidor: Unix, Linux, or BSD
Descripción del Problema:Hola,
Me gustaría hacer un recentTopics(); del ssi.php pero sólo de un foro (id_board)
He visto este mensaje que es exactamente lo que quiero, pero no me funciona, porque imagino que es de una versión vieja del ssi:
http://www.yabbse.org/community/index.php?thread=22526/0Ya he probado cambiando la query, pero no funciona bien.
Por ejemplo quiero que el recentTopics sólo muestre los mensajes del board=2
-->
Quotefunction recentTopics ()
[..]
$request = mysql_query("
SELECT t.ID_LAST_MSG
FROM {$db_prefix}topics AS t, {$db_prefix}boards AS b, {$db_prefix}categories AS c
WHERE b.ID_BOARD = 2
AND c.ID_CAT = b.ID_CAT
AND (FIND_IN_SET('$settings[7]', c.memberGroups) != 0 OR c.memberGroups = '' OR '$settings[7]' = 'Administrator' OR '$settings[7]' = 'Global Moderator')
" . ($timeLimit > 0 ? 'AND m.posterTime>' . (time() - $timeLimit) : '') . "
ORDER BY t.ID_LAST_MSG DESC
LIMIT $num_recentTopics") or database_error(__FILE__, __LINE__);
$messages = array();
while ($row = mysql_fetch_array($request))
$messages[] = $row['ID_LAST_MSG'];
if (count($messages))
{
$request = mysql_query("
SELECT m.posterTime, m.subject, m.ID_TOPIC, m.posterName, m.ID_MEMBER, IFNULL(mem.realName, m.posterName) AS posterDisplayName, t.numReplies, t.ID_BOARD, t.ID_FIRST_MSG, b.name AS bName, IFNULL(lt.logTime, 0) AS isRead, IFNULL(lmr.logTime, 0) AS isMarkedRead
FROM {$db_prefix}messages AS m, {$db_prefix}topics AS t, {$db_prefix}boards as b
LEFT JOIN {$db_prefix}members AS mem ON (mem.ID_MEMBER=m.ID_MEMBER)
LEFT JOIN {$db_prefix}log_topics AS lt ON (lt.ID_TOPIC=t.ID_TOPIC AND lt.ID_MEMBER=$ID_MEMBER)
LEFT JOIN {$db_prefix}log_mark_read AS lmr ON (lmr.ID_BOARD=2 AND lmr.ID_MEMBER=$ID_MEMBER)
WHERE m.ID_MSG IN (" . implode(',', $messages) . ")
AND t.ID_TOPIC=m.ID_TOPIC
AND b.ID_BOARD= 2
ORDER BY m.posterTime DESC;") or database_error(__FILE__, __LINE__);