2

私は次を使用してこのようなキャプチャを作成していZend_Formます:

class Form_Signup extends Zend_Form {

    public function __construct( array $options = null ) {

        // set method
        $this->setMethod('post');

        // other elements here        

        // captcha 
        $captcha = new Zend_Form_Element_Captcha('captcha', array(
                'id'=>'captcha',
                'title'=>'Security Check.',
                'captcha' => array(
                'captcha' => 'Image',
                'required' => true,
                'font'=> 'fonts/ARIALN.TTF',
                'wordlen'=>'4',
                'width'=>'200',
                'height'=>'50',
                'ImgAlign'=>'left',
                'DotNoiseLevel'=>'30',
                'LineNoiseLevel'=>'7', 
                'Expiration'=>'1000',
                'fontsize'=>'30',
                'gcFreq'=>'10',
                'imgdir'=> 'images/captcha/',
                'ImgAlt'=>'Captcha',
                'imgurl'=>'/images/captcha/'
                )));
        $captcha->removeDecorator('HtmlTag')
        ->removeDecorator('Label')
        ->addDecorator('Label');        

        // add captcha
        $this->addElement( $captcha );          
        $this->setDecorators( array( array( 'ViewScript', array( 'viewScript' => 'signup/signup-form.phtml' ) ) ) );    
    } 

}

次のような HTML を生成しています。

<img width="200" height="50" alt="Captcha" src="/images/captcha/cabf4d4d759ae8e4b7404b95e032e231.png">
<input type="hidden" name="captcha[id]" value="cabf4d4d759ae8e4b7404b95e032e231" title="Security Check." id="captcha">
<input type="text" name="captcha[input]" id="captcha" value="" title="Security Check.">

しかし、次のように画像の下にキャプチャのテキストボックスが必要です。

<img width="200" height="50" alt="Captcha" src="/images/captcha/cabf4d4d759ae8e4b7404b95e032e231.png">
<br />
<input type="hidden" name="captcha[id]" value="cabf4d4d759ae8e4b7404b95e032e231" title="Security Check." id="captcha">
<input type="text" name="captcha[input]" id="captcha" value="" title="Security Check.">

何か案が ?

ありがとう

4

1 に答える 1

1

Zend Captcha 要素デコレーターは、ほとんど完成していません。これに対する打者の解決策は、独自のデコレータを作成することです。そして、あなたがそれを終えたら。必要に応じて順序を変更できます

ここで完全な答えを見つけることができます

急いでいない場合、および十分な時間がある場合は、Methew による この記事を参照して、デコレータで遊ぶ方法を説明してください。

私がここで尋ねたのとほぼ同じ質問で、別のデコレータクラスを作成したくありませんでしたが、適切な回答が得られませんでした。そして、いくつかのCSSトリックを行い、強制的<input type='text'>にダウンさせました。したがって、唯一の解決策は、カスタム キャプチャ デコレータ クラスを生成することです。

そこで何も得られない場合は、私に知らせてください。ありがとうございました

于 2012-07-24T14:13:20.423 に答える