创建一个新的TinyMCE表单小部件

时间:2010-11-19 11:58:55

标签: forms symfony1 tinymce widget

我在我的表单中使用tinyMCE,并注意到我只使用两种配置:对于网站的管理员来说,非常有限的一种,例如评论和更复杂的配置。

目前我通过在每种形式中重复这种代码来做到这一点:

    //TinyMCE
    $this->widgetSchema['comment'] = new sfWidgetFormTextareaTinyMCE(array(
      'width'  => 550,
      'height' => 150,
      'config' => '
    theme_advanced_buttons1 : "bold,italic,separator,bullist,separator,link, sub,sup,separator,charmap",
    theme_advanced_buttons2 : "",
    theme_advanced_buttons3 : "",
    theme_advanced_path : false,
    language : "fr"
'
    ));

我可以(以及如何)创建两个小部件,比如TinyMCEsmall和TinyMCEfull,这样我就不必重复代码了吗?

2 个答案:

答案 0 :(得分:3)

像这样:

class sfWidgetFormTextareaTinyMCESmall extends sfWidgetFormTextareaTinyMCE
{
  protected function configure($options = array(), $attributes = array())
  {
    parent::configure($options, $attributes);

    //assuming there are no options on the parent class that you need, call setOptions. If you need to retain some, make individual setOption calls.
    $this->addOption('width', 550);
    $this->addoption('height', 150);
    $this->addOption('config', '
theme_advanced_buttons1 : "bold,italic,separator,bullist,separator,link, sub,sup,separator,charmap",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",
theme_advanced_path : false,
language : "fr"
');
  }
}

请注意,您传入的选项仍然优先。

答案 1 :(得分:-1)

当然,创建一个扩展sfWidgetFormTextareaTinyMCE的类,并将您的细节放在其构造函数中。

把它放在一个名为myTinyMCE的var

并在构造函数中最后调用parent :: constructor(myTinyMCE)

您可以将设置作为参数。

然后在表单中不再调用sfWidgetFormTextareaTinyMCE,而是你创建的类......

class myClass extends sfWidgetFormTextareaTinyMCE { 

public class __construct(){
      myTinyMCE = array(
      'width'  => 550,
      'height' => 150,
      'config' => '
    theme_advanced_buttons1 : "bold,italic,separator,bullist,separator,link, sub,sup,separator,charmap",
    theme_advanced_buttons2 : "",
    theme_advanced_buttons3 : "",
    theme_advanced_path : false,
    language : "fr"
'
    );

  parent::__construct(myTinyMCE);

 }

}

有关详细信息,请访问How do I get a PHP class constructor to call its parent's parent's constructor