• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

phpcms v9编辑器ckeditor数据恢复效能

php 搞代码 4年前 (2022-01-24) 19次浏览 已收录 0个评论

phpcms v9编辑器ckeditor数据恢复功能
为phpcms v9的ckeditor编辑器开发的数据恢复功能.下面直接上步骤说明吧.
1.\statics\js\ckeditor\config.js文件最后增加以下代码:

//化蝶自在飞 add 2011-11-12 自动保存数据var timer = counttimer = '30';//每?秒保存一次var delays = 10;//延迟多少秒执行,因为firefox下无法显示,建议设置为10000var editorid = 'content';var fromid = 'myform';$(function(){var str = '恢复数据'+timer+'秒后自动保存';setTimeout('$(".cke_footer").append(\''+str+'\')',delays*1000);setInterval('tuzwu_posts()',timer*1000);setInterval('tuzwu_timer()',1000);});function tuzwu_posts(){ //post提交数据var editor = CKEDITOR.instances[editorid];data = editor.getData();$('#'+editorid).val(data);$.post("api.php?op=editor_data", $("#"+fromid).serializeArray(),function(data){$('#'+editorid).val();});}function tuzwu_timer(){ //每秒执行1次,倒数计时if(timer<=0) timer = counttimer;$('#tuzwu_timer').html(--timer);}function open_databak(){omnipotent('databak_area','?m=content&c=databak&a=init&target=dialog','恢复数据',1,600,400);}

2.建数据表用于保存数据:

