1

我正在尝试使用 cakePhp 设置 TinyMce,唯一加载的是 textarea。我要从 The Bakery 发表这篇文章:

http://bakery.cakephp.org/articles/galitul/2012/04/11/helper_tinymce_for_cakephp_2

我检查了我的文件的拼写,我有 webroot/js/tiny_mce 和 View/Helper/TinymceHelper.php。我需要在布局中添加其他内容吗?

在我的控制器中,我有:

public $helpers = array('Html', 'Form', 'Session', 'Tinymce');

我的观点:

<?php echo $this->Tinymce->input('description', array(
     'label' => 'content'),
     array('language' => 'en'
         ),
     'bbcode'
     ); 
?>
4

3 回答 3

4

我找不到上面的助手,所以我尝试了 CakeDC 制作的这个插件来解决问题:https ://github.com/CakeDC/TinyMCE

在 app/plugin 目录中提取文件后,您只需在控制器中添加一个可能类似于以下内容的帮助程序:

public $helpers = array('TinyMCE.TinyMCE');

在 /app/config/bootstrap.php 文件中我添加了:

CakePlugin::load('TinyMCE');

...

Configure::write('TinyMCE.configs', array(
'advanced' => array(
    'mode' => 'textareas',
    'theme' => 'advanced',
    'plugins' => 'emotions,spellchecker,advhr,insertdatetime,preview',
    'theme_advanced_buttons1' => 'newdocument,|,bold,italic,underline,|,justifyleft,justifycenter,justifyright,fontselect,fontsizeselect,formatselect',
    'theme_advanced_buttons2' => 'cut,copy,paste,|,bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,|,code,preview,|,forecolor,backcolor',
    'theme_advanced_buttons3' => 'insertdate,inserttime,|,spellchecker,advhr,,removeformat,|,sub,sup,|,charmap,emotions',
    'width' => '700',
    'theme_advanced_toolbar_location' => 'top',
    'theme_advanced_toolbar_align' => 'left',
    'theme_advanced_statusbar_location' => 'bottom',
    'theme_advanced_resizing' => 'true'
    )
  )
);

您可以访问 TinyMCE 网站并根据需要配置设置。

然后,一旦我完成了配置并将助手添加到我的控制器中,我添加了:

$this->TinyMCE->editor('advanced');

这会将表单上的 textarea 转换为 TinyMCE 编辑器并从 bootstrap.php 加载设置(请注意,您仍然必须在视图上创建 textarea 输入)

于 2013-03-28T14:53:44.947 回答
1

如果您的 CakePHP 项目使用 Composer 进行依赖管理,并且您想包含 CakeDC TincyMCE 插件 ( https://github.com/CakeDC/TinyMCE ),您可以在 composer.json 中使用以下配置

{
    "require": {
        "cakedc/tiny-mce": "1.2.0"
    },
    "extra": {
        "installer-paths": {
            "app/Plugin/TinyMCE": ["cakedc/tiny-mce"]
        }
    }
}

在这种情况下,我已经指定了一个自定义的“安装程序路径”,因为我的 CakePHP 应用程序位于 /app 中,但我的 composer.json 位于根目录中。没有这个,插件最终会出现在 /Plugin/TinyMCE 而不是 /app/Plugin/TinyMCE

于 2014-09-07T21:11:27.323 回答
0

您需要知道的第一件事是,目前,教程位于: http ://bakery.cakephp.org/articles/galitul/2012/04/11/helper_tinymce_for_cakephp_2 适用于 TinyMCE 3.x。我什至没有开始重建给定的代码以适应 4.x。更重要的是,教程使用了位于 TinyMCE 3.x 包中的高级主题。

如果你使用 CakePHP 2.x 版和 TinyMCE,它应该工作得很好:

  1. 从官方 TinyMCE 网站下载 3.x 包:http ://www.tinymce.com/download/download.php ,
  2. 按照教程中的说明提取 jscripts/tiny_mce 目录(到 app/webroot/js/)
  3. 添加:public $helpers = array('Tinymce');到每个需要 TinyMCE 的控制器。
  4. 使用教程中的代码在 App/View/Helpers 目录中创建 TinymceHelper.php
  5. 在 add/edit 或您为带有 tinyMCE 字段的文件指定的任何名称中,创建如下字段:$this->Tinymce->input('ModelName.fieldname', $options = array(), $tinyoptions = array(), $preset = null);
    示例:
    echo $this->Tinymce->input('StaticPage.description', array('label' => 'Content'),array(), 'full');

我希望这对任何人都有帮助:-)

于 2014-04-15T12:14:57.607 回答