Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] Dekorowanie elementów formularza
Forum PHP.pl > Forum > PHP > Frameworki
Siner
Mam problem z udekorowaniem elementu. Zend_Framework jakoś jest tak oporny, że wymyśliłem sobie taką koncepcje - będę budował formularz w htmlu, a sam element będę wyświetlał za pomocą php. Czyli coś takiego(widok):
  1. <span class="kw3">array</span><span class="br0">(</span> </div><li class="li2"><div class="de2">                        <span class="kw3">array</span><span class="br0">(</span><span class="st0">'ViewScript'</span><span class="sy0">,</span><span class="kw3">array</span><span class="br0">(</span><span class="st0">'viewScript'</span> <span class="sy0">=></span> <span class="st0">'contactForm.phtml'</span><span class="br0">)</span><span class="br0">)</span> </div><li class="li1"><div class="de1">                <span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span> </div><li class="li2"><div class="de2">                </div><li class="li1"><div class="de1">                <span class="re0">$this</span><span class="sy0">-></span><span class="me1">addElements</span><span class="br0">(</span><span class="kw3">array</span><span class="br0">(</span><span class="re0">$firstName</span><span class="sy0">,</span> <span class="re0">$lastName</span><span class="sy0">,</span> <span class="re0">$email</span><span class="sy0">,</span> <span class="re0">$telephoneNum</span><span class="sy0">,</span> <span class="re0">$contactReason</span><span class="sy0">,</span> <span class="re0">$message</span><span class="sy0">,</span> <span class="re0">$submit</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span>         </div><li class="li2"><div class="de2">    <span class="br0">}</span> </div><li class="li1"><div class="de1"><span class="br0">}</span></div><li class="li2"><div class="de2"><span class="sy1">?></span></div>
  2. [/list]<div class="foot">[PHP] <a href='./Pobierz-Plik-128301.html_t0'>ext<span class="br0">(</span><span class="st0">'firstName'</span><span class="br0">)</span><span class="sy0">;</span> </div><li class="li1"><div class="de1">                <span class="re0">$firstName</span><span class="sy0">-></span><span class="me1">setLabel</span><span class="br0">(</span><span class="st0">'First Name'</span><span class="br0">)</span> </div><li class="li2"><div class="de2">                                  <span class="sy0">-></span><span class="me1">setRequired</span><span class="br0">(</span><span class="kw2">true</span><span class="br0">)</span> </div><li class="li1"><div class="de1">                                  <span class="sy0">-></span><span class="me1">addValidator</span><span class="br0">(</span><span class="st0">'NotEmpty'</span><span class="sy0">,</span> <span class="kw2">true</span><span class="br0">)</span> </div><li class="li2"><div class="de2">                                  <span class="sy0">-></span><span class="me1">addValidator</span><span class="br0">(</span><span class="st0">'Alpha'</span><span class="sy0">,</span> <span class="kw2">true</span><span class="br0">)</span></div><li class="li1"><div class="de1">                                  <span class="sy0">;</span> </div><li class="li2"><div class="de2">          </div><li class="li1"><div class="de1">                <span class="co1">//...                </span></div><li class="li2"><div class="de2">                <span class="re0">$submit</span> <span class="sy0">=</span> <span class="kw2">new</span> Zend_Form_Element_Submit<span class="br0">(</span><span class="st0">'submit'</span><span class="br0">)</span><span class="sy0">;</span> </div><li class="li1"><div class="de1">                <span class="re0">$submit</span><span class="sy0">-></span><span class="me1">setLabel</span><span class="br0">(</span><span class="st0">'Submit Form'</span><span class="br0">)</span><span class="sy0">;</span> </div><li class="li2"><div class="de2">                </div><li class="li1"><div class="de1">                <span class="re0">$this</span><span class="sy0">-></span><span class="me1">setDecorators</span><span class="br0">(</span><span class="kw3">array</span><span class="br0">(</span> </div><li class="li2"><div class="de2">                        <span class="kw3">array</span><span class="br0">(</span><span class="st0">'ViewScript'</span><span class="sy0">,</span><span class="kw3">array</span><span class="br0">(</span><span class="st0">'viewScript'</span> <span class="sy0">=></span> <span class="st0">'contactForm.phtml'</span><span class="br0">)</span><span class="br0">)</span> </div><li class="li1"><div class="de1">                <span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span> </div><li class="li2"><div class="de2">                </div><li class="li1"><div class="de1">                <span class="re0">$this</span><span class="sy0">-></span><span class="me1">addElements</span><span class="br0">(</span><span class="kw3">array</span><span class="br0">(</span><span class="re0">$firstName</span><span class="sy0">,</span> <span class="re0">$lastName</span><span class="sy0">,</span> <span class="re0">$email</span><span class="sy0">,</span> <span class="re0">$telephoneNum</span><span class="sy0">,</span> <span class="re0">$contactReason</span><span class="sy0">,</span> <span class="re0">$message</span><span class="sy0">,</span> <span class="re0">$submit</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span>         </div><li class="li2"><div class="de2">    <span class="br0">}</span> </div><li class="li1"><div class="de1"><span class="br0">}</span></div><li class="li2"><div class="de2"><span class="sy1">?></span></div>
  3. [/list]<div class="foot">[PHP] <a href='./Pobierz-Plik-128301.html, plaintext </div></pre><!--/Geshi:128301:php-->
  4. i klasa My_Form_Form
  5. [php]
  6. <?php
  7. class My_Form_Form extends Zend_Form
  8. {
  9.    public function __construct($options = null)
  10.    {
  11.        parent::__construct($options);
  12.        $this->clearDecorators();
  13.      
  14.         $this->setElementDecorators(array('ViewScript', array(
  15.                        'viewScript' => 'static/form/element.phtml'
  16.                    )));
  17.    }
  18. }
  19. ?>
erix
Czekam na PW z prawidłowym tematem.

edit: otwieram
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.