He comprobado que la consulta a la base de datos es correcta:
Código: Seleccionar todo
function subscribed()
{
global $user, $db, $auth;
$forbidden_forums = $auth->acl_getf('!f_read', true);
$forbidden_forums = array_unique(array_keys($forbidden_forums));
$sql_array = array(
'SELECT' => 'f.*',
'FROM' => array(
FORUMS_WATCH_TABLE => 'fw',
FORUMS_TABLE => 'f'
),
'WHERE' => 'fw.user_id = ' . $user->data['user_id'] . '
AND f.forum_id = fw.forum_id
AND ' . $db->sql_in_set('f.forum_id', $forbidden_forums, true, true),
'ORDER BY' => 'left_id'
);
$sql = $db->sql_build_query('SELECT', $sql_array);
$result = $db->sql_query($sql);
while($row = $db->sql_fetchrow($result))
{
$res=$row['forum_id'];
}
$db->sql_freeresult($result);
}
$s_subscribed = subscribed();
$row ofrece el contenido de todos los campos de los foros suscritos y $res ofrece el forum_id de esos foros.
El problema es que no sé como hacer para que en el template se muestren los datos de únicamente esos foros. En el template tengo esto:
Código: Seleccionar todo
<table class="tablebg" cellspacing="0" width="100%">
<tr>
<td class="cat" align="left" height="24"><h4>{L_SUBSCRIBED_FORUMS}</h4></td>
<!-- IF S_SUBSCRIBED -->
<td class="cat" width="14" height="24"><a href="#" onclick="layerTest('expand{forumrow.FORUM_ID}')"><img src="{T_THEME_PATH}/images/expand.gif" width="17" height="16" alt="" /></a></td>
<!-- ENDIF -->
</tr>
<tr>
<!-- IF S_SUBSCRIBED -->
<td colspan="2">
<div id="expand{forumrow.FORUM_ID}">
<table class="tablebg" cellspacing="0" width="100%">
<tr>
<td class="row3h" colspan="2"> {L_FORUM} </td>
<td class="row3h" align="center" width="50"> {L_TOPICS} </td>
<td class="row3h" align="center" width="50"> {L_POSTS} </td>
<td class="row3h" align="center" width="175"> {L_LAST_POST} </td>
</tr>
<!-- BEGIN forumrow -->
<!-- IF not forumrow.S_IS_CAT -->
<!-- IF forumrow.S_IS_LINK -->
<tr>
<td class="forumrow" width="31" align="center">{forumrow.FORUM_FOLDER_IMG}</td>
<td class="row1h clickable" onclick="window.location.href='{forumrow.U_VIEWFORUM}'">
<!-- IF forumrow.FORUM_IMAGE -->
<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td align="middle" style="padding-{S_CONTENT_FLOW_END}: 5px;">{forumrow.FORUM_IMAGE}</td><td width="100%" valign="middle">
<!-- ENDIF -->
<a class="forumlink" href="{forumrow.U_VIEWFORUM}">{forumrow.FORUM_NAME}</a>
<p class="forumdesc">{forumrow.FORUM_DESC}</p>
<!-- IF forumrow.FORUM_IMAGE --></td></tr></table><!-- ENDIF -->
</td>
<!-- IF forumrow.CLICKS -->
<td class="forumrow" colspan="3" align="center"><span class="genmed">{L_REDIRECTS}: {forumrow.CLICKS}</span></td>
<!-- ELSE -->
<td class="forumrow" colspan="3" align="center"> </td>
<!-- ENDIF -->
</tr>
<!-- ELSE -->
<tr>
<td class="forumrow" width="31" align="center">{forumrow.FORUM_FOLDER_IMG}</td>
<td class="row1h clickable" width="70%" onclick="window.location.href='{forumrow.U_VIEWFORUM}'">
<!-- IF forumrow.FORUM_IMAGE -->
<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td align="middle" style="padding-{S_CONTENT_FLOW_END}: 5px;">{forumrow.FORUM_IMAGE}</td><td width="100%" valign="middle">
<!-- ENDIF -->
<a class="forumlink<!-- IF forumrow.S_UNREAD_FORUM --> link-new<!-- ENDIF -->" href="{forumrow.U_VIEWFORUM}">{forumrow.FORUM_NAME}</a>
<p class="forumdesc">{forumrow.FORUM_DESC}</p>
<!-- IF forumrow.MODERATORS -->
<p class="gensmall"><strong>{forumrow.L_MODERATOR_STR}:</strong> {forumrow.MODERATORS}</p>
<!-- ENDIF -->
<!-- IF forumrow.SUBFORUMS and forumrow.S_LIST_SUBFORUMS -->
<p class="gensmall"><strong>{forumrow.L_SUBFORUM_STR}</strong> {forumrow.SUBFORUMS}</p>
<!-- ENDIF -->
<!-- IF forumrow.FORUM_IMAGE --></td></tr></table><!-- ENDIF -->
</td>
<td class="forumrow" width="5%" align="center"><p class="topicdetails">{forumrow.TOPICS}</p></td>
<td class="forumrow" width="5%" align="center"><p class="topicdetails">{forumrow.POSTS}</p></td>
<td class="forumrow" width="20%" align="center" nowrap="nowrap">
<!-- IF forumrow.LAST_POST_TIME -->
<p class="topicdetails"><!-- IF forumrow.U_UNAPPROVED_TOPICS --><a href="{forumrow.U_UNAPPROVED_TOPICS}">{UNAPPROVED_IMG}</a> <!-- ENDIF -->{forumrow.LAST_POST_TIME}</p>
<p class="topicdetails">{forumrow.LAST_POSTER_FULL}
<!-- IF not S_IS_BOT --><a href="{forumrow.U_LAST_POST}">{LAST_POST_IMG}</a><!-- ENDIF -->
</p>
<!-- ELSE -->
<p class="topicdetails">{L_NO_POSTS}</p>
<!-- ENDIF -->
</td>
</tr>
<!-- ENDIF -->
<!-- ENDIF -->
<!-- END forumrow -->
</table>
</div>
</td>
<!-- ELSE -->
<td class="row1" colspan="5" align="center" style="padding: 25px 5px;"><p class="gensmall">{L_NO_SUBSCRIBED_FORUMS}</p></td>
<!-- ENDIF -->
</tr>
</table>
El problema es que no sé como hacer para que <!-- IF S_SUBSCRIBED --> indique qué foros son los que se deben mostrar. Tal y como está escrita la función no hay ningún return true por lo que en realidad es lógico que no se ejecute <!-- IF S_SUBSCRIBED -->. Mis conocimientos son muy escasos y no sé como hacer para que la función le diga al template qué foros mostrar de acuerdo a los forum_id seleccionados.
¿Alguna ayuda, por favor?