Crear tu Propio portal para MyBB [BETA]
Bueno como el titulo lo dice, para quellos avanzados en programacion, y alomejor algunos nuevecillos les tengo aqui un poco de informacion sobre como...

Bueno como el titulo lo dice, para quellos avanzados en programacion, y alomejor algunos nuevecillos les tengo aqui un poco de informacion sobre como hacer un portal, similar al de MyBB, solo que externo y sin problemas de que se te cae el foro, y el portal no sirve, ya que este portal no depende del foro si no de la base de datos, bien pues comenzamos!.

#Nota: Para efectuar cambios o modificaciones les recomiendo usar notepad++

Comenzamos creando un nuevo archivo de texto plano al que llamaremos portal.php

en el pondremos el siguiente codigo:

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Aqui sus coments xD -->
<?php
include ("conexion.php")
?>
<html>
    <Title>
<?
    $nombre = mysql_query("SELECT value FROM mybb_settings WHERE sid = 29 ");
    $resultado_se = mysql_num_rows($nombre);
    $nombre = mysql_query("SELECT * FROM mybb_settings WHERE sid = 29 ");

    if($resultado_se) {
    
        while($bbname=mysql_fetch_array($nombre)) {
        
            echo "".$bbname["value"]."";
        }
        
    } else {
        echo "<font color='darkgray'>(error)</font>";
    }
    
    mysql_free_result($nombre);
?>
</TITLE>
    <?
    include ("header.html")
    ?>
    
    <body>
    
        <HR />
        
<?
/*Contenido del portal*/
?>

<table width="100%" cellspacing="0" >
<td valign="top" width="200">


<?
/*Columna lateral izquierda*/
include ("bloque1.html");
include ("topic_news.html");
include ("bloque2.html");
?>

</td>

<td valign="top">
<?
/*Noticias*/
include("bloque_superior.html");
include ("noticias.html");
?>
</td>

<td valign="top" width="200">

<?
/*Columna lateral Derecha*/
include ("opcional1.html");
include ("op2.html");
include ("op3.html");
include ("op4.html");
include ("op5.html");
?>


</td>
</table>
<?
/*Footer*/
include ("footer.html")
?>
</body>

</html>

Bien, algunos se preguntaran... ¿Por que tanto include?, pues si lo miran con el notepad++ es mas facil de organizar ademas de que aqui no hay intervencion de usuario asi que no es suceptible a un XSS (Remote site scripting), bueno entonces veamos que hay que hacer dentro de cada include o bloque modificable, primero meteremos las noticias... pero antes... si miran la linea 4, veran que inclui el archivo conexion.php, este archivo deberan crearlo de la siguiente forma:

Código:
<?
function conectar()
{
    $base_de_datos = "el_nombre_de_la_base_de_datos_de_su_instalacion_de_mybb";
    $db_usuario = "el_user_de_phpmyadmin";
    $db_password = "su_pass_xxxxxx";
  
    if (!($link = mysql_connect("el_host_de_el_server_sql", $db_usuario, $db_password)))
    {
        echo "Error conectando a la base de datos.";
        exit();
    }
    if (!mysql_select_db($base_de_datos, $link))
    {
        echo "Error seleccionando la base de datos.";
        exit();
    }
    return $link;
}

$db = conectar();


$registros = 10;

if (!$pagina) {
    $inicio = 0;
    $pagina = 1;
}
else {
    $inicio = ($pagina - 1) * $registros;
}


?>

Bien, esto sera la conexion con su base de datos, y apartir de $registros, se usara para dar instrucciones a los bloques de noticias.

ahora procederemos a ver por que tenemos que incluir puro .html si el codigo necesitado tiene que ser en php, por que estas inclusiones contienen codigo HTML para poder formatear las tablas correctamente, ahora bien dentro de los dos bloques que nos interesan estan:

topic_news.html

noticias.html

Los cuales contendran:

