`

在CakePHP中使用TinyMCE编辑器【转】

阅读更多

TinyMCE Editor 小巧实用,是网页文章编辑器之首先,最近在用CakePHP做一个小项目正好用到,记录一下。
首先下载TinyMCE ,并把压缩包内tinymce/jscripts/tiny_mce 目录整个拷贝到webroot/js 目录下,然后在需要用到TinyMCE的Controller里加入,代码如下:

var
 $helpers
 =
 Array

(
'Form'
,
 'Tinymce'
)
;
 

然后建立views/helpers/tinymce.php 文件,内容如下:

<
 ?php 
class
 TinyMceHelper extends
 AppHelper {
 
    // Take advantage of other helpers 

    var
 $helpers
 =
 array

(
'Javascript'
,
 'Form'
)
;
 
    // Check if the tiny_mce.js file has been added or not 

    var
 $_script
 =
 false
;
 
 
    /** 
    * Adds the tiny_mce.js file and constructs the options 
    * 
    * @param string $fieldName Name of a field, like this "Modelname.fieldname", "Modelname/fieldname" is deprecated 
    * @param array $tinyoptions Array of TinyMCE attributes for this textarea 
    * @return string JavaScript code to initialise the TinyMCE area 
    */
 
    function
 _build(
$fieldName
,
 $tinyoptions
 =
 array

(
)
)
 {
 
        if
 (
!
$this
->
_script)
 {
 
            // We don't want to add this every time, it's only needed once 

            $this
->
_script =
 true
;
 
            $this
->
Javascript
->
link
(
'/js/tiny_mce/tiny_mce.js'
,
 false
)
;
 
        }
 
        // Ties the options to the field 

        $tinyoptions
[
'mode'
]
 =
 'exact'
;
 
        $tinyoptions
[
'elements'
]
 =
 $this
->
__name(
$fieldName
)
;
 
        return
 $this
->
Javascript
->
codeBlock
(
'tinyMCE.init('
 .
 $this
->
Javascript
->
object
(
$tinyoptions
)
 .
 ');'
)
;
 
    }
 
 
    /** 
    * Creates a TinyMCE textarea. 
    * 
    * @param string $fieldName Name of a field, like this "Modelname.fieldname", "Modelname/fieldname" is deprecated 
    * @param array $options Array of HTML attributes. 
    * @param array $tinyoptions Array of TinyMCE attributes for this textarea 
    * @return string An HTML textarea element with TinyMCE 
    */
 
    function
 textarea(
$fieldName
,
 $options
 =
 array

(
)
,
 $tinyoptions
 =
 array

(
)
)
 {
 
    	return
 $this
->
Form
->
textarea
(
$fieldName
,
 $options
)
 .
 $this
->
_build(
$fieldName
,
 $tinyoptions
)
;
 
    }
 
    /** 
    * Creates a TinyMCE textarea. 
    * 
    * @param string $fieldName Name of a field, like this "Modelname.fieldname", "Modelname/fieldname" is deprecated 
    * @param array $options Array of HTML attributes. 
    * @param array $tinyoptions Array of TinyMCE attributes for this textarea 
    * @return string An HTML textarea element with TinyMCE 
    */
 
    function
 input(
$fieldName
,
 $options
 =
 array

(
)
,
 $tinyoptions
 =
 array

(
)
)
 {
 
        $options
[
'type'
]
 =
 'textarea'
;
 
        return
 $this
->
Form
->
input
(
$fieldName
,
 $options
)
 .
 $this
->
_build(
$fieldName
,
 $tinyoptions
)
;
 
    }
 
}
 
  ?>
 

然后在要使用TinyMCE的View页面直接用$tinymce->input(‘fieldname’);来调用就可以了。例如:

<
 ?php
// init TinyMCE Editor

echo
 $tinymce
->
input
 (

    'content'
,
 
    array

 (

        'label'
 =>
 false
,

        'style'
 =>
 'height:350px; width:98%;'
,

        'error'
 =>
 '请输入内容'

    )
,

    array

 (

        'mode'
 =>
 'textareas'
,

        'theme'
 =>
 'advanced'
,
 
        'theme_advanced_toolbar_location'
 =>
 'top'
,
 
        'theme_advanced_toolbar_align'
 =>
 'left'
,
 
        'theme_advanced_statusbar_location'
 =>
 'bottom'
,

        //'theme_advanced_resizing' => true,

    )

)
;

 

 

参考:http://bakery.cakephp.org/articles/view/tinymce-helper-1

 

近期本人开通了微信订阅号“CakePHP学习”,欢迎大家的关注。

 

 

  • 大小: 31.3 KB
分享到:
评论

相关推荐

    CakePHP的blog例子(增加了后台功能,嵌入了TinyMCE编辑器)

    在Blog示例中,TinyMCE被集成到后台管理系统中,使得管理员可以方便地在发布或编辑文章时添加图片、格式化文本等。集成步骤可能包括引入TinyMCE的JavaScript库,配置编辑器选项,并将其与表单元素结合。 ** 数据库...

    cakephp所见即所得编辑器

    在本文中,我们将深入探讨如何在CakePHP框架中集成Tinymce所见即所得(WYSIWYG)编辑器,以便为用户提供一个直观且功能强大的文本编辑体验。 首先,让我们了解下这两个关键组件: **CakePHP**:这是一个开源的PHP...

    CakePHP使用ajax传值

    具体实现方法是:在控制器中使用iconv('utf-8', 'gb2312', $data['parameter'])来转换数据。 3. 路径问题的处理:在Ajax请求中,如果网站页面存在嵌套路径,那么在请求时需要注意URL路径的正确性。在CakePHP中,...

    cakephp中文手册API

    在CakePHP中,模型通常与数据库表关联,用于执行CRUD(创建、读取、更新、删除)操作。ORM(对象关系映射)是模型层的核心,使得开发者可以用面向对象的方式来操作数据库。 4. **视图(View)**: 视图负责展示...

    cakephp中文手册

    在阅读这份中文手册时,你将了解到如何设置和配置CakePHP项目,创建数据库模型,建立控制器和视图,使用路由来定义URL结构,以及如何利用组件和行为来扩展功能。此外,手册还会涵盖测试、部署和性能优化等相关主题。...

    cakephp 中文手册

    它代表数据库中的表或数据源,处理业务逻辑,并与视图和控制器交互。 2. **视图(View)**:视图层主要负责展示数据,将模型中的数据转化为用户友好的格式。它通常包含HTML、CSS和JavaScript代码,但不包含业务逻辑...

    CakePHP 1.2 API 中文文档

    在 CakePHP 中,MVC模式是核心设计思想。Model代表数据模型,处理与数据库的交互;View负责展示用户界面;Controller作为模型和视图之间的桥梁,处理用户请求并调用相应的模型方法,然后将数据传递给视图进行渲染。 ...

    cakephp 中文文档

    例如,`EmailComponent` 可以简化电子邮件的发送过程,使得开发者无需在每个需要发送邮件的控制器中重复编写相同的代码。 - **回调函数(Callback)**:提供了一种在控制器生命周期的特定阶段执行自定义逻辑的方式...

    CakePHP创建验证器

    我们将通过一个具体的示例来展示整个过程,包括如何定义验证规则、如何在控制器中使用验证器,以及如何处理验证错误。 #### 二、创建验证器 在CakePHP中创建验证器通常是在模型(Model)层进行的,但本文档中的示例...

    CakePHP中文手册

    8. **组件(Component)**:组件是一组可重用的控制器逻辑,手册会教你如何创建和使用它们来扩展控制器功能。 9. **行为(Behavior)**:类似于模型的组件,行为可以添加到模型中,提供跨模型的共享功能,如日志...

    cakephp中文手册.pdf

    在 CakePHP 中,MVC模式被实现得非常直观和易于使用。例如,控制器类通常放在`app/Controller`目录下,模型类位于`app/Model`,而视图文件则位于`app/View`。 **MVC 模式** 虽然手册建议在阅读前了解MVC的基本概念...

    cakephp 框架书籍 英文版

    - **Component**:介绍了组件的概念,以及如何在控制器中使用它们。 - **Helper**:讲解了辅助程序的用途,以及如何在视图中使用它们。 - **Utilities**:列举了一系列实用工具,如字符串操作、时间日期处理等。 ##...

    cakePHP 中文手册

    CakePHP有多个特点,这些特点让CakePHP成为了快速开发框架中的佼佼者之一。 1.活跃友好的社区 2.灵活的许可协议(Licensing) 3.兼容PHP4和PHP5 4.数据库交互和简单查询的集成 5.应用程序Scaffolding 6....

    PHP的框架之CakePHP-CakePHP教程

    打包下载,里面有CakePHP的框架源码,下载后可直接使用,版本是1.1的,稳定版;CakePHP的分页组件源码;CakePHP的中文及英文教程,CHM格式;CakePHP的中文打印版教程,WORD格式,下载后可直接打印,方便的;CakePHP...

    CakePHP 中文手册.rar

    CakePHP是一个开源的PHP on rails的full-stack framework。最开始从Ruby On Rails框架里得到灵感。程序员可使用它来快速创建的Web应用程序。我们的首要目的是使你以一种预置的快速且不失灵活性的方式开展工作。

    cakephp-1.2 manual

    在 CakePHP 中,你可以创建数据模型来操作数据库中的表,通过ActiveRecord模式实现数据操作。 4. **视图(View)**:视图用于展示数据,通常与HTML模板结合。手册会教你如何创建和组织视图文件,以及如何使用布局...

    cakephp中acl详解

    - **在控制器中应用ACL**:在控制器中,使用`$this-&gt;Acl-&gt;deny()`或`$this-&gt;Acl-&gt;allow()`设置权限,或者使用`$this-&gt;Acl-&gt;check()`检查权限。 - **在视图中显示权限**:在视图中,可以基于用户权限动态地显示或...

Global site tag (gtag.js) - Google Analytics