Ahhh, mira vos...

Revisa el Portal, y veras que tengo los mismos 5 post. y despues revisa el foro, y veras que sale un post de prueba que cree, que no deberia salir.

La diferencia entre ambos, es que el portal ejecuta el archivo Php, y el foro lee una plantilla. Lo que hice, fue copiar todo el contenido del php dentro de la plantilla Index, y lo ejecuta gracias al plugin "PHP and Template Conditionals (1.7)".

Aparentemente ejecutado desde la plantilla con ese mod funciona mal...
De que otra manera puedo ejecutar un Php desde una plantilla?
Solo con la mod que tienes me parece, ya que de otra manera es mediante plugins, para que le pongas las condicionales y funciones con enganches a las plantillas que desees.

Lo que yo hice fue lo siguiente:

1.- Cambie el código del archivo que tu tienes y efectivamente asignas dos bloques en el centro, uno para todos los usuarios con las id de foros que pueden mirarse, y otro bloque con las id de los foros privados.

2.- En los foros privados fui al panel de admin y en permisos de foros exclui a todos los usuarios a mirar, escribir, en fin a todo le puse que no, excepto a los usuarios admin, super mod y mod, para que asi se muestren solo a ellos, con esto funciona bien el portal, ya que el archivo te dice que pide primeramente los foros que son visibles y los que no, pues ya no muestra los temas.

Lo he probado asi y va bien, pero no se que detalle este fallando en tu caso. Pues si aun con esto no se muestran es cosa de mirar el porque no esta funcionando tu portal, he entrado en la web que mencionas, pero no estas poniendo permisos adecuadamente para el tema que no quieres mostrar. Ya que si doy clic me muestra el contenido, y no debiera. Sólo sigue el paso 2 que te menciono y con esto solucionas tu problema. Sólo es cuestion de permisos, desde los foros vas a permisos y quitas que los usuarios invitados, puedan ver el contenido, actualizas y veras que ya no lo miras mas nisiquiera en el foro. Pues es el permiso de un foro privado.

Luego de esto ya si quieres tambien restringes a los demás la vista de estos temas, pero con esto te queda como quieres. Saludos...
Me parece que no nos estamos entendiendo...

En el portal funciona bien, en el foro anda mal:

[Imagen: capth3ot.png]

Ese item que muestra, lo cree a proposito en una seccion privada donde tiene acceso solo los administradores, y no deberia salir en el listado.

Este problema aparenta ser causado porque copie todo el PHP dentro de la plantilla, y el plugin que permite ejecutar Php en plantillas debe estar ejecutando algo mal.

En vez de copiar todo el codigo en la plantilla, no hay otra forma de ejecutar un php?. Es decir, escribir en la plantilla algun comando que ejecute un archivo php ?.
Última modificación: 27 Dec, 2011, 3:37 am por YondaimeKuba.
Desde la plantilla no es posible, habia una mod que te permitia incluir código php, pero no se si funcione o este aun.

La manera de llamar es con el atributo include.

Lo mandas a traer dentro de tu archivo, pero en las plantillas por seguridad no es permitido esto.

Creo que no te habia entendido bien, perdona la confusión, ya mire y si es verdad lo que mencionas, pero tu me dijiste, mira la columna derecha, me diste el enlace del portal y solo se miran 5 auncios efectivamente.

Ahora, En el otro se muestran mas y es dentro del foro, me imagino que estas utilizando otro código para esto, solo hay que poner en el query de la lista que estas mandando a traer 8 elementos, que las ids de los foros sean diferentes a las que tu quieres, o sean tomadas de la lista,tal y como hiciste en el anterior.

Con el mismo códig de latest_post debe funcionar, solo quita el limite de 5 a 8 y es el mismo codigo que debera funcionar...

Código PHP:
<?php
if (!defined("IN_PORTAL")) {
    die(
"<div style=\"border:1px solid #CC0000; padding:3px; margin:0; font-family:Tahoma; width:250px; font-size:12px;\"><strong>Error:</strong> This file cannot be viewed directly!</div>");
}

// Get forums user cannot view - Esta funcion excluye los foros con permisos... ojo
$unviewable get_unviewable_forums();
if(
$unviewable)
{
    
$unviewwhere " AND fid NOT IN ($unviewable)";
}

$altbg alt_trow();
$threadlist '';
$showlimit 8;
$query $db->query("
    SELECT p.*, u.username
    FROM "
.TABLE_PREFIX."posts p
    LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid=p.uid)
    WHERE p.visible='1' 
$unviewwhere
    ORDER BY p.dateline DESC 
    LIMIT 0, "
