Standart dekoratörler kullanarak 'hatalar' dekore nasıl?

1 Cevap php

Ben bu şekilde form dekoratörler belirledik:

    <?php

    $this->setElementDecorators(array(
            'Label',
            array(array('labelTd' => 'HtmlTag'), array('tag' => 'td', 'class' => 'name')),
            array(array('elemTdOpen' => 'HtmlTag'), array('tag' => 'td', 'class' => 'form','openOnly' => true, 'placement' => 'append')),
            'ViewHelper',               
            'Errors',           
            array(array('elemTdClose' => 'HtmlTag'), array('tag' => 'td', 'closeOnly' => true, 'placement' => 'append')),
            array(array('row' => 'HtmlTag'), array('tag' => 'tr', 'class' => 'question')),
    ));

    $submit->setDecorators(array('ViewHelper',
            array(array('data' => 'HtmlTag'),  array('tag' =>'td', 'class'=> 'element')),
            array(array('emptyrow' => 'HtmlTag'),  array('tag' =>'td', 'class'=> 'element', 'placement' => 'PREPEND')),
            array(array('row' => 'HtmlTag'), array('tag' => 'tr'))
            ));

    $this->setDecorators(array(
            'FormElements',
            array('HtmlTag', array('tag' => 'table', 'class' => 'simpleform')),
            'Form'
        ));

Bu, basit bir tablo çıktılar

<table class="simpleform">
<tbody>
    <tr class="question">
        <td class="name">
            <label class="required" for="email">Your email</label>
        </td>
        <td class="form">
            <input type="text" value="asasd" id="email" name="email">
            <ul class="errors">
                <li>'asasd' is no valid email address in the basic format local-part@hostname
                </li>
                <li>Information not found
                </li>
            </ul>
        </td>
    </tr>
    <tr>
        <td class="element"></td>
        <td class="element">
            <input type="submit" value="Send" id="submit" name="submit">
        </td>
    </tr>
</tbody>
</table>

I would like to wrap ul.errors to TD and put it as the third cell. Like that:

        <tr class="question">
        <td class="name">
            <label class="required" for="email">Your email</label>
        </td>
        <td class="form">
            <input type="text" value="asasd" id="email" name="email">
        </td>
        <td>
            <ul class="errors">
                <li>'asasd' is no valid email address in the basic format local-part@hostname
                </li>
                <li>Information not found
                </li>
            </ul>
        </td>
    </tr>

ve .. bu nasıl? :)

1 Cevap

I suggest you create your own Errors decorator which will do what you need.
You can for example set it up to output

    </td>
    <td>
        <ul class="errors">
            <li>'asasd' is no valid email address in the basic format local-part@hostname
            </li>
            <li>Information not found
            </li>
        </ul>

Eğer biliyorsanız hataları her zaman <td></td> etiketleri içindeki tablonun parçası olacak.

Genel olarak, herhangi bir çerçeve tüm senaryoları ve çerçeveler geliştirme sizi yavaşlatan gerektiğini karşılamak için yeterince esnek. Eğer çerçeve kullanarak bir şey yapamaz ve size ihtiyacı karşılamak için çerçeveyi genişletmek yapamıyorsanız, etrafında gitmek ve bu özel durumda kullanmayın. Tüm formları kullanmak için Zend_Form :) yok dedi değil