Parte 1 - Lograr la Integración
Nota: Respeten el uso de mayusculas, si dice PAGINA es PAGINA. No Pagina ni pagina ni pAgInA.
Empesemos...
Esto solo integrara tu pagina pero no usara los templates de phpBB2
1. Instalar el foro PhpBB2 en su ultima versión (
www.phpbb.com)
2. Crear el archivo que será tu pagina, debe ser PHP (ej pagina.php)
3. Al inicio de pagina.php (el tuyo no el del foro) agrega el siguiente codigo:
Código:
<?
define('IN_PHPBB', true);
$phpbb_root_path = './phpBB2/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
?>
Si tu foro no esta en una carpeta llamada phpBB2 edita esta linea con la carpeta donde esta ubicado tu foro referente al archivo q estas trabajando (En este ejemplo el foro esta en una carpeta llamada phpBB2 y pagina.php esta en el nivel superior)
Código:
$phpbb_root_path = './phpBB2/';
Si quieres mostrar un contenido solo si un usuario ah hecho login en tu foro, agrega la siguiente condicional donde la desees:
Código:
if($userdata['session_logged_in'])
{
//Tu contenido aqui
}
Si quieres mostrar el nombre del usuario pon donde lo desees:
Código:
echo $userdata['username'];
No es nesesarios hacer un db conection luego del codigo que añadiste, automaticamente se crea una mysql_pconnect() (Conección permanente)
lo que te permite hacer querys asi:
Código:
mysql_query('SELECT * FROM foo');
En vez de asÃ#
Código:
mysql_query('SELECT * FROM foo', $db);
Parte 2 - Usar Templates
Nota: Respeten el uso de mayusculas, si dice PAGINA es PAGINA. No Pagina ni pagina ni pAgInA.
Ahora seguiremos con nuestro tutorial...
Ahora haremos una pagina que ademas de estar integrada a phpBB2 use sus sitema de templates, para esto hay 2 formas: a) Usando archivos .tpl b) No usandolos.
En esta parte del tutorial ademas de eso añadiremos un session_id a la pagina cosa que en viewonline y el admin index se pueda saber que usuarios estan visitando la pagina. y Tambien se podran usar los multilenguajes de PhpBB
Este Tutorial esta basado en Subsilver.
Asique empesemos:
1.
1. Abre tu nueva pagina (ej: pagina.php)
2. Despues de:
Código:
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
Agrega Esto si usarás archivos tpl (Debes saber utilizarlos):
Código:
// set page title
$page_title = 'Titulo de tu pagina';
// standard page header
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
// assign template
$template->set_filenames(array(
'body' => 'pagina.tpl')
);
Y alfinal de la web agregas
Código:
$template->pparse('body');
// standard page footer
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
Si no ocuparas tpls agrega esto:
Código:
// set page title
$page_title = 'Titulo de tu pagina';
// standard page header
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
Y alfinal de la web agregas
Código:
// standard page footer
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
Cierra tu pagina.php
Abrir el archivo "includes/page_header.php"
Encontrar donde dice esto:
Código:
'U_GROUP_CP' => append_sid('groupcp.'.$phpEx),
Código:
Agrega este codigo modificando "PAGINA" o "pagina" (Sin las comillas) por el nombre de la pagina (sin la extension .php)
Código:
// La variable de lenguaje de como se llama tu pagina
'L_PAGINA' => $lang['pagina'],
// Agregarle el UID a el link a tu pagina
'U_PAGINA' => append_sid('pagina.'.$phpEx),
Cierra includes/Page_header.php
Abre "viewonline.php"
Encuentra:
Código:
case PAGE_FAQ:
$location = $lang['Viewing_FAQ'];
$location_url = "faq.$phpEx";
break;
Despues de eso Agrega:
Código:
case PAGE_PAGINA:
$location = $lang['pagina'];
$location_url = "pagina.$phpEx";
break;
Cierra "viewonline.php"
Abre "admin/index.php"
Encuentra:
Código:
case PAGE_FAQ:
$location = $lang['Viewing_FAQ'];
$location_url = "index.$phpEx?pane=right";
break;
Despues de eso Agrega:
Código:
case PAGE_PAGINA:
$location = $lang['pagina'];
$location_url = "pagina.$phpEx?pane=right";
break;
Encuentra (otra vez):
Código:
case PAGE_FAQ:
$location = $lang['Viewing_FAQ'];
$location_url = "index.$phpEx?pane=right";
break;
Despues de eso Agrega:
Código:
case PAGE_PAGINA:
$location = $lang['pagina'];
$location_url = "pagina.$phpEx?pane=right";
break;
6. Cierra "admin/index.php"
1. Abre "language/lang_***/lang_main.php"
2. Encuentra:
Antes de eso Agrega:
Código:
$lang['pagina'] = 'Nombre de tu pagina';
4. Cierra "language/lang_***/lang_main.php"
1. Abre "includes/constants.php"
2. Encuentra:
Código:
define('PAGE_GROUPCP', -11);
Despues de eso Agrega:
Código:
define('PAGE_PAGINA', -15);
4. Cierra "includes/constants.php"
Prueba tu nueva web integrada
Parte 3 - El Formulario de Entrada
Nota: Respeten el uso de mayusculas, si dice PAGINA es PAGINA. No Pagina ni pagina ni pAgInA.
Ahora pondremos un formulario de login dentro la pagina.
Este formulario puede ir en cualquier pagina que halla sido moficada
segun la primera parte del tutorial.
Código:
<?php
echo '<form action="'.$phpbb_root_path . 'login.'.$phpEx.'" method="post">
<input type="text" name="username">
<br />
<input type="password" name="password">
<br />
<input type="submit" value="login" name="login">
</form>';
?>
Un ejemplo de un formulario de login para utilizar por include seria este(Este ejemplo funcionaria tambien para paginas no modificadas segun la primera parte del Tutorial):
Código:
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './phpBB2/';
require_once($phpbb_root_path . 'extension.inc');
require_once($phpbb_root_path . 'common.'.$phpEx);
?>
<table border="0" cellpadding="0" cellspacing="0">
<form action="<? echo $phpbb_root_path.'login.'.$phpEx; ?>" method="post">
<tr>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td><input type="submit" value="Enviar" name="login"></td>
</tr>
</form>
</table>