josegonzalez/cakephp-wysiwyg

该软件包已被废弃,不再维护。未建议替代软件包。

用于各种wysiwyg编辑器的cakephp助手插件

安装次数: 32,929

依赖项: 0

建议者: 0

安全性: 0

星标: 65

关注者: 8

分支: 23

公开问题: 0

类型:cakephp-plugin

2.0.1 2013-09-20 13:09 UTC

This package is not auto-updated.

Last update: 2020-08-21 18:04:52 UTC


README

Build Status Coverage Status Total Downloads Latest Stable Version Documentation Status Gratipay

Wysiwyg 辅助插件 2.0

快速轻松地包含Wysiwyg编辑器

背景

我在从事Marcy Avenue工作的一部分中进行了小规模的重构。在多年的Joomla和WordPress工作后,我意识到人们更喜欢不同的WYSIWYG编辑器。因此,为了减轻这种情况,我试图为市场上每个主要的WYSIWYG编辑器构建一组CakePHP助手,以及尽可能多的较小型的编辑器。

该插件还允许您在控制器中使用WysiwygHelper并对其进行配置时,自动从一种WYSIWYG编辑器切换到另一种编辑器。您还可以在视图中更改编辑器。

要求

  • CakePHP 2.x

安装

下载您选择的编辑器的JS版本,并将其安装到您的js文件夹中。

[使用 Composer]

将插件添加到项目的 composer.json 文件中 - 例如:

{
	"require": {
		"josegonzalez/cakephp-wysiwyg": "dev-master"
	}
}

由于此插件在其自己的 composer.json 文件中设置了类型 cakephp-plugin,因此Composer知道将其安装在 /Plugins 目录中,而不是在通常的 vendors 文件中。建议您将 /Plugins/Upload 添加到您的 .gitignore 文件中。(为什么?请参阅此处。)

[手动]

[GIT Submodule]

在您的app目录中输入:

git submodule add git://github.com/josegonzalez/cakephp-wysiwyg-helper.git Plugin/Wysiwyg
git submodule init
git submodule update

[GIT Clone]

在您的插件目录中输入:

git clone git://github.com/josegonzalez/cakephp-wysiwyg-helper.git Wysiwyg

启用插件

在2.0中,您需要在 app/Config/bootstrap.php 文件中启用插件

CakePlugin::load('Wysiwyg');

如果您已经使用 CakePlugin::loadAll();,则此步骤不是必需的。

使用方法

可用的助手

默认编辑器是Tinymce

要使用这些助手中的任何一个,您应该在 web/js 文件夹中创建一个文件夹,该文件夹以您选择的编辑器的名称的小写版本命名。该文件夹应包含编辑器使用的所有必要文件。例如,NiceditHelper 需要的文件是 web/js/nicedit/nicEdit.jsweb/js/nicedit/nicEditorIcons.gif

有关配置这些文件的存储位置的信息,请参阅助手代码。

  • CKEditor (Wysiwyg.Ck)
  • Jwysiwyg (Wysiwyg.Jwysiwyg)
  • Markitup (Wysiwyg.Markitup)
  • Nicedit (Wysiwyg.Nicedit)
  • TinyMCE (Wysiwyg.Tinymce)

使用通用的WyswigHelper

将以下代码添加到您想要使用首选编辑器的控制器中。如果您愿意,可以省略参数,默认编辑器是tinymce

public $helpers = array('Wysiwyg.Wysiwyg' => array('editor' => 'Ck'));

将您的textarea输入替换为以下任一项

echo $this->Wysiwyg->input('ModelName.fieldName', $inputOptions, $helperOptions);
echo $this->Wysiwyg->textarea('ModelName.fieldName', $inputOptions, $helperOptions);

FormHelper的数组选项包含在第二个参数中,而第三个参数包含编辑器的选项数组

您也可以在视图中更改编辑器。更改将影响后续的编辑器

$this->Wysiwyg->changeEditor('Nicedit', $helperOptions);

到此为止,理论上一切应该都可以正常工作。

其他助手

如果您要硬编码编辑器,您可以在控制器中这样做

<?php
class AppController extends Controller {

  public $helpers = array('Wysiwyg.Nicedit');

}

然后在视图中使用如下所示

echo $this->Nicedit->input("ModelName.fieldName");

echo $this->Nicedit->textarea("ModelName.fieldName");

设置

大多数编辑器都接受JavaScript对象作为设置。WysiwygHelper允许您以三种方式指定可选设置。

特殊设置

以下是一些Wysiwyg插件内部使用的特殊设置

  • _buffer:一个布尔值,表示是否应该缓冲输入转换JavaScript
  • _css:要缓冲的CSS文件数组
  • _cssText:包含相关CSS的文本字符串
  • _editor:编辑器类。仅当您指定Wysiwyg.Wysiwyg助手时使用
  • _scripts:要缓冲的脚本数组
  • _scriptBlock:覆盖脚本将被添加到的块
  • _inline:在脚本块中打印js而不是在输入旁边。默认值:true

当将设置传递到您正在配置的wysiwyg JavaScript时,将忽略这些设置。

通过控制器设置

此模式的结果是,所有非特殊设置都设置为Wysiwyg编辑器区域每个实例化的默认值。

<?php
class AppController extends Controller {
    public $helpers = array(
        'Wysiwyg.Wysiwyg' => array(
            '_editor' => 'Tinymce',
            'theme_advanced_toolbar_align' => 'right',
        )
    );
}

通过 ->changeEditor()

Wysiwyg->changeEditor()的第二个参数也可以用来完全覆盖任何已设置的默认值

echo $this->Wysiwyg->changeEditor('Tinymce', $helperOptions);

通过 ->updateSettings()

可以使用调用->updateSettings()来完全覆盖任何已设置的默认值

echo $this->Wysiwyg->updateSettings($helperOptions);

echo $this->Tinymce->updateSettings($helperOptions);

您也可以通过调用->getSettings()来检索当前设置的编辑器设置

$settings = $this->Wysiwyg->getSettings();

通过助手调用

->input()->textarea()调用都接受第三个参数数组,$helperOptions,可以用来配置助手。这些将与已指定的任何默认值合并

echo $this->Wysiwyg->input('Post.body', $inputOptions, $helperOptions);

echo $this->Wysiwyg->textarea('Post.body', $inputOptions, $helperOptions);

待办事项

  • 更好的代码注释
  • 找出如何包含JS发行版
  • 启用文件上传,使用编辑器本地的任何功能
  • 尽可能重构
  • 创建一个WysiwygHelper,根据传递给视图的设置自动创建所需的助手类型~~~
  • 测试

许可

MIT许可(MIT)

版权所有 (c) 2009 Jose Diaz-Gonzalez

特此授权,免费提供给任何获得此软件及其相关文档文件(以下简称“软件”)副本的个人,在不受限制的情况下处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向软件提供者提供软件的个人这样做,前提是遵守以下条件:

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、特定用途适用性和非侵权性。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任负责,无论这些索赔、损害或其他责任是源于合同、侵权或其他原因,与软件或软件的使用或其他处理有关。