Ver Mensaje Individual
  #35 (permalink)  
Antiguo 11/10/2007, 19:23
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Ayuda para Citar en un post...!!!

Agrega estas dos funciones:

Código PHP:
function contar_open_tags($str) {
    
preg_match_all ('/\[QUOTE\=(.*?)\]/i'$str$matches);
    
$opentags count($matches['0']);
    
preg_match_all ('/\[QUOTE\]/i'$str$matches2);
    
$opentags $opentags+count($matches2['0']);
    return (
$opentags 0) ? $opentags false;
}
 
function 
contar_close_tags($str) {
    
preg_match_all ('/\[\/QUOTE\]/i'$str$matches);
    
$closetags count($matches['0']);
    return (
$closetags 0) ? $closetags false;

y tu funcion bbcode_quote() queda asi:
Código PHP:
function bbcode_quote ($str) {
 
$open '<blockquote style="border-left: 1px solid #000;">';
$close '</blockquote>';
 
// How often is the open tag?
$opentags contar_open_tags($str);
 
// How often is the close tag?
$closetags contar_close_tags($str);
 
// Check how many tags have been unclosed
// And add the unclosing tag at the end of the message
$unclosed $opentags $closetags;
for (
$i 0$i $unclosed$i++) {
$str .= '[/quote]';
}
// Do replacement
    
$search = array( "/\[quote\](.*?)\[\/quote\]/is","/\[quote\=(.*?)\](.*?)\[\/quote\]/is" ); 
    
$replace = array( "\n$open\n$1\n$close\n","\n$open\n<b><i>Publicado por $1</i></b>\n<br />\n$2\n$close\n" );
 
    while(
contar_open_tags($str)) {
        
$str preg_replace$search$replace$str );
    }
    return 
preg_replace$search$replace$str );
 

Asi te debe funcionar bien...

Prueba con esto:

Código PHP:
ob_start();
 
//AQUI EMPIEZA EL MENSAJE
?>
Hola, este es mi mensaje. Veamos como funciona esto:
[quote=okram]
    Yo publique este mensaje, pienso qe va a funcionar. NO cerrare este quote, pero habra otros anidados:
    [quote]
        Este no tiene autor
    [/quote]
    Ya se cerro el quote sin autor, pero recuerden que no cerrare el primer quote
    [quote=algo]
        Segundo post con autor algo
        [quote]
            Este no tiene autor
        [/quote]
        Ya se cerro el quote sin autor
        [quote=otro algo]
            y ahora? esto lo publico otro algo
            [quote]
                Este no tiene autor
            [/quote]
                Cerro quote sin autor
 
            [quote=otro algo mas]
                y ahora? esto lo publico otro algo mas
                [quote]
                    Este no tiene [b]autor[/b], pero esto esta en [i]cursiva[/i]
                [/quote]
            [/quote]
            Cerro quote de otro algo mas
        [/quote]
    [/quote]
    Termino el segundo con autor algo
<?php
$str 
ob_get_contents();
ob_end_clean();
echo 
bbcode_quote($str);
LIVE EXAMPLE:

Funcionando: http://ejemplos.fdw.myokram.info/quote/
Código: http://ejemplos.fdw.myokram.info/quote/?source

Un saludo,

Última edición por okram; 12/10/2007 a las 05:47