前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于Spimes2.5主题的魔改与优化

基于Spimes2.5主题的魔改与优化

作者头像
Inkedus
修改2020-06-28 14:21:55
8400
修改2020-06-28 14:21:55
举报
文章被收录于专栏:InkedusInkedus

前言

本文不涉及Spimes主题文件的分享,只是提供了魔改后的functions.php | post.php | setjs.js文件的下载,如有侵犯到作者的权益,请联系我删除本文。

增加了功能

  • 设置外观里可以自定义Gravatar源,不用再去改代码了,推荐gravatar源: https://cdn.zhuchunshu.com/avatar/ https://cdn.v2ex.com/gravatar/ https://gravatar.loli.net/avatar/8406d089bc81b664a2610b8d214c1428 https://secure.gravatar.com/avatar/
Gravatar
Gravatar

Gravatar

  • 增加了文章内附件下载功能,可以选择链接(文件)类型为直链、百度网盘或是蓝奏云

可以设置文件下载权限为:所有人均可下载或者是登陆后下载

当链接类型为直链时会直接跳转到下载链接

当链接类型为百度网盘和蓝奏网盘时会弹出一个layer提示窗,询问下载

后续会写当文件类型为百度网盘时,弹窗提示显示文件大小并询问是否下载,蓝奏也一样

字段
字段

字段

展示1
展示1

展示1

展示2
展示2

展示2

开始修改

打开主题functions.php文件,把代码:

代码语言:javascript
复制
$download = new Typecho_Widget_Helper_Form_Element_Radio('download', 
    array(true => _t('启用'),
    false => _t('关闭')),
    false, _t('文件下载'), _t('默认关闭,启用则会在文章内文件下载按钮'));
    $layout->addItem($download);
    
    $downloads = new Typecho_Widget_Helper_Form_Element_Select('downloads',
        array('link1'=>'直链',
            'link2'=>'百度网盘',
            'link3'=>'蓝奏网盘'),
            'link1','链接(文件)类型','默认:文件直链,如果上面的文件下载选项为关闭则不用管这个');
    $layout->addItem($downloads);

    $downloadquanxian = new Typecho_Widget_Helper_Form_Element_Select('downloadquanxian',
        array('1'=>'所有人',
            '2'=>'登录后'),
            '1','文件下载权限','默认:1,所有人都可以下载此文件');
    $layout->addItem($downloadquanxian);

    $downloadurl = new Typecho_Widget_Helper_Form_Element_Text('downloadurl', NULL, NULL, _t('文件下载链接'), _t('在这里填入一个文件 URL 地址, 如果不开启文件下载功能,则不用管这个'));
    $downloadurl->input->setAttribute('class', 'w-100 setfb');
    $layout->addItem($downloadurl);  

    $downloadpass = new Typecho_Widget_Helper_Form_Element_Text('downloadpass', NULL, NULL, _t('文件分享密码'), _t('在这里填入一个文件分享密码, 如果不开启文件下载功能,则不用管这个,如果文件没设置分享密码,也不用管这个'));
    $downloadpass->input->setAttribute('class', 'w-100 setfb');
    $layout->addItem($downloadpass);  

PHP

复制

插入到

代码语言:javascript
复制
$pdmapis = Helper::options()->pdmapi;
    if ($pdmapis != '0'){  
    $dmlog = new Typecho_Widget_Helper_Form_Element_Radio('dmlog', 
    array('tepaly' => _t('主题播放器'),
    'dmpaly' => _t('弹幕播放器')),
    'tepaly', _t('主题播放器'), _t('默认为主题播放器,弹幕播放器则需要配置数据库系统文件后再使用'));
    $layout->addItem($dmlog);       
    } 

PHP

复制

后面,也就是330行左右

再把代码:

代码语言:javascript
复制
$gv = new Typecho_Widget_Helper_Form_Element_Text('gravatar', NULL, 'https://cdn.zhuchunshu.com/avatar/', _t('Gravatar源'), _t('自定义Gravatar源,例如https://cdn.zhuchunshu.com/avatar/'));
$form->addInput($gv);

