Tú Carrito esta vacío
Resultados 1 al 8 de 8

Temas similares

  1. tabla de enlaces Respuestas: 6
    Por Sum en el foro vBulletin 3 - Preguntas, Problemas y Soluciones
  2. Plantilla o tabla Respuestas: 0
    Por Lumix en el foro vBulletin 3 - Preguntas, Problemas y Soluciones
  3. Por Gibzon en el foro Archivos de vBulletin 3.0 - 3.7
  4. Nombre de la Tabla Respuestas: 1
    Por Prouthetics en el foro Archivos de vBulletin 3.0 - 3.7
  5. tabla de mensaje Respuestas: 4
    Por Trovador en el foro Archivos de vBulletin 3.0 - 3.7
  1. #1
    Miembro especial Miembro de Diamante Array Avatar de Jhonnyf
    Fecha de ingreso
    06 sep, 08
    Ubicación
    Dentro de mi
    Mensajes
    1,140
    Gustado
    61 Veces
    Me Gustan
    1 Veces

    Predeterminado Llamar a una Tabla y mostrar los datos en una pagina propia (mostrar10.php)

    Recuerda que aqui hay un ejemplo más basico
    http://www.vbhispano.com/foros/f6/ag...test_php-7970/

    este tutorial es para listar el contenido de alguna tabla tal y como se muestra los temas cuando uno entra en los foros , solo vamoa a mostrar los temas con el id de 1 al 10

    la idea de este ejemplo es aprender a hacer consultar que nos den resultados multiples (query_read de vBulletin) recorrer los resultados y mostrarlos como si fuera una pagina más de vbulletin

    cuando hagas tu php, llama al global.php de vBulletin para tener todas sus funciones, conexion a la base de datos, stylos, etc.... la programacion usando el "Kit de vBulletin", es bastante facil.....

    vamos a crear 2 plantillas personalizadas en vbulletin, una la vamos a llamar mostrar10temas que será la que contena el navbar, y la apertura de la tabla para el listado, cerrado de la tabla, pie del foro, etc... y otro que se llamará mostrar10temasbit, que será cada uno de los registros a mostrar.
    por el momento solo vamos a definir que nombre vamos a usar, luego la codificaremos


    este seria el contenido del archivo que lo llamaremos mostrar10.php

    Có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', 
    'mostrar10temasbit',//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 * 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']);  
                    eval('$listadosquecrece .= "' . fetch_template('mostrar10temasbit') . '";'); //aqui estamos creando una nueva variable llamada $listadosquecrece en donde estamos guardando la plantilla mostrar10temasbit procesada por cada registro, 
                    //lo ideal seria llamarla $mostrar10temasbits (plural), pero por motivos de tutorial estoy usando otro nombre de variable para que no se equivoquen
                };
            }
            else
            {
            eval('$listadosquecrece = "' . "<tr><td class='alt1' colspan=5><center>No registros</center></td></tr>" . '";');
            //si no hay registros muestro que ese mensaje como un TD en la tabla, le puse colspan=5 porque serán 5 las columnas que mostraré
            }                


    $navbits = array(); 
    $navbits[$parent] = 'Pagina de Prueba';  //esto se vera en el NavBar (el arbol que sale cuando entras a un tema, etc en el navbar)
    $navbits = construct_navbits($navbits); //Que vBulletin lo compile a su manera
    eval('$navbar = "' . fetch_template('navbar') . '";'); //Luego usamos esa compilacion con la plantilla navbar (que será llamado en la plantilla prueba
    eval('print_output("' . fetch_template('mostrar10') . '");'); //y Finalmente llamamos a nuestra plantilla mostrar10, que ahi esta llamando a la variable que contiene los registros a mostrar :D
    ?>
    el contenido de las plantillas seria:

    mostrar10temasbit: (el que crea los registros individuales)
    Código HTML:
    <tr>
    <td class="alt1">$mis10temas[threadid]</td>
    <td class="alt2">$mis10temas[title]</td>
    <td class="alt1">$mis10temas[postusername]</td>
    <td class="alt2">$mis10temas[dateline]</td>
    <td class="alt1">$mis10temas[lastpost]</td>
    </tr>
    como verás, estamos usando la variable $mis10temas, que sale del php cuando usamos los registro de manera individiual, como se hizo un select *, tenemos todos los campos de la tabla thread disponibles para usarlo con esa variable

    -------------------------------
    mostrar10: El que arma la pagina principal, puedes quierle el navbar, el footer o todo lo que quieras
    Código HTML:
    $stylevar[htmldoctype]
    <html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">
    <head>
    $headinclude
    <title>$vboptions[bbtitle] - Listado de los 10 primeros Temas</title>
    </head>
    <body>
    
    $header 
    $navbar <!--Esto llama a la variable que se construyó en el php-->
    
     <!--INICIO DEL CONTENIDO QUE DESEAS MOSTRAR-->
     <!--Basicamente se hace para que se vea una tabla usando los colores de su foro-->
    <table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" 
    
    align="center">
    <tr>
    <td class="tcat">Id del tema</td>
    <td class="tcat">Titulo</td>
    <td class="tcat">Creador</td>
    <td class="tcat">Fecha de creacion</td>
    <td class="tcat">Ultimo que posteó</td>
    </tr>
    $listadosquecrece
    </table>
    
     <!--FIN DEL CONTENIDO QUE DESEAS MOSTRAR-->
    
    $footer
    </body>
    </html>
    Aqui usamos la variable $listadosquecrece que se creó en el php y que contiene la acumulacion de los registros a mostrar

    ************************************************** ************
    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..


    NOTA: si deseas mover este archivo a una ubicacion diferente de la raiz de tu foro, debes poner antes de la llama del global el cambio de directorio, asi que quedaria asi:

    Código PHP:
    chdir('/home/site/public_html/forums'); 
    require_once(
    './global.php'); 
    OJO que "/home/site/public_html/forums" depende de tu host, asi que es variable

    Aqui el ejemplo de como quedaria
    http://www.ciudadanime.com/mostrar10.php

  2. #2
    Miembro especial Miembro de plata Array
    Fecha de ingreso
    28 jul, 08
    Mensajes
    60
    Gustado
    0 Veces
    Me Gustan
    0 Veces

    Predeterminado Re: Llamar a una Tabla y mostrar los datos en una pagina propia (mostrar10.php)

    hay cosas que no me quedan muy claras... donde va el mostrar10.php ???

    despues de eso tengo que crear 2 plantillas verdad?
    mostrar10temasbit y mostrar10temas

    luego para visualizar la pagina con las variables llamadas del .php tengo que crear una nueva pagina o modulo mostrando la plantilla mostrar10temas ????

    estoy en lo correcto???

    gracias!

  3. #3
    Miembro especial Miembro de Diamante Array Avatar de Jhonnyf
    Fecha de ingreso
    06 sep, 08
    Ubicación
    Dentro de mi
    Mensajes
    1,140
    Gustado
    61 Veces
    Me Gustan
    1 Veces

    Predeterminado Re: Llamar a una Tabla y mostrar los datos en una pagina propia (mostrar10.php)

    Cita Iniciado por SenDoh Ver mensaje
    hay cosas que no me quedan muy claras... donde va el mostrar10.php ???

    despues de eso tengo que crear 2 plantillas verdad?
    mostrar10temasbit y mostrar10temas

    luego para visualizar la pagina con las variables llamadas del .php tengo que crear una nueva pagina o modulo mostrando la plantilla mostrar10temas ????

    estoy en lo correcto???

    gracias!
    1. el mostrar10.php es un archivo, va en la raiz de tu foro
    2. si, tienes que crear las plantillas, aunque puedes evitarlas siguiendo este tema: http://www.vbhispano.com/foros/f5/so...227/#post42740
    3. mostrar10.php llama a mostrar10 (la plantilla) y esta a si vez a la variable $listadosquecrece que es la sumatoria del listado, registro por registro (concatenacion) basado en la plantilla mostrar10temasbit

    si me preguntan con numeros, será más facil responderles

  4. #4
    Miembro especial Miembro de plata Array
    Fecha de ingreso
    28 jul, 08
    Mensajes
    60
    Gustado
    0 Veces
    Me Gustan
    0 Veces

    Predeterminado Re: Llamar a una Tabla y mostrar los datos en una pagina propia (mostrar10.php)

    ahhhh me funciono.. bien! gracias.. pero aun tengo algunas dudas (ahora preguntare con numeros hehehe )

    1) Para modificar la pagina .php tengo que modificar el mismo archivo?? o la plantilla mostrar10 ????
    2) Llamando al global.php puedo usar CUALQUIER variable?? osea puedo llamar las variables $home[leftblocks], $show['left_column'] (adv portal) o $forumbits (FORUMHOME) ?????

  5. #5
    Miembro especial Miembro de Diamante Array Avatar de Jhonnyf
    Fecha de ingreso
    06 sep, 08
    Ubicación
    Dentro de mi
    Mensajes
    1,140
    Gustado
    61 Veces
    Me Gustan
    1 Veces

    Predeterminado Re: Llamar a una Tabla y mostrar los datos en una pagina propia (mostrar10.php)

    1. Eso ya depende de lo que quieres hacer, el estilo de programacion que usé es para que el php te facilite los datos y en las plantillas tu las manipules para presentacion, asi que si quieres agregar un campo más, si este existe en la consulta, pues con modificar las plantillas es suficiente, te recuerdo en el ejemplo, tienes todos los campos de la tabla thread a tu disposicion porque se usó un "select *"
    2. con el Global tienes las variables GLOBALES, las que recuerdo ahorita son:
      $navbar, $footer, $bbuserinfo[CAMPO], configuraciones de plantillas, todas las opciones de vBulletin , etc... en el caso de $forumbits puedes usarlo como variable, pero recuerda que estará vacio porque esa variable se llena cuando es llamada desde forundisplay.php, en la caso de FORUMHOME es llenado desde el index.php

  6. #6
    Miembro especial Miembro de oro Array Avatar de Actors
    Fecha de ingreso
    15 oct, 08
    Mensajes
    144
    Gustado
    3 Veces
    Me Gustan
    6 Veces

    Predeterminado Re: Llamar a una Tabla y mostrar los datos en una pagina propia (mostrar10.php)

    Jhonny, la sigo aqui... fijate en Actors Studio Teatro® - Foros - Listado de los 10 primeros Temas

    y ahi veràs que en la variable pagetext sigue apareciendo con html del vbullettins pero no en html.

    Salute.

  7. #7
    Miembro especial Miembro de Diamante Array Avatar de Jhonnyf
    Fecha de ingreso
    06 sep, 08
    Ubicación
    Dentro de mi
    Mensajes
    1,140
    Gustado
    61 Veces
    Me Gustan
    1 Veces

    Predeterminado Re: Llamar a una Tabla y mostrar los datos en una pagina propia (mostrar10.php)

    Cita Iniciado por Actors Ver mensaje
    Jhonny, la sigo aqui... fijate en Actors Studio Teatro® - Foros - Listado de los 10 primeros Temas

    y ahi veràs que en la variable pagetext sigue apareciendo con html del vbullettins pero no en html.

    Salute.
    ahora usa el parse que te indiqué en este link
    http://www.vbhispano.com/foros/f58/q...895/#post46597

    esa parte del codigo quedaria asi
    Código PHP:
    $temas_query $db->query_read("SELECT * FROM " TABLE_PREFIX "post where postid in(29,37,45)"); //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
            
    {    
                
                if (!
    is_object($bbcode_parser))
                {
                require_once(
    DIR '/includes/class_bbcode.php');
                
    $bbcode_parser =& new vB_BbCodeParser($vbulletinfetch_tag_list());
                }
                
                
                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']);  
                    
    $mis10temas['pagetext'] = $bbcode_parser->parse($mis10temas['pagetext'],0true); //le aplicamos el parse
                    
    eval('$listadosquecrece .= "' fetch_template('mostrar10temasbit') . '";'); //aqui estamos creando una nueva variable llamada $listadosquecrece en donde estamos guardando la plantilla mostrar10temasbit procesada por cada registro, 
                    //lo ideal seria llamarla $mostrar10temasbits (plural), pero por motivos de tutorial estoy usando otro nombre de variable para que no se equivoquen
                
    };
            }
            else
            {
            eval(
    '$listadosquecrece = "' "<tr><td class='alt1' colspan=5><center>No registros</center></td></tr>" '";');
            
    //si no hay registros muestro que ese mensaje como un TD en la tabla, le puse colspan=5 porque serán 5 las columnas que mostraré
            

    PD1: estoy usando otra sentencia SQL para obtener los post que contengan BBCODES
    PD2: Ejemplo: Ciudad Anime - Listado de los 10 primeros Temas

  8. #8
    Miembro especial Miembro de oro Array Avatar de Actors
    Fecha de ingreso
    15 oct, 08
    Mensajes
    144
    Gustado
    3 Veces
    Me Gustan
    6 Veces

    Predeterminado Re: Llamar a una Tabla y mostrar los datos en una pagina propia (mostrar10.php)

    Alabado seas Jhonny!!!!!!!!!!!!!!!!! Todo lo que he aprendido en estos tres dias es grandioso!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Ya te volveré a molestar!!!!!!!!!!!!!!

    Gracias, gracias y más gracias.

    Jhonny, una consulta tonta pero si miras mi web www.actors-studio.org he empleado todo lo aprendido en estos 3 dias... estoy tratando de que el fundo de esa pagina INICIO creada sea azul y no lo logro...

    En inicio.php le he puesto <body bgcolor=blue> y nada, lo intente en la plantilla inicio y nada...

    Se te ocurre algo?
    Última edición por Actors; 16/12/2008 a las 14:46 Razón: Mensajes fusionados automáticamente

Etiquetas para este tema