Ярлыки

.htaccess (4) тестирование (8) шаблоны проектирования (3) css (5) Debian (6) docker (2) Doctrine2 (6) Git (6) html (4) java (6) javascript (13) jquery (11) LFS (3) linux (23) mac os (4) mod_rewrite (2) MSSQL (4) MySQL (18) ORM Doctrine (17) patterns (3) PDO (3) perl (7) PHP (64) PHPUnit (8) Python (15) SEO (2) Silex (1) SimpleXML (1) SQL (14) ssh (4) Ubuntu (24) Yii1 (1) Zend Framework (19) ZendFramework2 (8)

четверг, 21 ноября 2013 г.

Zend Framework. Использование скрипта вида для отображения элемента формы на примере Captcha.

class My_Form extends Zend_Form 
{

...

$this->addElement('Captcha', 'cap', array(
    'label' => 'Введите код на картинке * :',
    'required' => true,
    'disableLoadDefaultDecorators' => true,
    'decorators' => array('Captcha', array('ViewScript', array(
       'viewScript' => 'captcha.phtml',
       'placement' => false,
    ))),
    'captcha' => array(
       'captcha' => 'image',
       'width' => 100,
       'height' => 50,
       'name' => 'foo',
       'wordLen' => 3,
       'font' =>  '/path/to/fonts/arial.ttf',
       'fontSize' => 18,
       'imgDir' => '/path/to/images/captcha',
       'imgUrl' => 'http://' . $_SERVER['HTTP_HOST'] . '/images/captcha/',
       'timeout' => 300,
       'lineNoiseLevel' => 0,
       'dotNoiseLevel' => 0,
       'messages' => array(
            'badCaptcha' => 'Вы ввели неверный код'
       ))
));
            

...
}
<div style="float: left;">
    <label><?= $this->element->getLabel() ?></label>
    <input id="captcha" type="text" name="cap[input]" />
    <? if ($this->element->hasErrors()): ?>
        <?= $this->formErrors($this->element->getMessages()) ?>
    <? endif; ?>
    <input type="hidden" 
              name="cap[id]"  
              value="<?= $this->element->getValue() ?>" />
</div>
<div style="float: left;">
<?= $this->element->getCaptcha()->render() ?></div>
<div class="clear"></div>