Anuncio

Colapsar
No hay anuncios todavía.

Agregar Paginas personalizadas a vBulletin 4 (Test.php en vB4.x)

Colapsar
X
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar todos
nuevos mensajes

  • Agregar Paginas personalizadas a vBulletin 4 (Test.php en vB4.x)

    Si tienes la necesidad de Crear una nueva Pagina para tu vBulletin y presentar algun dato, ya sea estatico o consultando a la base de datos, con esta Guia lo podrás hacer

    Observacion Importante:
    Antes en vBulletin 3.x uno podia crear una variable en cualquier lugar del PHP y luego llamarlo en la plantilla, es decir, yo podia poner al inicio del codigo un $mi_nick='minombre'; y cuando hacia el eval('print_output("' . fetch_template('test') . '");'); basta con que en esa plantilla (Test) se llame a $mi_nick y este se mostraba.

    Ahora en vB4, eso ya no ocurre, solo se admite el uso de una variable del PHP en las plantillas si la has REGISTRADO previamente antes de compilarla (hacerle un RENDER)


    Tutorial
    Creamos un Archivo y lo llamaremos test.php con el siguiente contenido:

    Código:
     <?
    
    // ######################## SET ENTORNO PHP ###########################
    error_reporting(E_ALL & ~E_NOTICE);
    // ##################### DEFINIR COSNTANTES IMPORTANTES #######################
    define('THIS_SCRIPT', 'test');
    /*
    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 == 'test'">
        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, si no las pones vBulletin ejecutará una consulta extra para obtenerla
            'test', //RECUERDA QUE ESTE ES EL NOMBRE DE LA PLANTILLA QUE CREASTE
    );
    // pre-cache Plantillas usadas para Acciones
    $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 ############################
    // #######################################################################
    $navbits = construct_navbits(array('' => 'Test Page')); //creamos el Arreglo con el Arbol del Navbar
    $navbar = render_navbar_template($navbits);  //Compilamos la Plantilla Navbar y con eso el Arbol se vera en el NavBar (el arbol que sale cuando entras a un tema, etc en el navbar)
    // ###### Variables Propias y todo el Proceso que quieras hacer #####
    $pagetitle = 'Pagina de Prueba';
    // ###### Luego de tener todos los datos, comenzamos con el manejo de la Plantilla y su compilacion (RENDERED) ######
    $templater = vB_Template::create('test'); //Creamos un Objeto de tipo Plantilla basado en el Test
    $templater->register_page_templates(); //Registramos las variables comunes de vbulletin como el header, headerinclude, footer, etc
    $templater->register('navbar', $navbar); //registramos el navbar que hemos creado basado en nuestro arbol
    $templater->register('pagetitle', $pagetitle); //registramos la variable $pagetitle con el nombre de pagetitle dentro de las plantillas
    $templater->register('mensaje', 'Un Mensaje sin necesidad de una Variable en PHP'); //registramos un mensaje con el nombre de mensaje dentro de las plantillas
    print_output($templater->render()); //Imprimimos en pantalla compilandolo
    
    ?>
    Lo grabamos como test.php y lo subimos al Hosting...
    Si intentas entrar no verán nada ya que ese php no imprime nada de por si solo, imprime el contenido de la plantilla test, asi que creamos esa plantilla...

    Vamos Estilos y Plantillas -> Administrador de Estilos ->

    Abrimos el <<>> y en el combo escogemos CREAR NUEVA PLANTILLA


    en la plantilla ponemos lo siguiente (todo aqui es importante pero a la vez lo puedes sacar) y lo grabas como test

    Observacion con las variables en Plantillas
    Las variables en plantilla se llaman de la siguiente forma: {vb:raw pagetitle} {vb:raw mensaje} (recuerda que es el nombre con la que lo registramos) y si las trabajamos dentro de un IF, se manejar como PHP (<vb:if condition="$mensaje=='algo'">)

    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 pagetitle}</title>
        {vb:raw headinclude}
        {vb:raw headinclude_bottom}
      </head>
      <body>
      
        {vb:raw header}
      
        {vb:raw navbar}
      
        <div id="pagetitle">
          <h1>{vb:raw pagetitle}</h1>
        </div>
      
        <h2 class="blockhead">Titulo de la Tabla</h2>
        <div class="blockbody">
          <div class="blockrow">
            Texto 1
        </div>
        <div class="blockrow">
            {vb:raw mensaje}
        </div>
        </div>
      
        {vb:raw footer}
      </body>
    </html>
    Observa que la variable {vb:raw mensaje} no existe en el PHP, pero fue creada al momento de registrar las variables.

    Y haciendo todo eso ya tienes tu propia Pagina Personalizada para vBulletin 4.x
    Recorda siempre leerte las normas del foro.
Trabajando...
X