tinymceBundle 的默认配置
Default config of tinymceBundle
我似乎无法为 stfalcon 的 tinymce 包设置默认配置。我按照 here 给出的说明进行操作,但无济于事。
这是我的 config.yml:
stfalcon_tinymce:
theme:
advanced:
plugins:
- "advlist autolink lists link image charmap print preview anchor"
- "searchreplace visualblocks code fullscreen"
- "insertdatetime media table contextmenu paste"
toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
image_advtab: true
我没有为文本区域显示工具栏和插件,而是什么都没有。不知何故,像我所做的那样配置它会扰乱 tinymce 的初始化。有人知道我的错误在哪里吗?
更新
看Firefox的调试工具,好像是这样的代码:
var settings = (typeof options.theme[theme] != 'undefined')
? options.theme[theme]
: options.theme['simple'];
settings.external_plugins = settings.external_plugins || {};
in init.standard.js 是导致问题的原因。 settings
在 settings.external_plugins = settings.external_plugins || {};
中未定义。我不知道是什么原因造成的。初始化 tinymce "manually" 是可行的。如果不使用 twig 命令,我不会遇到任何问题,我只是将它放在 html 页面上:
<script type="text/javascript">
tinymce.init({
selector: "textarea",
plugins: [
"advlist autolink lists link image charmap print preview anchor",
"searchreplace visualblocks code fullscreen",
"insertdatetime media table contextmenu paste"
],
toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
});
</script>
这是您必须做的事情的简要清单:
∙ 将资源复制到您的网络文件夹 php app/console assets:install
∙ 在页面底部添加此 {{ tinymce_init() }}
(在 javascripts 部分)
∙ 将 tinymce 选择器添加到您的表单属性中:
<?php
$builder->add('yourtext', 'textarea', array(
'attr' => array(
'class' => 'tinymce',
)
));
∙ 并在您的 conf 中配置 tinymce 选择器:
# app/config/config.yml
stfalcon_tinymce:
#...
selector: ".tinymce"
试试看看你是否做到了。
更新
同时查看 Web 浏览器控制台并解决问题(如果有)。
好吧,在修改 init.standard.js 之后,我找到了解决方案。显然,您必须将数据主题属性传递给您想要 tinymceize 的文本区域,该属性对应于您打算在 config.yml 中具有默认配置的主题。否则,init.standard.js 不会将您的配置设置与其 settings
变量相匹配。
在我的例子中,配置的主题是 advanced
所以我只是在我的表单生成器中这样做:
$builder
// ...
->add('text', 'textarea', array(
'attr' => array(
'class' => 'tinymce',
'data-theme' => 'advanced'
)
))
// ...
成功了。
我似乎无法为 stfalcon 的 tinymce 包设置默认配置。我按照 here 给出的说明进行操作,但无济于事。
这是我的 config.yml:
stfalcon_tinymce:
theme:
advanced:
plugins:
- "advlist autolink lists link image charmap print preview anchor"
- "searchreplace visualblocks code fullscreen"
- "insertdatetime media table contextmenu paste"
toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
image_advtab: true
我没有为文本区域显示工具栏和插件,而是什么都没有。不知何故,像我所做的那样配置它会扰乱 tinymce 的初始化。有人知道我的错误在哪里吗?
更新
看Firefox的调试工具,好像是这样的代码:
var settings = (typeof options.theme[theme] != 'undefined')
? options.theme[theme]
: options.theme['simple'];
settings.external_plugins = settings.external_plugins || {};
in init.standard.js 是导致问题的原因。 settings
在 settings.external_plugins = settings.external_plugins || {};
中未定义。我不知道是什么原因造成的。初始化 tinymce "manually" 是可行的。如果不使用 twig 命令,我不会遇到任何问题,我只是将它放在 html 页面上:
<script type="text/javascript">
tinymce.init({
selector: "textarea",
plugins: [
"advlist autolink lists link image charmap print preview anchor",
"searchreplace visualblocks code fullscreen",
"insertdatetime media table contextmenu paste"
],
toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
});
</script>
这是您必须做的事情的简要清单:
∙ 将资源复制到您的网络文件夹 php app/console assets:install
∙ 在页面底部添加此 {{ tinymce_init() }}
(在 javascripts 部分)
∙ 将 tinymce 选择器添加到您的表单属性中:
<?php
$builder->add('yourtext', 'textarea', array(
'attr' => array(
'class' => 'tinymce',
)
));
∙ 并在您的 conf 中配置 tinymce 选择器:
# app/config/config.yml
stfalcon_tinymce:
#...
selector: ".tinymce"
试试看看你是否做到了。
更新
同时查看 Web 浏览器控制台并解决问题(如果有)。
好吧,在修改 init.standard.js 之后,我找到了解决方案。显然,您必须将数据主题属性传递给您想要 tinymceize 的文本区域,该属性对应于您打算在 config.yml 中具有默认配置的主题。否则,init.standard.js 不会将您的配置设置与其 settings
变量相匹配。
在我的例子中,配置的主题是 advanced
所以我只是在我的表单生成器中这样做:
$builder
// ...
->add('text', 'textarea', array(
'attr' => array(
'class' => 'tinymce',
'data-theme' => 'advanced'
)
))
// ...
成功了。