Foros del Web » Programando para Internet » PHP »

formateo de texto

Estas en el tema de formateo de texto en el foro de PHP en Foros del Web. Hola chicos. Tengo una duda. Quiero dar opcion el usuario para que el puediese aplicar ¨negrita¨, subrallo , ¨i¨ y cambiar los fuentes de la ...
  #1 (permalink)  
Antiguo 09/02/2007, 06:06
 
Fecha de Ingreso: septiembre-2006
Mensajes: 349
Antigüedad: 17 años, 6 meses
Puntos: 0
formateo de texto

Hola chicos.
Tengo una duda.
Quiero dar opcion el usuario para que el puediese aplicar ¨negrita¨, subrallo , ¨i¨ y cambiar los fuentes de la lista, como aqui en el foro donde estoy escribiendo.
HE pesnado de como pudo hacer lo ,y la verdad es que la unica idea que me entra es mediante JAvascript, poner los botones por ejemplo boton con label ¨B¨ al apretar asignaria¨el valor <b>+document.valor.campovalue.+</b>
Bueno algo asi.
Soy programadora php y creo que hay una forma mejor de hacer lo.
Ademas no puedo resolver por ahora como aplico un estilo a cadena seleccionada, no a todo valor del campo textarea.
Si alguien sabe algun ejemplo, tutorial. o alguna idea en que camino debo ir..
En fin gracias a todos
  #2 (permalink)  
Antiguo 09/02/2007, 07:08
Avatar de cyberneticos  
Fecha de Ingreso: febrero-2007
Ubicación: Pto Sta Mra, Cádiz
Mensajes: 223
Antigüedad: 17 años, 2 meses
Puntos: 3
Re: formateo de texto

con textarea no vas a poder hacer ningún cambio de estilo.

Creo que lo que decías de usar javascript e ir parseando los valores <b> xxxxxxxx</b> a una cadena puede ser una idea acertada.
  #3 (permalink)  
Antiguo 09/02/2007, 07:20
 
Fecha de Ingreso: septiembre-2006
Mensajes: 349
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: formateo de texto

si lo hago mediante JAvaScript como puedo evitar el uso de textarea?
Si el usuario va escribiendo en el campo de texto sera este campo textarea en todo caso o no?
Chicos si este asunto mejor mandar a apartado de foro que coresponde a Javascript, podeis aviasarme, lo que pasa que la web esta echa en php y luego los valores formateados tendre que meter en una tabla mysql.
Por eso puse post aqui.
  #4 (permalink)  
Antiguo 09/02/2007, 08:54
Avatar de cyberneticos  
Fecha de Ingreso: febrero-2007
Ubicación: Pto Sta Mra, Cádiz
Mensajes: 223
Antigüedad: 17 años, 2 meses
Puntos: 3
Re: formateo de texto

Perdona, me había confundido, lo harías en un textarea,... pero claro, saldría la cadena en el mismo textarea, pero tendrías que tener un botón para "Previsualizar" esa cadena fuera de un textarea, como en un phpbb por ejemplo.

Sería bastante sencillo no ?
  #5 (permalink)  
Antiguo 09/02/2007, 09:26
Avatar de 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)
  #6 (permalink)  
Antiguo 09/02/2007, 12:34
 
Fecha de Ingreso: septiembre-2006
Mensajes: 349
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: formateo de texto

gracias chicos, he visto el BEBECode de Javascript y me parece interesante pero el problema es que aparecen (igual que en este foro)las tipicos tags <b></b> por ejemplo si quiero poner engrita dentro de campo textarea y yo quiero que aparezca negrita en el campo y no las tags,, porque claro yo entieno los tags pero una persona normal que no tiene conosimiento alguno de html no lo entendera.
  #7 (permalink)  
Antiguo 09/02/2007, 12:57
Avatar de cyberneticos  
Fecha de Ingreso: febrero-2007
Ubicación: Pto Sta Mra, Cádiz
Mensajes: 223
Antigüedad: 17 años, 2 meses
Puntos: 3
Re: formateo de texto

Esque eso es lo que te comentaba antes. el objeto Textarea no se puede formatear :(
  #8 (permalink)  
Antiguo 09/02/2007, 13:04
 
Fecha de Ingreso: septiembre-2006
Mensajes: 349
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: formateo de texto

Si, por eso pregunto aqui porque yo le estoy dando vueltas y no me ocurre nada por ahora.
yo lo he visto en algunos foros. que sale directamente como en word, y adeas sin recargar la pagina web.
Por eso quiero saber como se hace eso, al menos alguna idea, o hay un progrma comercial, no importa que de pago, aunque me gustaria entenderme yo como se hace esto.
En fin sigo buscando...
  #9 (permalink)  
Antiguo 09/02/2007, 13:39
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 20 años, 4 meses
Puntos: 17
Re: formateo de texto

Entonces lo que puedes usar es un editor wysiwyg Uno muy bueno es el FCKeditor que es GPL.

El unico detalle es que cuando recibas el formulario, recibes codigo HTML, lo cual es peligroso, es decir, no debes aceptar todas las etiquetas HTML, mediante PHP tendras que eliminar si alguien inserto algun JAVASCRIPT,etc ..

Hay varios editores Wysiwyg para los textareas tantos comerciales com gpls
  #10 (permalink)  
Antiguo 09/02/2007, 14:19
 
Fecha de Ingreso: septiembre-2006
Mensajes: 349
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: formateo de texto

Gracias Deer, estaba viendo los editores.
Todos tienen algunas cosas buenas y algun inconeniente.
Me gustaria desarrollar mi propio editor con opciones que nesesito, por ejemplo solo nesesito negrita, cursiva, y alineacion y eleccion de fuente.
Ademas en castellano.
Quiero saber en que tecnologia estan echas, y que nesesito para empezar, no se alguna pista, tutorial etc
  #11 (permalink)  
Antiguo 12/02/2007, 04:16
 
Fecha de Ingreso: septiembre-2006
Mensajes: 349
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: formateo de texto

Hola de nuevo. Sigo dando vueltas al asunto.
Seguro que alguien ya lo he echo, al menos podeis darme una pista por donde empezar si quiero desarrollar mi propio editor wysiwyg.
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:48.