我们在SilverStripe中构建了我们自己的tinyMCE编辑器版本。唯一的问题是您需要点击刷新我们要加载的自定义配置。一旦刷新一次,它就会在剩下的时间内完成。
我们的设置如下:
BolierplateWYSIWYG.php
class BolierplateWYSIWYG extends Extension {
protected function defaults() {
$defaultEditorConfig = HtmlEditorConfig::get('cms');
$defaultEditorConfig->setOptions(
array(
'theme' => 'advanced',
'priority' => 1,
// More config options
)
);
return HtmlEditorConfig::get('cms');
}
public function getConfig() {
return $this->defaults();
}
}
然后,在Page.php内部我们有以下内容:
... page functions ...
public function getCMSFields() {
$fields = parent::getCMSFields();
// Update WYSIWYG
$digital360Wysiwyg = new Digital360WYSIWYG;
$digital360Wysiwyg->getConfig();
... Page CMS configuration ...
在我们的boilplate.yml里面,我们有:
HtmlEditorField:
extensions:
- BolierplateWYSIWYG
如何在不需要页面刷新的情况下加载此新配置?
答案 0 :(得分:1)
就像@assertchris提到的那样,我的PR [{3}}现已合并,因此您可以轻松拥有多个TinyMCE配置,这些配置可以帮助您进行扩展。
在HTMLEditorConfig
中设置您的_config.php
HtmlEditorConfig::get('default')->setOptions....
HtmlEditorConfig::get('fancy')->setOptions....
由于你必须有一个扩展名,你可能会有:
class BolierplateWYSIWYG extends Extension {
public function setEditorConfig($name = 'default')
{
HtmlEditorConfig::set_active($name);
}
}
设置CMS字段时可以这样使用
$digital360Wysiwyg = new Digital360WYSIWYG;
$digital360Wysiwyg->setEditorConfig();
或
$digital360Wysiwyg = new Digital360WYSIWYG;
$digital360Wysiwyg->setEditorConfig('fancy');
这应该可以正常工作。虽然在更改mode
等某些编辑器选项时要小心,因为这会导致刷新问题。你不应该改变theme
或priority
吗?
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以通过调用_mysite / config.php 中的setOptions
来自定义HtmlEditorConfig::get('cms')->setOptions(
array(
'theme' => 'advanced',
'priority' => 1,
// More config options
)
);
:
gem uninstall mysql2
无需刷新CMS页面即可使用。