当前位置:首页 > CMS教程 > phpcms > 列表

【phpcms-v9】phpcms-v9整合百度Ueditor编辑器

发布:smiling 来源: PHP粉丝网  添加日期:2014-10-23 15:53:18 浏览: 评论:0 

百度新推出的UEditor是一个很不错的在线富文本编辑器,与CKEditor、KindEditor等属于同一个应用范畴,百度UEditor编辑器具有很多特色,比如支持多图批量上传、支持直接插入地图、拥有丰富美观的表情图片、支持代码高亮显示、支持自定义分页符等等符合国人操作习惯的特点,而且能够很好的迎合当前主流CMS中的内容编辑需求,下面我们就来将百度UEditor编辑器(1.1.8.1版)与国内优秀的CMS系统PHPCMS V9进行强强结合.

首先,我们需要修改 \phpcms\libs\classes\attachment.class.php 文件,使之与百度UEditor编辑器中的图片上传功能进行对接,现在,我们打开 \phpcms\libs\classes\attachment.class.php 文件,找到mkhtml函数的声明部分,我们可以通过搜索“function mkhtml(”从而很容易的找到它的位置,将此函数改为:

  1. function mkhtml($fn,$fileurl,$message,$editor=null) {    
  2.   if(!$editor && !emptyempty($_REQUEST['editortype'])){    
  3.    $editor=$_REQUEST['editortype'];    
  4.   }    
  5.   switch($editor){    
  6.    case 'ueditor':    
  7.     $title = htmlspecialchars($_POST['pictitle'], ENT_QUOTES);    
  8.     $message || $message='SUCCESS';    
  9.     $str='{\'url\':\''.$fileurl.'\',\'title\':\''.$title.'\',\'state\':\''.$message.'\'}';    
  10.     break;   //开源软件:phpfensi.com 
  11.    default:    
  12.     $str='<script type="text/javascript">window.parent.CKEDITOR.tools.callFunction('.$fn.', \''.$fileurl.'\', \''.$message.'\');</script>';    
  13.   }    
  14.   exit($str);    
  15.  }   

修改后保存,然后,我们修改 \phpcms\libs\classes\form.class.php 文件,打开 \phpcms\libs\classes\form.class.php 文件,在代码:

  1. class form {    
  2.  
  3. //后面另起一行,添加代码: 
  4.  
  5. /**   
  6. * UEditor Function   
  7. * Author:admpub.com   
  8. * Update:2012-03-26 20:14   
  9. */   
  10.  public static function ueditor($textareaid = 'content'$toolbar = 'basic'$module = ''$catid = ''$color = ''$allowupload = 0, $allowbrowser = 1,$alowuploadexts = '',$height = 200,$disabled_page = 0, $allowuploadnum = '32') {//$toolbar = 'admpub';    
  11.   if($toolbar == 'basic') {    
  12.    $toolbar = "['FullScreen',";    
  13.    $toolbar .= defined('IN_ADMIN') ? "'Source'," : '';    
  14.    $toolbar .= "'|''Undo''Redo''|',    
  15.                 'Bold''Italic''Underline','InsertOrderedList''InsertUnorderedList','|',    
  16.                 'JustifyLeft''JustifyCenter''JustifyRight''JustifyJustify''|',    
  17.                 'Link''Unlink']";    
  18.   } elseif($toolbar == 'full') {    
  19.    $toolbar = "['FullScreen',";    
  20.    if(defined('IN_ADMIN')) {    
  21.     $toolbar .= "'Source',";    
  22.    } else {    
  23.     $toolbar .= '';    
  24.    }    
  25.    $toolbar .= "'|''Undo''Redo''|',    
  26.                 'Bold''Italic''Underline''StrikeThrough''Superscript''Subscript''RemoveFormat''FormatMatch''|',    
  27.                 'BlockQuote''|''PastePlain''|''ForeColor''BackColor''InsertOrderedList''InsertUnorderedList''|''CustomStyle',    
  28.                 'Paragraph''RowSpacing''LineHeight''FontFamily''FontSize''|',    
  29.                 'DirectionalityLtr''DirectionalityRtl''|''''Indent''|',    
  30.                 'JustifyLeft''JustifyCenter''JustifyRight''JustifyJustify''|',    
  31.                 'Link''Unlink''Anchor''|''ImageNone''ImageLeft''ImageRight''ImageCenter''|''InsertImage''Emotion''InsertVideo''Map''GMap''InsertFrame''PageBreak','PageTitle''HighlightCode''|',    
  32.                 'Horizontal''Date''Time''Spechars''|',    
  33.                 'InsertTable''DeleteTable''InsertParagraphBeforeTable''InsertRow''DeleteRow''InsertCol''DeleteCol''MergeCells''MergeRight''MergeDown''SplittoCells''SplittoRows''SplittoCols''|',    
  34.                 'SelectAll''ClearDoc''SearchReplace''Print''Preview''CheckImage''Help']";    
  35.   } elseif($toolbar == 'desc') {    
  36.    $toolbar = "['FullScreen','Source','Undo', 'Redo', '|',";    
  37.    $toolbar .= "'Bold', 'Italic', '|', 'InsertOrderedList', 'InsertUnorderedList', '|', 'Link', 'Unlink', '|', 'ImageNone', 'ImageLeft', 'ImageRight', 'ImageCenter', '|', 'InsertImage','HighlightCode']";    
  38.   } else {    
  39.    $toolbar = "['FullScreen','Undo', 'Redo', '|','ForeColor', 'BackColor']";    
  40.   }    
  41.   $str .= '<script type="text/javascript">';    
  42.   $str .= 'var UEDITOR_HOME_URL="'.JS_PATH.'ueditor/";';    
  43.   $str .= 'var ADMPUB_PIC_UPLOADFIELD_NAME="upload";';    
  44.   $str .= 'var ADMPUB_PIC_DESCFIELD_NAME="pictitle";';    
  45.   $str .= 'var ADMPUB_PIC_UPLOAD_URL="'.APP_PATH.'index.php?m=attachment&c=attachments&a=upload&module='.$module.'&catid='.$catid.'&editortype=ueditor&dosubmit=1";';    
  46.   $str .= 'var ADMPUB_PIC_UPLOAD_MAXSIZE=2;';    
  47.   $str .= 'var ADMPUB_PIC_UPLOAD_MAXNUM='.$allowuploadnum.';';    
  48.   $str .= 'var ADMPUB_TOOLBARS=['.$toolbar.'];';    
  49.   $str .= '</script>';    
  50.   if(!defined('EDITOR_INIT')) {    
  51.    $str .= '<script type="text/javascript" src="'.JS_PATH.'ueditor/editor_config.js" charset="utf-8"></script>';    
  52.    $str .= '<script type="text/javascript" src="'.JS_PATH.'ueditor/editor_all_min.js" charset="utf-8"></script>';//    
  53.    $str .= '<link rel="stylesheet" href="'.JS_PATH.'ueditor/themes/default/ueditor.css"/>';    
  54.    define('EDITOR_INIT', 1);    
  55.   }    
  56.   $str .= "<script type=\"text/javascript\">\r\n";    
  57.   $str .= "var editor = new baidu.editor.ui.Editor({textarea:'$textareaid',wordCount:false});\r\n";    
  58.   $str .= "editor.render('$textareaid');\r\n";    
  59.   $str .= '</script>';    
  60.   $ext_str = "<div class='editor_bottom'>";    
  61.   if(!defined('IMAGES_INIT')) { //开源软件:phpfensi.com   
  62.    $ext_str .= '<script type="text/javascript" src="'.JS_PATH.'swfupload/swf2ckeditor.js"></script>';    
  63.    define('IMAGES_INIT', 1);    
  64.   }    
  65.   $ext_str .= '</div>';    
  66.   $str .= $ext_str;    
  67.   return $str;    
  68.  }   

接着在代码:

  1. public static function editor($textareaid = 'content'$toolbar = 'basic'$module = ''$catid = ''$color = ''$allowupload = 0, $allowbrowser = 1,$alowuploadexts = '',$height = 200,$disabled_page = 0, $allowuploadnum = '10') {    
  2. //后面添加代码: 
  3. return self::ueditor($textareaid$toolbar$module$catid$color$allowupload$allowbrowser$alowuploadexts$height$disabled_page$allowuploadnum);  

好了,到此为止,PHP代码部分我们已经修改完了,接下来只需要将我修改好的UEditor编辑器压缩包下载下来,解压缩,然后把里面的statics文件夹复制到网站根目录覆盖就可以了.

我修改后的UEditor编辑器已经可以完美的支持图片上传,使用PHPCMS V9的上传接口、内容分页,还支持分页标题,所以您无需再次修改就能直接使用这些功能了.

Tags: phpcms编辑器 phpcms百度Ueditor

分享到: