Handsome 主题大升级(五)修改文件

Handsome 主题大升级(五)修改文件
Mz Xi主题整体细节设置以及美化方案
Handsome主题这部分要小心哦,做好备份!!!!
修改文件
这部分基本上全是通过修改文件来达到美化的目的,故一定要提前做好备份~
首页新年倒计时
[collapse status=”false” title=”首页新年倒计时”]将如下代码加到 开发者设置-首页列表最前方广告位即可:
1 | <!-- 首页倒计时 --> |
[/collapse]
左侧插入菜单自定义伸缩框列表
[collapse status=”false” title=”左侧插入菜单自定义伸缩框”]
打开 Handsome/componet/aside.php文件,在大概第126行代码的下面添加:
1 | <li> |
[/collapse]
左侧下拉框
[collapse status=”false” title=”左侧下拉框”]
修改/usr/themes/handsome/component/aside.php文件
在125行* >上面添加以下代码
[tabs]
[tab name=”示例一:” active=”true”]
默认打开下拉框并在本页面打开链接
1 | <!--左侧下拉框--> |
[/tab]
[tab name=”示例二”]
默认关闭下拉框并在新页面打开链接
1 | <!--左侧下拉框--> |
[/tab]
[/tabs]
[/collapse]
去除顶部博客名称
[collapse status=”false” title=”去除顶部博客名称”]
修改/usr/themes/handsome/index.php文件,位于公告位置下方
删除以下代码:
<h1 class="m-n font-thin h3 text-black l-h"><?php $this->options->title(); ?></h1>
[/collapse]
心情文字居中
[collapse status=”false” title=”心情文字居中”]
修改 /usr/themes/handsome/index.php
文件,位于公告位置下方:
1 | <header class="bg-light lter b-b wrapper-md"> |
[/collapse]
背景云雾特效
[collapse status=”false” title=”背景云雾特效”]
[tabs]
[tab name=”第一步” active=”true”]
后台-设置外观-开发者设置-自定义CSS 添加以下代码
1 | <!--背景云雾特效--> |
[/tab]
[tab name=”第二步”]
编辑/usr/themes/handsome/component/footer.php文件
在footer(); ?>上面添加以下代码
1 | <!--背景云雾特效--> |
[/tab]
[/tabs]
[/collapse]
给正文添加结束标识
[collapse status=”false” title=”给正文添加结束标识”]
[tabs]
[tab name=”效果图” active=”true”]
效果就是像本博客的每篇博文正文下面有一个好看的END标识。
[/tab]
[tab name=”第二步”]
首先打开 网站根目录 /usr/themes/handsome的post.php文件
找到 options->adContentPost != ""): ?>这行代码,在其上方(紧贴着这行代码)的空白位置,添加以下代码:
1 | <!--内容结束分割线--> |
[/tab]
[tab name=”第三步”]
并在改好保存后,在 自定义CSS处添加以下代码:
1 | /*文章正文下的结束End分割线样式*/ |
[/tab]
[/tabs]
[/collapse]
后台登陆界面美化
[collapse status=”false” title=”后台登陆界面美化”]效果图:
方法:
- 用压缩包内的 login.php文件替换掉 /admin/login.php文件
- 将压缩包内的 style文件夹上传到 /admin/文件夹下
- 修改 login.php第 35行,把“TuJun’Blog”替换成自己的信息
[button color=”success” icon=”glyphicon glyphicon-arrow-down” url=”https://wwwc.lanzoue.com/i8EN628gdnpi“ type=””]后台登陆界面美化模板[/button]
[/collapse]
正文下方添加版权声明
[collapse status=”false” title=”正文下方添加版权声明”]
[tabs]
[tab name=”第一步” active=”true”]
打开 网站根目录 /usr/themes/handsome的post.php文件:
这个代码同样也是在 options->adContentPost != ""): ?>的上方
添加位置和上面正文结束功能的添加位置相同,找到后添加以下代码(你也可以添加到其他你认为合适的地方):
1 | <!--知识共享许可协议--> |
[/tab]
[tab name=”第二步”]
添加好后,在 自定义CSS中添加以下代码:
1 | /*文章正文下的知识共享许可协议*/ |
[/tab]
[/tabs]
[/collapse]
右侧添加人生倒计时(岁月不待人)
[collapse status=”false” title=”右侧添加人生倒计时(岁月不待人)”]
[tabs]
[tab name=”第1步” active=”true”]
首先找到网站根目录 /usr/themes/handsome/component
打开 sidebar.php文件,找到 这一行内容。
在该内容向上两行找到 ,在该行紧接着下面添加如下代码:
1 | <!-- 时间倒计时代码开始 --> |
改好后保存退出
[/tab]
[tab name=”第2步”]
进入网站根目录 /usr/themes/handsome/assets/js/的文件夹
创建一个名为 timeinfo.js的文件,并将以下代码放进该文件后,保存并退出
1 | function init_life_time() { |
[/tab]
[tab name=”第3步”]
以下代码放在 后台-外观设置-开发者设置-自定义CSS:
1 | /* 时间流逝 */ |
[/tab]
[tab name=”第4步”]
最后一步,将以下代码放在 后台-外观设置-开发者设置-自定义输出body尾部:
1 | <!-- 时间流逝 --> |
步骤均完成后,即可去查看效果了~
[/tab]
[/tabs]
[/collapse]
信息统计增加全站字数、在线人数、响应耗时和访客总数
[collapse status=”false” title=”信息统计增加全站字数、在线人数、响应耗时和访客总数”]
[tabs]
[tab name=”第一步” active=”true”]
首先将以下代码加到 /usr/themes/handsome/libs/Content.php中,放在 class Content的上面:
1 | /*访问总量*/ |
[/tab]
[tab name=”第二步”]
然后在 /usr/themes/handsome/component/sidebar.php文件内,找到合适和位置添加以下代码: 注:处就是添加代码的地方,找到你想加的位置添加代码即可:
1 | <li class="list-group-item text-second"><span class="blog-info-icons"><i data-feather="edit-3"></i></span><span class="badge pull-right"><?php echo allOfCharacters(); ?></span><?php _me("全站字数") ?></li> |
[/tab]
[/tabs]
[/collapse]
底部版权美化
[collapse status=”false” title=”底部版权美化”]
[tabs]
[tab name=”第一步” active=”true”]
左侧底部放在 后台-开发者设置-博客底部左侧信息:
1 | <!--左侧底部--> |
[/tab]
[tab name=”第二步”]
右侧底部放在 后台-开发者设置-博客底部右侧信息:
1 | <!--右侧底部--> |
[/tab]
[tab name=”第三步”]
css放在 主题设置-自定义css内:
1 | /*底部页脚css*/ |
[/tab]
[tab name=”第四步”]
把下面代码放在主题目录 usr/themes/handsome/component/footer.php内大概在 117行,覆盖原来的即可:
1 | <footer id="footer" class="app-footer" role="footer"> |
[/tab]
[/tabs]
[/collapse]
评论添加一键打卡功能
[collapse status=”false” title=”评论添加一键打卡功能”]
[tabs]
[tab name=”第一步” active=”true”]
找到 /usr/themes/handsome/component/comments.php
原代码:
1 | <div class="comment-form-comment form-group"> |
替换为:
1 | <div class="comment-form-comment form-group"> |
[/tab]
[tab name=”第二步”]
主题设置-自定义JavaScript加入如下代码:
1 | <!--评论 打卡、赞、踩 功能--> |
[/tab]
[tab name=”第三步”]
主题设置-自定义CSS加入如下代码:
1 | /*评论一键打卡、赞、踩 */ |
完成后刷新网页就可以了。
[/tab]
[/tabs]
[/collapse]
评论一键赞、踩、语录、打卡
[collapse status=”false” title=”评论一键赞、踩、语录、打卡”]
打开后台-更改外观
-设置外观
-开发者设置
-复制代码粘贴至 自定义JavaScript
即可
1 | <!--评论 打卡、赞、踩 功能--> |
代码内 ::dunjiao:302::
::coolapk:96::
::dunjiao:315::
等是表情文件,根据自己的表情内容修改,文字内容是随机输出的,也可以根据自己喜欢更改。
打开 Handsome
主题目录下的 component/comments.php
文件,大概172行,找到并删除如下内容:
1 | <textarea id="comment" class="textarea form-control OwO-textarea" name="text" rows="5" placeholder="<?php _me("说点什么吧……") ?>" onkeydown="if(event.ctrlKey&&event.keyCode==13){document.getElementById('submit').click();return false};"><?php $this->remember('text'); ?></textarea> |
替换成如下代码:
1 | <textarea id="comment" class="textarea form-control OwO-textarea" name="text" rows="5" placeholder="<?php _me("说点什么吧……") ?>" οnkeydοwn="if(event.ctrlKey&&event.keyCode==13){document.getElementById('submit').click();return false};"><?php $this->remember('text'); ?></textarea> |
[/collapse]
页脚处添加网站运行时间
[collapse status=”false” title=”页脚处添加网站运行时间”]注意这个功能我是在上一个页脚美化的基础上添加的,如果没有添加页脚美化功能,该运行时间的排版会出现问题。当然你也可以改成你喜欢的样子~
代码放到 后台-开发者设置-博客底部左侧信息:
1 | | |
[/collapse]
右侧添加全屏显示按钮
[collapse status=”false” title=”右侧添加全屏显示按钮”]
/usr/themes/handsome/component/fotter.php文件,找到“返回顶部”这段代码 大概在96行左右,在下方开始添加:
1 | <div class="f10 panel panel-default" style="position:fixed;top:450px;right:-240px;z-index:99;width:240px;-webkit-transition:all .2s;transition:all .2s;"> |
[/collapse]
自定义字体
[collapse status=”false” title=”自定义字体”]首先我们去字体天下网站找到一款自己喜欢的字体,记得一定要是免费商用的,防止有版权问题~
下载好后会发现是一个 .tff扩展名的文件,我们再去字体转换网站里将 .tff转换为 .woff格式的文件
并将转换后的文件上传到你网站目录里的某个位置,默认是 usr/themes/handsome/assets/fonts文件夹里。
前往 外观设置-开发者设置-自定义css中添加以下代码:
1 | /*自定义字体*/ |
后来发现有插件可以实现一键切换字体,很方便,放在最下面插件里了。
[/collapse]
超链接特效
[collapse status=”false” title=”超链接特效”]
[tabs]
[tab name=”第一步” active=”true”]
修改 /usr/themes/handsome/assets/css/handsome.min.css
删掉下面的内容:
1 | comment-content-true a:hover,.wrapper-lg .entry-content a:hover{ |
[/tab]
[tab name=”第二步”]
然后在主题设置 - 开发者设置 - 自定义CSS添加以下代码:
1 | .comment-content-true a:not(.light-link), |
[/tab]
[/tabs]
[/collapse]
在博客顶部添加心知天气
[collapse status=”false” title=”在博客顶部添加心知天气”]首先去心知天气官网注册账号并申请API
之后在 /usr/themes/handsome/component/headnav.php文件中的动态日历中 下方添加以下代码
注意将API信息改成自己的:
1 | <!-- 知心天气--> |
[/collapse]
新年喝彩图
[collapse status=”false” title=”新年喝彩图”]代码添加到 自定义CSS中:
1 | /*新年喝彩图*/ |
找到 usr/theme/handsome/index.php在以下图中位置(大概37行左右)添加如下代码:
1 | <img id="new_year" src="https://img04.sogoucdn.com/app/a/200692/1315_138_feedback_f61e2617c522404ab4ee69b5cfba0657.png" draggable="false"> |
[/collapse]
更改一言接口
[collapse status=”false” title=”更改一言接口”]假如你是个古诗词爱好者,你可能希望将handsome自带的一言换为换成古诗词版的,刚好已经有人开发出这样的api了,我们直接调用即可。今日诗词官网
我比较喜欢的一点是,它会自动获取访客ip,然后根据ip所在地、访问时间等信息来推荐相关的古诗词(比如如果你在上海的晚上打开网站,它就会推送有关江南、夜雨的古诗词),很妙。
具体的推荐方式 点我查看。
主题根目录下打开 index.php,找到以下代码:
1 | <small class="text-muted letterspacing indexWords"><?php |
更改为以下代码:
1 | <small class="text-muted letterspacing indexWords"> |
当然,别忘了在主题后台启用 主题增强功能->增强功能开关->启用一言接口
[/collapse]
文章页面显示标签云
[collapse status=”false” title=”文章页面显示标签云”]
编辑/usr/themes/handsome/component/sidebar.php文件
在上面添加以下代码:
1 | <!--文章显示标签云--> |
[/collapse]
右侧栏加入每日pixiv热榜图片
[collapse status=”false” title=”右侧栏加入每日pixiv热榜图片”]
Github效果:
主题设置 – 开发者设置 – 全局右侧广告位添加以下代码:
1 | <iframe src="https://cloud.mokeyjay.com/pixiv" frameborder="0" style="width:240px; height:380px;"></iframe> |
然后修改 handsome/component/sidebar.php
找到 ,将”广告”二字修改为“P站每日热门”
[/collapse]
文章页面页脚插入one一言
[collapse status=”false” title=”文章页面页脚插入one一言”]
代码放置 开发者设置-文章页脚广告位:
1 | <small class="text-muted letterspacing indexWords" style="font-family:monaco;text-align:center;"> |
[/collapse]
文章底部添加相关文章推荐
[collapse status=”false” title=”文章底部添加相关文章推荐”]
[tabs]
[tab name=”效果图” active=”true”]
[/tab]
[tab name=”第一步”]
在 function.php
底部新增一个函数:
1 | function getHotComments($limit = 5){ |
[/tab]
[/tab]
[tab name=”第二步”]
在 post.php
文件中的大概一百多行左右吧,上一篇下一篇内容下方,如图:
1 | <!--上一篇&下一篇--> |
在这段代码下方增加如下代码:
1 | <!--相关文章推荐 + 热门文章推荐--> |
[/tab]
[/tabs]
[/collapse]
右侧广告位 插入今日诗词一言
[collapse status=”false” title=”右侧广告位 插入今日诗词一言”]
代码放置 开发者设置-全局右侧边栏广告位:
1 | <small class="text-muted letterspacing indexWords" style="font-family:monaco;text-align:center;"> |
之后去 /usr/themes/handsome/component/sidebar.php大约在 162行左右:
将 <h5 class="widget-title m-t-none"><?php _me("广告") ?></h5>
替换成:<!--<h5 class="widget-title m-t-none"><?php _me("广告") ?></h5>-->
也就是将这一行代码注释掉就行了。
[/collapse]
文章底部添加标签
[collapse status=”false” title=”文章底部添加标签”]
在当前文章内容尾部添加该文章的标签,在主题目录下的 /usr/themes/handsome/post.php
文件中的适当地方加入以下代码。
1 | <!--文章底部添加标签--> |
[/collapse]
位置地球
[collapse status=”false” title=”位置地球”]
方法:进入 handsome
后台,选择 “更换外观--设置外观--开发者设置--全局右侧边栏广告位”
,将复制的代码粘贴即可
1 | <script type="text/javascript" src="//rf.revolvermaps.com/0/0/6.js?i=5wrl2mbvawy&m=7&c=e63100&cr1=ffffff&f=arial&l=0&bv=90&lx=-420&ly=420&hi=20&he=7&hc=a8ddff&rs=80" async="async"></script> |
替换广告字:打开 “/usr/themes/handsome/component/sidebar.php”
文件,搜索“广告
”二字,改为“位置地球
”。
[/collapse]
鼠标点击特效-富强、民主文字样式
[collapse status=”false” title=”鼠标点击特效-富强、民主文字样式”]
将以下代码放在主题的 handsome/component/footer.php
中的 </body>
之前即可。
或者直接在 后台外观设置→开发者设置→自定义输出body尾部的HTML代码
处粘贴即可
1 | <!--鼠标点击特效--> |
[/collapse]
删除首页右上角闲言碎语
[collapse status=”false” title=”删除首页右上角闲言碎语(那个标识-新-)”]文件路径:/handsome/component/headnav.php
删除源代码
1 | <?php if (!$hideTalkItem): ?> |
[/collapse]
将搜索框移动到右侧
[collapse status=”false” title=”将搜索框移动到右侧”]
- 文件路径:/handsome/component/headnav.php
- 源代码:
1 | <form id="searchform1" class="searchform navbar-form navbar-form-sm navbar-left shift" method="post" |
- 修改为:
1 | <form id="searchform1" class="searchform navbar-form navbar-form-sm navbar-right shift" method="post" |
[/collapse]
修复搜索框按钮
[collapse status=”false” title=”修复搜索框按钮”]
Handsome主题的搜索框按钮一直有问题,按不下去不能正常使用,可以按以下方法修复
打开/usr/themes/handsome/component/headnav.php文件
搜索search_submit然后将整行替换成如下代码:
<span id="search_submit" class="transparent input-group-btn" onclick=jumpForSearch(search_input.value)>
然后在文件的最后面添加如下代码后保存即可
1 | <!--/开始修复搜索按钮--> |
[/collapse]
修改游客评论头像
[collapse status=”false” title=”修改游客评论头像”]
首先打开在网站在目录下找到handsome主题里的component/comments.php文件,
大概在65行左右,将以下代码:
1 | <a class="pull-left thumb-sm" rel="nofollow"> |
替换为:
1 | <a class="pull-left thumb-sm" rel="nofollow"> |
[/collapse]
404页面添加自动返回首页功能
[collapse status=”false” title=”404页面添加自动返回首页功能”]
找到 /usr/themes/handsome
文件夹内的 404.php
文件并打开。
在 h1 class="text-shadow text-white">404
这一行下面加入以下代码:
1 | <br> |
再把下面的代码加入 404.php
文件内最底下的 </body>
前面:
1 | <script type="text/javascript"> |
[/collapse]
在文章顶部添加百度是否收录
[collapse status=”false” title=”在文章顶部添加百度是否收录”]
使用方法
在 handsome/functions.php
最底部添加代码:
1 | /** |
然后在 handsome/post.php
在63行左右,即这个分类li标签的下方:
1 | <!--分类--> |
添加代码:
1 | <!--百度收录--> |
[/collapse]
网页悬浮二维码
[collapse status=”false” title=”网页悬浮二维码”]
首先在 /usr/themes/handsome/assets/js
目录内创建一个 qrcode.min.js
文件,将以下代码加入
1 | var QRCode;!function(){function t(t){this.mode=r.MODE_8BIT_BYTE,this.data=t,this.parsedData=[];for(var e=0,o=this.data.length;e<o;e++){var i=[],n=this.data.charCodeAt(e);n>65536?(i[0]=240|(1835008&n)>>>18,i[1]=128|(258048&n)>>>12,i[2]=128|(4032&n)>>>6,i[3]=128|63&n):n>2048?(i[0]=224|(61440&n)>>>12,i[1]=128|(4032&n)>>>6,i[2]=128|63&n):n>128?(i[0]=192|(1984&n)>>>6,i[1]=128|63&n):i[0]=n,this.parsedData.push(i)}this.parsedData=Array.prototype.concat.apply([],this.parsedData),this.parsedData.length!=this.data.length&&(this.parsedData.unshift(191),this.parsedData.unshift(187),this.parsedData.unshift(239))}function e(t,e){this.typeNumber=t,this.errorCorrectLevel=e,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}t.prototype={getLength:function(t){return this.parsedData.length},write:function(t){for(var e=0,r=this.parsedData.length;e<r;e++)t.put(this.parsedData[e],8)}},e.prototype={addData:function(e){var r=new t(e);this.dataList.push(r),this.dataCache=null},isDark:function(t,e){if(t<0||this.moduleCount<=t||e<0||this.moduleCount<=e)throw new Error(t+","+e);return this.modules[t][e]},getModuleCount:function(){return this.moduleCount},make:function(){this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(t,r){this.moduleCount=4*this.typeNumber+17,this.modules=new Array(this.moduleCount);for(var o=0;o<this.moduleCount;o++){this.modules[o]=new Array(this.moduleCount);for(var i=0;i<this.moduleCount;i++)this.modules[o][i]=null}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(t,r),this.typeNumber>=7&&this.setupTypeNumber(t),null==this.dataCache&&(this.dataCache=e.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,r)},setupPositionProbePattern:function(t,e){for(var r=-1;r<=7;r++)if(!(t+r<=-1||this.moduleCount<=t+r))for(var o=-1;o<=7;o++)e+o<=-1||this.moduleCount<=e+o||(this.modules[t+r][e+o]=0<=r&&r<=6&&(0==o||6==o)||0<=o&&o<=6&&(0==r||6==r)||2<=r&&r<=4&&2<=o&&o<=4)},getBestMaskPattern:function(){for(var t=0,e=0,r=0;r<8;r++){this.makeImpl(!0,r);var o=g.getLostPoint(this);(0==r||t>o)&&(t=o,e=r)}return e},createMovieClip:function(t,e,r){var o=t.createEmptyMovieClip(e,r);this.make();for(var i=0;i<this.modules.length;i++)for(var n=1*i,a=0;a<this.modules[i].length;a++){var s=1*a;this.modules[i][a]&&(o.beginFill(0,100),o.moveTo(s,n),o.lineTo(s+1,n),o.lineTo(s+1,n+1),o.lineTo(s,n+1),o.endFill())}return o},setupTimingPattern:function(){for(var t=8;t<this.moduleCount-8;t++)null==this.modules[t][36]&&(this.modules[t][37]=t%2==0);for(var e=8;e<this.moduleCount-8;e++)null==this.modules[6][e]&&(this.modules[6][e]=e%2==0)},setupPositionAdjustPattern:function(){for(var t=g.getPatternPosition(this.typeNumber),e=0;e<t.length;e++)for(var r=0;r<t.length;r++){var o=t[e],i=t[r];if(null==this.modules[o][i])for(var n=-2;n<=2;n++)for(var a=-2;a<=2;a++)this.modules[o+n][i+a]=-2==n||2==n||-2==a||2==a||0==n&&0==a}},setupTypeNumber:function(t){for(var e=g.getBCHTypeNumber(this.typeNumber),r=0;r<18;r++){var o=!t&&1==(e>>r&1);this.modules[Math.floor(r/3)][r%3+this.moduleCount-8-3]=o}for(r=0;r<18;r++){o=!t&&1==(e>>r&1);this.modules[r%3+this.moduleCount-8-3][Math.floor(r/3)]=o}},setupTypeInfo:function(t,e){for(var r=this.errorCorrectLevel<<3|e,o=g.getBCHTypeInfo(r),i=0;i<15;i++){var n=!t&&1==(o>>i&1);i<6?this.modules[i][38]=n:i<8?this.modules[i+1][39]=n:this.modules[this.moduleCount-15+i][40]=n}for(i=0;i<15;i++){n=!t&&1==(o>>i&1);i<8?this.modules[8][this.moduleCount-i-1]=n:i<9?this.modules[8][15-i-1+1]=n:this.modules[8][15-i-1]=n}this.modules[this.moduleCount-8][41]=!t},mapData:function(t,e){for(var r=-1,o=this.moduleCount-1,i=7,n=0,a=this.moduleCount-1;a>0;a-=2)for(6==a&&a--;;){for(var s=0;s<2;s++)if(null==this.modules[o][a-s]){var h=!1;n<t.length&&(h=1==(t[n]>>>i&1)),g.getMask(e,o,a-s)&&(h=!h),this.modules[o][a-s]=h,-1==--i&&(n++,i=7)}if((o+=r)<0||this.moduleCount<=o){o-=r,r=-r;break}}}},e.PAD0=236,e.PAD1=17,e.createData=function(t,r,o){for(var i=m.getRSBlocks(t,r),n=new _,a=0;a<o.length;a++){var s=o[a];n.put(s.mode,4),n.put(s.getLength(),g.getLengthInBits(s.mode,t)),s.write(n)}var h=0;for(a=0;a<i.length;a++)h+=i[a].dataCount;if(n.getLengthInBits()>8*h)throw new Error("code length overflow. ("+n.getLengthInBits()+">"+8*h+")");for(n.getLengthInBits()+4<=8*h&&n.put(0,4);n.getLengthInBits()%8!=0;)n.putBit(!1);for(;!(n.getLengthInBits()>=8*h||(n.put(e.PAD0,8),n.getLengthInBits()>=8*h));)n.put(e.PAD1,8);return e.createBytes(n,i)},e.createBytes=function(t,e){for(var r=0,o=0,i=0,n=new Array(e.length),a=new Array(e.length),s=0;s<e.length;s++){var h=e[s].dataCount,l=e[s].totalCount-h;o=Math.max(o,h),i=Math.max(i,l),n[s]=new Array(h);for(var u=0;u<n[s].length;u++)n[s][u]=255&t.buffer[u+r];r+=h;var f=g.getErrorCorrectPolynomial(l),d=new p(n[s],f.getLength()-1).mod(f);a[s]=new Array(f.getLength()-1);for(u=0;u<a[s].length;u++){var c=u+d.getLength()-a[s].length;a[s][u]=c>=0?d.get(c):0}}var m=0;for(u=0;u<e.length;u++)m+=e[u].totalCount;var _=new Array(m),v=0;for(u=0;u<o;u++)for(s=0;s<e.length;s++)u<n[s].length&&(_[v++]=n[s][u]);for(u=0;u<i;u++)for(s=0;s<e.length;s++)u<a[s].length&&(_[v++]=a[s][u]);return _};for(var r={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8},o={L:1,M:0,Q:3,H:2},i=0,n=1,a=2,s=3,h=4,l=5,u=6,f=7,g={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(t){for(var e=t<<10;g.getBCHDigit(e)-g.getBCHDigit(g.G15)>=0;)e^=g.G15<<g.getBCHDigit(e)-g.getBCHDigit(g.G15);return(t<<10|e)^g.G15_MASK},getBCHTypeNumber:function(t){for(var e=t<<12;g.getBCHDigit(e)-g.getBCHDigit(g.G18)>=0;)e^=g.G18<<g.getBCHDigit(e)-g.getBCHDigit(g.G18);return t<<12|e},getBCHDigit:function(t){for(var e=0;0!=t;)e++,t>>>=1;return e},getPatternPosition:function(t){return g.PATTERN_POSITION_TABLE[t-1]},getMask:function(t,e,r){switch(t){case i:return(e+r)%2==0;case n:return e%2==0;case a:return r%3==0;case s:return(e+r)%3==0;case h:return(Math.floor(e/2)+Math.floor(r/3))%2==0;case l:return e*r%2+e*r%3==0;case u:return(e*r%2+e*r%3)%2==0;case f:return(e*r%3+(e+r)%2)%2==0;default:throw new Error("bad maskPattern:"+t)}},getErrorCorrectPolynomial:function(t){for(var e=new p([1],0),r=0;r<t;r++)e=e.multiply(new p([1,d.gexp(r)],0));return e},getLengthInBits:function(t,e){if(1<=e&&e<10)switch(t){case r.MODE_NUMBER:return 10;case r.MODE_ALPHA_NUM:return 9;case r.MODE_8BIT_BYTE:case r.MODE_KANJI:return 8;default:throw new Error("mode:"+t)}else if(e<27)switch(t){case r.MODE_NUMBER:return 12;case r.MODE_ALPHA_NUM:return 11;case r.MODE_8BIT_BYTE:return 16;case r.MODE_KANJI:return 10;default:throw new Error("mode:"+t)}else{if(!(e<41))throw new Error("type:"+e);switch(t){case r.MODE_NUMBER:return 14;case r.MODE_ALPHA_NUM:return 13;case r.MODE_8BIT_BYTE:return 16;case r.MODE_KANJI:return 12;default:throw new Error("mode:"+t)}}},getLostPoint:function(t){for(var e=t.getModuleCount(),r=0,o=0;o<e;o++)for(var i=0;i<e;i++){for(var n=0,a=t.isDark(o,i),s=-1;s<=1;s++)if(!(o+s<0||e<=o+s))for(var h=-1;h<=1;h++)i+h<0||e<=i+h||0==s&&0==h||a==t.isDark(o+s,i+h)&&n++;n>5&&(r+=3+n-5)}for(o=0;o<e-1;o++)for(i=0;i<e-1;i++){var l=0;t.isDark(o,i)&&l++,t.isDark(o+1,i)&&l++,t.isDark(o,i+1)&&l++,t.isDark(o+1,i+1)&&l++,0!=l&&4!=l||(r+=3)}for(o=0;o<e;o++)for(i=0;i<e-6;i++)t.isDark(o,i)&&!t.isDark(o,i+1)&&t.isDark(o,i+2)&&t.isDark(o,i+3)&&t.isDark(o,i+4)&&!t.isDark(o,i+5)&&t.isDark(o,i+6)&&(r+=40);for(i=0;i<e;i++)for(o=0;o<e-6;o++)t.isDark(o,i)&&!t.isDark(o+1,i)&&t.isDark(o+2,i)&&t.isDark(o+3,i)&&t.isDark(o+4,i)&&!t.isDark(o+5,i)&&t.isDark(o+6,i)&&(r+=40);var u=0;for(i=0;i<e;i++)for(o=0;o<e;o++)t.isDark(o,i)&&u++;return r+=10*(Math.abs(100*u/e/e-50)/5)}},d={glog:function(t){if(t<1)throw new Error("glog("+t+")");return d.LOG_TABLE[t]},gexp:function(t){for(;t<0;)t+=255;for(;t>=256;)t-=255;return d.EXP_TABLE[t]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},c=0;c<8;c++)d.EXP_TABLE[c]=1<<c;for(c=8;c<256;c++)d.EXP_TABLE[c]=d.EXP_TABLE[c-4]^d.EXP_TABLE[c-5]^d.EXP_TABLE[c-6]^d.EXP_TABLE[c-8];for(c=0;c<255;c++)d.LOG_TABLE[d.EXP_TABLE[c]]=c;function p(t,e){if(void 0==t.length)throw new Error(t.length+"/"+e);for(var r=0;r<t.length&&0==t[r];)r++;this.num=new Array(t.length-r+e);for(var o=0;o<t.length-r;o++)this.num[o]=t[o+r]}function m(t,e){this.totalCount=t,this.dataCount=e}function _(){this.buffer=[],this.length=0}p.prototype={get:function(t){return this.num[t]},getLength:function(){return this.num.length},multiply:function(t){for(var e=new Array(this.getLength()+t.getLength()-1),r=0;r<this.getLength();r++)for(var o=0;o<t.getLength();o++)e[r+o]^=d.gexp(d.glog(this.get(r))+d.glog(t.get(o)));return new p(e,0)},mod:function(t){if(this.getLength()-t.getLength()<0)return this;for(var e=d.glog(this.get(0))-d.glog(t.get(0)),r=new Array(this.getLength()),o=0;o<this.getLength();o++)r[o]=this.get(o);for(o=0;o<t.getLength();o++)r[o]^=d.gexp(d.glog(t.get(o))+e);return new p(r,0).mod(t)}},m.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],m.getRSBlocks=function(t,e){var r=m.getRsBlockTable(t,e);if(void 0==r)throw new Error("bad rs block @ typeNumber:"+t+"/errorCorrectLevel:"+e);for(var o=r.length/3,i=[],n=0;n<o;n++)for(var a=r[3*n+0],s=r[3*n+1],h=r[3*n+2],l=0;l<a;l++)i.push(new m(s,h));return i},m.getRsBlockTable=function(t,e){switch(e){case o.L:return m.RS_BLOCK_TABLE[4*(t-1)+0];case o.M:return m.RS_BLOCK_TABLE[4*(t-1)+1];case o.Q:return m.RS_BLOCK_TABLE[4*(t-1)+2];case o.H:return m.RS_BLOCK_TABLE[4*(t-1)+3];default:return}},_.prototype={get:function(t){var e=Math.floor(t/8);return 1==(this.buffer[e]>>>7-t%8&1)},put:function(t,e){for(var r=0;r<e;r++)this.putBit(1==(t>>>e-r-1&1))},getLengthInBits:function(){return this.length},putBit:function(t){var e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}};var v=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]];function C(){var t=!1,e=navigator.userAgent;if(/android/i.test(e)){t=!0;var r=e.toString().match(/android ([0-9]\.[0-9])/i);r&&r[1]&&(t=parseFloat(r[1]))}return t}var w=function(){var t=function(t,e){this._el=t,this._htOption=e};return t.prototype.draw=function(t){var e=this._htOption,r=this._el,o=t.getModuleCount();Math.floor(e.width/o),Math.floor(e.height/o);function i(t,e){var r=document.createElementNS("http://www.w3.org/2000/svg",t);for(var o in e)e.hasOwnProperty(o)&&r.setAttribute(o,e[o]);return r}this.clear();var n=i("svg",{viewBox:"0 0 "+String(o)+" "+String(o),width:"100%",height:"100%",fill:e.colorLight});n.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink"),r.appendChild(n),n.appendChild(i("rect",{fill:e.colorLight,width:"100%",height:"100%"})),n.appendChild(i("rect",{fill:e.colorDark,width:"1",height:"1",id:"template"}));for(var a=0;a<o;a++)for(var s=0;s<o;s++)if(t.isDark(a,s)){var h=i("use",{x:String(s),y:String(a)});h.setAttributeNS("http://www.w3.org/1999/xlink","href","#template"),n.appendChild(h)}},t.prototype.clear=function(){for(;this._el.hasChildNodes();)this._el.removeChild(this._el.lastChild)},t}(),D="svg"===document.documentElement.tagName.toLowerCase()?w:"undefined"==typeof CanvasRenderingContext2D?function(){var t=function(t,e){this._el=t,this._htOption=e};return t.prototype.draw=function(t){for(var e=this._htOption,r=this._el,o=t.getModuleCount(),i=Math.floor(e.width/o),n=Math.floor(e.height/o),a=['<table style="border:0;border-collapse:collapse;">'],s=0;s<o;s++){a.push("<tr>");for(var h=0;h<o;h++)a.push('<td style="border:0;border-collapse:collapse;padding:0;margin:0;width:'+i+"px;height:"+n+"px;background-color:"+(t.isDark(s,h)?e.colorDark:e.colorLight)+';"></td>');a.push("</tr>")}a.push("</table>"),r.innerHTML=a.join("");var l=r.childNodes[0],u=(e.width-l.offsetWidth)/2,f=(e.height-l.offsetHeight)/2;u>0&&f>0&&(l.style.margin=f+"px "+u+"px")},t.prototype.clear=function(){this._el.innerHTML=""},t}():function(){function t(){this._elImage.src=this._elCanvas.toDataURL("image/png"),this._elImage.style.display="block",this._elCanvas.style.display="none"}if(this._android&&this._android<=2.1){var e=1/window.devicePixelRatio,r=CanvasRenderingContext2D.prototype.drawImage;CanvasRenderingContext2D.prototype.drawImage=function(t,o,i,n,a,s,h,l,u){if("nodeName"in t&&/img/i.test(t.nodeName))for(var f=arguments.length-1;f>=1;f--)arguments[f]=arguments[f]*e;else void 0===l&&(arguments[1]*=e,arguments[2]*=e,arguments[3]*=e,arguments[4]*=e);r.apply(this,arguments)}}var o=function(t,e){this._bIsPainted=!1,this._android=C(),this._htOption=e,this._elCanvas=document.createElement("canvas"),this._elCanvas.width=e.width,this._elCanvas.height=e.height,t.appendChild(this._elCanvas),this._el=t,this._oContext=this._elCanvas.getContext("2d"),this._bIsPainted=!1,this._elImage=document.createElement("img"),this._elImage.alt="Scan me!",this._elImage.style.display="none",this._el.appendChild(this._elImage),this._bSupportDataURI=null};return o.prototype.draw=function(t){var e=this._elImage,r=this._oContext,o=this._htOption,i=t.getModuleCount(),n=o.width/i,a=o.height/i,s=Math.round(n),h=Math.round(a);e.style.display="none",this.clear();for(var l=0;l<i;l++)for(var u=0;u<i;u++){var f=t.isDark(l,u),g=u*n,d=l*a;r.strokeStyle=f?o.colorDark:o.colorLight,r.lineWidth=1,r.fillStyle=f?o.colorDark:o.colorLight,r.fillRect(g,d,n,a),r.strokeRect(Math.floor(g)+.5,Math.floor(d)+.5,s,h),r.strokeRect(Math.ceil(g)-.5,Math.ceil(d)-.5,s,h)}this._bIsPainted=!0},o.prototype.makeImage=function(){this._bIsPainted&&function(t,e){var r=this;if(r._fFail=e,r._fSuccess=t,null===r._bSupportDataURI){var o=document.createElement("img"),i=function(){r._bSupportDataURI=!1,r._fFail&&r._fFail.call(r)};return o.onabort=i,o.onerror=i,o.onload=function(){r._bSupportDataURI=!0,r._fSuccess&&r._fSuccess.call(r)},void(o.src="data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==")}!0===r._bSupportDataURI&&r._fSuccess?r._fSuccess.call(r):!1===r._bSupportDataURI&&r._fFail&&r._fFail.call(r)}.call(this,t)},o.prototype.isPainted=function(){return this._bIsPainted},o.prototype.clear=function(){this._oContext.clearRect(0,0,this._elCanvas.width,this._elCanvas.height),this._bIsPainted=!1},o.prototype.round=function(t){return t?Math.floor(1e3*t)/1e3:t},o}();function A(t,e){for(var r=1,i=function(t){var e=encodeURI(t).toString().replace(/\%[0-9a-fA-F]{2}/g,"a");return e.length+(e.length!=t?3:0)}(t),n=0,a=v.length;n<=a;n++){var s=0;switch(e){case o.L:s=v[n][0];break;case o.M:s=v[n][42];break;case o.Q:s=v[n][43];break;case o.H:s=v[n][44]}if(i<=s)break;r++}if(r>v.length)throw new Error("Too long data");return r}(QRCode=function(t,e){if(this._htOption={width:256,height:256,typeNumber:4,colorDark:"#000000",colorLight:"#ffffff",correctLevel:o.H},"string"==typeof e&&(e={text:e}),e)for(var r in e)this._htOption[r]=e[r];"string"==typeof t&&(t=document.getElementById(t)),this._htOption.useSVG&&(D=w),this._android=C(),this._el=t,this._oQRCode=null,this._oDrawing=new D(this._el,this._htOption),this._htOption.text&&this.makeCode(this._htOption.text)}).prototype.makeCode=function(t){this._oQRCode=new e(A(t,this._htOption.correctLevel),this._htOption.correctLevel),this._oQRCode.addData(t),this._oQRCode.make(),this._el.title=t,this._oDrawing.draw(this._oQRCode),this.makeImage()},QRCode.prototype.makeImage=function(){"function"==typeof this._oDrawing.makeImage&&(!this._android||this._android>=3)&&this._oDrawing.makeImage()},QRCode.prototype.clear=function(){this._oDrawing.clear()},QRCode.CorrectLevel=o}(),"undefined"!=typeof module&&(module.exports=QRCode); |
打开 /Handsome/compents/sidebar.php
文件, 找到 <? php if (IS_TOC): ?>
(140行左右)字样,在此行前面添加以下代码
1 | <div id="qrcode" style="color:white;" class="tools-item" title="阅读转移"><span>手机观看</span><br /> |
在 sidebar.php
的最后 <? php endif; ?>
前添加如下代码
1 | <style> |
将 qrcode.min.js
文件上传到合适位置后将以上代码中的链接修改即可
[/collapse]