phpcms v9编辑器ckeditor数据恢复效能
phpcms v9编辑器ckeditor数据恢复功能
为phpcms v9的ckeditor编辑器开发的数据恢复功能.下面直接上步骤说明吧.
1.\statics\js\ckeditor\config.js文件最后增加以下代码:
//化蝶自在飞 add 2011-11-12 自动保存数据 var timer = counttimer = '30';//每?秒保存一次 var delays = 10;//延迟多少秒执行,因为firefox下无法显示,建议设置为10000 var editorid = 'content'; var fromid = 'myform'; $(function(){ var str = '<a href="javascript:void(0);" onclick="open_databak();return false;">恢复数据</a><span id="tuzwu_timer">'+timer+'</span>秒后自动保存'; 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<br><br>2.建数据表用于保存数据:<br><pre name="code" class="java"> 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新建该文件,用以下代码填充文件:
<?php defined('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新建改文件,用以下代码填充该文件:
<?php defined('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新建该文件,代码如下:
<?php defined('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新建改文件,代码如下:
<?php header('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"> <title><?php echo L('website_manage');?></title> <link href="<?php%20echo%20CSS_PATH?>reset.css" rel="stylesheet" type="text/css"> <link href="<?php%20echo%20CSS_PATH.SYS_STYLE;?>-system.css" rel="stylesheet" type="text/css"> <link href="<?php%20echo%20CSS_PATH?>table_form.css" rel="stylesheet" type="text/css"> <?php if(isset($show_dialog)) { ?> <link href="<?php%20echo%20CSS_PATH?>dialog.css" rel="stylesheet" type="text/css"> <script language="javascript" type="text/javascript" src="<?php%20echo%20JS_PATH?>dialog.js"></script> <?php } ?> <link rel="stylesheet" type="text/css" href="<?php%20echo%20CSS_PATH?>style/<?php%20echo%20SYS_STYLE;?>-styles1.css" title="styles1" media="screen"> <link rel="alternate stylesheet" type="text/css" href="<?php%20echo%20CSS_PATH?>style/<?php%20echo%20SYS_STYLE;?>-styles2.css" title="styles2" media="screen"> <link rel="alternate stylesheet" type="text/css" href="<?php%20echo%20CSS_PATH?>style/<?php%20echo%20SYS_STYLE;?>-styles3.css" title="styles3" media="screen"> <link rel="alternate stylesheet" type="text/css" href="<?php%20echo%20CSS_PATH?>style/<?php%20echo%20SYS_STYLE;?>-styles4.css" title="styles4" media="screen"> <script language="javascript" type="text/javascript" src="<?php%20echo%20JS_PATH?>jquery.min.js"></script> <script language="javascript" type="text/javascript" src="<?php%20echo%20JS_PATH?>admin_common.js"></script> <script language="javascript" type="text/javascript" src="<?php%20echo%20JS_PATH?>styleswitch.js"></script> <?php if(isset($show_validator)) { ?> <script language="javascript" type="text/javascript" src="<?php%20echo%20JS_PATH?>formvalidator.js" charset="UTF-8"></script> <script language="javascript" type="text/javascript" src="<?php%20echo%20JS_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<num;i++) { var newNode = document.createElement("input"); newNode.name = 'pc_hash'; newNode.type = 'hidden'; newNode.value = pc_hash; html_form[i].appendChild(newNode); } } <?php } ?> </script> <?php if(!isset($show_header)) { ?> <th>备份生成时间</th> <th>标题</th> <tbody> <?php if(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); ?> <tr onclick="return_id(<?php echo $info['id'];?>)" style="cursor:hand" title="请选择"> <script language="JavaScript"> var jsondata<?php echo $info['id'];?> = [<?php echo $jsondata;?>]; </script> <td width="40%"><?php echo date("Y-m-d h:i:s",$info['time']);?></td> <td><?php echo $info['title']?></td> </tr> <?php } } ?> </tbody> <div id="pages"> <?php echo $pages?> <div style="text-align:right;">by 化蝶自在飞</div> </div> <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,转载请注明出处,谢谢.

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

如果您是一位经验丰富的 PHP 开发人员,您可能会感觉您已经在那里并且已经完成了。您已经开发了大量的应用程序,调试了数百万行代码,并调整了一堆脚本来实现操作

本教程演示了如何使用PHP有效地处理XML文档。 XML(可扩展的标记语言)是一种用于人类可读性和机器解析的多功能文本标记语言。它通常用于数据存储

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

字符串是由字符组成的序列,包括字母、数字和符号。本教程将学习如何使用不同的方法在PHP中计算给定字符串中元音的数量。英语中的元音是a、e、i、o、u,它们可以是大写或小写。 什么是元音? 元音是代表特定语音的字母字符。英语中共有五个元音,包括大写和小写: a, e, i, o, u 示例 1 输入:字符串 = "Tutorialspoint" 输出:6 解释 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。总共有 6 个元

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

PHP的魔法方法有哪些?PHP的魔法方法包括:1.\_\_construct,用于初始化对象;2.\_\_destruct,用于清理资源;3.\_\_call,处理不存在的方法调用;4.\_\_get,实现动态属性访问;5.\_\_set,实现动态属性设置。这些方法在特定情况下自动调用,提升代码的灵活性和效率。
