josegonzalez / cakephp-wysiwyg
用于各种wysiwyg编辑器的cakephp助手插件
Requires
This package is not auto-updated.
Last update: 2020-08-21 18:04:52 UTC
README
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 文件中。(为什么?请参阅此处。)
[手动]
- 下载此: https://github.com/josegonzalez/cakephp-wysiwyg/zipball/master
- 解压下载文件。
- 将生成的文件夹复制到
app/Plugin
- 将您刚刚复制的文件夹重命名为
Wysiwyg
[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.js
和 web/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
特此授权,免费提供给任何获得此软件及其相关文档文件(以下简称“软件”)副本的个人,在不受限制的情况下处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向软件提供者提供软件的个人这样做,前提是遵守以下条件:
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、特定用途适用性和非侵权性。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任负责,无论这些索赔、损害或其他责任是源于合同、侵权或其他原因,与软件或软件的使用或其他处理有关。