2014-09-30 76 views
1

我下载了ckeditor并希望将它集成到使用Symfony 2.5构建的我的网站中,从文档中阅读,似乎所有第三方代码都应该进入vendor目录,但那又如何?这就是全部?如果我把所有ckeditor代码放在vendor目录里面,那么js文件呢?他们不在视野内吗?我一直在网上搜索这个解决方案,其中大部分似乎都指向使用一个可用的在线捆绑包,我想避免这种捆绑包,并将其作为我的最后手段。将CKeditor集成到我的symfony 2.5

我已经使用CKEditor的自定义PHP之前,这是我第一次与symfony框架,我知道我们应该创造一个textarea,并为其分配idclass,但我所寻找的是步骤在此之前,例如

1)添加到的CKEditor vendor

2)把它添加到自动加载什么

3)...

我会非常感谢,如果有人能指导我如何做到这一点?

回答

1

我不确定这是否是正确的方式来做到这一点,但这是对我有用。

  1. 我结束了复制里面bundle/Resources/public/js
  2. ckeditor文件通过运行以下命令php app/console assets:install
  3. 在你twig文件安装资产添加<script src="{{ asset('bundles/blog/js/ckeditor.js') }}"></script>(请务必更改为您包的名称)
  4. ckeditor分配到您的textarea字段,这就是我的做法{{ form_widget(form.description, { 'attr': {'class': 'ckeditor'} }) }}

,我可以看到我的屏幕 enter image description here

如果任何人有一个更好的主意(不是使用束等)我很想从他们那里听到

0

Baigs回答的工作,但有问题的编辑器在不同的包中使用CKEditor时会出现,因为您将整个源目录作为每个包的资源。

另一种解决方案是在作曲家中使用“egeloen/ckeditor-bundle”:“〜2.0”。

然后,您可以在窗体中创建ckeditor输入字段,并在您的树枝文件中引用该字段。

你也可以直接通过javascript在你的树枝页面中根据CKeditor手册创建一个ckeditor元素。

<script src="/bundles/ivoryckeditor/ckeditor.js"></script> 
.... 
<textarea id="editor1"></textarea> 
... 
<script> 
CKEDITOR.replace('editor1'); 
</script> 

注意,自定义插件可镇痛,插件需要被存储在项目web目录,但这被删除每次更新作曲家和抛售资产。我的解决方案是创建一个与composer一起运行的项目scriptHandler,并在更新时将源文件复制到Web公共目录中。

0

像马克写道,你可以使用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"] 

在我来说,我有一个Symfony包叫MyBundle。在资源/公共/ JS我有我的JS文件。

当我加载资产时,我的文件被推送到web文件夹/ bundles/mybundle/js。

在配置中,我告诉IvoryCKEditorBundle在该文件夹中查找新的插件文件。

在我的默认配置后,我启用了我的新ckeditor插件。

而在最后一行中,我将新插件添加到工具栏。