Como hacer funcionar Plantillas Personalizadas usando Plugins

  • Autor Autor imported_Jhonnyf
  • Fecha de inicio Fecha de inicio
I

imported_Jhonnyf

Épsilon
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Continuando con este tema
Enlace eliminado

vi que es mejor hacer un nuevo tema, para que no pierda esta informacion,

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
Enlace eliminado

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:

PHP:
<if condition="$bbuserinfo[userid]">
<h3>Usuario Registrado</h3>
<else />
<h3>Usuario No Registrado</h3>
</if>
Crear un Plugin en global_start or parse_templates y ponle el siguiente codigo:
PHP:
eval('$plus_navbar = "' . fetch_template('plus_navbar') . '";');
luego hacemos otro plugin enganchado en cache_templates con lo siguiente:
PHP:
$globaltemplates = array_merge($globaltemplates, array('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_templates
ejemplo:
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
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
 
Excelente Jhonnyf!!

El tutorial es claro y conciso. Seguramente nos será de gran utilidad a todos.
 
De verdad que te luces amigo, te lo agradezco y se que muchos mas te lo agradeceran de igual manera.

Saludos. 🙂
 
de los mejores aportes que he visto!!! espero que cuando domine el arte de la programación todavía pueda verte por estos lares 🙂
 
Excelente viejito!

Muy buen aporte.
 
Hola, después de leer tu explicación he conseguido crear una plantilla y funciona, mi pregunta es, tengo seis stylos, como puedo actualizarlos todos de golpe, cada vez haga cambios en esa plantilla, sin tener que ir uno por uno, un saludo y gracias.
 
Hola, después de leer tu explicación he conseguido crear una plantilla y funciona, mi pregunta es, tengo seis stylos, como puedo actualizarlos todos de golpe, cada vez haga cambios en esa plantilla, sin tener que ir uno por uno, un saludo y gracias.
Supongo que asegurandote de que cada uno de los estilos tenga el hook correspondiente.
 
Excelente.
Gracias, recien estoy conociendo vb y este tutorial esta muy bueno.
Sls.
 
Supongo que asegurandote de que cada uno de los estilos tenga el hook correspondiente.
Supones mal ya que no uso Hooks en Plantillas sino los Hooks en archivos PHP que son 2 cosas diferentes

aqui lo que hago es trabajar con la variable que contiene toda una plantilla (footer) y concatenarla con la variable que contiene la plantilla el plus_navbar

HTML:
$vbulletin->templatecache['footer'] = $vbulletin->templatecache['plus_navbar'] . $vbulletin->templatecache['footer'];
ahora, porque la concatené con el footer y No con el navbar.... no me acuerdo :$
 
Una pregunta, quiero agregar un icono de youtube en el postbit para los usuarios que tengan canal de youtube y que este icono linkee, me explico:

He echo un apaño para colocar un icono que lleve al canal de youtube de mis usuarios usando un campo de perfil:
PHP:
$template_hook[postbit_userinfo_right]
                    <div>$post[icqicon] $post[aimicon] $post[msnicon] $post[yahooicon] $post[skypeicon]
<-- Youtube channel -->
<if condition="$post[field7]"><a href="http://$post[field7]"><img src="$stylevar[imgdir_misc]/youtube.png" alt="Youtube Channel" border="0" /><a/></if>
<-- / Youtube channel -->
Funciona Muy bien!!!


Pero me gustaría hacerlo con plugins y plantillas de manera que quede:
PHP:
$template_hook[postbit_userinfo_right]
                    <div>$post[icqicon] $post[aimicon] $post[msnicon] $post[yahooicon] $post[skypeicon] $post[youtube]
¿Como podría hacerlo?
 
Una pregunta, quiero agregar un icono de youtube en el postbit para los usuarios que tengan canal de youtube y que este icono linkee, me explico:

He echo un apaño para colocar un icono que lleve al canal de youtube de mis usuarios usando un campo de perfil:
PHP:
$template_hook[postbit_userinfo_right]
                    <div>$post[icqicon] $post[aimicon] $post[msnicon] $post[yahooicon] $post[skypeicon]
<-- Youtube channel -->
<if condition="$post[field7]"><a href="http://$post[field7]"><img src="$stylevar[imgdir_misc]/youtube.png" alt="Youtube Channel" border="0" /><a/></if>
<-- / Youtube channel -->
Funciona Muy bien!!!


Pero me gustaría hacerlo con plugins y plantillas de manera que quede:
PHP:
$template_hook[postbit_userinfo_right]
                    <div>$post[icqicon] $post[aimicon] $post[msnicon] $post[yahooicon] $post[skypeicon] $post[youtube]
¿Como podría hacerlo?
Respuesta aqui

http://www.vbhispano.com/foros/f6/youtube_canal_link_postbit-13625/#post71583
 
Disculpen por revivir un tema tan viejo, pero existe la posibilidad de que este tutorial sea actualizado para vBulletin 4?

Saludos
 
Atrás
Arriba