我下载了ckeditor并希望将其整合到我使用Symfony 2.5构建的网站中,从文档中读取似乎所有第三方代码都应该进入vendor
目录但是接着是什么?这就是全部?如果我将所有ckeditor代码放在vendor
目录中,那么js文件呢?他们不进去看?我一直在网上寻找解决方案,大多数人似乎都指向使用我想避免的在线捆绑,并将其作为我的最后手段。
我之前使用ckeditor使用自定义php,这是我第一次使用symfony框架,我知道我们应该创建textarea
并为其分配id
或class
但我要找的是之前的步骤,例如
1)将ckeditor添加到vendor
2)将其添加到自动加载或其他东西
3)...
如果有人可以指导我如何做,我将非常感激?
答案 0 :(得分:1)
我不确定这是否是正确的方法,但这对我有用。
ckeditor
bundle/Resources/public/js
个文件
php app/console assets:install
twig
文件中添加<script src="{{ asset('bundles/blog/js/ckeditor.js') }}"></script>
(请务必将其更改为您的包名称)ckeditor
分配到您的textarea
字段,我就是这样做的{{ form_widget(form.description, { 'attr': {'class': 'ckeditor'} }) }}
我可以在屏幕上看到编辑器
如果其他人有更好的想法(除了使用捆绑包),我很乐意听取他们的意见
答案 1 :(得分:0)
Baigs的答案会有效,但是当您在不同的捆绑包中使用CKEditor时会出现问题,因为您将把整个源目录作为每个捆绑包的资产来处理。
另一个解决方案是在你的作曲家中使用“egeloen / ckeditor-bundle”:“~2.0”。
然后,您可以在表单中创建一个ckeditor输入字段,并在twig文件中引用该字段。
你也可以直接通过javascript根据你的树枝页面中的CKeditor手册创建一个ckeditor元素。
<script src="/bundles/ivoryckeditor/ckeditor.js"></script>
....
<textarea id="editor1"></textarea>
...
<script>
CKEDITOR.replace('editor1');
</script>
请注意,自定义插件可能会很麻烦,插件需要存储在项目Web目录中,但每次更新composer和dump资产时都会删除它。我的解决方案是创建一个项目scriptHandler,它与composer一起运行,并在更新时将源文件复制到Web公共目录中。
答案 2 :(得分:0)
像mark写的那样你可以使用IvoryCKEditorBundle
http://symfony.com/doc/master/bundles/IvoryCKEditorBundle/installation.html
安装完成后,如果要添加插件,可以使用以下配置:
ivory_ck_editor:
default_config: default
plugins:
block:
path: "/bundles/mybundle/js/ckeditor/plugins/block/"
filename: "plugin.js
.....
configs:
default:
extraPlugins: "block"
....
toolbars:
configs:
default: ["Block"]
在我的情况下,我有一个名为MyBundle的Symfony包。在Resources / public / js中,我有我的js文件。
当我加载资源时,我的文件被推送到web文件夹/ bundles / mybundle / js。
在配置中,我告诉IvoryCKEditorBundle在该文件夹中查找新的插件文件。
在我的默认配置之后,我启用了新的ckeditor插件。
在最后一行,我将新插件添加到工具栏中。