久久精品国产99国产精品免费看_中文成人在线_日本在线播放视频_精品国产一区二区三区在线观看

Typecho模板設置數據備份與恢復

給Typecho開發主題時,可以添加一個功能

來源于:

https://qqdie.com/archives/typecho-templates-backup-and-restore.html

typecho模板設置數據會在你換模板的時候被清空,這樣的設置其實我還是蠻喜歡的,不會有數據殘留。

然而WP用戶轉到typecho后跟我抱怨,說模板換成別的然后再切換回來,之前設置好的數據都沒了,希望我在yodu模板上動動手腳解決這個問題。

然而我是有些遲疑的,東西不是你說做我就要做的,我必須試一下…否則答應太快又搞不出來,豈不是很難受!

不過既然發了這篇文章,就說明已經搞定了

typecho模板設置數據備份與恢復

代碼

themeConfig($form)函數里添加

$db = Typecho_Db::get();
$sjdq=$db->fetchRow($db->select()->from ('table.options')->where ('name = ?', 'theme:Yodu'));
$ysj = $sjdq['value'];
if(isset($_POST['type']))
{ 
if($_POST["type"]=="備份模板數據"){
if($db->fetchRow($db->select()->from ('table.options')->where ('name = ?', 'theme:Yodubf'))){
$update = $db->update('table.options')->rows(array('value'=>$ysj))->where('name = ?', 'theme:Yodubf');
$updateRows= $db->query($update);
echo '<div class="tongzhi">備份已更新,請等待自動刷新!如果等不到請點擊';
?>    
<a href="<?php Helper::options()->adminUrl('options-theme.php'); ?>">這里</a></div>
<script language="JavaScript">window.setTimeout("location=\'<?php Helper::options()->adminUrl('options-theme.php'); ?>\'", 2500);</script>
<?php
}else{
if($ysj){
     $insert = $db->insert('table.options')->rows(array('name' => 'theme:Yodubf','user' => '0','value' => $ysj));
     $insertId = $db->query($insert);
echo '<div class="tongzhi">備份完成,請等待自動刷新!如果等不到請點擊';
?>    
<a href="<?php Helper::options()->adminUrl('options-theme.php'); ?>">這里</a></div>
<script language="JavaScript">window.setTimeout("location=\'<?php Helper::options()->adminUrl('options-theme.php'); ?>\'", 2500);</script>
<?php
}
}
        }
if($_POST["type"]=="還原模板數據"){
if($db->fetchRow($db->select()->from ('table.options')->where ('name = ?', 'theme:Yodubf'))){
$sjdub=$db->fetchRow($db->select()->from ('table.options')->where ('name = ?', 'theme:Yodubf'));
$bsj = $sjdub['value'];
$update = $db->update('table.options')->rows(array('value'=>$bsj))->where('name = ?', 'theme:Yodu');
$updateRows= $db->query($update);
echo '<div class="tongzhi">檢測到模板備份數據,恢復完成,請等待自動刷新!如果等不到請點擊';
?>    
<a href="<?php Helper::options()->adminUrl('options-theme.php'); ?>">這里</a></div>
<script language="JavaScript">window.setTimeout("location=\'<?php Helper::options()->adminUrl('options-theme.php'); ?>\'", 2000);</script>
<?php
}else{
echo '<div class="tongzhi">沒有模板備份數據,恢復不了哦!</div>';
}
}
if($_POST["type"]=="刪除備份數據"){
if($db->fetchRow($db->select()->from ('table.options')->where ('name = ?', 'theme:Yodubf'))){
$delete = $db->delete('table.options')->where ('name = ?', 'theme:Yodubf');
$deletedRows = $db->query($delete);
echo '<div class="tongzhi">刪除成功,請等待自動刷新,如果等不到請點擊';
?>    
<a href="<?php Helper::options()->adminUrl('options-theme.php'); ?>">這里</a></div>
<script language="JavaScript">window.setTimeout("location=\'<?php Helper::options()->adminUrl('options-theme.php'); ?>\'", 2500);</script>
<?php
}else{
echo '<div class="tongzhi">不用刪了!備份不存在!!!</div>';
}
}
    }
echo '<form class="protected" action="?yodubf" method="post">
<input type="submit" name="type" class="btn btn-s" value="備份模板數據" />&nbsp;&nbsp;<input type="submit" name="type" class="btn btn-s" value="還原模板數據" />&nbsp;&nbsp;<input type="submit" name="type" class="btn btn-s" value="刪除備份數據" /></form>';

SQL

