Me lo andaban pidiendo desde hace algunos meses, asi que me decidi. Alguna vez has querido utilizar un form de tu foro PHPBB, para colocar las noticias en tu pagina web? Seria fácil, no? No tendria que depender de ningun otro sistema. Bueno ahora tienes un modulo simple que te ayudara hacerlo.
Me lo andaban pidiendo desde hace algunos meses, asi que me decidi. Alguna vez has querido utilizar un form de tu foro PHPBB, para colocar las noticias en tu pagina web? Seria fácil, no? No tendria que depender de ningun otro sistema. Bueno ahora tienes un modulo simple que te ayudara hacerlo.
Lo primero que debemos hacer es crear un form en nuestro Foro que sea privado, o un grupo privado que solo puedan accesar las personas que van a tener permiso de agregar noticias.
Ahora descargas el Modulo - Noticias PHPBB.
Al abrir vas a ver los siguientes archivos.
- config.php (configuracion del sistema)
- PHP5 noticias.class.php (tipo de dato) *no tocar, solo ver
- PHP5 phpbbNoticia.class.php (modulo del sistema) *no tocar, solo ver
- PHP4 noticias.class.php4 (tipo de dato) *no tocar, solo ver
- PHP4 phpbbNoticia.class.php4 (modulo del sistema) *no tocar, solo ver
- test.php (prueba)
- noticiacorta.tpl (template de noticia corta)
- noticialarga.tpl (template e noticia larga)
Nota:
Si no tienes PHP5, borra los que terminan en class.php y cambiale el nombre a los php4, para que no tengas problemas. Si tienes PHP5 borra los .php4
Configurando el Sistema
Codigo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
<?php
//configuracion
//puedes editar esto
$formId = 37; //el form id del k pusiste privado para k solo salgan las noticias
$tablaPostTopic = 'phpbb_topics'; //tabla de los topicos
$tablaPostText = 'phpbb_posts_text'; //tabla de los texto
$tablaUsuarios = 'phpbb_users'; //tabal de usuarios
$cantidadDeNoticias = 10; //cantidad de noticias a sacar
$cantidadDeCarateres = 300; //limite de las noticias cortas
$linkFullNoticias = 'http://paginaweb.com/index.php'; //url de tu pagina
###################################################################################
#Variables Globales
define('FORMID', $formId);
define('TABLEPOSTTOPIC', $tablaPostTopic);
define('TABLEPOSTTEXT', $tablaPostText);
define('TABLEDEUSUARIO', $tablaUsuarios);
define('CANTIDADDENOTICIAS', $cantidadDeNoticias);
define('CANTIDADDECARACTERIES', $cantidadDeCarateres);
define('LINKFULLNOTICIA', $linkFullNoticias);
?>
|
La configuración creo que es de lo mas sencialla, simplemente tienes que rellenar las variables y no topar las globales.
¿Como sacas el FormId? Simplemente ve en tu foro el link del form privado que creaste, ej:
http://mcforo.m...wforum.php?f=1, en este casto f=1 es el form 1, en el sistema ese seria el id de
$formId = 1. Asi de simple.
Templates
Los templates son estos dos archivos
noticialarga.tpl y
noticiacorta.tpl donde estan la forma de las noticias.
Noticia Corta Code:
{titulo} {fecha}-{usuario} <p>{texto-corto}</p> {num-comentarios} {leer-mas} |
Noticia Larga Code:
{titulo} {fecha}-{usuario} <p>{texto-largo}</p> {num-comentarios} |
Si te fijas tienen unos
tokens
- {titulo}, es donde va a ir el titulo
- {fecha}, donde va la fecha
- {usuario}, donde va el username
- {texto-largo}, donde va el cuerpo completo de la noticia
- {texto-corto}, donde va el texto limitadoo
- {num-comentarios}, donde va la cantidad de comentarios de la noticia si es k dejas k puedan agregarla en el topic
Lo unico que debes hacer es modificar estos templates con el CSS y HTML que tu quieras y tu noticia tendran un cuerpo. Ej:
Code:
<div class="titulo">{titulo}</div> <span>{fecha}-{usuario}</span> <p>{texto-largo}</p> <div class="comentarios">{num-comentarios} {leer-mas}</div> |
Utilizar el Sistema
Bueno bueno ya es hora de ver como funciona este sistemita, por tal razon lo hice de la mejor manera para que tenga un periodo de vida mas largo y en un futuro se puede mejorar mas.
Codigo:
1 2 3 4 5 6 7 8 9 10 11 12
|
<?php
include('config.php');
include('noticias.class.php');
include('phpbbNoticia.class.php');
//test
$db = mysql_connect('localhost', 'root', '');
mysql_select_db('mctekk', $db);
$phpbbnews = new phpbbNoticia();
?>
|
1- Lo unico que debes hacer es incluir los archivos
2- Conectarte a la base de datos
3- Llamar al modulo phpbbNoticias.
Listo con esos 3 pasos el se encarga de lo demas, no debes hacer ninguna validacion para noticias largas porque el modulo de
phpbbNoticias ya lo tiene en su constructor. Lo unico que digo es que si ya tienes una variable
$_GET['newsid'], en algun lugar de tu sistema entonces debes editar el constructor de la clase
phpbbNoticias.
Codigo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
<?php
public function phpbbNoticia()
{
//para iniciarlizar el modulo y joder menos
if (empty($_SERVER['QUERY_STRING']))
{
echo $this->getAllNews();
}
else if ((int) isset($_GET['newsid']))
{
$newsId = (int) addslashes($_GET['newsid']);
echo $this->setNewsTemplate($this->getNewsById($newsId),"newslarga");
}
else
{
die('Algun error raro');
}
}
?>
|
Dudas comentarios, updates, lo que sea vayan a los comentarios o agregen el suyo.