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
标签:textarea,tinyoptions,TinyMCE,编辑器,fieldName,array,CakePHP,options From: https://blog.51cto.com/u_15107509/5845298