topic_news
Código:
<table class="tborder">
<tr>
<td class="thead2" width="540px"><strong>Ultimos mensajes
</strong></td>
</tr>
<tr>
<td class="tn" align="center">

<style type='text/css'>
a{color:black}
a:hover{color:black}
</style>
<?
include ("topic_news.php")
?>

</td>
</tr>
</table>
<br />

topic_news.php

Código:
<?
    $resultados = mysql_query("SELECT tid FROM mybb_posts WHERE visible = 1 ");
    $total_registros = mysql_num_rows($resultados);
    $resultados = mysql_query("SELECT * FROM mybb_posts WHERE visible = 1 ORDER BY dateline DESC LIMIT $inicio, $registros");

    if($total_registros) {
    
        while($articulo=mysql_fetch_array($resultados)) {
        
        echo "<style type='text/css'>#nw {font-size:75%;text-align:left;color:black;}</style>";
        echo "<align='left'><a href='foro/showthread.php?tid=".$articulo["tid"]."'>".$articulo["subject"]."</a></align>";
        echo "<div id='nw'>Por: <a href='foro/member.php?action=profile&uid=".$articulo["uid"]."'>".$articulo["username"]."</a><br></div><br>";
        
        }
        
    } else {
        echo "<font color='darkgray'>(sin entradas)</font>";
    }
    
    mysql_free_result($resultados);
?>

noticias.html

Código:
<table class="tborder">
<tr>
<td class="thead2" width="540px"><strong>Noticias
</strong></td>
</tr>
<tr>
<td class="trow1" align="center">
<center>
<?
include ("news_name.php")
?>
</center>
</td>
</tr>
</table>

news_name

Código:
<?
include("php/replace.php");
    $resultados = mysql_query("SELECT tid FROM mybb_posts WHERE replyto = 0 AND fid = 2 AND 3 ");
    $respuestas = mysql_query("SELECT tid FROM mybb_posts WHERE replyto > 0 AND fid = 2");
    $total_registros = mysql_num_rows($resultados);
    $resultados = mysql_query("SELECT * FROM mybb_posts WHERE replyto = 0 AND fid = 2 AND 3 ORDER BY dateline DESC LIMIT $inicio, $registros");                      

    if($total_registros) {
    
        while($articulo=mysql_fetch_array($resultados)) {
        
            echo "<hr>";
            echo "<div class='thead2'>".$articulo["subject"]."<br></div>";
            echo "<HR>";
            echo "<style type='text/css'> #com a{color:blue} </style>";
            echo "<div id='com'>".$articulo["message"]."</div><br><br>";
            echo "<hr>";
            echo "<div id='com'>Por <a href='foro/member.php?action=profile&uid=".$articulo["uid"]."'>".$articulo["username"]."</a> - <a href='foro/showthread.php?tid=".$articulo["tid"]."'>";
            echo "Comentarios >>".$respuestas[""]."</a></div>";
            
        }
        
    } else {
        echo "<font color='darkgray'>(sin entradas)</font>";
    }
    
    mysql_free_result($resultados);
    ?>

Bueno ahora si quieren modificar algo solamente editan cualquier archivo, para añadir bloques, solamente añadanlos dependiendo de la columna dentro del include... no añadan bloques que no existan antes, por que si no les va a dar error el PHP... bueno cualquier duda o algo que haya omitido por favor postearlo... por ahora eso es todo

Si desean copiar o usar esta informacion favor de conservar los creditos:

Creado por ryder, para MyBB-es.

(C) Reload Fansub
muy buen tutorial muchas gracias, y aunque no lo he probado debo decir que explicas bien los pasos, solo una duda, antes de empezar, podrías poner una cap de como queda?.. gracias ^^
29-08-2009 12:04 PM !!!!!!

Este tema es viejisimo.

Tema Cerrado!

postdata: Wow puedo ser un super mod, te ahorre el trabajo de spam aeroxis Wink
Ojalá fuese tan fácil como te crees.

Tema cerrado Wink