在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学习”,欢迎大家的关注。
在CakePHP中使用TinyMCE编辑器
 

 

你可能感兴趣的:(JavaScript,html,PHP,tinymce,cakephp)