Novedad:  [Plugin] HideUntilPost[v1.2]: Oculta texto, adjuntos y/o enlaces hasta realizar respuesta

Autor: Sergio Montoya
Compatibilidad: 1.4/1.6
Version: 1.2

Este plugin lo he desarrollado con el fin de poder ocultar ya sea Texto especifico, enlaces y/o archivos adjuntos hasta que el usuario responda en el tema.

El plugin puede ser configurado desde el panel admin para que funcione para cualquiera de los 3, se puede también excluir foros y grupos de usuarios.

Si el usuario realiza su primer post en un tema donde este plugin si tenga efecto por medio de respuesta rapida el tema se actualiza para poder mostrar el contenido oculto.

Texto o cualquier tipo de contenido puede ser ocultado dentro del bbcode:
Code:
[lock]...[/lock]

Instalación:
  1. Extrar el contenido del ZIP.
  2. Subir por ftp los siguientes archivos respetando las rutas que llevan:
    • inc/plugins/hideUntilPost.php
    • inc/languages/english/hideUntilPost.php (lenguaje en inglés)
    • inc/languages/espanol/hideUntilPost.php (lenguaje en español)
  3. Instalar y activar en el panel de administración.
  4. Configurarlo. Por default cada metodo esta desactivado. Activar lo que sea deseado.

Modificar el mensaje que se muestra:
Para modificar la 'caja' de error que se muestra, se tiene que ir a las plantillas, selecciona las plantillas globales y encontrar la plantilla bajo el nombre HideUntilPost_box.

Saludos.

UPDATE: Actualizado a v.1.2. Corrige una variable de prueba y no permitia realizar quotes por ajax. Agregue validacion adicional a ajax tambien.
v1.2 ya está validado en la pagina oficial.

[ DESCARGA ]
This post was last modified: January 4, 2011, 3:59 pm by atorrante.
tu lo creaste??
lo revise y esta conplicado para que sea tu primer plugin pero bueno si tu lo creaste me contestaras hay te van unas preguntas!!

que es ob_end_clean();?

en que hook usas
Code:
function hideUntilPost_validate($fid)
{
    global $mybb;
    // Check first by usergroups.
    if($mybb->user['uid'] != 0 && $mybb->settings['hideUntilPost_gid_exclude'] != 0)
    {
        $groups = explode(",", $mybb->settings['hideUntilPost_gid_exclude']);
        if($mybb->settings['hideUntilPost_gid_exclude'] == 0 || in_array($mybb->user['usergroup'], $groups))
        {
            // Aww man, can't apply the script to the post.
            return false;
        }
    }
    // Usergroup not excluded, so far so good. What about the forum?
    if($mybb->settings['hideUntilPost_fid_exclude'] != 0)
    {
        $fids = explode(",", $mybb->settings['hideUntilPost_fid_exclude']);
        if($mybb->settings['hideUntilPost_fid_exclude'] == 0 || in_array($fid, $fids))
        {
            // Aww man, can't apply the script to the post.
            return false;
        }
    }
    // Too bad... hiding content :)
    return true;
}

??

para que sas este codigo??
Code:
function hideUntilPost_filter(&$msg)
{
    while(preg_match("#\[lock\](.*)\[/lock\]#is",$msg))
        $msg = preg_replace("#\[lock\](.*)\[/lock\]#is",'',$msg);
}
y que en que hook lo usas?
Bueno es que siempre he modificado MyBB, y pues anteriormente era dev de MyBB Blush pero nunca habia desarrollado un plugin para el software Tongue

Code:
function hideUntilPost_validate($fid)

Esta función no la uso en ningún hook, pero las funciones hideUntilPost_code, hideUntilPost_clear y hideUntilPost_donewreply usan esta función. Me ahorra repetir codigo.

Code:
function hideUntilPost_filter(&$msg)

La función de esta función (valgame la redundancia...) es simplemente remover el bbcode de lock cuando se hace multiquote o quitarlo de la pantalla de newreply (mensajes) cuando el usuario todavia no ha respondido.

Code:
ob_end_clean();
Si te das cuenta anteriormente declaro ob_start(), como xmlhttp / ajax solo imprime texto y JS lo captura para mostrarlo en la pagina que se encuentra realmente el usuario por lo tanto ob_start forza a que se guarde en un cache y no lo envie directamente como respuesta, hace la validación y en caso de que el usuario no haya respondido todavia en el tema se va a borrar el texto, una vez de que la información que 'ya se habia enviado' se borró y se reemplaza con el nuevo 'quote'.
La información ya enviada pero que estaba en el cache en espera de que se solicite su envio se limpia con esa función, ob_end_clean();

Todo lo ultimo es para evitar hacer quotes para la respuesta rapida y que incluyan texto que el usuario no de debe de ver.
This post was last modified: December 24, 2010, 2:21 pm by atorrante.
Eras dev de mybb??? encerio? y que paso?

si tienes razon jeje tambien se todo lo que te pregunte solo probaba si era cierto ya que para ser tu primer plug pues se me iso mucho jeje y te lo pregunte xq en la otra web (mybb-es) an lleagado diciendo que ellos ceran plugins y no solo roban creditos y a pasado es por eso es que ise esto aun asi buen plugin bro felicidades!
Estube muy poco tiempo, como 4 meses creo. Presisamente lo que dije en mi presentación, la escuela y trabajo me consumieron.... cuando recien entre tenia algo de tiempo libre y estube ayudando al desarrollo de 1.6.

Pero tube que salirme por falta de tiempo, la escuela se puso dificil y me empezó a salir mucho trabajo en ese entonces.

EDIT: BTW, muchas gracias Smile tengo varios plugins en mente para desarrollar pero pues apenas pude con este xD a ver si tengo tiempo de realizar los otros jej.
This post was last modified: December 24, 2010, 6:35 pm by atorrante.