Typecho——主题配置数据备份和恢复

简介: Typecho——主题配置数据备份和恢复

前言

~c Typecho c~ 的配置项有个很神奇的特效,就是切换主题后,配置文件会丢失,但是EasyBe主题有很多配置,一旦丢失再重新配置会比较麻烦,所以特地给主题增加下保存配置文件的操作;

内容

代码

?> 将下面的代码复制到functions.php中,如果你的搏皮中有自己的一些配置,注意整合下;

!> 我这里是在点击保存设置按钮的时候,根据$_POST["jqueryConfig"]来进行备份配置的,这里的判断需要你根据自己的主题换成对应的变量;

// 主题配置
function themeConfig($form) {
    // 备份主题配置信息
    $name = 'easybe';
    $db = Typecho_Db::get();
    $themeData = $db->fetchRow($db->select()->from ('table.options')->where ('name = ?', 'theme:'.$name))['value'];
    $themeBackup = $db->fetchRow($db->select()->from ('table.options')->where ('name = ?', 'themeBackup:'.$name))['value'];
    if(isset($_POST) && $themeData) {
        if($_POST["jqueryConfig"]){
            if($themeBackup){
                $db->query($db->update('table.options')->rows(array('value'=>$themeData))->where('name = ?', 'themeBackup:'.$name));
            }else{
                $db->query($db->insert('table.options')->rows(array('name' => 'themeBackup:'.$name,'user' => '0','value' => $themeData)));
            }
        }
        if($_POST["restore"]){
            if($themeBackup){
                $updateRows= $db->query($db->update('table.options')->rows(array('value'=>$themeBackup))->where('name = ?', 'theme:'.$name));
                if ($updateRows)  {
                    echo '<div class="message popup success" style="position: absolute; top: 36px; display: block;"><ul><li>主题备份数据已恢复</li></ul></div>';
                    echo "<meta http-equiv='refresh' content ='1';url=".getUrl().">";
                }
            }else{
                echo '<div class="message popup error" style="position: absolute; top: 36px; display: block;"><ul><li>不存在主题备份数据,请先进行主题数据备份</li></ul></div>';
                echo "<meta http-equiv='refresh' content ='1';url=".getUrl().">";
            }
        }
    }
 echo '<form class="protected home col-mb-12" action="" method="post"><ul class="typecho-option" style="position: relative;left: -9px;"><li><label class="typecho-label">主题配置恢复</label><input type="submit" name="restore" class="btn primary" value="恢复主题配置"></li></ul></form>';
}
// 获取当前页面地址
function getUrl() {
    $protocal = isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://';
    $php_self = $_SERVER['PHP_SELF'] ?? $_SERVER['SCRIPT_NAME'];
    $path_info = $_SERVER['PATH_INFO'] ??  '';
    $relate_url = $_SERVER['REQUEST_URI'] ?? $php_self.$path_info;
    return $protocal.($_SERVER['HTTP_HOST'] ?? '').$relate_url;
}

效果

学无止境,谦卑而行.

目录
相关文章
|
Linux Perl
sed删除匹配正则表达式的行
sed删除匹配正则表达式的行
673 1
|
运维 安全 关系型数据库
​​国内 5 个最佳的控制面板,可轻松管理服务器
在当今数字化飞速发展的时代,Linux 服务器作为众多企业和开发者的核心基础设施,其管理的高效性和专业性成为了保障业务稳定运行的关键因素。对于专业的服务器运维人员和开发团队而言,理解这些面板的细节差异至关重要。这不仅关乎服务器管理的效率,更涉及到系统的稳定性、安全性以及对开源应用生态的适应性。期望本次全面的盘点能为您的 Linux 服务器管理策略提供坚实的理论依据和实践指导,确保服务器管理工作在技术迭代和业务发展的浪潮中保持高效、稳定且安全的运行状态。
​​国内 5 个最佳的控制面板,可轻松管理服务器
|
弹性计算 应用服务中间件
阿里云香港地域服务器访问延迟丢包的原因及解决方法
阿里云提供中国香港地域云服务器,但是香港节点服务器通过公网IP访问其他国家和地区的云服务器ECS会有较高访问延迟,极限情况下可能会产生丢包
4247 0
阿里云香港地域服务器访问延迟丢包的原因及解决方法
|
缓存 安全 C++
C++无锁队列:解锁多线程编程新境界
【10月更文挑战第27天】
823 7
|
存储 数据挖掘 数据处理
Pandas Excel数据处理指南
在数据处理和分析的过程中,Excel是一个非常常见的工具。然而,当数据量变大,操作复杂度增加时,Excel的效率和功能可能无法满足需求。Pandas是一个强大的Python数据处理库,可以轻松地读取、处理和分析Excel文件中的数据。本指南将介绍如何使用Pandas进行Excel数据处理,并展示一些常见的操作和技巧。
|
SQL 关系型数据库 MySQL
MySQL主从:延时从库恢复全解
MySQL主从:延时从库恢复全解
|
人工智能 自然语言处理 数据可视化
体验评测报告:阿里云百炼平台——大模型应用构建的全方位工具箱
体验评测报告:阿里云百炼平台——大模型应用构建的全方位工具箱
1134 2
|
数据采集 安全 网络安全
代理IP纯净度,对用户有多么重要!
代理IP的纯净度关乎网络稳定性、匿名性和安全性。纯净代理能保护用户隐私,防止追踪;提供稳定高效网络连接;降低账号被封风险,适合数据采集;并确保用户数据安全,避免黑客攻击。判断纯净度可查IP历史、检查黑名单、验证SSL支持与匿名度、测试网络延迟和速度。在网络安全至关重要的时代,选择高纯净度代理IP至关重要。