Zend 1.11.9 Форма декораторов / капчи - PullRequest
3 голосов
/ 18 июля 2011

В новой версии Zend Framework 1.11.9, если я хочу использовать капчу в моей форме, это может быть простой Figlet, капча не отображается в визуализированной форме.Кто-нибудь сталкивался с этой проблемой, я искал и сравнивал ее с предыдущим выпуском (Zend / Form / Element / Captcha.php) и заметил, что для этого элемента я должен указать декоратор Captcha.Есть ли лучшее решение, не должен ли этот декоратор использоваться по умолчанию?

   //Add a captcha
    $this->addElement('captcha', 'captcha', array(
        'label'      => 'Please enter the 5 letters displayed below:',
        'required'   => true,
        'captcha'    => array(
            'captcha' => 'Figlet',
            'wordLen' => 5,
            'timeout' => 300
        )
    ));

Это код, если я использую его в Zend 1.11.9, капча не отображается, Что мне нужно было сделатьдолжен был добавить «декораторы» к опциям capctha и должен был указать там все декораторы.

   //Add a captcha
    $this->addElement('captcha', 'captcha', array(
        'label'      => 'Please enter the 5 letters displayed below:',
        'required'   => true,
        'captcha'    => array(
            'captcha' => 'Figlet',
            'wordLen' => 5,
            'timeout' => 300
        ),
        'decorators' => array('Captcha', 'Errors', 'Labels', etc)
    ));

Ответы [ 3 ]

3 голосов
/ 26 июля 2011

Я столкнулся с той же проблемой. Опубликовал отчет об ошибках в трекере проблем Zend Framework: http://framework.zend.com/issues/browse/ZF-11609

Надеюсь, это скоро будет решено. Я проверил журнал изменений 1.11.9: в компоненте recaptcha произошли изменения. Может быть, в этом причина ...

0 голосов
/ 30 июля 2011

Я использую последнюю версию ZF и

$captchaElement = new Zend_Form_Element_Captcha
        (
            'signup',
            array('captcha' => array(
            'captcha' => 'Figlet',
            'wordLen' => 6,
            'timeout' => 600,       
            ))
        );

Не показывать ничего = - (

Это источник на странице:

<dt id="signup-input-label"><label for="signup-input" class="required">Please type in the words below to continue</label></dt>

<dd id="signup-element">

<input type="hidden" name="signup[id]" value="9038166aac96370c73b9d474e8e20475" id="signup-id">

<input type="text" name="signup[input]" id="signup-input" value="">
0 голосов
/ 19 июля 2011

Я могу это подтвердить. Чтобы показать вам некоторый код, в ZF 1.11.8 это работает из коробки:

        $captcha = new Zend_Form_Element_Captcha('captcha', array(
        'label' => 'Security Check',
        'required' => true,
        'captcha' => array(
            'captcha' => 'Image',
            'font' => APPLICATION_PATH . '/../data/fonts/AllerDisplay.ttf',
            'fontSize' => '24',
            'wordLen' => 6,
            'height' => '50',
            'width' => '150',
            'imgDir' => APPLICATION_PATH . '/../public/images/captcha',
            'imgUrl' => Zend_Controller_Front::getInstance()->getBaseUrl() . '/images/captcha',
        )
    ));

В 1.11.9 он не отображает тег изображения. Это поведение не ограничивается Zend_Captcha_Image, как указано в открывателе потоков.

...