2015-05-04 110 views
0

我似乎無法設置stfalcon的tinymce包的默認配置。我按照給出的指示here無濟於事。tinymceBundle的默認配置

這是我在我的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 || {}; 

在init.standard.js是什麼原因造成的問題。 settings未在settings.external_plugins = settings.external_plugins || {};中定義。我不知道是什麼原因造成的。儘管初始化tinymce「手動」工作。我遇到沒有問題,如果不是使用樹枝命令的,我只是把這個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> 

回答

3

那麼,在修改完init.standard.js之後,我找到了解決方案。顯然,你必須傳遞一個data-theme屬性到你想要添加的textarea,這個屬性對應於你想要在config.yml中有一個默認配置的主題。否則,init.standard.js不會將您的配置選項與其變量settings相匹配。

在我的情況下,配置的主題是advanced所以我只是在我的表單生成這樣做:

$builder 
    // ... 
    ->add('text', 'textarea', array(
     'attr' => array(
      'class'  => 'tinymce', 
      'data-theme' => 'advanced' 
      ) 
     )) 
    // ... 

該訣竅。

0

下面是簡要清單,你必須做的:

∙複製的資源,你的Web文件夾php app/console assets:install

∙在頁面的底部添加此{{ tinymce_init() }}(JavaScript中部分)

∙TinyMCE的選擇添加到您的表格屬性:

<?php 
    $builder->add('yourtext', 'textarea', array(
     'attr' => array(
      'class' => 'tinymce', 
     ) 
    )); 

∙和配置您的conf TinyMCE的選擇:

# app/config/config.yml 
    stfalcon_tinymce: 
     #... 
     selector: ".tinymce" 

嘗試檢查您是否已經做到了。

更新

而且看看Web瀏覽器的控制檯,如果任何解決這些問題。

+0

的默認配置嘗試之前我已經做了所有這一切。我只是重新確定它,但它不能解決問題。當我沒有在配置中放入任何東西時,tinymce可以工作。yml(或只是標準主題) – Afunakwa

+0

@Afunakwa在瀏覽器中查看Web控制檯。那裏有問題嗎? – sergekv

+0

它發現了兩個:'TypeError:$ container.attr(...)是未定義的'和TypeError:設置是未定義的' – Afunakwa

0

這是tinymceBundle

# app/config/config.yml 
stfalcon_tinymce: 
    selector: ".tinymce" 
    theme: 
     simple: 
      height: 250 
      plugins: 
       - "advlist autolink lists link image charmap print preview hr anchor pagebreak" 
       - "searchreplace wordcount visualblocks visualchars code fullscreen" 
       - "insertdatetime media nonbreaking save table contextmenu directionality" 
       - "emoticons template paste textcolor" 
      toolbar1: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link unlink image media" 
      toolbar2: "print preview code | forecolor backcolor emoticons" 
      image_advtab: true 
      templates: 
       - {title: 'Test template 1', content: 'Test 1'} 
       - {title: 'Test template 2', content: 'Test 2'} 
       - {title: 'Test template 3', content: 'Test 3'} 
       - {title: 'Test template 4', content: 'Test 4'} 

# AppBundle/Form/FormType.php 
public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 
     ->add('description', TextareaType::class, [ 
      'attr' => [ 
       'class' => 'tinymce' 
      ] 
     ]); 
}