[开发文档]插件开发

从这一篇开始,我将整理分享一些米饭的开发实例,和thinksaas的一些基本知识,不是官方,很多东西也是基于自己的理解,若有不妥之处,还请指正。我坚信,分享也可以转换成生产力。本来这一个系例应从基础写起,为了给大家一些期待,本篇先分享一点干货,直接说说插件开发,文章的后面将把该实例分享。

进入正题。

<root>/plugins ---该目录下有三个文件夹,表示三类插件,group,home,pubs。这次我们写一个kindeditor插件。编辑器插件当然属于公共插件咯,我们进入到pubs文件夹下。

第一步:建一个文件夹叫kindeditor,作为我们这次插件的目录。

第二步:建一个叫about.php的文件,当然你也可以从别的插件目录中拷贝一个过来,这个目录记录一些插件的信息。比如该插件。


<?php 
defined('IN_TS') or die('Access Denied.');
//插件信息
return array(
'name' => 'kindeditor编辑器',
'version' => '1.0',
'desc' => '为文本框增加编辑器功能!',
'url' => 'http://www.mifan.us',
'email' => 'actors315@gmail.com',
'author' => '米饭之家',
'author_url' => 'http://www.mifan.us',
'isedit'	=> '0',
);


做完这步之后,你就可以到后来,插件目录下,你就可以看到这个插件了。当然,他只是一个空壳,接下来我们就要赋予其力量了。

第三步,到kindeditor的官网下载最新的版本。解压,将有用的东西复制到我们在第一步建立的文件夹下。之后我们目录下就有这些文件了。

 

这就将编辑器文件都准备好了。

第四步,编写插件文件,该文件标明插件需加载的内容,名称要和插件名一致,比如我们这个插件,应命名为kindeditor.php,内容如下:


<?php 
defined('IN_TS') or die('Access Denied.');
//编辑器
function xheditor(){
	global $TS_USER;
	if(intval($TS_USER['user']['userid']) > 0){
		echo '
		<script type="text/javascript" src="'.SITE_URL.'plugins/pubs/kindeditor/kindeditor-min.js"></script>
		<script src="'.SITE_URL.'plugins/pubs/kindeditor/loadeditor.js" type="text/javascript"></script>
		';
	}
}

addAction('tseditor','xheditor');

这个插件需要处入编辑器的js文件,当然一般编辑器需要一些初始化操作,当然kindeditor也需要,这些我都写在loadeditor.js文件中,这是一个简化版的,具体配置可参考kindeditor官方文档。这里引用了一个编辑器自动高度的插件。 

  

KindEditor.ready(function(K) {
   editorInit(K);
   prettyPrint();
});

function editorInit(K){
	
	var fulltools = ['source', '|', 'undo', 'redo', '|', 'preview', 'print', 'template', 'code', 'cut', 'copy', 'paste',
        'plainpaste', 'wordpaste', '|', 'justifyleft', 'justifycenter', 'justifyright',
        'justifyfull', 'insertorderedlist', 'insertunorderedlist', 'indent', 'outdent', 'subscript',
        'superscript', 'clearhtml', 'quickformat', 'selectall', '|', 'fullscreen', '/',
        'formatblock', 'fontname', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold',
        'italic', 'underline', 'strikethrough', 'lineheight', 'removeformat', '|', 'image', 'multiimage',
        'flash', 'media', 'insertfile', 'table', 'hr', 'emoticons', 'baidumap', 'pagebreak',
        'anchor', 'link', 'unlink','tsPhoto'
	];
	var mifanfulltools = ['source','|','undo','redo'];
	
	
	K.create('#tseditor',{
			cssPath: siteUrl+'plugins/pubs/xheditor/plugins/code/prettify.css',
			items:fulltools,
			resizeType:0,
			autoHeightMode:true,
			afterCreate: function () { 
				this.loadPlugin('autoheight'); 
			} 
	});
}

我们是php代码,kindeditor编辑器附件上传默认是传到编辑器目录下的一个叫attached,当然很不合理,所以我们也稍做修改。找到php目录下的upload_json.php文件,打开,把第12到18行替换为,将附件目录改为根路径下的uploadfile。


$php_url = dirname($_SERVER['PHP_SELF']) . '/';
$php_path = $_SERVER['DOCUMENT_ROOT'].'/';
//文件保存目录路径
$save_path = $php_path .'uploadfile/';
//文件保存目录URL
$save_url = '/uploadfile/';
这样,我们这个插件就做好了,到后台启用插件(为防冲充,你得关闭其他编辑器插件),看看效果。


 

是不是觉得很简单呢?赶紧的你也试试吧。或者你也可以下载该文章演示结果。

kindeditor编辑器(右键另存为)

若你觉得本文对你有帮助,你可以: (任意金额)

2013-11-17 00:06:07 来自:依然大头
倒序阅读

你的回应

意见反馈