CREATE TABLE `v9_editor_data` (  `id` mediumint(8) NOT NULL auto_increment,  `data` mediumtext character set gbk NOT NULL COMMENT '数据',  `time` int(10) NOT NULL,  `userid` mediumint(8) NOT NULL,  PRIMARY KEY  (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

注意:表前缀和数据库编码,推荐自己手工用phpmyadmin建表;

3.\phpcms\model\editor_data_model.class.php新建该文件,用以下代码填充文件:

<?phpdefined('IN_PHPCMS') or exit('No permission resources.');pc_base::load_sys_class('model', '', 0);class editor_data_model extends model {	public function __construct() {		$this->db_config = pc_base::load_config('database');		$this->db_setting = 'default';		$this->table_name = 'editor_data';		parent::__construct();	}}?>

4.\api\editor_data.php新建改文件,用以下代码填充该文件:

<?phpdefined('IN_PHPCMS') or exit('No permission resources.');header('Content-type: text/html; charset=utf-8');$db = pc_base::load_model('editor_data_model');$_userid = param::get_cookie('userid');if(!$_POST['info']['content']) exit('0');$postinfo = array2string($_POST['info']);$postdata = CHARSET != 'utf-8' ? iconv('utf-8', CHARSET, $postinfo ):$postinfo;$posts = array('data'=>$postdata,'userid'=>$_userid,'time'=>SYS_TIME);$r = $db->get_one( array('userid'=>$_userid,'data'=>$postdata),'id' );//如果没有改变就不用备份if($r) exit('0');$db->insert($posts);exit('1');?>

5.\phpcms\modules\content\databak.php新建该文件,代码如下:

<?phpdefined('IN_PHPCMS') or exit('No permission resources.');//模型缓存路径define('CACHE_MODEL_PATH',CACHE_PATH.'caches_model'.DIRECTORY_SEPARATOR.'caches_data'.DIRECTORY_SEPARATOR);pc_base::load_app_func('util','content');pc_base::load_app_class('admin','admin',0);class databak extends admin {	private $db;	function __construct() {		$this->db = pc_base::load_model('editor_data_model');		$this->_userid = param::get_cookie('userid')?param::get_cookie('userid'):param::get_cookie('admin_userid');		$this->_username = param::get_cookie('_username');		$this->_groupid = param::get_cookie('_groupid');	}		public function init() {        if(!$this->_userid) exit('用户ID校验失败');		$page = $_GET['page']?$_GET['page']:1;		$infos = $this->db->listinfo( array('userid'=>$this->_userid),'time DESC',$page,20,'',10 );        $pages = $this->db->pages;		$target = $_GET['target'];		include $this->admin_tpl('databak');		}}?>

6.\phpcms\modules\content\templates\databak.tpl.php新建改文件,代码如下:

<?phpheader('Content-Type:text/html;charset=utf-8');defined('IN_ADMIN') or exit('No permission resources.');$show_dialog = 1;?> class="addbg"<?php } ?>><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta http-equiv="X-UA-Compatible" content="IE=7" /><?php echo L('website_manage');?><link href="<?php echo CSS_PATH?>reset.css" rel="stylesheet" type="text/css" /><link href="<?php echo CSS_PATH.SYS_STYLE;?>-system.css" rel="stylesheet" type="text/css" /><link href="<?php echo CSS_PATH?>table_form.css" rel="stylesheet" type="text/css" /><?phpif(isset($show_dialog)) {?><link href="<?php echo CSS_PATH?>dialog.css" rel="stylesheet" type="text/css" /><script language="javascript" type="text/javascript" src="<?php echo JS_PATH?>dialog.js"></script><?php } ?>	<link rel="stylesheet" type="text/css" href="<?php echo CSS_PATH?>style/<?php echo SYS_STYLE;?>-styles1.css" title="styles1" media="screen" />	<link rel="alternate stylesheet" type="text/css" href="<?php echo CSS_PATH?>style/<?php echo SYS_STYLE;?>-styles2.css" title="styles2" media="screen" />	<link rel="alternate stylesheet" type="text/css" href="<?php echo CSS_PA

4本文¥来源gao!%daima.com搞$代*!码$网9

搞代gaodaima码

TH?>style/<?php echo SYS_STYLE;?>-styles3.css" title="styles3" media="screen" /> <link rel="alternate stylesheet" type="text/css" href="<?php echo CSS_PATH?>style/<?php echo SYS_STYLE;?>-styles4.css" title="styles4" media="screen" /><script language="javascript" type="text/javascript" src="<?php echo JS_PATH?>jquery.min.js"></script><script language="javascript" type="text/javascript" src="<?php echo JS_PATH?>admin_common.js"></script><script language="javascript" type="text/javascript" src="<?php echo JS_PATH?>styleswitch.js"></script><?php if(isset($show_validator)) { ?><script language="javascript" type="text/javascript" src="<?php echo JS_PATH?>formvalidator.js" charset="UTF-8"></script><script language="javascript" type="text/javascript" src="<?php echo JS_PATH?>formvalidatorregex.js" charset="UTF-8"></script><?php } ?><script type="text/javascript"> window.focus(); var pc_hash = '<?php echo $_SESSION['pc_hash'];?>'; <?php if(!isset($show_pc_hash)) { ?> window.onload = function(){ var html_a = document.getElementsByTagName('a'); var num = html_a.length; for(var i=0;i<num;i++) { var href = html_a[i].href; if(href && href.indexOf('javascript:') == -1) { if(href.indexOf('?') != -1) { html_a[i].href = href+'&pc_hash='+pc_hash; } else { html_a[i].href = href+'?pc_hash='+pc_hash; } } } var html_form = document.forms; var num = html_form.length; for(var i=0;i</script><body><?php if(!isset($show_header)) { ?>

备份生成时间 标题 <?phpif(is_array($infos)){ foreach($infos as $info){ $data = string2array(CHARSET != 'utf-8' ? iconv( CHARSET,'utf-8', $info['data'] ):$info['data']); $info['title'] = $data['title'] ? $data['title'] : '暂无标题'; $jsondata = json_encode($data); ?>

)" style="cursor:hand" title="请选择"> <script language="JavaScript">var jsondata<?php echo $info['id'];?> = [<?php echo $jsondata;?>]; </script>

<?php echo date("Y-m-d h:i:s",$info['time']);?> <?php echo $info['title']?>

<?php }}?>

<?php echo $pages?>

by 化蝶自在飞

<script LANGUAGE="JavaScript"> function return_id(id) { var objstr = eval('jsondata'+ id); for(x in objstr[0]){ value = eval('objstr[0].'+x); if(x == 'content') { //编辑器特殊对待 var editorid = 'content'; var editor = window.top.CKEDITOR.instances[editorid]; editor.setData(value); } if( window.top.$('#'+x) ) window.top.$('#'+x).val( value ); }}</script>

完毕.2011-11-12 for http://www.xiaojudeng.com,转载请注明出处,谢谢.


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:phpcms v9编辑器ckeditor数据恢复效能

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址