phpcms v9 エディター ckeditor データ回復パフォーマンス
phpcms v9 エディター ckeditor データ回復機能
phpcms v9 の ckeditor エディター用に開発されたデータ回復関数。次の手順に直接進みます。
1. staticsjsckeditorconfig.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 を使用することをお勧めします。 phpcmsmodeleditor_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(); } } ?>
<?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'); ?>
<?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'); } } ?>
<?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>

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。
