Ver Mensaje Individual
  #5 (permalink)  
Antiguo 09/02/2007, 09:26
Avatar de DeeR
DeeR
 
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 20 años, 4 meses
Puntos: 17
Re: formateo de texto

Haber lo que puedes hacer es usar
BEBECode un Javascript que cambia un Textarea, por un Textarea mas completo con los botones clasicos Negrita,Cursiva,etc ...
Lo que hace es crear codigo bbcode ( el tipico [ b ] , [ i ] [ img ] , etc ... ).

Entones lo que mandas es Texto con bbcode, esto lo guardas en tu tabla, luego cuando quieras mostrar este texto, tienes que aplicar alguna funcion que transforme el bbcode a tags html.

Código PHP:
function bbcode($texto) {

    
$texto nl2br($texto);
      
$texto str_replace("]\n""]"$texto);
      
$simple_search = array(
                
'/\[b\](.*?)\[\/b\]/is',                                 
                
'/\[i\](.*?)\[\/i\]/is',                                 
                
'/\[u\](.*?)\[\/u\]/is',                                 
                
'/\[url\=(.*?)\](.*?)\[\/url\]/is',                         
                
'/\[url\](.*?)\[\/url\]/is',     
                
'/\[blank\=(.*?)\](.*?)\[\/blank\]/is',                         
                
'/\[blank\](.*?)\[\/blank\]/is',
                
'/\[align\=(left|center|right)\](.*?)\[\/align\]/is',     
                
'/\[img\](.*?)\[\/img\]/is',                             
                
'/\[mail\=(.*?)\](.*?)\[\/mail\]/is',                     
                
'/\[mail\](.*?)\[\/mail\]/is',                             
                
'/\[font\=(.*?)\](.*?)\[\/font\]/is',                     
                
'/\[size\=(.*?)\](.*?)\[\/size\]/is',                     
                
'/\[color\=(.*?)\](.*?)\[\/color\]/is',         
               
'#\[php\](.*?)\[\/php\]#se'
                        
);

    
$simple_replace = array( 
                
'<strong>$1</strong>',
                
'<em>$1</em>',
                
'<u>$1</u>',
                
'<a href="$1">$2</a>',
                
'<a href="$1">$1</a>',
                
'<a href="$1" target=\"_blank\">$2</a>',
                
'<a href="$1" target=\"_blank\">$1</a>',
                
'<div style="text-align: $1;">$2</div>',
                
'<img src="$1" alt="$1" />',
                
'<a href="mailto:$1">$2</a>',
                
'<a href="mailto:$1">$1</a>',
                
'<span style="font-family: $1;">$2</span>',
                
'<span style="font-size: $1;">$2</span>',
                
'<span style="color: $1;">$2</span>',
                
"highlight_string(stripslashes(html_entity_decode(str_replace('<br />','','$1'))), true)"
                
);

    
// Aplicar el BBCode
    
$texto preg_replace ($simple_search$simple_replace$texto);
      
    return 
$texto;

De esta forma, solo dejas a los usuarios utilizar bbcode, no HTML (eso si, el script que reciba el formulario, debe eliminar todos los > < del htm)