Este Tutorial está basado en mi otro tutorial de la version vB3.x, en donde explico como extraer datos desde la tabla thread y mostrarlo en una tabla html. con este tutorial podrás hacer scripts sencillos y aprenderas un poco sobre manejo de SQL y el nuevo sistema de Plantillas en vBulletin 4
Tutorial para la vcersion 3.x
Mostrar en una tablas, datos extraidos de la Base de datos - vBSoporte
Observacion Importante: en vBulletin 3.x teniamos que tener 2 plantillas, uno para mostrar todo el cuerpo de la pagina (tabla con encabezado y pie) y una segunda plantilla para llenar las filas, que incluso tenian como terminacion la palabra bits
Ahora en vBulletin 4 se puede usar una etiqueta llamada each que es exactamente lo mismo que un forearch de php y por tanto ya no es necesario las plantillas bits
su sintaxis es:
Hacemos un Archivo PHP con el siguiente contenidoCódigo PHP:<vb:each from="array" key="key" value="value"></vb:each>
Y creamos una plantilla con el nombre de mostrar10 con el siguiente contenidoCódigo PHP:<?
// ######################## SET ENTORNO PHP ###########################
error_reporting(E_ALL & ~E_NOTICE);
// ##################### DEFINIR COSNTANTES IMPORTANTES #######################
define('THIS_SCRIPT', 'mostrar10');
/*
este es el nombre de este Scrit, asi que en las plantillas podran usar una condicion asi:(en el Navbar o footer por ejemplo)
<if condition="THIS_SCRIPT == 'mostrar10'">
No mostrar Adsense, algo especial etc, etc
</if>
*/
// #################### PRE-CACHE DATOS Y PLANTILLAS ######################
//Obtener Grupo de Frases Especiales
$phrasegroups = array();
//Obtener Plantillas Especiales desde el datastore
$specialtemplates = array();
// pre-cache Plantillas usadas en todas las Acciones de este php
$globaltemplates = array(
// Pon aqui todas las plantillas que hayas creado, pero curiosamente si no las pones, igualito funciona (esto es lenguaje c pues
'mostrar10', //RECUERDA QUE ESTE ES EL NOMBRE DE LA PLANTILLA QUE CREASTE
);
// pre-cache Plantillas usadas para Acciones Estemplates used by specific actions
$actiontemplates = array();
// ########################## REQUERIDO ############################
require_once('./global.php'); //con esto cargas todas las opciones de vBulletin, ademas de la conexion, acceso a MySQL, etc, etc
// #######################################################################
// ######################## COMIENZO DEL SCRIPT PRINCIPAL ############################
// #######################################################################
$temas_query = $db->query_read("SELECT threadid,title,postusername FROM " . TABLE_PREFIX . "thread where threadid>1 and threadid<10"); //llenamos $temas_query con los resultados de la consulta, se va a comportar como un array
if ($vbulletin->db->num_rows($temas_query) > 0) //verificamos que tenga al menos 1 registro para comenzar a procesarlos
{
while ($mis10temas = $vbulletin->db->fetch_array($temas_query)) //haces que cada registro de la consulta, se guarde individualmente en $mis10temas para poder usar esta variable en nuestra plantilla
{
//aqui la funcion para convertir la fecha de numero a fecha dd/mm/yyyy basado en vbulletin y la hora local del usuario
$mis10temas['dateline'] = vbdate($vbulletin->options['dateformat'], $mis10temas['dateline']);
$mis10temas['lastpost'] = vbdate($vbulletin->options['dateformat'], $mis10temas['lastpost']);
$listadosquecrece[] = $mis10temas; //aqui estamos creando una nueva variable llamada $listadosquecrece en donde estamos guardando las filas de la consulta SQL
}
}
$navbits = construct_navbits(array('' => 'Pagina de Prueba'));
$navbar = render_navbar_template($navbits);
$titulo_navegador = "Pagina de Prueba";
/*Compilando la Plantilla y asignando Variables*/
$templater = vB_Template::create('mostrar10'); //Creamos el Template
$templater->register_page_templates(); //Registramos lo basico de toda plantilla (header, footer, headinclude, etc)
$templater->register('navbar', $navbar); //Registramos el Navbar para poder usarlo
$templater->register('titulo_navegador', $titulo_navegador); //Registramos una variable más (tantas como quieras)
$templater->register('listadosquecrece', $listadosquecrece); //Registramos el ARRAY BIDIMENSIONAL
print_output($templater->render()); // "Compilamos" la Plantilla con nuestras variables "Inyectadas"
?>
Como lo dije en el anterior Tutorial:Código HTML:{vb:stylevar htmldoctype} <html xmlns="http://www.w3.org/1999/xhtml" dir="{vb:stylevar textdirection}" lang="{vb:stylevar languagecode}" id="vbulletin_html"> <head> <title>{vb:raw vboptions.bbtitle} - {vb:raw titulo_navegador}</title> {vb:raw headinclude} </head> <body> {vb:raw header} {vb:raw navbar} <div id="pagetitle"> <h1>{vb:raw titulo_navegador}</h1> </div> <h2 class="blockhead">Listar los 10 Primeros Temas</h2> <div class="blockbody"> <vb:each from="listadosquecrece" key="key" value="value"> <div class="blockrow"> <div><a href="showthread.php?t={vb:var value.threadid}">{vb:var value.title}</a></div> </div> </vb:each> </div> {vb:raw footer} </body> </html>
Espero que este tutorial les sea util al menos para entender como se crea una pagina propia para vbulletin con datos de la base de datos.
como verán es bastante facil y nada complicado el usar las funciones y variables de vBulletin a nuestro beneficio..
Temas Similares:


LinkBack URL
About LinkBacks

Responder Citando