2015-05-04 183 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' 
      ] 
     ]); 
}