Traducir plugin de 3.8 a vB4

imported_Arcade Fire

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
14 Jun 2008
Mensajes
102
Hola a todos.

Hace tiempo, con vuestra ayuda, configuré un plugin para limitar la entrada de invitados solo a ciertos temas de un foro, dependiendo de los caracteres que tuviera el titulo.

Lo podéis encontrar aquí:

Hide threads to guests according to title - vBulletin.org Forum

El problema es que ahora al actualizar a vB4, no consigo hacerlo funcionar. Lynne de vB.org, ya me comentó por donde iban los tiros, pero no me queda muy claro:

Need help whith a plugin [vB3.8 > vB4] - vBulletin.org Forum

¿Me puede alguien concretar que tengo que poner en el plugin y en la plantilla?.

Gracias.
 

imported_Elmer

Zeta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
19 Jul 2003
Mensajes
1.865
Lo que Lynne dice esque debes registrar tu variable para poder usarla en SHOWTHREAD:
Insertar CODE, HTML o PHP:
if(stristr($thread[title], '+pv') == TRUE)
{
$onlyreg = TRUE;

vB_Template::preRegister('SHOWTHREAD', array('onlyreg' => $onlyreg));
}

Si no se registra, la variable no tendría ningún valor.
 

imported_Arcade Fire

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
14 Jun 2008
Mensajes
102
Gracias Elmer, la plantilla de SHOWTHREAD la dejo tal cual, ¿verdad?

Edito: el código de showthread no funciona, habría que modificarlo también:

Insertar CODE, HTML o PHP:
<if condition="($onlyreg == TRUE) and ($bbuserinfo[posts]<=1)">
<center><h2>Thread for Registered Users Only</h2></center>
<else />
El siguiente error ocurre cuando se intenta evaluar esta plantilla:
La condicional en la línea 760 parece carecer de la etiqueta de inicio (<if>). Esto puede causar un comportamiento inesperado.​
Esto parece ser causado por una declaración condicional malformada. Es altamente recomendable que arregles este error antes de continuar, pero puedes seguir así, si es lo que deseas.
 

imported_Elmer

Zeta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
19 Jul 2003
Mensajes
1.865
Si debes cambiar la condición, ahora el formato es:

Insertar CODE, HTML o PHP:
<vb:if condition="">
<vb:else />
</vb:if>
 

imported_Arcade Fire

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
14 Jun 2008
Mensajes
102
Pues muchas gracias, Elmer. Me va a costar acostumbrarme a editar plantillas en vB4, ya tenía bastante dominada la serie 3, ahora, vuelta a empezar...

Un saludo.

Una cuestion más:

He fecho 2 plugins diferentes para poder ver los temas segun condiciones distintas, pero cuando quiero añadir un 3º, éste no funciona nunca, ¿a que se puede deber?.
 

imported_Elmer

Zeta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
19 Jul 2003
Mensajes
1.865
podrías hacerlo todo en el mismo plugin, Solo usa <vb:elseif condition=""> para las demás condiciones.

Si no es problema pon el código aquí y te sugiero como podrías hacer lo que quieres. Igual explica que condiciones son las que se deben cumplir.
 

imported_Arcade Fire

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
14 Jun 2008
Mensajes
102
Perfecto Elmer, gracias por la ayuda.

Mira, tengo un primer plugin (+pv) para que los temas temas que contengan un +pv solo pueda ser visto por usuarios registrados con mas de 1 post:

Insertar CODE, HTML o PHP:
<vb:if condition="($onlyreg == TRUE) and ($bbuserinfo[posts]<=1)">
<center><h3 class="blockhead" align="center" style="color:red;font-size:25px;font-family:Comic Sans MS;"><img src="/images/statusicon/candado.gif" alt="Regístrate para poder ver éste Tema" /><u>Atención: Tema Visible para Usuarios Registrados</u></h3></center>
<vb:else />

Un segundo plugin (+18) con las mismas condiciones, usuario registrado con más de un tema, pero para cuando los títulos contengan un +18. De este modo puedo mostrar un texto diferente:

Insertar CODE, HTML o PHP:
<vb:if condition="($onlyadult == TRUE) and ($bbuserinfo[posts]<=1)">
<center><h3 class="blockhead" align="center" style="color:red;font-size:25px;font-family:Comic Sans MS;"><img src="/images/statusicon/18.png" alt="Regístrate para poder ver éste Tema" /><u>Atención: Tema Visible para Usuarios Registrados Adultos</u></h3></center>
<vb:else />

Y claro está, antes de {vb:raw footer}:

Insertar CODE, HTML o PHP:
</vb:if>
</vb:if>

Cuando añado un tercero, deja de funcionar, ya me pasaba en vB 3.7 y 3.8.

La tercera idea que tenia, es que en los temas que contengan un +vip, solo pudieran entrar usuarios con mas de 1.000 post , $bbuserinfo[posts]<=1000, pero ya te digo, creo plugin, añado ésta 3ª condicional, pero no funciona.


Lo ideal ya sería un hack, que permitiera acceder a ciertos post según el titulo y poder configurarlo a gusto de cada uno, por ejemplo:

(+pv) > Usuarios registrados con <1 post
(+18) > Usuarios registrados con más de 18 años ( No se la condicional para verificar la edad)
(+vip) > Usuarios con más de 1.000 posts
(+hd) > Usuarios de X grupo de usuario...

etc...

Pero todo esto se me queda muy grande...
 

imported_Elmer

Zeta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
19 Jul 2003
Mensajes
1.865
Si en tu tercera condicion quieres mostrar temas a usuarios con más de 1000, debería ser así $bbuserinfo[posts]>=1000.

Mira voy a intentar crear un producto con todas esas opciones que quieres y luego te lo paso para ver como te funciona.
 

imported_Arcade Fire

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
14 Jun 2008
Mensajes
102
Estupendo Elmer, muchísimas gracias.

La tercera condicional sigue sin aceptarla, lo he intentado ya con distintas condicionales (grupos, id...) parece como si la ignorara completamente... (?). Por curiosidad voy a quitar la de +18 y a poner la de +vip...

Si en tu tercera condicion quieres mostrar temas a usuarios con más de 1000, debería ser así $bbuserinfo[posts]>=1000.

Si lo pongo como tu dices, solo deja entrar a usuarios con menos de 1.000 post

Sin embargo así, funciona correctamente:

Insertar CODE, HTML o PHP:
<vb:if condition="($onlyvip == TRUE) and ($bbuserinfo[posts]<=1000)">
<center><h3 class="blockhead" align="center" style="color:red;font-size:25px;font-family:Comic Sans MS;"><img src="/images/statusicon/vip.png" alt="Regístrate para poder ver éste Tema" /><u>Atención: Tema Visible para Usuarios Registrados Vip</u></h3></center>
<vb:else />
He testado con una cuenta de 16.000 post y otra de 100.

Como me temía, funciona bien. En el momento que incluya otra condicional, no funcionará...

Edito Elmer: Ya tengo los tres condicionales con sus plugins funcionando!