Hola!!!
al final lo conseguimos, para aquellos que les interese este asunto, anunciarles que hemos encontrado la solicion, hablo en plural, porque
yoseman y yo contactamos via messenger y conseguimos solucionar el problema.
agregar el sistema de validacion (usario si/no logueado) en la misma seccion del foro es posible.
a continuacion explico como conseguirlo de manera poco detallada, ya que asumo que la mayoria tenemos los minimos conocimientos en php para realizar las siguientes opreaciones::
1. debemos agregar en el archivo
index.php el script-yoseman antes de que el archivo incluya el
page_header. ( recomiendo crear un archivo PHP a parte), en donde se encuentre "nuestra estructura y estilo de la web" a mas a mas del script de yoseman. a continuacion os repito el script, para que lo tengais mas a mano.
Código PHP:
define('IN_PHPBB', true);
$phpbb_root_path = (dirname($_SERVER['PHP_SELF'])=="/foro") ? './' : 'foro/'; //PATH DEL FORO RESPECTO DEL SCRIPT
if (!function_exists("init_userprefs"))
{
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
global $db, $board_config;
global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;
$cookiename = $board_config['cookie_name'];
$cookiepath = $board_config['cookie_path'];
$cookiedomain = $board_config['cookie_domain'];
$cookiesecure = $board_config['cookie_secure'];
}
llegados a este punto, debemos reflexionar sobre nuestra estructura,. (tipo portal)
si optamos por crear una columna a la derecha que contendra el MENU, en este caso es tal y como yo decidi hacerlo ,os quedara a la izquierda todo el CONTENIDO. como por ejemplo
http://www.bezerik.net/foro , como todoss dominamos HTML, sabemos que la estructura bàsica de la tabla será:
Código HTML:
<table border="1">
<tr>
<td width="100%"> CONTENIDO </td><td width="200"> MENU </td>
</tr>
</table>
en este supuesto caso, en
index.php (archivo del foro phpbb),
antes que se incluya el
page_header.php (suguiero buscar por la palabra clave
"page_header", ya que el archivo es largo). incluiremos nuestra estructura que si recordais esta en un archivo PHP a parte, por ejemplo llamado
"cabeza.php" Código PHP:
include ("cabeza.php") // tened en cuentra donde se encuentra este archivo
y
cabeza.php contendria:
Código PHP:
<?
define('IN_PHPBB', true);
$phpbb_root_path = (dirname($_SERVER['PHP_SELF'])=="/foro") ? './' : 'foro/'; //PATH DEL FORO RESPECTO DEL SCRIPT
if (!function_exists("init_userprefs"))
{
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
global $db, $board_config;
global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;
$cookiename = $board_config['cookie_name'];
$cookiepath = $board_config['cookie_path'];
$cookiedomain = $board_config['cookie_domain'];
$cookiesecure = $board_config['cookie_secure'];
}
?>
<!-- inicio estructura web -->
<table border="1">
<tr>
<td width="100%">
<!-- empieza contenido -->
por ultimo, solo faltara añadir las condiciones: si esta logueado mostrar su avatar, su perfil, si tiene mensajes privados....., si NO esta logueado mostrar enlace de registrarse, de recordar contraseña..... (por ejemplo).
buscamos en el archivo
index.php, la palabra clave
"page_tail", se encuentra casi al final del archivo. aqui amigos lectores , se me presento un gran problema, si seguia con la misma idea general, nosotros incluiriamos otro archivo PHP a parte, despues del
page_tail.php, por ejemplo llamado
"pie.php" con la siguiente orden.
Código PHP:
include ("pie.php") // tened en cuentra donde se encuentra este archivo
y
pie.php deberia contener el siguiente codigo:
Código PHP:
</td>
<td width="200">
<!-- inicio menu -->
<?
if ($userdata['user_id']!=-1)
{ // usuario SI logeado
switch ($userdata['user_avatar_type'])
{
case 0 : $ruta_de_avatar = '' ;break;
case 1 : $ruta_de_avatar = "<img src=\"" . $phpbb_root_path .$board_config['avatar_path'] . '/' . $userdata['user_avatar'] . "\">";break;
case 2 : $ruta_de_avatar = "<img src=\"" .$userdata['user_avatar'] . "\" >";break;
case 3 : $ruta_de_avatar = "<img src=\"" . $phpbb_root_path.$board_config['avatar_gallery_path'] . '/' . $userdata['user_avatar'] . "\" >";break;
} // fin swicth del avatar
if ( $userdata['user_new_privmsg'] )
{ // SI hay mensajes privados
$l_message_new = ( $userdata['user_new_privmsg'] == 1 ) ? $lang['New_pm'] : $lang['New_pms'];
$l_privmsgs_text = sprintf($l_message_new, $userdata['user_new_privmsg']);
}
else
{ // NO hay mensajes privados
$l_privmsgs_text = $lang['No_new_pm'];
} //fin mensajes
// pritamos los menus.....
echo "Bienvenido <b>" . $userdata['username'] . "</b>.<br />";
echo "<center>" . $ruta_de_avatar ."<br />";
echo '<a href="'.$phpbb_root_path.'login.'.$phpEx.'?logout=true&sid=' . $userdata['session_id'].'&redirect='.$volver.'">Logout ['.$userdata['username'].']</a><br />';
echo "<a href='" . $phpbb_root_path . "profile.php?mode=editprofile'>Perfil</a><br />";
echo "<a href='" . $phpbb_root_path . "privmsg.php?folder=inbox'>" . $l_privmsgs_text . "</a><br /><br />";
// fin usuario SI logeado
} else {
echo "<a href='" . $phpbb_root_path . "profile.php?mode=register'>Registro</a>";
} //fin usario NO logueado
?>
<!-- fin menu -->
</td>
</tr>
</table>
pero al probar esto, me lleve una gran sorpresa, al ejecutarlo en el navegador, pude comprobar que no cargaba, no añadia el
"pie.php".
Tras varias horas "rallandome por el asunto", descubri que al final del archivo
page_tail.php que se encuentra en la carpeta include del foro phpbb, havia la orden
exit();.
http://es.php.net/manual/es/function.exit.php
si leeis ese enlace habreis visto la funcion de exit(). tras eliminar el exit() del page_tail, pude comrpobar que si añadia mi codigo. pero no matenia la session. (MUY RARO RARO RARO.........), pero Yoseman se percato que phpbb utiliza buffers y todo esa gran asunto que a mi me suena a xino, que a vosotros.
asi que, una de dos,
1 - añadais el
pie.php directamente en
index.php y funcionara!!!
2 - añadais la columna MENU a la izquierda, y a la derecha os queda el CONTENIDO, seguro que no os dara problemas, porque solo deberiais crear un archivo PHP a parte, que por ejemplo tendria la siguiente sintaxi:
Código PHP:
<?
define('IN_PHPBB', true);
$phpbb_root_path = (dirname($_SERVER['PHP_SELF'])=="/foro") ? './' : 'foro/'; //PATH DEL FORO RESPECTO DEL SCRIPT
if (!function_exists("init_userprefs"))
{
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
global $db, $board_config;
global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;
$cookiename = $board_config['cookie_name'];
$cookiepath = $board_config['cookie_path'];
$cookiedomain = $board_config['cookie_domain'];
$cookiesecure = $board_config['cookie_secure'];
}
?>
<!-- inico web -->
<table>
<tr>
<td width ="200">
<!-- inicio MENU -->
<?
if ($userdata['user_id']!=-1)
{ // usuario SI logeado
switch ($userdata['user_avatar_type'])
{
case 0 : $ruta_de_avatar = '' ;break;
case 1 : $ruta_de_avatar = "<img src=\"" . $phpbb_root_path .$board_config['avatar_path'] . '/' . $userdata['user_avatar'] . "\">";break;
case 2 : $ruta_de_avatar = "<img src=\"" .$userdata['user_avatar'] . "\" >";break;
case 3 : $ruta_de_avatar = "<img src=\"" . $phpbb_root_path.$board_config['avatar_gallery_path'] . '/' . $userdata['user_avatar'] . "\" >";break;
} // fin swicth del avatar
if ( $userdata['user_new_privmsg'] )
{ // SI hay mensajes privados
$l_message_new = ( $userdata['user_new_privmsg'] == 1 ) ? $lang['New_pm'] : $lang['New_pms'];
$l_privmsgs_text = sprintf($l_message_new, $userdata['user_new_privmsg']);
}
else
{ // NO hay mensajes privados
$l_privmsgs_text = $lang['No_new_pm'];
} //fin mensajes
// pritamos los menus.....
echo "Bienvenido <b>" . $userdata['username'] . "</b>.<br />";
echo "<center>" . $ruta_de_avatar ."<br />";
echo '<a href="'.$phpbb_root_path.'login.'.$phpEx.'?logout=true&sid=' . $userdata['session_id'].'&redirect='.$volver.'">Logout ['.$userdata['username'].']</a><br />';
echo "<a href='" . $phpbb_root_path . "profile.php?mode=editprofile'>Perfil</a><br />";
echo "<a href='" . $phpbb_root_path . "privmsg.php?folder=inbox'>" . $l_privmsgs_text . "</a><br /><br />";
// fin usuario SI logeado
} else {
echo "<a href='" . $phpbb_root_path . "profile.php?mode=register'>Registro</a>";
} //fin usario NO logueado
?>
<!-- fin MENU -->
</td><td width="100%">
<!-- inicio CONTENIDO -->
y en despues del
page_tail os acordais de añadir el fin de la tabla
Código PHP:
echo "</td></tr></table>";
Quiero agradecer su gran Ayuda a Yoseman y sobretodo, deciros que lo unico que pretendo con este post es informar y ayudar a los demas usuarios a traves de mi experiencia.
espero que algun lector, se mucho mas experimentado que yo y encuentre alguna solución!!!
Xavi