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

Configurar Zend_Form con fichero ini

Estas en el tema de Configurar Zend_Form con fichero ini en el foro de Zend en Foros del Web. Hola tengo un fichero ini, con la configuración de un Form Código PHP: ;  elemento password usuario . login . elements . password . type  =  ...
  #1 (permalink)  
Antiguo 13/04/2011, 17:51
 
Fecha de Ingreso: febrero-2011
Mensajes: 9
Antigüedad: 13 años, 2 meses
Puntos: 0
Configurar Zend_Form con fichero ini

Hola tengo un fichero ini, con la configuración de un Form

Código PHP:
elemento password
usuario
.login.elements.password.type "password"
usuario.login.elements.password.options.required true
usuario
.login.elements.password.options.label "Contrase√±a"
usuario.login.elements.password.options.validators.strlen.validator "StringLength"
usuario.login.elements.password.options.validators.strlen.options.min "6"
usuario.login.elements.password.options.class= "campoTexto" 
Pero por otra parte tengo configuración de decorators como por ejemplo:

Código PHP:
$this->getElement('password')->getDecorator('Description')->setOption('class','ayudaContext'); 
¿Como puedo incluir la configuracion del Decorator en el fichero ini? ¿Conoceis algún manual donde explique como usar los .ini para configurar los objetos de Zend?

Gracias de antemano por la ayuda.
  #2 (permalink)  
Antiguo 13/04/2011, 18:52
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Configurar Zend_Form con fichero ini

Me interesa saber si existe, solo para aprender. Pero, si es que existe la forma de hacerlo en el ini, creo que es mejor y más conveniente manejarlo desde PHP. Entiendo así porque podrías interactuar con demás clases para mejorar el aspecto.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 14/04/2011, 07:28
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Configurar Zend_Form con fichero ini

Que tal jacintoCorral,

Seria algo así:

Código INI:
Ver original
  1. usuario.login.elements.password.type = "password"
  2. usuario.login.elements.password.options.required = true
  3. usuario.login.elements.password.options.label = "Contraseña"
  4. usuario.login.elements.password.options.validators.strlen.validator = "StringLength"
  5. usuario.login.elements.password.options.validators.strlen.options.min = "6"
  6. usuario.login.elements.password.options.class= "campoTexto"  
  7.  
  8. ;setup decorators
  9. usuario.login.elements.password.options.description = "..."
  10. usuario.login.elements.password.options.decorators.viewHelper = "ViewHelper"
  11. usuario.login.elements.password.options.decorators.errors = "Errors"
  12. usuario.login.elements.password.options.decorators.description.decorator = "Description"
  13. usuario.login.elements.password.options.decorators.description.options.class = "ayudaContext"

personalmente los suelo trabajar de esta forma :)

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #4 (permalink)  
Antiguo 14/04/2011, 08:40
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Configurar Zend_Form con fichero ini

@masterpuppet, gracias por el dato, otra cosa ¿cómo se puede entonces modificar el HtmlTag, class, etc.? ¿Dónde se puede conseguir más material para poder seguir estudiando?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 14/04/2011, 10:14
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Configurar Zend_Form con fichero ini

El HtmlTag seria así:

Código INI:
Ver original
  1. usuario.login.elements.password.options.decorators.htmlTag.decorator = "HtmlTag"
  2. usuario.login.elements.password.options.decorators.htmlTag.tag = "div"

el material ya lo tenes, es mas, es el mejor material de todos, el código fuente :).

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)

Última edición por masterpuppet; 14/04/2011 a las 10:25 Razón: typo
  #6 (permalink)  
Antiguo 14/04/2011, 10:46
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Configurar Zend_Form con fichero ini

masterpuppet, gracias

A ver si sé cual es el que tengo que mirar, ¿debe ser aquel archivo que diga decorators en la librería de Zend? Si hay algún otro, pues no sé al momento
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 14/04/2011, 16:39
 
Fecha de Ingreso: febrero-2011
Mensajes: 9
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Configurar Zend_Form con fichero ini

masterpuppet, eres un crack, ahora lo veo....

Según lo que veo que haces,

1. defines que decorator vas a tratar
usuario.login.elements.password.options.decorators .htmlTag.decorator = "HtmlTag"
2. luego el valor de la propiedad de ese decorator
usuario.login.elements.password.options.decorators .htmlTag.tag = "div"

Vale ahora solo me queda probar... seguro que va estupendo.

Muchas gracias!! Te mantengo informado por si te interesa y aqui tienes unas manos y media mente amiga.... jejeje

Un saludo.
  #8 (permalink)  
Antiguo 14/04/2011, 16:49
 
Fecha de Ingreso: febrero-2011
Mensajes: 9
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Configurar Zend_Form con fichero ini

Ohhhh casi perfecto, bueno la verdad es que el tema del decorator description funciona a la perfección, pero me rompe el resto del html.

Tengo lo siguiente en el .ini
Código PHP:
elemento email
usuario
.alta.elements.email.type "text"
usuario.alta.elements.email.required true
usuario
.alta.elements.email.options.label 'Tu email de acceso: <span class="obligatorio">*</span>'
usuario.alta.elements.email.options.validators.strlen.validator "StringLength"
usuario.alta.elements.email.options.validators.strlen.options.max "255"
usuario.alta.elements.email.options.class= "campoTexto"



