зенд форма проблемы капчи - PullRequest
1 голос
/ 21 апреля 2011

Я использую Zend Captcha в Zend форме.он работает правильно, но когда он создает, он генерирует этот код:

<img width="80" height="30" alt="Allindia captcha" src="/allindiazend/public/images/captcha/4ae305b05406c9d8b06a19ea7ff2c9d9.png"/><br/>
<input type="hidden" name="captcha[id]" value="4ae305b05406c9d8b06a19ea7ff2c9d9" title="Security Check." id="captchas" />
<input type="text" name="captcha[input]" id="captchas" value="" title="Security Check." />

Текстовое поле появляется ниже img из-за этого <br/>.Мне не нужен этот тег 'br' в сгенерированном коде.

это мой код для капчи:

$captcha= new Zend_Form_Element_Captcha('captcha', array(
                'id'=>'captchas',
                'title'=>'Security Check.',
                'captcha' => array(
                'captcha' => 'Image',
                'required' => true,
                'font'=>'arial.ttf',
                'wordlen'=>'4',
                'width'=>'80',
                'height'=>'30',
                'ImgAlign'=>'left',
                'imgdir'=>'public/images/captcha',
                'DotNoiseLevel'=>'0',
                'LineNoiseLevel'=>'0', 
                'Expiration'=>'1000',
                'fontsize'=>'16',
                'gcFreq'=>'10',
                'ImgAlt'=>'Allindia captcha',
                'imgurl'=>'/allindiazend/public/images/captcha',
                'GcFreq'=>'5'
                )));

может помочь мне, плз.

Ответы [ 2 ]

3 голосов
/ 21 апреля 2011

Это не имеет ничего общего с конфигурацией самой капчи, но с элементом формы. Я предполагаю, что это <br /> добавлено в любой из декораторов по умолчанию Zend_Form_Element_Captcha. Посмотрите, какие декораторы прикреплены к форме:

<code>echo '<pre>'; print_r($captcha->getDecorators()); echo '
'; выход;

Вы увидите всех декораторов. Попробуйте удалить все декораторы шаг за шагом, чтобы увидеть, какой из них генерирует <br />. Удалите его полностью или, если необходимо, переопределите его собственным декоратором, пропустив <br />.

0 голосов
/ 21 апреля 2011

Я обычно делаю что-то подобное

foreach($this->getElements() as $element) {
    $element->removeDecorator('HtmlTag')
        ->removeDecorator('Label')
        ->addDecorator('Label');
}

избавляется от декораторов по умолчанию и создает пустые

...