Foros del Web » Programando para Internet » PHP »

Más problemas con BBCodes

Estas en el tema de Más problemas con BBCodes en el foro de PHP en Foros del Web. Buenas... Ya tengo un par de temas por problemas que he tenido con BBCode que estoy haciendo ¬,¬ Ahora me funcionan los codigos...mas o menos. ...
  #1 (permalink)  
Antiguo 10/05/2010, 02:32
 
Fecha de Ingreso: febrero-2008
Mensajes: 269
Antigüedad: 16 años, 2 meses
Puntos: 5
Más problemas con BBCodes

Buenas...

Ya tengo un par de temas por problemas que he tenido con BBCode que estoy haciendo ¬,¬ Ahora me funcionan los codigos...mas o menos. El caso es que si pongo el codigo solo con el texto que sea, funciona perfecto, el problema viene al mezclar cosas tipo "[color =#FFF][ i][/ i][/ color]" En este caso, solo funcionaba la cursiva y con la i fuera si que funciona pero claro, no voy a poner una nota para que el usuario se acuerde de no poner ningun codigo dentro del de color (Todos sabemos que no lo leeran y tendre 500 quejas diarias).

Tengo un amigo programador que me intentó ayudar pero ahora esta muy ocupado asi que no pudo prestarme más de 10 minutos. Me dijo que eso era porque el codigo del color seguramente estaba mal hecho. El problema es, que hago para que funcione? Estos dias no se a conectado, no he podido preguntarle, he intentado arreglarlo por mi cuenta pero no consigo que nada funcione ._. Voy tocando y a veces solo se pone en cursiva y ya, otras el codigo de la cursiva no funciona y se imprime como texto normal, etc...

Dejo el codigo relacionado con esto...

Código PHP:
Ver original
  1. $bb_code = array(
  2.     '/:\)/' => '<img src="images/smileys/icon_compress.gif" />',
  3.     '/:\(/' => '<img src="images/smileys/icon_pale.gif" />',
  4.     '/:\D/' => '<img src="images/smileys/icon_biggrin.gif" />',
  5.    
  6.     '/\[b\](.*?)\[\/b\]/is' => '<strong>$1</strong>',
  7.    
  8.     '/\[i\](.*?)\[\/i\]/is' => '<span style="font-style:italic;">$1</span>',
  9.    
  10.     '/\[u\](.*?)\[\/u\]/is' => '<u>$1</u>',
  11.    
  12.     '/\[img\](.*?)\[\/img\]/is' => '<img src="$1" border="0" />',
  13.    
  14.     '/\[citar\](.*?)\[\/citar\]/is' => '<div id="quote">$1</div>',
  15.  
  16.     '/\[center\](.*?)\[\/center\]/is' => '<div align="center">$1</div>',
  17.  
  18.         '/\[color\=(.*?)\](.*?)\[\/color\]/is' => '<span style="color: $1;">$2</span>',
  19.  
  20.     '/\[size\=(.*?)\](.*?)\[\/size\]/is' => '<span style="font-size: $1;">$2</span>'
  21. );

Aclaro tambien que uno de mis intentos fue cambiar el codigo de cursiva a algo como esto

Código PHP:
Ver original
  1. '/(.*)\[i\](.*?)\[\/i\](.*)/is' => '$1<span style="font-style:italic;">$2</span>$3',

Para ver que pasaba, aparte que me dijeron que asi deberia funcionar pero nada. Con ese, el codigo de cursiva deja de funcionar y se imprime como texto normal y corriente...

Bueno, ahí arriba esta la lista de codigos y aqui la función

Código PHP:
Ver original
  1. function bbcode($codigo) {
  2.     $search = array_keys($GLOBALS['bb_code']);
  3.     $codigo = preg_replace($search, array_values($GLOBALS['bb_code']), htmlentities($codigo));
  4.     return $codigo;
  5. }

Y dejo tambien el html, no creo que sea necesario pero bueno, por si acaso...

Código HTML:
Ver original
  1. <!-- [+] Contenedor Central [+] -->
  2.                     <div id="central">
  3.                         <div id="titulo"><b><?=$unico['tipo']?></b> - <?=$unico['titulo']?></div>
  4.                         <div id="noticia">
  5.                             <p><?=nl2br(bbcode($unico['content']))?></p>
  6.                         </div>
  7.                        
  8.                         <? if( $unico['notas'] != NULL ): ?>
  9.                         <div id="subtit"><b>Notas del Autor</b></div>
  10.                         <div id="noticia">
  11.                             <p><?=$unico['notas']?></p>
  12.                         </div>
  13.                         <? endif; ?>
  14.                     </div>
  15.                     <!-- [-] Contenedor Central [-] -->

Siento postear tanto sobre esto pero esque no consigo nunca que funcione como tiene que funcionar x_x
  #2 (permalink)  
Antiguo 27/05/2010, 08:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Más problemas con BBCodes

http://www.hotscripts.com/listing/phpbbcode/

Saludos.
  #3 (permalink)  
Antiguo 27/05/2010, 10:48
 
Fecha de Ingreso: febrero-2008
Mensajes: 269
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Más problemas con BBCodes

Ese script no tiene enlace de descarga 0,0

Gracias por responder igualmente
  #4 (permalink)  
Antiguo 27/05/2010, 12:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Más problemas con BBCodes

En la pagina oficial vienen más enlaces: http://www.bbcode.org/implementations.php

Saludos.
  #5 (permalink)  
Antiguo 27/05/2010, 12:34
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Más problemas con BBCodes

Te servira este: http://www.php.net/manual/es/book.bbcode.php ?
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 27/05/2010, 12:51
 
Fecha de Ingreso: febrero-2008
Mensajes: 269
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Más problemas con BBCodes

Cita:
Iniciado por GatorV Ver Mensaje
En la pagina oficial vienen más enlaces: http://www.bbcode.org/implementations.php

Saludos.
WTH! No sabia que habia página oficial XD Creia que era algo básico y único de phpbb

Cita:
Iniciado por Triby Ver Mensaje
Ahora le echaré un vistazo tambien.

Gracias por la ayuda, con esto creo que ya debería poder hacer algo XO

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:42.