elemento password
usuario
.alta.elements.password.type "password"
usuario.alta.elements.password.options.required true
usuario
.alta.elements.password.options.label 'Contrase√±a: <span class="obligatorio">*</span>'
usuario.alta.elements.password.options.validators.strlen.validator "StringLength"
usuario.alta.elements.password.options.validators.strlen.options.min "6"
usuario.alta.elements.password.options.class= "campoTexto"

;setup decorators
usuario
.alta.elements.password.options.description 'La contrase√±a debe tener entre 6 y 10 caracteres'
usuario.alta.elements.password.options.decorators.viewHelper "ViewHelper"
usuario.alta.elements.password.options.decorators.errors "Errors"
usuario.alta.elements.password.options.decorators.description.decorator "Description"
usuario.alta.elements.password.options.decorators.description.options.class = "ayudaContext" 
y esto es lo que genera:
Código HTML:
Ver original
  1. <dl>
  2. <dt id="email-label"><label class="optional" for="email">Tu email de acceso: <span class="obligatorio">*</span></label></dt>
  3. <dd id="email-element">
  4. <input type="text" class="campoTexto" value="" id="email" name="email"></dd>
  5.  
  6. <input type="password" class="campoTexto" value="" id="password" name="password">
  7. <p class="ayudaContext">La contraseña debe tener entre 6 y 10 caracteres</p>

Como ves el <p class="ayudaContext"> esta perfecto, pero me ha eliminado los dt,dd,label y solo me ha dejado el input...

:(

Gracias de todas formas, voy a seguir dando vueltas con esto...

PD: tambien seria interesante saber si hay alguna forma de que esta modificación se aplicara a todos los "description" de todos los elementos de formulario, para no tener que repetirlo todo el rato...

Buscando más info, os dejo un par de enlaces muy interesantes sobre decorators, aunque no cumplen con ser configuración desde .ini, por lo menos cuentan como hacerlo ... y como hacer lo de asignar a todos los elementos.

http://www.maestrosdelweb.com/editorial/guia-zend-decorators-en-zend-form/
http://www.backtheweb.com/php/zend-form-decorator-parte-i.html
http://www.backtheweb.com/php/zend-form-decorator-parte-ii.html

Saludos

Última edición por jacintoCorral; 14/04/2011 a las 17:00 Razón: Encontrados enlaces con más información.
  #9 (permalink)  
Antiguo 14/04/2011, 17:42
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Configurar Zend_Form con fichero ini

Es que en el ejemplo faltan decorators, tenes que agregarlos todos y en el orden correcto, a ver, algo asi:

Código INI:
Ver original
  1. usuario.login.elements.password.type = "password"
  2. usuario.login.elements.password.options.required = true
  3. usuario.login.elements.password.options.label = "Contraseña"
  4. usuario.login.elements.password.options.validators.strlen.validator = "StringLength"
  5. usuario.login.elements.password.options.validators.strlen.options.min = "6"
  6. usuario.login.elements.password.options.class= "campoTexto"
  7. usuario.login.elements.password.options.description = "..."
  8. usuario.login.elements.password.options.decorators.viewHelper = "ViewHelper"
  9. usuario.login.elements.password.options.decorators.errors = "Errors"
  10. usuario.login.elements.password.options.decorators.description.decorator = "Description"
  11. usuario.login.elements.password.options.decorators.description.options.class = "contextClass"
  12. usuario.login.elements.password.options.decorators.description.options.tag = "p"
  13. usuario.login.elements.password.options.decorators.htmlTag.decorator = "HtmlTag"
  14. usuario.login.elements.password.options.decorators.htmlTag.options.tag = "dd"
  15. usuario.login.elements.password.options.decorators.label.decorator = "Label"    
  16. usuario.login.elements.password.options.decorators.label.options.tag = "dt"

y para setear los decorators de todos los elements seria algo asi:

Código INI:
Ver original
  1. ;form decorators
  2. usuario.login.decorators.formElements.decorator = "FormElements"        
  3. usuario.login.decorators.form.decorator = "Form"
  4.  
  5. ;form elements decorators
  6. usuario.login.elementDecorators.helper.decorator      = ViewHelper
  7. usuario.login.elementDecorators.description.decorator =  Description
  8. usuario.login.elementDecorators.errors.decorator     = Errors
  9. usuario.login.elementDecorators.label.decorator      = Label
  10.  
  11. ;elements
  12. usuario.login.elements.username.type = "text"    
  13. usuario.login.elements.username.options.label = "Username"
  14. usuario.login.elements.username.options.description   = "..."
  15.  
  16. usuario.login.elements.password.type = "password"    
  17. usuario.login.elements.password.options.label = "Contraseña"
  18. usuario.login.elements.password.options.description   = "..."

esto genera un formulario limpio sin markup de mas, pero ojo, si agregas un element del tipo file, tenes que agregarle el decorator file.

@abimael, tenes que mirar el constructor de Zend_Form y despues seguir las migas :).
__________________
http://es.phptherightway.com/
thats us riders :)

Etiquetas: fichero, frameworks-y-php-orientado-a-objetos, ini, zend-form
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 22:46.