在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

你可能还对下面的日志感兴趣:

相关标签: Development & Design and tagged , , .

发表评论

电子邮件地址不会被公开。 必填项已被标记为 *

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>