Traducir plugin de 3.8 a vB4

  • Autor Autor imported_Arcade Fire
  • Fecha de inicio Fecha de inicio
I

imported_Arcade Fire

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
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.
 
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.
 
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.
 
Si debes cambiar la condición, ahora el formato es:

Insertar CODE, HTML o PHP:
<vb:if condition="">
<vb:else />
</vb:if>
 
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?.
 
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.
 
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... 😛
 
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.
 
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! 😉
 
ah bueno, yo aun no empezaba jeje. Que bien que los hayas hecho trabajar 😉