PHP

复制

插入到

代码语言:javascript
复制
$favicon = new Typecho_Widget_Helper_Form_Element_Text('favicon', NULL, NULL, _t('favicon地址'), _t('一般为http://www.yourblog.com/image.png,支持 https:// 或 //,留空则不设置favicon'));
    $form->addInput($favicon);

PHP

复制

后面,也就是functions.php文件107行左右。

再找到functions.php文件502行左右的代码:

代码语言:javascript
复制
//获取Gravatar头像 QQ邮箱取用qq头像
function getGravatar($email, $s = 96, $d = 'mp', $r = 'g', $img = false, $atts = array())
{
preg_match_all('/((\d)*)@qq.com/', $email, $vai);
if (empty($vai['1']['0'])) {
    $url = "https://cdn.v2ex.com/gravatar/"
    $url .= md5(strtolower(trim($email)));
    $url .= "?s=$s&d=$d&r=$r";
    if ($img) {
        $url = '<img src="' . $url . '"';
        foreach ($atts as $key => $val)
            $url .= ' ' . $key . '="' . $val . '"';
        $url .= ' />';
    }
}else{
    $url = 'https://q2.qlogo.cn/headimg_dl?dst_uin='.$vai['1']['0'].'&spec=100';
}
return  $url;
}

PHP

复制

修改成:

代码语言:javascript
复制
//获取Gravatar头像 QQ邮箱取用qq头像
function getGravatar($email, $s = 96, $d = 'mp', $r = 'g', $img = false, $atts = array())
{
preg_match_all('/((\d)*)@qq.com/', $email, $vai);
if (empty($vai['1']['0'])) {
    $url = Helper::options()->gravatar;
    $url .= md5(strtolower(trim($email)));
    $url .= "?s=$s&d=$d&r=$r";
    if ($img) {
        $url = '<img src="' . $url . '"';
        foreach ($atts as $key => $val)
            $url .= ' ' . $key . '="' . $val . '"';
        $url .= ' />';
    }
}else{
    $url = 'https://q2.qlogo.cn/headimg_dl?dst_uin='.$vai['1']['0'].'&spec=100';
}
return  $url;
}

PHP

复制

保存即可,那么我们到现在已经完成了对functions.php文件的魔改

接下来修改主题的post.php文件

打开post.php文件在62行

代码语言:javascript
复制
<div class="showall" >-- 展开阅读全文 --</div>
              <?php endif; ?>    
              </div>

PHP

复制

代码后面另起一行插入:

