Objetivo: crear 1 plantilla personalida como cualquiera de las existentes en vBulletin y poder llamarla desde otra plantilla o usarla como si fuera una plantilla standard más de vBulletin
¿Como Funciona?: Cuando creas tu plantilla personalizada esta esta en la base de datos, y vBulletin ni se entera que existe, es por eso que tienes que "parsearlo" (convertir el codigo vBulletin en codigo php) y luego ponerlo en la cache de las plantillas para su rapido uso
Si no haces estas lineas, cuando la llames no ocurrirá nada porque estarias llamando a una variable que no existe (el nombre de la plantilla personalizada)
Comentarios: esta es una forma de hacerlo, se puede hacer desde un archivo PHP como en este tutorial
Guía para Agregar Paginas personalizadas a vBulletin
al final, lo que se ponga en un hook (enganche, plugin, etc) se integra con el PHP al que hace referencia, asi que viene a hacer lo mismo
Crea una plantilla personalizada, la vamos a llamar plus_navbar con un codigo como este:
Tutorial: Como crear una nueva plantilla (mi_plantilla) - vBSoporte
Crear un Plugin en global_start or parse_templates y ponle el siguiente codigo:Código PHP:<if condition="$bbuserinfo[userid]">
<h3>Usuario Registrado</h3>
<else />
<h3>Usuario No Registrado</h3>
</if>
luego hacemos otro plugin enganchado en cache_templates con lo siguiente:Código PHP:eval('$plus_navbar = "' . fetch_template('plus_navbar') . '";');
Luego de eso ya puedes usar la plantilla como variable $plus_navbar y ponerla en cualquier parte de las plantillas de vBulletin o concatenarla en el global_start or parse_templatesCódigo PHP:$globaltemplates = array_merge($globaltemplates, array('plus_navbar'));
ejemplo:
Código PHP:$vbulletin->templatecache['footer'] = $vbulletin->templatecache['plus_navbar'] . $vbulletin->templatecache['footer'];
Un dato curioso, es que para usar las plantillas en el postbit, hay que llamarlo asi $GLOBALS[plus_navbar]
Si quieres tener más de 1 plantilla personalida, el "eval" es 1 linea por plantilla, pero en el $globaltemplates puedes hacer esto
Código PHP:$globaltemplates = array_merge($globaltemplates, array('mi_plantilla1', 'mi_plantilla2'));
Si algo no quedo claro, comentenlo por favor, ya que usualmente los programadores tenemos la mala costumbre de "asumir" que algunas cosas estan bastante claras cuando muchos tienen conocimientos basicos de programacion
Temas Similares:


LinkBack URL
About LinkBacks
Responder Citando