Foros del Web » Programando para Internet » PHP » Zend »

Acentos en Zend_Form

Estas en el tema de Acentos en Zend_Form en el foro de Zend en Foros del Web. Buenas, Veréis, estaba trabajando con Zend Framework y me he encontrado con un error. Cuando intento meter algún caracter con acento Zend ignora ese valor ...
  #1 (permalink)  
Antiguo 22/02/2011, 12:11
Avatar de SetheR  
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 15 años, 10 meses
Puntos: 44
Acentos en Zend_Form

Buenas,

Veréis, estaba trabajando con Zend Framework y me he encontrado con un error.

Cuando intento meter algún caracter con acento Zend ignora ese valor y hace como si no existiera.

por ejemplo, si pongo en los parametros de un elemento 'value' => 'Galería', ignora el value por completo.

Espero haberme explicado.

Gracias.
  #2 (permalink)  
Antiguo 22/02/2011, 13:47
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Acentos en Zend_Form

Que versión del FW estas utilizando ?, que encoding en el view y layout(meta tag) ?
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 22/02/2011, 15:11
 
Fecha de Ingreso: octubre-2010
Ubicación: Asturias
Mensajes: 14
Antigüedad: 14 años
Puntos: 0
Respuesta: Acentos en Zend_Form

te contesto yo masterpuppet, que cuando me surgio el problema estaba con Sether y lo posteamos desde esa cuenta.

Version 1.11.2, encoding 'iso-8859-1'. He probado a ponerlo todo a 'utf-8', pero nada, sigue igual. En la base de datos lo tengo con las entidades html, y para mostrarlo en el form hago un html_entity_decode().

Cuando el form se renderiza cualquier valor (ya sea label o value) no aparece si contiene tildes (aparece la cadena vacia).

He estado buscando en google ese problema, y todo lo que he encontrado habla de codificacion de caracteres, pero lo cambio y nada.

Ya no se que hacer

En fin, espero haberme explicado.

Gracias.
  #4 (permalink)  
Antiguo 22/02/2011, 15:40
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Acentos en Zend_Form

Que tal pritok,

Deberías estar trabajando con UTF-8, ya que se unifico en todos los componentes el encoding a partir de la version 10.3, pasa todo a UTF-8, si no recuerdo mal seria algo así( application.ini):

Código INI:
Ver original
  1. resources.view.encoding = "UTF-8"
  2. resources.view.charset = "UTF-8"
  3. resources.view.contentType = "text/html; charset=UTF-8"

y luego donde utilices html_entity_decode, hazlo así;

Código PHP:
Ver original
  1. html_entity_decode($word, ENT_COMPAT, 'UTF-8')

Prueba y nos comentas.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #5 (permalink)  
Antiguo 22/02/2011, 17:15
 
Fecha de Ingreso: octubre-2010
Ubicación: Asturias
Mensajes: 14
Antigüedad: 14 años
Puntos: 0
Respuesta: Acentos en Zend_Form

Hola masterpuppet,

antes de nada gracias, ha funcionado (en parte).

He hecho todo lo que has escrito arriba, y eso soluciona perfectamente los inputs con html_entity_decode, usando los parámetros que indicaste arriba.

Pero eso no me soluciona las labels. Si llevan tildes no se ven.

La verdad es que para lo que estoy usando Zend no me importa que no se vean las labels ahora (escritas directamente sobre el Zend_Form), porque al final la aplicación estará internacionalizada y cogerá los valores de algún sitio.

Aún así, sabéis de alguna manera para solucionar el problema este sin recurrir a cargar los textos de la base de datos y formatearlos?
  #6 (permalink)  
Antiguo 22/02/2011, 17:36
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Acentos en Zend_Form

Debería funcionar en los labels también, podes postear el código ?.
Te hago una pegunta, porque guardas el texto con entidades html ?, si trabajas todo en UTF8(bbdd inclusive), no tendrías que estar haciendo estos malabares.
__________________
http://es.phptherightway.com/
thats us riders :)
  #7 (permalink)  
Antiguo 22/02/2011, 18:13
 
Fecha de Ingreso: octubre-2010
Ubicación: Asturias
Mensajes: 14
Antigüedad: 14 años
Puntos: 0
Respuesta: Acentos en Zend_Form

A ver, te posteo el código:

Controller:
Código PHP:
$model = new My_Model_Website();
$this->_data $model->getData(); //Del SQL, un Zend_Db_Row
$data = array();
        foreach(
$this->_data->toArray() as $name=>$value) {
            
$data[$name] = html_entity_decode(html_entity_decode($valueENT_COMPAT'UTF-8'));
        }
        
        
$form $this->view->form = new My_Form_AdminWebsite();
        
        
$form->setDefaults($data); //Añado los valores al form 
Form:
Código PHP:
$this->_form_email = new Zend_Form_Element_Text('email');
         
$this->_form_email->setRequired(true)
                              ->
setLabel('Correo electrónico:')
                              ->
setAttrib('class''form_input'); 
Con 'Correo Electrónico' escrito así, no me lo mostraría.
En cuanto a lo de las entidades, empece la pagina en iso-8859-1 y la base de datos no se ni como está. La página es por trabajo y debo acabarla cuanto antes. Una vez acabada me dedicaré a optimizarla y a eliminar cosas innecesarias. Aunque en esto no había ni pensado, gracias por la recomendacion.

Ya que estamos con preguntas, intento meter datos dentro de un textarea creado con Zend_Form_Element_TextArea. Pero no encuentro el método, porque setValue no vale.

Última edición por pritok; 22/02/2011 a las 18:15 Razón: Me faltaba una cosa.

Etiquetas: framework, php, phpoo
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 23:26.