5

Şekillendirme amaçları için, bir öğenin başlangıcında bir açılışını ve diğerinin sonunda bir kapanış </div> etiketi koymam gerekiyor. HtmlDecorator için dokümanlar üzerinde bakın Nasıl doğru anlamaya anlamaya gelmiyor ya da bu kullanmak için doğru dekoratör ise. Sadece bunu elde etmek için kendi dekoratörümü yaratmam gerekecek gibi görünüyor.Zend Form Elemanı için HTML Etiketleri Ekleme veya Hazırlama

cevap

16

, bu dekoratör ekleyin:

array(
    array('closeDiv' =>'HtmlTag'), 
    array('tag' => 'div', 'closeOnly' => true) 
) 
: Bir </div > eklemek istediğiniz eleman üzerinde

array(
    array('openDiv' =>'HtmlTag'), 
    array('tag' => 'div', 'openOnly' => true) 
) 

, bu dekoratör eklemek

+0

Bu özel durum için tam da aradığım şey bu, teşekkür ederim! – ashurexm

7

display group bir HtmlTag dekoratörüyle kullanabilirsiniz. Tabii

<form method="post" action="" enctype="application/x-www-form-urlencoded"> 
    <dl class="zend_form"> 
     <div class="myClass"> 
      <dt id="elt1-label"><label class="optional" for="elt1">Element 1</label></dt> 
      <dd id="elt1-element"><input type="text" value="" id="elt1" name="elt1"></dd> 
      <dt id="elt2-label"><label class="optional" for="elt2">Element 2</label></dt> 
      <dd id="elt2-element"><input type="text" value="" id="elt2" name="elt2"></dd> 
     </div> 
    </dl> 
</form> 

, bütün bu <dl>, <dt> ve <dd> içinde <div> etiketi parazit:

şey gibi şu şekildedir:

$form = new Zend_Form(); 

$form->addElement('text', 'elt1', array(
    'label' => 'Element 1', 
)); 
$form->addElement('text', 'elt2', array(
    'label' => 'Element 2', 
)); 

$form->addDisplayGroup(array('elt1', 'elt2'), 'myDisplayGroup'); 
$group = $form->getDisplayGroup('myDisplayGroup'); 

$group->setDecorators(array(
    'FormElements', 
    array('HtmlTag', array('tag' => 'div', 'class' => 'myClass')) 
)); 

Bu HTML üretir delilik geçersiz biçimlendirme üretir, ancak form öğeleriniz için farklı dekoratörler belirttiğinizi varsayalım. e <div> arzunuzu sarın, sonuçta geçerli olacaktır. Ayrıca, daha genel işaretleme işlemleri için dikkat çekici olan AnyMarkup Decorator'dır.

Bir <div> eklemek istediğiniz eleman üzerinde
+0

DavidW, Harika örnek için teşekkür ederiz. Görüntü gruplarını kullanmayı tamamen unuttum. – ashurexm

+0

Benim zevkim ;-) –