Recojer datos con TinyMce

Iniciado por Littl3, 14 Julio 2009, 05:16 AM

0 Miembros y 1 Visitante están viendo este tema.

Littl3

Hola buenas,

Tengo un problemon con TinyMce... el editor de texto WYSIWYG.

Tengo un text area con TinyMce que guarda cierto contenido en una BDD, al guardarlo se le agrega automaticamente las barras en las comillas "/ (slashes), para mostrarlo en html solo tengo que hacer:
Código (php) [Seleccionar]
echo stripslashes($contenido);

Hasta aqui bien, pero... ¿y si quiero editar este texto previamente guardado en la BDD?

Si cuando lo recojo de la BDD y lo pongo en el value del textarea no le pongo stripslashes no se muestra correctamente porque hay unas barras dando la tabarra... xD pero si le pongo el stripslashes tengo problemas a la hora de entrecomillar el value " Aqui esta el contenido y puede contener comillas que desde luego las va ha contener...." asi que estoy perdido sin saber que mas hacer....

Un saludo

rigoxls

#1
Saludos...

Bueno ,  podria ser una solucion primero que guardes en la BDD tal y como lo captura el TYnuMce, sin la funcion echo stripslashes($contenido); que le tienes.

Luego si vas a llamar esos datos de tu base de datos a un formulario y te genera problemas las comillas dobles, sencillas o cualquier otro caracter, porque no tratas con la funcion :

Código (php) [Seleccionar]
str_replace("loquebusco","loquecambio",$contenido);

para cambiar comillas dobles por sencillas o viceversa o cualquier otro tipo de caracter que te este causando conflicto o simplemente suprimirlo...
No hay verdades absolutas sin ciegas posiciones !!!

^Cloud^

Tenía un problema parecido con un sistema de cache que necesita almacenar html en base de datos o memcache. Funciona con ambos a través de unos drivers.

La solución que se me ocurrio para obtener lo mismo que generaba el motor de templates de la aplicación fue generar un hash reversible con el código html.

  private function _encodeCache($toCache = NULL) {
    return base64_encode($toCache);
  }
 
  private function _decodeCache($inCache = NULL) {
    return base64_decode($inCache);
  }

De esta forma puedo almacenar el contenido en cualquier soporte sin necesidad de preocuparme por los "caracteres extraños".

Un saludo,
Ahora resulta que imagino mi pasado
y llevo en esta clínica cuarenta años.
Nunca jamás he pisado la calle
y el electroshock ha sido mi padre

Littl3

Gracias por vuestras respuestas pero me temo que ninguna me sirve....

Ya he probado lo de:

Citarstr_replace("loquebusco","loquecambio",$contenido);

Y no ha funcionado, dentro del texto hay comillas dobles simples y de todos los colores xD

Y respecto a crear un hash no me funcionaria porque el problema no esta al meter los datos en la bdd si no al mostrarlos dentro del editor WYSIWYG y para esto da igual si le doy 3000 vueltas porque cuando llegue al html tendra que mostrarse tal y como es nose si me explico... xD

Saludos



rigoxls

#4
Saludos, me surge una duda Littl3 , en un mensaje anterior dices esto:

si le pongo el stripslashes tengo problemas a la hora de entrecomillar el value " Aqui esta el contenido y puede contener comillas que desde luego las va ha contener...."

cuando dices value te refieres a mostrar el contenido en el textarea? o como lo estas mostrando? asi?

Código (php) [Seleccionar]
<textarea><?=$contenido; ?></textarea>

o colocas el value en alguna parte?

Código (php) [Seleccionar]
value="<?=$contenido; ?>"

lo pregunto porque como te decia antes con la funcion str_replace puedes cambiar las comillas dobles o sencillas o viceversa, de tal forma que en el formato html de la base de datos solo exista un tipo de comillas, bien sean dobles o sencillas, pero solo un tipo... De tal forma que si muestra el contenido de tu base de datos  asi:

Código (php) [Seleccionar]
value="<?=$contenido; ?>"

deberian haber unicamente comillas sencillas en tu contenido html de la base de datos, y deberia mostrarte sin ningun problema....
No hay verdades absolutas sin ciegas posiciones !!!