- 浏览: 2305834 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (559)
- JavaScript (55)
- windows (21)
- mysql (7)
- php (199)
- thinkphp (2)
- 互联网 (42)
- flash (3)
- html (9)
- phpcms (11)
- ffmpeg (6)
- 生活 (108)
- flash小游戏 (11)
- 软件 (35)
- css (1)
- JavaScript 二维码 (0)
- 二维码 (1)
- 桌面图标 (1)
- ping服务 (1)
- 百度 (2)
- 搜索引擎 (1)
- seo (1)
- 整形美容 (1)
- 深圳婚纱摄影 (1)
- 武汉婚纱摄影 (2)
- 淘宝 (0)
- 冬装 (0)
- 女装 (0)
- 新款冬装女装 (0)
- freebsd 操作系统 (1)
- editplus (1)
- svn (1)
- 微信 (1)
- 微商 (1)
- curl (1)
- 远程 (1)
- 防盗链 (1)
- vc2012 (1)
- Alexa (1)
- bootstrap (1)
- fileinput (1)
- webuploader (1)
- mip (1)
- 正则 (1)
最新评论
-
hexawing:
啥原理……貌似很神奇啊
excel写保护(非打开保护)的破解方法 -
化蝶自在飞:
注意upload.js的配置参数 sendAsBinary
webuploader实例php 配合fastDFS远程跨域上传回调的注意点 -
化蝶自在飞:
增加一个微信内置浏览器的useragent:
Mozilla/ ...
浏览器useragent大全 -
化蝶自在飞:
leiliang10 写道你揍是个骗纸此话怎讲?这个工具是我自 ...
mp4、mov视频元数据头信息修复工具 支持h.264编码边下边播 -
leiliang10:
你揍是个骗纸
mp4、mov视频元数据头信息修复工具 支持h.264编码边下边播
为phpcms v9的ckeditor编辑器开发的数据恢复功能.下面直接上步骤说明吧.
1.\statics\js\ckeditor\config.js文件最后增加以下代码:
2.建数据表用于保存数据:
注意:表前缀和数据库编码,推荐自己手工用phpmyadmin建表;
3.\phpcms\model\editor_data_model.class.php新建该文件,用以下代码填充文件:
4.\api\editor_data.php新建改文件,用以下代码填充该文件:
5.\phpcms\modules\content\databak.php新建该文件,代码如下:
6.\phpcms\modules\content\templates\databak.tpl.php新建改文件,代码如下:
完毕.2011-11-12 for http://www.xiaojudeng.com,转载请注明出处,谢谢.
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<=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新建该文件,用以下代码填充文件:
<?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; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"<?php if(isset($addbg)) { ?> class="addbg"<?php } ?>> <head> <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 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" /> <?php if(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_PATH?>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<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> </head> <body> <?php if(!isset($show_header)) { ?> <th>备份生成时间</th> <th>标题</th> </tr> </thead> <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> </table> <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> </body> </html>
完毕.2011-11-12 for http://www.xiaojudeng.com,转载请注明出处,谢谢.
发表评论
-
php正则表达式匹配获取字符串中的时间格式 年月日时分秒
2022-05-27 00:07 2206有这样一个需求,要 ... -
基于phpcms的百度mip内容转换方法(适用任何cms)
2017-01-11 14:06 1915百度在2016年底推出了mip,具体可以百度搜索下是个什么 ... -
webuploader实例php 配合fastDFS远程跨域上传回调的注意点
2016-08-02 19:31 3211webuploader上传控件是百度官方提供的一套基于ht ... -
bootstrap上传插件fileinput自动上传&上传成功回调的方法
2016-05-04 19:25 11210bootstrap上传插件fileinput功能非常强大, ... -
bootstrap上传插件fileinput自动上传&上传成功回调的方法
2016-05-03 20:16 21bootstrap上传插件fileinput功能非常强大,本 ... -
php利于curl抓取远程网址图片示例(解决防盗链问题)
2016-04-12 00:39 4228php利用curl抓取远程图片,可以解决防盗链问题哦. ... -
微信内置浏览器图片查看方式的原生实现(非jssdk)
2015-06-29 13:30 9913对于非公众平台网页,想调起图片预览组件,就跟公众号文章一样的 ... -
editplus集成配置svn,小乌龟svn中文语言包下载for windows
2013-05-01 14:32 3024editplus配置集成svn的方 ... -
php发送503状态码
2013-01-16 19:56 1844header('HTTP/1.1 503 Service ... -
php过滤超链接并判断链接中文字是否为网址preg_replace_callback函数用法
2012-11-18 15:28 3088示例代码如下: $str = '<a class=& ... -
伪静态后获取当前地址栏的完整url地址
2012-06-27 16:22 1560$cururl = 'http://'.$_SERVER[&q ... -
php正则匹配指定开始结束部分内容&非贪婪模式
2012-04-05 19:05 6944php正则匹配指定开始结束部分内容,指定开始结束位置,提取/匹 ... -
php正则实现ip段判断
2012-04-02 19:24 5827$ip = '22.18.10.2'; $arrayip = ... -
php判断远程文件是否存在
2012-02-16 18:36 1908//判断远程文件是否存在 function remote_f ... -
ajax提交表单的一些注意事项:解释为什么return false却依然提交
2012-02-02 19:10 2035ajax提交表单的一些注意事项.ajax提交表单是经常用到的. ... -
php xdebug的配置问题
2012-01-12 19:46 1591[Xdebug] zend_extension_ ... -
phpcms v9的debug函数
2012-01-10 20:07 3559function usedtime(){ $stime ... -
php+js抓取太平洋汽车网数据自动填表的一个实现
2011-11-11 22:34 2845主要是php输出json,js解析的模式 function ... -
php正则提取img标签各属性值
2011-09-26 22:35 6874<?php /* create by tuzwu ... -
百度ping服务的php实现以及google ping服务
2011-09-16 16:47 2436百度ping服务的php实现: $baiduXML = & ...
相关推荐
PHPCMSv9使用的Ckeditor编辑器,在使用过程中有些不尽人意的地方,下面我来修改一下编辑器,改动几个地方,让Ckeditor编辑更加实用一些。 此次修改的内容有批量去除超链接、上传图片自动添加ALT参数、修改编辑器...
phpcms V9 原版fckeditor编辑器 切换为 kindeditor 编辑器。 下载附件,解压后,覆盖即可。
使用phpcms v9 原生态的后台编辑器,有很多不便,各种不太好使。结合百度编辑器 整合到 phpcms v9 中。
PHPCMS V9 修改flash上传为H5上传方案
phpcms V9数据结构,excel,所有数据表的结构。
总结大全:含文章教程&&效果图对比、压缩包、代码文件等等。直接覆盖也可轻松完成全部设置。 phpcmsV9 完整更新ckeditor编辑器到最新版!
PHPCMS V9 数据结构
PHPCMS V9 产品开发权威指南,phpcms_v9_代码分析(一、二、三),phpcms_v9_二次开发及标签制作讲义,PHPCMS_V9安装教程,PHPCMS_V9帮助中心,PHPCMS_V9开发文档,PHPCMS_V9模板制作,phpcms_v9数据表结构,PHPCMS_V9...
PHPCMS V9代码生成器 V1.5版本PHPCMS中国发布 ------------------------------ | PhpCMS V9代码生成器 使用说明 | ------------------------------ 一、平台需求 运行环境:Windows 2000/XP/Vista/Win7 二、...
PHPCMS V9代码生成器 2.0
phpcms v9标签大全phpcms v9标签大全
phpcms v9 官方教程全集打包下载 第一课时:PHPCMS V9 系统设置 第二课时:PHPCMS V9 使用指南及二次开发向导 第三课时:PHPCMS V9 短消息与新闻心情 第四课时:PHPCMS V9 友情链接与投票 第五课时:PHPCMS V9 ...
PHPCMS V9 数据字典 (2010-12-28)
phpcms v9 编辑器升级到最新版方法
phpcms V9产品白皮书phpcms V9产品白皮书
PhpCMS V9代码生成器,可以方便获取代码
phpcms V9模板代码生成器是一款非常专业的phpcms V9模板代码快速生成软件。这款phpcms v9代码生成器功能强大,内置多种常用模板标签语言以及常用内容调用方法
PHPCMS V9 UTF8
PhpCMS V9代码生成器可以帮助PhpCMS V9模板制作者快速高效地制作模板,功能代码速查,代码自动生成,方便调用,让您在制作PhpCMS V9模板时得心应手,PhpCMS V9爱好者必备! [更新] PhpCMS V9模板代码器 V1.5...
PhpCms V9 函数手册 内容为V9官方代码编译 变量及函数功能引索