.$showlimit
);
while(
$thread $db->fetch_array($query))
{
    
$lastpostdate my_date($mybb->settings['dateformat'], $thread['dateline']);
    
$lastposttime my_date($mybb->settings['timeformat'], $thread['dateline']);
    
// Don't link to guest's profiles (they have no profile).
    
if($thread['uid'] == 0)
    {
        
$lastposterlink $thread['username'];
    }
    else
    {
        
$lastposterlink build_profile_link($thread['username'], $thread['uid']);
    }
    if(
my_strlen($thread['subject']) > 20)
    {
        
$thread['subject'] = my_substr($thread['subject'], 020) . "...";
    }
    
$thread['subject'] = htmlspecialchars_uni($parser->parse_badwords($thread['subject']));
    
$thread['threadlink'] = get_post_link($thread['pid'],$thread['tid']);
    
$threadlist .= "<tr>
<td class=\"
$altbg\">
<strong><a href=\""
.$mybb->settings['bburl']."/".$thread['threadlink']."#pid".$thread['pid']."\">$thread[subject]</a></strong>
<span class=\"smalltext\"><br />
$lang->posted_by <em>$lastposterlink</em><br />
$lastpostdate $lastposttime
</span>
</td>
</tr>"
;
    
$altbg alt_trow();
}
if(
$threadlist)

    
// Show the table only if there are threads
    
$latestposts "<table border=\"0\" cellspacing=\"".$theme['borderwidth']."\" cellpadding=\"".$theme['tablespace']."\" class=\"tborder\">
        <tr>
            <td class=\"thead\"><div class=\"expcolimage\"><img src=\"
{$mybb->settings['bburl']}/{$theme['imgdir']}/{$expcolimage}\" id=\"block_{$result_blocks['id']}_img\" class=\"expander\" alt=\"{$expaltext}\" title=\"{$expaltext}\" /></div><strong>Ultimos Mensajes</strong></td>
        </tr>
        <tbody style=\"
{$expdisplay}\" id=\"block_{$result_blocks['id']}_e\">
        
{$threadlist}
        </tbody>
    </table>"
;
}
else
{
    
$latestposts "<table border=\"0\" cellspacing=\"".$theme['borderwidth']."\" cellpadding=\"".$theme['tablespace']."\" class=\"tborder\">
        <tr>
            <td class=\"thead\"><div class=\"expcolimage\"><img src=\"
{$mybb->settings['bburl']}/{$theme['imgdir']}/{$expcolimage}\" id=\"block_{$result_blocks['id']}_img\" class=\"expander\" alt=\"{$expaltext}\" title=\"{$expaltext}\" /></div><strong>Ultimos Mensajes</strong></td>
        </tr>
        <tbody style=\"
{$expdisplay}\" id=\"block_{$result_blocks['id']}_e\">
        <tr>
        <td class=\"
$altbg\">No Post</td>
        </tr>
        </tbody>
    </table>"
;
}

echo 
$latestposts;
?>

Y con este codigo debería mostrarse como quieres el bloque, saludos...
Nooo, no funciona!, eso trato de decirte desde el principio. El 5 u 8 es lo de menos, yo lo habia personalizado asi.

El plugin es este: http://mybbhacks.zingaburga.com/showthre...60&page=10

Y algo no funciona al copiar el Php en la plantilla Index, muy factiblemente sea algo de esta parte:

Código PHP:
// Get forums user cannot view
$unviewable get_unviewable_forums();
if(
$unviewable)
{
    
$unviewwhere " AND fid NOT IN ($unviewable)";


Tal vez haya que redactar parte del codigo de alguna forma distinta para que el plugin lo lea bien, o tal vez utilizando otras variables.

Aca esta el codigo entero que agregue en el Index:
Código PHP:
<?php

// Get forums user cannot view
$unviewable get_unviewable_forums();
if(
$unviewable)
{
    
$unviewwhere " AND fid NOT IN ($unviewable)";
}

$altbg alt_trow();
$threadlist '';
$showlimit 8;
$query $db->query("
    SELECT p.*, u.username
    FROM "
.TABLE_PREFIX."posts p
    LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid=p.uid)
    WHERE p.visible='1' 
$unviewwhere
    ORDER BY p.dateline DESC 
    LIMIT 0, "
.$showlimit
);
while(
$thread $db->fetch_array($query))
{
    
$lastpostdate my_date($mybb->settings['dateformat'], $thread['dateline']);
    
$lastposttime my_date($mybb->settings['timeformat'], $thread['dateline']);
    
// Don't link to guest's profiles (they have no profile).
    
if($thread['uid'] == 0)
    {
        
$lastposterlink $thread['username'];
    }
    else
    {
        
$lastposterlink build_profile_link($thread['username'], $thread['uid']);
    }
    if(
my_strlen($thread['subject']) > 32)
    {
        
$thread['subject'] = my_substr($thread['subject'], 032) . "..";
    }
    
$thread['subject'] = htmlspecialchars_uni($parser->parse_badwords($thread['subject']));
    
$thread['threadlink'] = get_post_link($thread['pid'],$thread['tid']);
    
$threadlist .= "<tr>
<td class=\"
$altbg\">
<strong><a href=\""
.$mybb->settings['bburl']."/".$thread['threadlink']."#pid".$thread['pid']."\">$thread[subject]</a></strong>
<span class=\"smalltext\"><br />
Por <em>
$lastposterlink</em><br />
$lastpostdate $lastposttime
</span>
</td>
</tr>"
;
    
$altbg alt_trow();
}
if(
$threadlist)

    
// Show the table only if there are threads
    