然后將里面出現的所有“yodu”改成你的模板目錄的名字,如果拿不準就去數據庫里看看模板的值名字。

備份

當用戶點擊備份時,先判斷是否已經存在備份,如果不存在就插入一條新的數據,數據name為yodubf,value為模板原本的數據。此時就存在了一條備份數據。

如果再次點擊備份按鈕會發生什么呢?會觸發更新數據的語句,就是讀取模板的設置數據,然后將備份的模板數據更新。

還原

當用戶點擊還原按鈕時,會判斷是否存在備份,如果不存在就發出提示說不存在數據無法恢復;如果存在,就會進行一個反向的更新操作,將備份的數據更新到模板默認設置數據。

這個操作完成后會觸發個小問題,比較影響體驗的。就是在點擊還原按鈕時網頁是先刷新后執行php還原語句的,也就是說還原完成后,你看到的模板設置頁面數據并沒有還原,但是實際數據庫里面已經還原好了的,這一點很影響體驗。

于是乎,我雞賊的弄了個js自動刷新語句,并發出提示文字,這樣一下子就友好多了,注意文章中代碼方面我并未給出css樣式,所以美觀度上需要自行優化。

刪除

刪除就簡單了,判斷是否存在備份,不存在就告訴用戶不用刪了,你壓根就沒有備份數據,如果有備份就執行刪除語句,發出提示。

一些沒用的說明

1,其實這東西應該可以寫成懶人版的,模板名字什么的用php獲取下,就不用我這樣寫死了,但是當時我處于試一試的心態寫的,所以就能簡單就簡單了,現在又懶得弄了,要不是為了水文,這個我都懶得貼出來。

2,別看文章中代碼這么亂,條例就不清晰,其實我當時找了張紙寫的邏輯然后才按照順序一步一步的寫的,也測試了很多回。

3,最開始想寫自動還原模板數據來著,就是檢測到模板啟用就自動還原曾經的備份數據,然而當時想不通如果去判斷模板啟用。

4,當你想將本文章代碼投入使用時,最好再測試博客進行測試,以免傷害你的數據庫,同時建議測試時打開數據庫管理頁面,觀看數據庫對應表的變化

網頁下載(防代碼丟失):

備用網頁

提取碼:無
解壓碼:無

這個主題就使用了這個功能

Photograph – 精致的Typecho相冊主題

