Tutorial: Llamar a página externa [include] desde hooks e insentar mensaje en una plantilla

KingRuko Seguir

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
19 Ago 2009
Mensajes
50
Algo que cambió con vBulletin 4.x es la forma de declarar variables en php para usarlas en plantillas. Les quiero mostrar un sencillo ejemplo de como llamar una página externa en php y mostrar las variables en la plantilla navbar, pondremos un script que evaluará si el usuario navega desde Internet Explorer u otro navegador para mostrar un mensaje pensonalizado.

Lo primero es crear un archivo en php con el siguiente código:

Insertar CODE, HTML o PHP:
<?php
$IE= "Hola desde Internet Explorer"; //declaramos la variable para mostrar en Internet Explorer
$otro="Hola desde otro Navegador"; // declaramos la variable para el mensaje de otros navegadores
$navegador = getenv("HTTP_USER_AGENT"); //evaluamos el navegador el cual nos dará como resultado mostrar una de las dos variables
if (preg_match("/MSIE/i", "$navegador"))
{$mensaje=$IE;}
else
{$mensaje=$otro;}
echo $mensaje;
?>

Guardamos el script como navegador.php y la subimos al root de nuestro foro.

En segundo lugar vamos a crear un plugin con el siguiente código (en mi caso como es en la navbar usaré un inicio global, pero depende de la plantilla donde se quiere mostrar podemos usar el Debug Mode para ver los hooks que se usan es la plantilla).

Producto: vbulletin
Ubicación de enganche: global_start
Título: Mensaje desde PHP
Código PHP de plugin:
ob_start();
include('navegador.php');
$mensaje = ob_get_contents();
ob_end_clean();
vB_Template::preRegister('navbar',array('mensaje' => $mensaje));
Plugin activo : Si

Con lo anterior hemos traido una variable de una página externa para mostrarla en la plantilla navbar, para ello pondremos {vb:raw mensaje}

Para mejorar la forma en que se mostrará el mensaje vamos a la plantilla additional.css y creamos una nueva clase con el siguiente código

Insertar CODE, HTML o PHP:
.anuncio_navegador {

    font-family: Arial, Helvetica, sans-serif;
    font-size: 24px;
    color: #FFF;
    background-color: #06F;
        font-variant: small-caps;
        text-transform: capitalize;
}

Ya con la clase creada, vamos a la plantilla navbar y añadimos la variable de la siguiente forma

Buscamos

Insertar CODE, HTML o PHP:
{vb:raw ad_location.ad_navbar_below}

Añadimos antes del anterior código, lo siguiente

Insertar CODE, HTML o PHP:
<div class="anuncio_navegador" align="center">{vb:raw mensaje}</div>

Ya haciendo esto nos dará el siguiente resultado desde firefox u otro navegador

2s0k521.jpg


Y así nos saldrá en Internet Explorer

33atf8l.jpg
 
Arriba