Php Zend框架/表单元素:创建自定义类还是?
我想要的结果是一个连接到(标记编辑器)的textarea。并包括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
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
}
}