??
Npcink上的部份代碼及教程來源于互聯網,僅供網友學習交流,若您喜歡本文可附上原文鏈接隨意轉載。
無意侵害您的權益,請發送郵件至 1355471563#qq.com 或點擊右側 私信:Muze 反饋,我們將盡快處理。
?
購物車
優惠劵
搜索
久久精品国产99国产精品免费看_中文成人在线_日本在线播放视频_精品国产一区二区三区在线观看

    9000px;">

      韩国中文字幕hd久久精品| 美女又爽又黄视频毛茸茸| www天堂在线| 成人午夜视频在线播放| 国产精品久久久久久久妇 | 中文字幕理论片| 最近中文字幕免费在线观看| 中文字幕一区二区在线观看视频| 波多野结衣二区三区| 国产xxxx在线观看| 久久99久久99精品免费看小说 | 久久久久免费看| 欧美大片xxxx| 婷婷激情四射五月天| 一区二区日韩在线观看| 99精品视频国产| 精品久久久免费视频| 日本aⅴ在线观看| 一级淫片免费看| www.自拍偷拍| 蜜桃久久一区二区三区| 性一交一乱一精一晶| 99热在线观看精品| 蜜臀一区二区三区精品免费视频| 少妇高潮一区二区三区69| 亚洲国产精品自拍视频| 国产91免费看| 日本少妇做爰全过程毛片| 亚洲女人毛茸茸高潮| 精国产品一区二区三区a片| 五月婷婷一区二区| 岛国av中文字幕| 潘金莲一级淫片aaaaaaa| 亚洲精品福利网站| 久久精品一区二区三| 中文字幕1区2区| 国产主播第一页| 香蕉成人在线视频| 国产精品免费无遮挡| 姝姝窝人体www聚色窝| 91n.com在线观看| 久久人妻少妇嫩草av无码专区| 欧美三级黄色大片 | 色一情一区二区| 亚洲一区二区观看| 免费不卡的av| 91av久久久| 青青视频在线免费观看| 一级aaa毛片| 欧美亚洲精品天堂| www.av视频在线观看| 人妻 日韩 欧美 综合 制服| 99久久99久久精品免费| 欧美熟妇乱码在线一区| 国产3级在线观看| 香蕉视频免费网站| 久久精品99久久久久久| 亚洲色欧美另类| 欧美日韩精品区别| 成人免费无码大片a毛片| 色一情一区二区| 黑人玩弄人妻一区二区三区| 中文字幕人妻互换av久久 | 国产精品30p| 天天操天天干天天舔| 国产无套丰满白嫩对白| 国产婷婷在线观看| 国产一区二区播放| 亚洲中文字幕一区二区| 亚洲乱熟女一区二区| 久久久久亚洲av无码网站| 97人妻精品一区二区三区动漫| 日本成人xxx| 国产女人高潮时对白| 亚洲精品一区二区三区蜜桃| 欧美在线a视频| 精品人妻无码一区二区色欲产成人 | 国产色视频在线| 天天干天天干天天| 人妻体内射精一区二区| 日韩欧美三级在线观看| 国产午夜视频在线播放| 一本色道久久综合无码人妻 | 精品人妻无码一区| 99超碰在线观看| 中文字幕色网站| 天堂在线精品视频| 欧美成人一二三区| 久久精品国产亚洲AV成人婷婷| jizz欧美激情18| 亚洲一级免费观看| 中文字幕一二三区| 亚洲va天堂va欧美ⅴa在线| 日韩av无码一区二区三区不卡| 精品美女www爽爽爽视频| 国产伦精品一区二区三区免.费| 69亚洲精品久久久蜜桃小说| 中文字幕一二三区| 中文字幕av网址| 午夜精产品一区二区在线观看的| 毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 中文字幕在线看人| 在线观看色网站| 日韩影院一区二区| 国产馆在线观看| 午夜av免费观看| 少妇毛片一区二区三区| 女人18毛片一区二区三区| 久久亚洲精品国产| 久久久久亚洲av无码网站| 久久精品女同亚洲女同13| 黄色片免费观看视频| 精品少妇人妻av一区二区三区| 国产一区二区女内射| 国产在线免费看| 精品少妇一区二区三区免费观| 国产午夜久久久| 精品一区二区三区四| 久久久无码人妻精品无码| 成人三级做爰av| 久久精品国产露脸对白| 激情久久综合网| 精品一区二区三区四| 老熟妇一区二区三区啪啪| 免费视频91蜜桃| 日韩免费高清一区二区| 天天操天天干天天操天天干| 性少妇bbw张开| 亚洲欧美黄色片| www.色小姐com| 国产天堂第一区| 蜜桃av乱码一区二区三区 | 欧美一级淫片免费视频黄| 日本天堂网在线观看| 午夜精品久久久久久久蜜桃| 亚洲xxxx天美| 亚洲永久精品一区| 国产精品情侣呻吟对白视频| 久久人妻无码aⅴ毛片a片app | 日本视频www色| 一区二区三区在线观看免费视频| 亚洲日本韩国在线| 国产精品一级视频| 欧美成人三级在线观看| 一区二区视频免费| 成人欧美精品一区二区| 久久国产精品系列| 西西44rtwww国产精品| 一个人看的www日本高清视频| 国产精品久久久久久在线观看| 美女被艹视频网站| 中文字幕乱码在线观看| 国产suv一区二区三区| 蜜臀久久精品久久久用户群体| 日本黄色一级网站| 一区二区三区在线观看av| 99久热在线精品996热是什么| 国产一级片网址| 手机av在线不卡| 91热这里只有精品| 久久精品第一页| 中文字幕一区2区3区| 国产一级片免费| 天天操,天天操| 国产成人精品av在线观| 日本wwwxxxx| 一本加勒比波多野结衣| 国精产品一区二区三区| 性色av免费观看| 国产又粗又长免费视频| 亚洲第一天堂网| 国产又大又黄又粗| 中文字幕一区二区人妻在线不卡 | 国产精品麻豆免费版现看视频| 青青操国产视频| 91精品人妻一区二区三区| 欧美黄色免费观看| 99re久久精品国产| 日韩在线视频第一页| 国产极品国产极品| 永久看片925tv| 久久精品国产亚洲av久 | 一区二区的视频| 精品国产乱码一区二区| 亚洲高清视频免费| 欧美成人三级视频| 国产97免费视频| 真实乱视频国产免费观看| 精品久久久免费视频| 亚洲精品一区二区三区新线路| 美女久久久久久久久久| www.蜜臀av.com| 香蕉av在线播放| 久久久久亚洲av成人网人人软件| 亚洲精品男人的天堂| 视频一区 中文字幕| 精品综合久久久久| wwwav国产| 亚洲黄色激情视频| 日本在线观看视频一区|