Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Zend框架/表单元素:创建自定义类还是?_Php_Zend Framework - Fatal编程技术网

Php Zend框架/表单元素:创建自定义类还是?

Php Zend框架/表单元素:创建自定义类还是?,php,zend-framework,Php,Zend Framework,我想要的结果是一个连接到(标记编辑器)的textarea。并包括div.wmd-preview元素。我目前拥有的是我的表单(扩展Zend_表单)。。。我通过装饰器添加功能 // init() $this->addElement('textarea', 'bio', array( 'label' => 'Bio', 'description' => '<a href="http://daringfireball.net/projects/markd

我想要的结果是一个连接到(标记编辑器)的textarea。并包括
div.wmd-preview
元素。我目前拥有的是我的表单(扩展
Zend_表单
)。。。我通过装饰器添加功能

// init()
$this->addElement('textarea', 'bio', array(
    'label' => 'Bio',
    'description' => '<a href="http://daringfireball.net/projects/markdown/syntax" target="_blank" title="get markdown editing/syntax help">Markdown enabled</a>',
    'validators' => array(
        array('StringLength', false, array(0, 1000))
    ),
    'decorators' => array(
        'ViewHelper',
        'Errors',
        array('Description', array('tag' => 'p', 'escape' => false)),
        'Label',
        array('HtmlTag', array('tag' => 'p')),
        new Application_Form_Decorator_WmdPreview,
     )
));
...
// add WMD & Prettify
$bootstrap = Zend_Controller_Front::getInstance()->getParam('bootstrap');
$view = $bootstrap->getResource('view');
$view->headScript()->prependFile($view->baseUrl("/js/wmd/wmd.js"))
                   ->prependScript('wmd_options = {"output": "Markdown"};')
                   ->prependFile($view->baseUrl("/js/prettify/prettify.js"));
$view->headLink()->prependStylesheet($view->baseUrl('/js/prettify/prettify.css'));
}
或者类似的东西


如果答案是创建一个自定义的
Zend\u Form\u元素
,我该怎么做呢?只是创建一个包含所有标记的自定义视图帮助器?如果我想在textarea和preview div之间放置其他装饰符(如错误和说明),该怎么办?

创建一个扩展Zend\u form\u element\u textarea的新表单元素类:

final class Application_Form_Element_WmdEditor extends Zend_Form_Element_TextArea {
    public $helper = 'WMDEditor';
}
然后就像您所说的视图辅助对象:


通过这种方式,您还可以获得最常用的标准表单元素帮助程序的所有优点。所以我认为你做得很好,通过创建一个继承自Zend_Form_Element_TextArea的新类。那么我想我的错误和描述修饰符不可能出现在文本区域和Prefiw区域之间,对吗?因为如果我的错误和描述在底部,它可能会太低
final class Application_Form_Element_WmdEditor extends Zend_Form_Element_TextArea {
    public $helper = 'WMDEditor';
}
final class Application_View_Helper_WMDEditor extends Zend_View_Helper_FormElement {

     public function WMDEditor($name, $value = null, $attribs = null) {
        //set it up here
     }
}