typecho主题设置添加备份和恢复功能
迷你日志主题十分简洁,一旦切换其他的主题设置就没了,为迷你日志主题添加主题备份和恢复功能。
一、确定文件备份的路径
在当前主题目录下建立 tmp 目录,赋予可写权限777,linux 系统赋权命令如下: chmod 777 -R tmp/
二、在主题 funcitons.php 文件的 themeConfig($form){} 方法中添加编写代码
通常将备份恢复的模块放在网页的最前面,将下面的代码,复制到themeConfig($form){}最前面就可以。
// 主题配置备份和恢复--开始//
echo '<div style="border:1px dashed green;padding:1rem;">';
echo '<div style="color:red;font-weight:700;margin-bottom:.5rem">备份前请确保主题目录下建立了tmp目录,并且被赋予可写权限</div>';
$theTheme = Helper::options()->theme;
$db = Typecho_Db::get();
// 设置备份及恢复目录
$backPath = __DIR__ . '/tmp/' . $theTheme . '.txt';
// 获取保存的主题配置信息
$themeConfStr = $db->fetchRow($db->select()->from('table.options')->where('name = ?', 'theme:' . $theTheme))['value'];
// 判断是否要备份配置
if (file_exists($backPath)) {
$backstr = file_get_contents($backPath); //将整个文件内容读入到一个字符串中
} else {
$backstr = '';
}
if (strcmp($backstr, $themeConfStr) === 0) {
echo '当前主题保存的配置信息与备份的配置信息一致,无需备份和恢复';
} else {
echo '<div style="font-weight:700;margin-bottom:.5rem;">当前主题保存的配置信息与备份的配置信息<span style="color:red;">不一致,请确认是否需要备份或恢复</span> </div><form action="" method="post"><input id="backupbtn" type="submit" name="backup" value="备份主题配置"><input id="restorebtn" type="submit" name="restore" value="恢复主题配置"></form><br>';
}
if ($_POST["backup"]) {
$backThemeCon = file_put_contents($backPath, $themeConfStr);
if ($backThemeCon) {
echo '<script>alert("备份成功")</script>';
echo "<script>window.location.replace(window.location.href)</script>";
} else {
echo '备份失败,请检查 tmp 目录是否有可写权限';
}
}
if ($_POST["restore"]) {
if (file_exists($backPath)) {
$str = file_get_contents($backPath); //将整个文件内容读入到一个字符串中
$updateThemeConQuery = $db->update('table.options')->rows(array('value' => $str))->where('name = ?', 'theme:' . $theTheme);
$updateThemCon = $db->query($updateThemeConQuery);
if ($updateThemCon) {
echo '<script>alert("恢复成功")</script>';
echo "<script>window.location.replace(window.location.href)</script>";
} else {
echo '恢复失败,请检查主题配置备份数据是否合格';
}
}
}
echo '</div>';
// 主题配置恢复备份--结束//
嗯?我怎么记得typecho也可以直接备份数据库?本地文件似乎没咋变吧?
是啊,typecho后台有备份数据库的功能,这个是给模板的设置来备份的。
这点还是WP好,主题随便切换,配置都在数据库,可能这个其中之一的原因让WP变得相对臃肿了吧
嗯这个tp比较简单。
我也买了typecho版本的这个主题,轻巧好用。
所以要不要加入typecho?😄
才转到 WordPress 不久
几年前看上了handsome那个主题,从zblog转到typecho
迷你主题还是挺不错的
是不错,再完善一些细节会更好