我想覆盖“table”插件的默认值,例如 cellspadding (txtCellSpace)。
使用:
如果没有 FOSCKEditorBundle,我们应该在 config.js 文件中添加一些如下代码:
CKEDITOR.on('dialogDefinition', function( ev ) {
var dialogName = ev.data.name;
var dialogDefinition = ev.data.definition;
if(dialogName === 'table') {
var infoTab = dialogDefinition.getContents('info');
var cellSpacing = infoTab.get('txtCellSpace');
cellSpacing['default'] = "0";
}
});
问题是:我没有 config.js 文件来使此代码正常工作,因为我正在使用 FOSCKEditorBundle。
我尝试覆盖 ckeditor_form.html.twig 以附加一些自定义 JS,如此处记录的: https://symfony.com/bundles/FOSCKEditorBundle/current/usage/append-javascript.html 通过创建一个新的 ckeditor_form .html.twig 放入 Symfony 的模板文件夹中,扩展原始模板文件夹,并使用以下命令将其调用到 backend/config/packages/twig.yaml 中:
default_path: "%kernel.project_dir%/templates"
form_themes:
- "ckeditor_widget.html.twig"
但我的文件从未被调用过。
有人已经尝试过做这样的事情吗?
覆盖表插件默认值的正确方法是包含自定义 Javascript。
经过多次尝试,我成功做到了,感谢https://symfony.com/doc/6.4/bundles/override.html。
twig.yaml:
twig:
default_path: "%kernel.project_dir%/templates"
form_themes:
- "bundles/FOSCKEditorBundle/Form/ckeditor_widget.html.twig"
/templates/bundles/FOSCKEditorBundle/Form/ckeditor_widget.html.twig:
{% extends '@!FOSCKEditor/Form/ckeditor_widget.html.twig' %}
{% block ckeditor_widget_extra %}
CKEDITOR.on('dialogDefinition', function( ev ) {
var dialogName = ev.data.name;
var dialogDefinition = ev.data.definition;
if(dialogName === 'table') {
var infoTab = dialogDefinition.getContents('info');
var cellSpacing = infoTab.get('txtCellSpace');
cellSpacing['default'] = "0";
}
});
{% endblock %}