代码语言:javascript
复制
<?php if ($this->fields->download=="1"): ?>
                  <script src="https://www.layuicdn.com/layer/layer.js"></script>
                  <script src="https://cdn.bootcss.com/clipboard.js/2.0.6/clipboard.js"></script>
                  <link rel="stylesheet" type="text/css" href="https://download.r7xs.com/pan%2Fup1_zcs%2Fuploads%2F2020%2F06%2F22%2FuJz6nfRl_buttons.css">
                  <?php if ($this->fields->downloadquanxian=="1"): ?>
                      <center><p><a id="downloadbut" class="button button-primary button-rounded">下载本文附件</a></p></center>
                                  <script type="text/javascript">
                                      $(function(){
                                          $("#downloadbut").click(function(){
                                              var type = "<?php echo $this->fields->downloads; ?>";
                                              var downloadurl = "<?php echo $this->fields->downloadurl; ?>";
                                              var downloadpass = "<?php echo $this->fields->downloadpass; ?>";
                                              var loginhas = "<?php echo $this->user->hasLogin(); ?>";
                                              var quanxian = "<?php echo $this->fields->downloadquanxian; ?>";
                                              if (downloadpass) {
                                                  var pass = "文件分享密码: "+downloadpass;
                                              }else{
                                                  var pass ="此分享链接未设置密码访问";
                                              }
                                              switch (type) {
                                              case 'link1':
                                                  location.href=downloadurl;
                                                  break;
                                              case 'link2':
                                                  // 百度
                                                  layer.confirm('百度网盘下载链接:<br><a href="'+downloadurl+'"><font color="#46A3FF">'+downloadurl+'</font></a><br><br>'+pass, {
                                                      btn: ['下载','关闭'] //按钮
                                                    }, function(){
                                                      location.href=downloadurl;
                                                    }, function(){
                                                      
                                                    });
                                                  break;
                                              case 'link3':
                                                  //蓝奏
                                                  layer.confirm('蓝奏网盘下载链接:<br><a href="'+downloadurl+'"><font color="#46A3FF">'+downloadurl+'</font></a><br><br>'+pass, {
                                                      btn: ['下载','关闭'] //按钮
                                                    }, function(){
                                                      location.href=downloadurl;
                                                    }, function(){
                                                      
                                                    });
                                                  break;
                                              default:
                                                  alert("出错了");
                                                  break;
                                          }
                                          });
                                      })
                                  </script>
                      <?php else: ?>
                          <?php if ($this->fields->downloadquanxian=="2"): ?>
                              <?php if ($this->user->hasLogin()): ?>
                                  <center><p><a id="downloadbut" class="button button-primary button-rounded">下载本文附件</a></p></center>
                                  <script type="text/javascript">
                                      $(function(){
                                          $("#downloadbut").click(function(){
                                              var type = "<?php echo $this->fields->downloads; ?>";
                                              var downloadurl = "<?php echo $this->fields->downloadurl; ?>";
                                              var downloadpass = "<?php echo $this->fields->downloadpass; ?>";
                                              var loginhas = "<?php echo $this->user->hasLogin(); ?>";
                                              var quanxian = "<?php echo $this->fields->downloadquanxian; ?>";
                                              if (downloadpass) {
                                                  var pass = "文件分享密码: "+downloadpass;
                                              }else{
                                                  var pass ="此分享链接未设置密码访问";
                                              }
                                              switch (type) {
                                              case 'link1':
                                                  location.href=downloadurl;
                                                  break;
                                              case 'link2':
                                                  // 百度
                                                  layer.confirm('百度网盘下载链接:<br><a href="'+downloadurl+'"><font color="#46A3FF">'+downloadurl+'</font></a><br><br>'+pass, {
                                                      btn: ['下载','关闭'] //按钮
                                                    }, function(){
                                                      location.href=downloadurl;
                                                    }, function(){
                                                      
                                                    });
                                                  break;
                                              case 'link3':
                                                  //蓝奏
                                                  layer.confirm('蓝奏网盘下载链接:<br><a href="'+downloadurl+'"><font color="#46A3FF">'+downloadurl+'</font></a><br><br>'+pass, {
                                                      btn: ['下载','关闭'] //按钮
                                                    }, function(){
                                                      location.href=downloadurl;
                                                    }, function(){
                                                      
                                                    });
                                                  break;
                                              default:
                                                  alert("出错了");
                                                  break;
                                          }
                                          });
                                      })
                                  </script>
                                  <?php else: ?>
                                      <center><p><a href="<?php $this->options->adminUrl('login.php'); ?>" class="button button-primary button-rounded">本文附件登陆后可下载</a></p></center>
                              <?php endif ?>
                          <?php endif ?>
                  <?php endif ?>
              <?php endif ?>

PHP

复制

保存后我们就完成了对post.php文件的魔改,最后打开usr/themes/spimes/assets/css/setjs.js文件,

把第14行的文件删了,替换成

代码语言:javascript
复制
document.write('<li id="menu-item" class="item-0 "><a href="#div-10" class="link-0 ss"><span><i class="icon iconfont icon-anquan"></i> 保存设置 Save</span></a></li>');

Js

复制

保存后就大功告成了,此时你会发现头像图片加载不出来,到后台主题外观设置里添加上Gravatar源就好了

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 增加了功能
  • 开始修改
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档