$latestposts "<table border=\"0\" cellspacing=\"".$theme['borderwidth']."\" cellpadding=\"".$theme['tablespace']."\" class=\"tborder2\">
        <tr>
            <td class=\"thead2\"><div class=\"expcolimage\"><img src=\"
{$theme['imgdir']}/{$expcolimage}\" id=\"block_{$result_blocks['id']}_img\" class=\"expander\" alt=\"{$expaltext}\" title=\"{$expaltext}\" /></div><strong>Ultimos Mensajes</strong></td>
        </tr>
        <tbody style=\"
{$expdisplay}\" id=\"block_{$result_blocks['id']}_e\">
        
{$threadlist}
        </tbody>
    </table>"
;
}
else
{
    
$latestposts "<table border=\"0\" cellspacing=\"".$theme['borderwidth']."\" cellpadding=\"".$theme['tablespace']."\" class=\"tborder2\">
        <tr>
            <td class=\"thead2\"><div class=\"expcolimage\"><img src=\"
{$theme['imgdir']}/{$expcolimage}\" id=\"block_{$result_blocks['id']}_img\" class=\"expander\" alt=\"{$expaltext}\" title=\"{$expaltext}\" /></div><strong>Ultimos Mensajes</strong></td>
        </tr>
        <tbody style=\"
{$expdisplay}\" id=\"block_{$result_blocks['id']}_e\">
        <tr>
        <td class=\"
$altbg\">No Post</td>
        </tr>
        </tbody>
    </table>"
;
}

echo 
$latestposts;
?>
Última modificación: 28 Dec, 2011, 3:37 pm por YondaimeKuba.
Vale gracias por la info, la pruebo y te comento que cosa.
Ok, ahi actualice el codigo, porque habia estado experimentando con el y habia colocado un codigo incorrecto.

Has visto algo?
Si he probado, pero he visto que no respeta todo tipo de código y no en todas partes, en algunas si, en otras no, toma ciertas condicionales y otras no, quizá debo mirar a fondo el como esta.

De cualquier manera en tu portal si funciona correctamente, solo falta con el foro, pero no se si estas usando algún plugin como el Sidebox para mostrar los temas, o como o donde has puesto tu código, pero aqui ya sería en el foro y no en el portal, ya que en el portal si esta funcionando bien me imagino.

Solo es el error del foro, si me dices como has echo esto, pues ya tengo el portal, el plugin de php y he echo pruebas, pero no he logrado mostrar el modulo de ultimos temas, ya que no me lo muestra en las plantillas ni con códig de MyBB, ni llamando una plantilla de MyBB, ni con código personalizado, algunas cosas si me las muestra, pero voy a intentar con el SideBox y te digo que cosa. Ya que tambien he estado mas tiempo detallando los plugins que hice para que no tengan fallos, ya que me gusta que en eso que si conozco pues hacerlo bien, ademas de que estuve dando soporte por msn a un compañero y ya hemos dejado unos cambios en su web.

Si quieres podemos mirarlo por msn, ya que si con esta persona pues vimos cosa a cosa, y paso a paso y ya al final surgieron nuevas ideas y cosas y hasta terminar me he ido a la cama, pero si hemos dejado las cosas poco a poco y cambiando y reafinando detalles, pues siempre salen cosas, jeje.
Utlizando el plugin SideBox tambien funciona correcto, esto lo he puesto y me tira los ultimos mensajes en el foro de manera correcta, no muestra los que son ocultos, solo los que deben ser visibles.

Has probado con este plugin ???
Dark Neo, por lo que puedo ver en mi caso la variable $unviewwhere esta siempre vacia y segun puedo apreciar, deberia contener info de los foros que no deberia mostrar (o algo por el estilo). Por eso asumo que el problema esta en:

Código PHP:
$unviewable get_unviewable_forums();
if(
$unviewable)
{
    
$unviewwhere " AND fid NOT IN ($unviewable)";


Para hacer esa columna, use esto: http://www.soportemybb.com/tema_Tutorial...con-jQuery

Pero eso no deberia influir en nada, el problema esta en insertar un codigo PHP en una plantilla.
Vos que plugin usaste para insertar php ?.

Msn: [email protected]
Saludos!.
Última modificación: 29 Dec, 2011, 10:30 am por YondaimeKuba.