zend-form zend-form-element

zend form - ¿Cómo se agrega uno un ''nodo de texto sin formato'' a un formulario zend?



zend-form zend-form-element (7)

Esta funcionalidad está integrada en Zend a través de Zend_Form_Element_Note.

$note = new Zend_Form_Element_Note(''forgot_password''); $note->setValue(''<a href="'' . $this->getView()->serverUrl($this->getView()->url(array(''action'' => ''forgot-password''))) . ''">Forgot Password?</a>'');

Estoy intentando agregar un nodo de texto sin formato en forma de zend, el propósito es solo mostrar texto estático.

El problema es que no estoy al tanto de ninguna manera de hacerlo.

He usado ''descripción'' pero eso TIENE que adjuntarse a un elemento del formulario.

¿Hay alguna forma de mostrar simplemente algún texto como parte de un formulario? Zend considera todo como un elemento de formulario, así que simplemente no puedo imprimirlo.

P.ej:

Lo siguiente pondrá a prueba su capacidad en tal y tal. . . .

etc ...

¿Alguna idea?


Este one-liner funciona para mí:

$objectForm->addElement(new Zend_Form_Element_Note(''note'', array(''value'' => ''Hello World'')));


La adición de un elemento oculto con una descripción sin escape hace la cosa.

$form->addElement(''hidden'', ''plaintext'', array( ''description'' => ''Hello world! <a href="#">Check it out</a>'', ''ignore'' => true, ''decorators'' => array( array(''Description'', array(''escape''=>false, ''tag''=>'''')), ), ));

Funciona perfectamente. Todavía se adjunta a un elemento que, sin embargo, no se procesa de esta manera.

Código tomado de: http://paveldubinin.com/2011/04/7-quick-tips-on-zend-form/


Me enfrenté al mismo problema y decidí que es mejor no usar Zend_Form en absoluto, sino usar directamente los ayudantes (como lo hace Ruby on Rails) y validar el modelo.


Puede haber una mejor manera, pero creé un párrafo usando un elemento de formulario personalizado y el asistente de vista Parece un montón de código para algo tan simple. Por favor, avíseme si ha encontrado una forma más simplista de hacerlo.

//From your form, add the MyParagraph element $this->addElement(new Zend_Form_Element_MyParagraph(''myParagraph'')); class Zend_Form_Element_MyParagraph extends Zend_Form_Element { public $helper = ''myParagraph''; public function init() { $view = $this->getView(); } } class Zend_View_Helper_MyParagraph extends Zend_View_Helper_FormElement { public function init() { } public function myParagraph() { $html = ''<p>hello world</p>''; return $html; } }


Un poco tarde, pero pensé que lo tiraría de todas formas para el beneficio de la comunidad.

Aine ha golpeado el clavo en la cabeza. FormNote es lo que necesitas si quieres usar texto en Zend_Form. Sin embargo, puede usarlo sin necesidad de extender Zend_Form_Element_Xhtml. Vea el ejemplo a continuación:

$text = new Zend_Form_Element_Text(''myformnote''); $text->setValue("Text goes here") ->helper = ''formNote'';

Tenga en cuenta que puede usar tanto texto como html con el ayudante de formNote.


Zend tiene un ayudante de vista de nota de formulario (Zend_View_Helper_FormNote), que puede usar para agregar texto.

Simplemente cree un nuevo elemento de formulario (/application/forms/Element/Note.php):

class Application_Form_Element_Note extends Zend_Form_Element_Xhtml { public $helper = ''formNote''; }

En su forma:

$note = new Application_Form_Element_Note( ''test'', array(''value'' => ''This is a <b>test</b>'') ); $this->addElement($note);