2014-09-30 97 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插件。

而在最後一行中,我將新插件添加到工具欄。