插件代码上传
34
about/BUYER NOTICE.htm
Normal file
@ -0,0 +1,34 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
购买须知:<span style="color: red; font-weight: bold;">请仔细阅读后再决定是否购买本插件!</span>
|
||||
</p>
|
||||
<ol type="1" start="1" style="color: red;">
|
||||
<li>本插件原则上不提供售后服务。您购买本插件不代表我们会提供一对一服务;也不代表我们会对您使用插件的后果承担责任。</li>
|
||||
<li>代码经过加密混淆,即使您购买,也无法获取源码。</li>
|
||||
<li>您购买本插件,需要遵守相关规则,只有在您购买的账户下可下载本插件。</li>
|
||||
<li>购买本插件,仅代表您有拥有插件的使用权,您无权将插件分享给他人,或通过技术手段对插件所包含任意文件(特别是插件的版权信息)进行修改或删除,或在应用商店中以“收费”插件的形式再次发布本插件相关代码(即您不可通过本插件代码获得任何收益)。</li>
|
||||
<li>本插件属于特殊商品,已经购买概不退货,您已知晓并理解。</li>
|
||||
</ol>
|
||||
<p>
|
||||
为什么不提供售后?
|
||||
</p>
|
||||
<p>
|
||||
说实话,做插件真的不赚钱!真的不赚钱!做插件所投入的时间成本远不止这一点钱可以换来的!设置收费只是希望下载的站长们能够善用这款插件。所以本插件原则上不提供售后服务,但在我能力范围内的问题,我有空时一般都会解答。
|
||||
</p>
|
||||
<p>
|
||||
购买后,支持本插件后续免费升级新版本(如果有)。如果您不愿意购买,请加张小弟之家粉丝群(可在https://only4.work/网站博客下方找到加群方式,点击“张小弟粉丝群”超链接即可加入)并私聊管理员,管理员将安装包单独发给你,但是不提供更新,想要使用新版本需要再次联系管理员。
|
||||
</p>
|
||||
<p>
|
||||
购买和不购买的区别:
|
||||
</p>
|
||||
<ul type="disc">
|
||||
<li>通过应用商店购买的版本原作者的版权可折叠,拍下即可立即下载使用,享受插件所有功能,插件代码严格按照官方开发文档开发,使用更加放心。</li>
|
||||
<li>通过管理员获取的版本原作者的版权不可折叠,不提供后续更新,插件重要功能可能被砍掉,随即删除部分安全代码,可能会留下未知后门。</li>
|
||||
</ul>
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
</body>
|
305
about/readme.html
Normal file
@ -0,0 +1,305 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<style>
|
||||
hr {
|
||||
visibility: initial;
|
||||
display: block;
|
||||
border-style: inset;
|
||||
border-width: 1px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p style="color: red;">
|
||||
<b>特别注意:使用前一定要备份网站,在镜像站中调试确认可用后再部署至主站点上,一定要不要直接在主站点上使用!因使用本插件造成的网站数据丢失或损坏,或其他任何后果,插件作者不承担任何责任,望知晓。介意勿用!下载使用本插件即视为您已阅读并同意本条款。</b>
|
||||
</p>
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
<hr />
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
<p>
|
||||
很高兴你能选择这款插件。这款插件是由张小弟之家综合Z-BlogPHP应用商店中多个免费应用并加以改进优化而成,集多种zblog网站小工具于一身,且不断更新中。
|
||||
</p>
|
||||
<p>
|
||||
目前,这个插件还在测试之中,功能很少,后期会不断更新出更多功能,敬请期待!
|
||||
</p>
|
||||
<p>
|
||||
<b>使用本插件前,请仔细阅读本说明,说明中写明的请不要再问,节约彼此时间,谢谢!</b>
|
||||
</p>
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
<hr />
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
<p>
|
||||
<b>What's new?</b>
|
||||
</p>
|
||||
<p>
|
||||
-- 2020/08/20 -- 1.1.1 --------------------------
|
||||
</p>
|
||||
<p style="color: red;">
|
||||
更新后请关闭插件再开启一次,以完全加载新功能模块。
|
||||
</p>
|
||||
<p>
|
||||
综合了【流年岁月】的【来访蜘蛛统计】插件,增加CSRF防护,更安全。
|
||||
</p>
|
||||
<p>
|
||||
增加了“清除设置”功能。
|
||||
</p>
|
||||
<p>
|
||||
完善了关于页面,更新了截图,增加了彻底卸载本插件的方法。
|
||||
</p>
|
||||
<p>
|
||||
--------------------------------------------------
|
||||
</p>
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
<p>
|
||||
<b>现有功能:</b>
|
||||
</p>
|
||||
<p>
|
||||
指定文章不存在时,404跳转
|
||||
</p>
|
||||
<p>
|
||||
网站变灰(清明节用)
|
||||
</p>
|
||||
<p>
|
||||
代码高亮
|
||||
</p>
|
||||
<p>
|
||||
微信打赏二维码
|
||||
</p>
|
||||
<p>
|
||||
搜索引擎蜘蛛来访统计
|
||||
</p>
|
||||
<p>
|
||||
更多功能开发中,后期会通过插件更新加入新功能,敬请期待...
|
||||
</p>
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
<hr />
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
<p>
|
||||
<p>
|
||||
<b>插件开发环境:</b>Z-BlogPHP 1.6.4.2135 (Valyria)
|
||||
</p>
|
||||
<p>
|
||||
数据库:MySQL (字符集:UTF-8)
|
||||
</p>
|
||||
<p>
|
||||
系统环境:Linux2.6.32; Apache;
|
||||
</p>
|
||||
<p>
|
||||
PHP版本:PHP7.1.3x64;
|
||||
</p>
|
||||
<p>
|
||||
(因为实际环境多种多样,我们无法保证所有环境均可兼容,如果该插件与您使用的环境不兼容,可通过邮箱告知我)
|
||||
</p>
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
<p>
|
||||
<b>最低要求环境:</b>Z-BlogPHP 1.6.4.2135 (Valyria)
|
||||
</p>
|
||||
<p>
|
||||
数据库:MySQL
|
||||
</p>
|
||||
<p>
|
||||
PHP:5.4及以上版本
|
||||
</p>
|
||||
<p>
|
||||
浏览器:建议使用Google或Firefox内核浏览器。<b>使用IE内核将不能获得良好使用体验甚至不能正常使用。</b><br />
|
||||
测试可用:新版Edge浏览器、最新版firefox浏览器、QQ浏览器极速内核;<br />
|
||||
理论支持:谷歌浏览器;<br />
|
||||
不完美支持:QQ浏览器兼容内核、旧版Edge浏览器(可用,但是由于内核原因有小Bug);<br />
|
||||
不支持:IE浏览器、手机浏览器(包括设置电脑版的情况)
|
||||
</p>
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
<p>
|
||||
<b>经测试,确定不可用环境:</b>(该插件不支持此环境,且未来也不会支持此环境,请换用其他插件,谢谢)<br />ASP版本Z-Blog;非MySQL数据库类型(部分子插件不支持SQLite,安装后可能会出现问题);PHP5.3以下版本;上古版本Z-Blog
|
||||
</p>
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
<hr />
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
<p>
|
||||
<b>问题解答 & 下载前须知:</b>
|
||||
</p>
|
||||
<p>
|
||||
<u>为什么要把这些插件综合起来呢?</u>
|
||||
</p>
|
||||
<p>
|
||||
事实上,你完全可以从应用商店里单独下载每一个插件并按需使用。但是这样的话如果装的插件比较多的话,插件管理列表中管理起来会不太方便,而且偶尔会出现两个插件互相不兼容的情况。但是我们将插件综合的过程中,已经测试好了,在本插件内使用多个功能是互不影响互不冲突的。
|
||||
</p>
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
<p>
|
||||
<u>我可以同时使用被本插件综合的插件和本插件吗?</u>
|
||||
</p>
|
||||
<p>
|
||||
这个我们没有测试过。理论上说应该可以,但是我们非常不建议这样做。因为这样做其实是完全没有必要的,使用其中任意一个就够了。您同时使用两个插件虽然在数据库中是互不影响的,但是在执行过程中相当于每个步骤都会被执行两次,可能会出现不可预料的后果。
|
||||
</p>
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
<p>
|
||||
<u>下载本插件后插件作者有义务提供售后服务吗?</u>
|
||||
</p>
|
||||
<p>
|
||||
插件作者无义务为您提供免费的售后或者是咨询义务。出于职业道德,我们一般会回答您的问题,但同时我们也有权拒绝回答。若本插件后期变为收费插件,您的付费视作打赏。
|
||||
</p>
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
<p>
|
||||
<u>下载后发现插件用的不爽,可以在评论区刷屏吗?</u>
|
||||
</p>
|
||||
<p>
|
||||
不能,如果本插件您用的不爽可以清除插件设置并卸载,请勿在评论区刷屏,扰乱整个应用市场的氛围。
|
||||
</p>
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
<p>
|
||||
<u>插件可以用作非法用途吗?</u>
|
||||
</p>
|
||||
<p>
|
||||
本插件绝不允许使用在色情违法或擦边球等涉及到法律问题的网站上,对于这样的站点,本插件不欢迎你的使用,请立刻卸载本插件并关闭本页,谢谢合作。对于非法网站,插件作者拒绝回答任何问题,并上报中央网信办(中央网信办(国家互联网信息办公室)违法和不良信息举报中心,网址:<a href="https://www.12377.cn/" target="_blank">https://www.12377.cn/</a>)。
|
||||
</p>
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
<p>
|
||||
<u>插件后期会提供去除Z-Blog网页底部版权的功能吗?</u>
|
||||
</p>
|
||||
<p>
|
||||
很抱歉,不会。如果您想去除网页底部版权信息,请购买zblog商业授权,链接:<a href="https://www.zblogcn.com/service/" target="_blank">https://www.zblogcn.com/service/</a>
|
||||
</p>
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
<hr />
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
<p>
|
||||
<b>如何彻底卸载本插件?</b>
|
||||
</p>
|
||||
<p>
|
||||
1. 首先,在插件设置页面,点击右上角“清除设置”按钮,然后弹出的确认框点是,清空插件的配置信息。
|
||||
</p>
|
||||
<p>
|
||||
2. 然后,禁用插件并卸载。
|
||||
</p>
|
||||
<p>
|
||||
3. 最后,登录后台数据库,删除数据表【表前缀_zxd_ctrlcenter_spider】
|
||||
</p>
|
||||
<p>
|
||||
4. 卸载完成
|
||||
</p>
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
<hr />
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
<p>
|
||||
如果您有问题,有建议,有想法,都欢迎通过邮箱联系我。欢迎大家前来提提建议或者意见,我会努力不断优化改进本插件的。
|
||||
</p>
|
||||
<p>
|
||||
如果您是插件的开发者,我们集成了您的插件,但是你不希望你的插件被我们集成,请通过邮箱联系我(邮箱见下方),我们会在下一个版本中移除您的插件。
|
||||
</p>
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
<hr />
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
<p>
|
||||
本人现为在校大学生,初来乍到,虽然都是按照开发文档规范开发的,但是我不能保证插件兼容性和稳定性。<b>限于本人能力有限,可能有很多你们问的问题我也不知道如何解决,还请多多理解!</b><strong><a href="https://only4.work/" target="_blank" style="color: #b0cc19;">张小弟之家</a></strong>是我的个人网站。有兴趣可以来逛逛。内容比较杂,还请多多指正。
|
||||
</p>
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
<p>
|
||||
<b>联系方式:</b>
|
||||
</p>
|
||||
<p>
|
||||
联系邮箱:admin@mail.only4.work
|
||||
</p>
|
||||
<p>
|
||||
备用邮箱:zhangxiaodi412@vip.qq.com
|
||||
</p>
|
||||
<p>
|
||||
张小弟粉丝群:134702641(新创QQ群,人数较少)
|
||||
</p>
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
<hr />
|
||||
<p>
|
||||
<b>后台截图:</b>
|
||||
</p>
|
||||
<img src="https://app.zblogcn.com/zb_users/upload/2020/08/202008201597928188663498.png" width="49.8%"/><img src="https://app.zblogcn.com/zb_users/upload/2020/08/202008201597928227105582.png" width="49.8%"/>
|
||||
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
<hr />
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
<p>
|
||||
<b>往期版本更新日志</b>
|
||||
</p>
|
||||
<p>
|
||||
-- 2020/07/12 -- 1.0.0 --------------------------
|
||||
</p>
|
||||
<p>
|
||||
第一版横空出世!
|
||||
</p>
|
||||
<p>
|
||||
综合了【Thx】的【自定义404链接】插件
|
||||
</p>
|
||||
<p>
|
||||
综合了【xiandan】的【整站变灰】插件
|
||||
</p>
|
||||
<p>
|
||||
综合了【隔壁老李】的【野路子代码显示优化 Plus】插件
|
||||
</p>
|
||||
<p>
|
||||
综合了【阿木林】的【微信打赏】插件
|
||||
</p>
|
||||
<p>
|
||||
修改了几处相对路径问题,可支持非根目录下安装的 Z-Blog PHP 程序
|
||||
</p>
|
||||
<p>
|
||||
对综合的插件均进行了改动优化,使之使用起来更加方便易用。
|
||||
</p>
|
||||
<p>
|
||||
保留插件原作者的全部版权信息,在设置页最后可以很方便的查看!
|
||||
</p>
|
||||
<p>
|
||||
--------------------------------------------------
|
||||
</p>
|
||||
<p>
|
||||
<br/>
|
||||
</p>
|
||||
</body>
|
9
config.php
Normal file
@ -0,0 +1,9 @@
|
||||
<?php
|
||||
global $zbp;
|
||||
// 全局变量
|
||||
$zbp->Config('zxd_ctrlcenter')->relativepath = 'zb_users/plugin/zxd_ctrlcenter/';
|
||||
$zbp->Config('zxd_ctrlcenter')->path = $blogpath.'zb_users/plugin/zxd_ctrlcenter/';
|
||||
$zbp->Config('zxd_ctrlcenter')->urlpath = $bloghost.'zb_users/plugin/zxd_ctrlcenter/';
|
||||
|
||||
|
||||
// $zbp->host
|
95
include.php
Normal file
@ -0,0 +1,95 @@
|
||||
<?php
|
||||
#注册插件
|
||||
RegisterPlugin("zxd_ctrlcenter","ActivePlugin_zxd_ctrlcenter");
|
||||
|
||||
require ZBP_PATH . 'zb_users/plugin/zxd_ctrlcenter/plugin/404/include.php'; // 404
|
||||
require ZBP_PATH . 'zb_users/plugin/zxd_ctrlcenter/plugin/grey/include.php'; // 网站变黑
|
||||
require ZBP_PATH . 'zb_users/plugin/zxd_ctrlcenter/plugin/code/include.php'; // 代码显示优化
|
||||
require ZBP_PATH . 'zb_users/plugin/zxd_ctrlcenter/plugin/wxreward/include.php'; // 微信打赏
|
||||
require ZBP_PATH . 'zb_users/plugin/zxd_ctrlcenter/plugin/spider/include.php'; // 蜘蛛来访
|
||||
|
||||
function ActivePlugin_zxd_ctrlcenter() {
|
||||
// 添加 顶部快捷方式
|
||||
Add_Filter_Plugin('Filter_Plugin_Admin_TopMenu','zxd_ctrlcenter_AddMenu');
|
||||
|
||||
global $zbp;
|
||||
if($zbp->Config('zxd_ctrlcenter')-> plugin_404_Enable)
|
||||
Add_Filter_Plugin('Filter_Plugin_Zbp_ShowError', 'zxd_ctrlcenter_404'); // 404
|
||||
if($zbp->Config('zxd_ctrlcenter')-> plugin_grey_Enable)
|
||||
Add_Filter_Plugin('Filter_Plugin_Zbp_MakeTemplatetags','zxd_ctrlcenter_grey'); // 网站变黑
|
||||
if($zbp->Config('zxd_ctrlcenter')-> plugin_code_Enable)
|
||||
Add_Filter_Plugin('Filter_Plugin_ViewPost_Template', 'zxd_ctrlcenter_code'); // 代码显示优化
|
||||
if($zbp->Config('zxd_ctrlcenter')-> plugin_wxreward_Enable) {
|
||||
Add_Filter_Plugin('Filter_Plugin_Zbp_MakeTemplatetags','zxd_ctrlcenter_wxreward_js'); // 微信打赏
|
||||
Add_Filter_Plugin('Filter_Plugin_ViewPost_Template','zxd_ctrlcenter_wxreward_html');
|
||||
}
|
||||
if($zbp->Config('zxd_ctrlcenter')-> plugin_spider_Enable){
|
||||
Add_Filter_Plugin('Filter_Plugin_Index_End','zxd_ctrlcenter_Index_End'); // 蜘蛛来访 抓取统计
|
||||
}
|
||||
|
||||
// 判断表格是否存在在,如果不存在就创建表
|
||||
zxd_ctrlcenter_spider_CreateTable();
|
||||
}
|
||||
|
||||
function InstallPlugin_zxd_ctrlcenter() {
|
||||
// 蜘蛛来访
|
||||
global $zbp;
|
||||
//配置初始化,判断是否是安装插件后第一次启动
|
||||
if (!$zbp->Config('zxd_ctrlcenter') -> HasKey('zxd_ctrlcenter_version')) {
|
||||
$zbp->Config('zxd_ctrlcenter') -> zxd_ctrlcenter_version = '1.1.1';
|
||||
|
||||
$zbp->Config('zxd_ctrlcenter') -> plugin_spider_viewconut ='20';
|
||||
$zbp->Config('zxd_ctrlcenter') -> plugin_spider_spiders = 'Baiduspider,Baidu|Googlebot,Google|Sosospider,SoSo|YoudaoBot,YouDao|bingbot,Bing|Sogou web spider,SoGou|Yahoo! Slurp,Yahoo|Alexa,Alexa|360Spider,So';
|
||||
|
||||
$zbp->SaveConfig('zxd_ctrlcenter');
|
||||
}
|
||||
|
||||
// 判断表格是否存在在,如果不存在就创建表
|
||||
zxd_ctrlcenter_spider_CreateTable();
|
||||
|
||||
}
|
||||
function UninstallPlugin_zxd_ctrlcenter() {
|
||||
// 微信打赏
|
||||
// global $zbp;
|
||||
// $zbp->DelConfig('zxd_ctrlcenter');
|
||||
|
||||
// 蜘蛛来访
|
||||
// global $zbp;
|
||||
// $zbp->DelConfig('SpiderStatistics');
|
||||
// zxd_ctrlcenter_spider_DelTable();
|
||||
}
|
||||
|
||||
|
||||
// 顶部快捷方式
|
||||
function zxd_ctrlcenter_AddMenu(&$m){
|
||||
global $zbp;
|
||||
$m[]=MakeTopMenu('root', '控制中心', $zbp->host . 'zb_users/plugin/zxd_ctrlcenter/main.php','','topmenu_zxd_ctrlcenter_spider');
|
||||
}
|
||||
|
||||
// 蜘蛛来访
|
||||
function zxd_ctrlcenter_Index_End() {
|
||||
global $zbp;
|
||||
$array = array();
|
||||
$agent = null;
|
||||
$status = null;
|
||||
$url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
|
||||
$ip = GetGuestIP();
|
||||
$datetime = time();
|
||||
|
||||
$spiders = explode('|', $zbp->Config('zxd_ctrlcenter') -> plugin_spider_spiders);
|
||||
|
||||
foreach ($spiders as $key => $spider) {
|
||||
$spidername = explode(',', $spider);
|
||||
if(strpos(GetGuestAgent(), $spidername[0]) !== false) {
|
||||
$agent = $spidername[1];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if($url && $agent) {
|
||||
$array = array('Spider_Name' => $agent, 'Spider_IP' => $ip, 'Spider_DateTime' => $datetime, 'Spider_Url' => $url, 'Spider_Status' => 200);
|
||||
|
||||
$sql = $zbp->db->sql->Insert($zbp->table['zxd_ctrlcenter_spider'], $array);
|
||||
$zbp->db->Insert($sql);
|
||||
}
|
||||
}
|
187
main.php
Normal file
@ -0,0 +1,187 @@
|
||||
<?php
|
||||
/* 公共头部开始 */
|
||||
require '../../../zb_system/function/c_system_base.php';
|
||||
require '../../../zb_system/function/c_system_admin.php';
|
||||
|
||||
$zbp->Load();
|
||||
$action = 'root';
|
||||
if (!$zbp->CheckRights($action)) { $zbp->ShowError(6); die(); }
|
||||
if (!$zbp->CheckPlugin('zxd_ctrlcenter')) { $zbp->ShowError(48); die(); }
|
||||
|
||||
$blogtitle = '控制中心';
|
||||
require $blogpath . 'zb_system/admin/admin_header.php';
|
||||
require $blogpath . 'zb_system/admin/admin_top.php';
|
||||
/* 公共头部结束 */
|
||||
|
||||
// 当前用户打开的子插件
|
||||
if(!empty($_GET['plugin']))
|
||||
$PluginName = trim($_GET['plugin']); // trim函数去除获得参数的首尾空格
|
||||
else
|
||||
$PluginName = "";
|
||||
if($PluginName=="home") $PluginName=""; // 如果请求的是首页,$PluginName设置为空
|
||||
|
||||
// 初始化全局变量
|
||||
require $blogpath.'zb_users/plugin/zxd_ctrlcenter/config.php';
|
||||
|
||||
// 为后续两次遍历定义变量
|
||||
$dir=$zbp->Config('zxd_ctrlcenter')->path.'plugin/'; // 遍历子插件所在Plugin目录
|
||||
$file_arr = scandir($dir);
|
||||
?>
|
||||
|
||||
<div id="divMain">
|
||||
<div class="divHeader"><?php echo $blogtitle; ?></div>
|
||||
<div class="SubMenu">
|
||||
<!--左侧功能按钮-->
|
||||
<a href="./main.php"><span class="m-left<?php if ($PluginName == "") echo " m-now"; ?>">首页</span></a>
|
||||
<?php
|
||||
foreach($file_arr as $item){
|
||||
if($item!=".." && $item !=".") /* 排除..和.的情况 */ {
|
||||
if(is_dir($dir."/".$item)) /* 判断是否为目录 */ {
|
||||
$newpath = $dir.$item."/"; /* 子插件所在路径 */
|
||||
include $newpath.'manage/config.php'; /* 包含插件名称$PluginTitle */
|
||||
?>
|
||||
<a href="./main.php?plugin=<?php echo $item; ?>"><span class="m-left<?php if ($PluginName == $item) echo " m-now"; ?>"><?php if(trim($PluginShortTitle)=="") echo $PluginTitle; else echo $PluginShortTitle; ?></span></a>
|
||||
<td style="text-align: left;"></td>
|
||||
<?php
|
||||
/* 清除遍历的变量,以免影响后续 */
|
||||
$PluginTitle = "";
|
||||
$PluginShortTitle = "";
|
||||
$PluginIntro = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
<!--右侧功能按钮-->
|
||||
<a href="./main.php?plugin=DeleteConfig"><span class="m-right<?php if ($PluginName == "DeleteConfig") echo " m-now"; ?>">清除设置</span></a>
|
||||
<a href="./main.php?plugin=about"><span class="m-right<?php if ($PluginName == "about") echo " m-now"; ?>">关于</span></a>
|
||||
</div>
|
||||
<div id="divMain2"><!--代码-->
|
||||
<?php
|
||||
$PluginTitle = ""; // 将要显示在插件设置页的插件标题后缀(格式:控制中心 - XXX)
|
||||
|
||||
if($PluginName == "") /* 首页 */ {
|
||||
?><table style="width: 100%;">
|
||||
<tr style="text-align: center; font-weight: bold;"> <!-- font-size: medium; -->
|
||||
<td></td>
|
||||
<td>子插件名称</td>
|
||||
<td>操作</td>
|
||||
</tr><?php
|
||||
foreach($file_arr as $item){
|
||||
if($item!=".." && $item !="."){
|
||||
if(is_dir($dir."/".$item)){
|
||||
$newpath = $dir.$item."/";
|
||||
$newurlpath = str_replace($zbp->Config('zxd_ctrlcenter')->path,$zbp->Config('zxd_ctrlcenter')->urlpath,$newpath);
|
||||
include $newpath.'manage/config.php'; /*包含插件的名称$PluginTitle*/
|
||||
include $newpath.'manage/status.php'; // 检查插件是否启用,status.php
|
||||
?>
|
||||
<tr>
|
||||
<td class="td5"><img src="<?php echo $newurlpath."logo.png"; ?>" style="width:32px; height:32px;"/></td>
|
||||
<td style="text-align: left;"><?php echo $PluginTitle; ?></td>
|
||||
<td class="td10" style="text-align: center;">
|
||||
<a><img width="16" alt="停用"
|
||||
src="<?php if($pluginstatus) { echo $bloghost.'zb_system/image/admin/control-power.png'; }
|
||||
else { echo $bloghost.'zb_system/image/admin/control-power-off.png'; } ?>"
|
||||
title="<?php if($pluginstatus) { echo "禁用"; } else { echo "启用";} ?>"
|
||||
onclick="window.open().location = '<?php echo @$newurlpath.'manage/status.php?include=c_system_base&action='; if($pluginstatus) { echo 'dis'; } else { echo 'enb';} ?>'; "></a><!--location.reload();-->
|
||||
|
||||
<a href="./main.php?plugin=<?php echo $item; ?>" title="管理" class="button"><img width="16" alt="管理" src="<?php echo $bloghost;?>zb_system/image/admin/setting_tools.png"></a></td>
|
||||
</tr>
|
||||
<?php
|
||||
|
||||
/* 清除遍历的变量,以免影响后续 */
|
||||
$PluginTitle = "";
|
||||
$PluginShortTitle = "";
|
||||
$PluginIntro = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
?></table><?php
|
||||
|
||||
} elseif ($PluginName == "about") /* 关于页 */ {
|
||||
require $zbp->Config('zxd_ctrlcenter')->path.'about/readme.html'; // 插件介绍,readme.html
|
||||
$copyrightfilepath = $zbp->Config('zxd_ctrlcenter')->relativepath; // 设置版权信息文件,plugin.xml
|
||||
include $zbp->Config('zxd_ctrlcenter')->path.'public/copyright.php'; // 添加版权信息
|
||||
$PluginTitle = "关于";
|
||||
|
||||
} elseif ($PluginName == "DeleteConfig") /* 清除设置 */ {// style="hidden
|
||||
// $PluginTitle = "清除所有设置";
|
||||
?>
|
||||
<div id="DeleteConfigHiddenInfo">
|
||||
<script>
|
||||
if(!confirm("你要清除本插件的全部设置吗?") ||
|
||||
!confirm('你真的想要清除本插件的全部设置吗?\r\n注意:插件设置一经清除,无法恢复!\r\n您确认要清除吗?')){
|
||||
document.writeln("根据您的选择,未清除插件设置。");
|
||||
document.writeln("正在返回插件首页...");
|
||||
window.location.href="./main.php";
|
||||
} else {
|
||||
<?php //require $zbp->Config('zxd_ctrlcenter')->path.'public/Delete-ctrlcenter-Config.php'; ?>
|
||||
window.location.href="./public/ctrlcenter_config.php?action=Delete";
|
||||
document.writeln("插件设置已清除。");
|
||||
}
|
||||
</script>
|
||||
</div><?php
|
||||
|
||||
// $result2 ="<script>var result = confirm('你真的想要清除本插件的全部设置吗?\\r\\n注意:插件设置一经清除,无法恢复!\\r\\n您确认要清除吗?'); document.writeln(result);</script>";
|
||||
// echo '<script> result2 = document.getElementById("DeleteConfigContent"); result2.innerHTML = '.$result2.'; result2.innerHTML = "";</script>';
|
||||
// if($result2!="true") { goto QuitDeleteConfig; }
|
||||
|
||||
//require $zbp->Config('zxd_ctrlcenter')->path.'public/Delete-ctrlcenter-Config.php'; //
|
||||
|
||||
//
|
||||
// if(!$result1)
|
||||
// $result ="<script>var result = confirm('你真的想要清除本插件的全部设置吗?\\r\\n注意:插件设置一经清除,无法恢复!\\r\\n您确认要清除吗?'); document.writeln(result);</script>";
|
||||
// if($result){
|
||||
|
||||
// }
|
||||
|
||||
} else /* 插件页(或者插件不存在) */ {
|
||||
require $zbp->Config('zxd_ctrlcenter')->path.'plugin/'.$PluginName.'/manage/status.php'; // 检查插件是否启用,status.php【如果插件不存在这里会报错】
|
||||
require $zbp->Config('zxd_ctrlcenter')->path.'plugin/'.$PluginName.'/manage/config.php'; // 插件config页,config.php(包含插件的名称$PluginTitle)
|
||||
if($PluginIntro!="") // 如果插件有信息页面,则输出信息页面,否则不输出
|
||||
echo $PluginIntro."<br />"; // 插件config页,config.php中的$PluginIntro变量
|
||||
if($pluginstatus) /* 插件已启用 */ {
|
||||
require $zbp->Config('zxd_ctrlcenter')->path.'public/plugin-disbtn.php'; // 添加禁用插件按钮
|
||||
echo "<br />";
|
||||
if(file_exists($zbp->Config('zxd_ctrlcenter')->path.'plugin/'.$PluginName.'/main.php')) // 如果插件有设置页面,则输出设置页面,否则不输出
|
||||
require $zbp->Config('zxd_ctrlcenter')->path.'plugin/'.$PluginName.'/main.php'; // 插件设置页,main.php
|
||||
} else /* 插件未启用 */ {
|
||||
require $zbp->Config('zxd_ctrlcenter')->path.'public/plugin-enbbtn.php'; // 添加启用插件按钮
|
||||
echo "<br />";
|
||||
}
|
||||
$copyrightfilepath =$zbp->Config('zxd_ctrlcenter')->relativepath.'plugin/'.$PluginName.'/'; // 设置版权信息文件,plugin.xml
|
||||
include $zbp->Config('zxd_ctrlcenter')->path.'public/copyright.php'; // 添加版权信息
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--添加标题栏的标题-->
|
||||
<script type="text/javascript">
|
||||
AddHeaderIcon("<?php echo $zbp->Config('zxd_ctrlcenter')->urlpath . 'logo.png'; ?>");
|
||||
</script>
|
||||
|
||||
<!-- 激活顶部快捷方式 -->
|
||||
<script type="text/javascript">
|
||||
ActiveTopMenu("topmenu_zxd_ctrlcenter_spider");
|
||||
</script>
|
||||
|
||||
<!--在标题后加上插件的名字-->
|
||||
<?php if ($PluginTitle!= ""): ?>
|
||||
<script>
|
||||
function AddPluginName() {
|
||||
// 添加子插件名称
|
||||
document.getElementsByClassName("divHeader")[0].innerHTML += " - <?php echo $PluginTitle; ?>";
|
||||
// 启用/禁用插件的控制按钮前“引号”中的子插件名称
|
||||
obj = document.getElementById("pluginName");
|
||||
if (obj) obj.innerHTML = "“<?php echo $PluginTitle; ?>”";
|
||||
}
|
||||
AddPluginName();
|
||||
</script>
|
||||
<?php endif; ?>
|
||||
|
||||
<!--添加页脚-->
|
||||
<?php
|
||||
require $blogpath . 'zb_system/admin/admin_footer.php';
|
||||
RunTime();
|
||||
?>
|
46
plugin.xml
Normal file
@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<plugin version="php">
|
||||
<id>zxd_ctrlcenter</id>
|
||||
<name>控制中心</name>
|
||||
<url></url>
|
||||
<note>【使用前务必仔细阅读说明!】集多种zblog网站小工具于一身,不断更新中...</note>
|
||||
<description>集多种zblog网站小工具于一身,不断更新中...
|
||||
欢迎大家前来提提建议或者意见,我会努力不断优化改进本插件的。
|
||||
使用前一定要备份网站,在测试站调试好后再部署到主要站点上,如果因为使用本插件导致网站数据丢失,作者不承担任何责任,谢谢理解!</description>
|
||||
<path>main.php</path>
|
||||
<include>include.php</include>
|
||||
<level>1</level>
|
||||
<author>
|
||||
<name>张小弟之家</name>
|
||||
<email>2291200076@vip.qq.com</email>
|
||||
<url>https://only4.work/</url>
|
||||
</author>
|
||||
<source>
|
||||
<name></name>
|
||||
<email></email>
|
||||
<url></url>
|
||||
</source>
|
||||
<adapted>162135</adapted>
|
||||
<version>1.1.1</version>
|
||||
<pubdate>2020-07-06</pubdate>
|
||||
<modified>2020-08-20</modified>
|
||||
<price>0</price>
|
||||
<phpver>5.4</phpver>
|
||||
<advanced>
|
||||
<dependency></dependency>
|
||||
<rewritefunctions></rewritefunctions>
|
||||
<existsfunctions></existsfunctions>
|
||||
<conflict></conflict>
|
||||
</advanced>
|
||||
<sidebars>
|
||||
<sidebar1></sidebar1>
|
||||
<sidebar2></sidebar2>
|
||||
<sidebar3></sidebar3>
|
||||
<sidebar4></sidebar4>
|
||||
<sidebar5></sidebar5>
|
||||
<sidebar6></sidebar6>
|
||||
<sidebar7></sidebar7>
|
||||
<sidebar8></sidebar8>
|
||||
<sidebar9></sidebar9>
|
||||
</sidebars>
|
||||
</plugin>
|
25
plugin/404/include.php
Normal file
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
function zxd_ctrlcenter_404(){
|
||||
global $zbp;
|
||||
if(!$zbp->Config('zxd_ctrlcenter')->plugin_404_Enable)
|
||||
return false;
|
||||
|
||||
if (!in_array("Status: 404 Not Found", headers_list())) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$url = $zbp->Config('zxd_ctrlcenter')->plugin_404_redirect_url;
|
||||
|
||||
$delay = $zbp->Config('zxd_ctrlcenter')->delay ?: 0;
|
||||
if ($url && preg_match("/^http[s]?:\/\/.+\.\w+/", $url)){
|
||||
// 采用 js 跳转兼容性好
|
||||
if ($delay==0 && function_exists("RedirectByScript")) {
|
||||
RedirectByScript($url);
|
||||
}else{
|
||||
// 采用 html
|
||||
echo '<meta http-equiv="refresh" content="0;url=' . $url . '">';
|
||||
die();
|
||||
}
|
||||
}
|
||||
}
|
BIN
plugin/404/logo.png
Normal file
After Width: | Height: | Size: 9.1 KiB |
68
plugin/404/main.php
Normal file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
$redirect_url = GetVars('redirect_url', 'POST');
|
||||
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
||||
if ($redirect_url != "" && !preg_match("/^http[s]{0,1}:\/\/.+\.\w+/", $redirect_url)) {
|
||||
$zbp->ShowHint('bad', '自定义 Url 不正确');
|
||||
} else {
|
||||
$zbp->Config('zxd_ctrlcenter')-> plugin_404_redirect_url = $redirect_url;
|
||||
$zbp->SaveConfig('zxd_ctrlcenter');
|
||||
$zbp->ShowHint('good');
|
||||
}
|
||||
}
|
||||
?>
|
||||
<!--代码-->
|
||||
<div class="content-box-content">
|
||||
<!--收录设置-->
|
||||
<div id="tab-fetch" class="tab-content default-tab"
|
||||
style="border:none;padding:0px;margin:0;">
|
||||
<div style="clear:both;"></div>
|
||||
<form name="Thx_auto_link_fetch" method="post">
|
||||
<?php if (function_exists('CheckIsRefererValid')) {
|
||||
echo '<input type="hidden" name="csrfToken" value="' . $zbp->GetCSRFToken() . '">';
|
||||
}
|
||||
?>
|
||||
<table name='base' style="padding:0px;margin:0px;width:100%;">
|
||||
<tr>
|
||||
<th width="20%">
|
||||
<p>
|
||||
<b>配置项</b>
|
||||
</p>
|
||||
</th>
|
||||
<th width="50%">
|
||||
<p>
|
||||
<b>设置</b>
|
||||
</p>
|
||||
</th>
|
||||
<th width="30%">
|
||||
<p>
|
||||
<b>说明</b>
|
||||
</p>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p align="center">
|
||||
<b>重定向链接</b>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<input type="url" id="redirect_url" name="redirect_url"
|
||||
value="<?php if ($zbp->Config('zxd_ctrlcenter')->plugin_404_redirect_url) {
|
||||
echo $zbp->Config('zxd_ctrlcenter')->plugin_404_redirect_url ?: 0;
|
||||
}
|
||||
?>">
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<span align="center">输入重定向的【完整】链接地址</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p></p>
|
||||
<input type="submit" class="button" value="<?php echo $lang['msg']['submit'] ?>" />
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
3
plugin/404/manage/config.php
Normal file
@ -0,0 +1,3 @@
|
||||
<?php
|
||||
$PluginTitle = "自定义404链接";
|
||||
$PluginShortTitle = "404页面";
|
34
plugin/404/manage/status.php
Normal file
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
if(!empty($_GET['include'])&&$_GET['include']=="c_system_base"){
|
||||
// 单独打开时需要引入这个,不然$zbp未定义
|
||||
include_once '../../../../../../zb_system/function/c_system_base.php';
|
||||
}
|
||||
|
||||
global $zbp;
|
||||
if(empty($_GET['action']))
|
||||
$status_action = "";
|
||||
else
|
||||
$status_action = $_GET['action'];
|
||||
|
||||
$Close = '<script>window.close(); window.opener.location.reload(); </script>';
|
||||
switch ($status_action) {
|
||||
case 'chk':
|
||||
$pluginstatus = $zbp->Config('zxd_ctrlcenter')-> plugin_404_Enable;
|
||||
break;
|
||||
case 'enb':
|
||||
$zbp->Config('zxd_ctrlcenter')-> plugin_404_Enable = true;
|
||||
$zbp->SaveConfig('zxd_ctrlcenter');
|
||||
echo $Close;
|
||||
break;
|
||||
case 'dis':
|
||||
$zbp->Config('zxd_ctrlcenter')-> plugin_404_Enable = false;
|
||||
$zbp->SaveConfig('zxd_ctrlcenter');
|
||||
echo $Close;
|
||||
break;
|
||||
|
||||
default:
|
||||
$pluginstatus = $zbp->Config('zxd_ctrlcenter')-> plugin_404_Enable;
|
||||
break;
|
||||
}
|
||||
?>
|
||||
|
44
plugin/404/plugin.xml
Normal file
@ -0,0 +1,44 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<plugin version="php">
|
||||
<id>ThxPage404</id>
|
||||
<name>自定义404链接</name>
|
||||
<url></url>
|
||||
<note>自定义404链接</note>
|
||||
<description>当页面出现404时可以自定义跳转链接</description>
|
||||
<path>main.php</path>
|
||||
<include>include.php</include>
|
||||
<level>1</level>
|
||||
<author>
|
||||
<name>Thx</name>
|
||||
<email>null@null.com</email>
|
||||
<url>www.izy123.com</url>
|
||||
</author>
|
||||
<source>
|
||||
<name></name>
|
||||
<email></email>
|
||||
<url></url>
|
||||
</source>
|
||||
<adapted>151935</adapted>
|
||||
<version>1.0</version>
|
||||
<pubdate>2019-11-07</pubdate>
|
||||
<modified>2020-04-22</modified>
|
||||
<price>0</price>
|
||||
<phpver>5.6</phpver>
|
||||
<advanced>
|
||||
<dependency></dependency>
|
||||
<rewritefunctions></rewritefunctions>
|
||||
<existsfunctions></existsfunctions>
|
||||
<conflict></conflict>
|
||||
</advanced>
|
||||
<sidebars>
|
||||
<sidebar1></sidebar1>
|
||||
<sidebar2></sidebar2>
|
||||
<sidebar3></sidebar3>
|
||||
<sidebar4></sidebar4>
|
||||
<sidebar5></sidebar5>
|
||||
<sidebar6></sidebar6>
|
||||
<sidebar7></sidebar7>
|
||||
<sidebar8></sidebar8>
|
||||
<sidebar9></sidebar9>
|
||||
</sidebars>
|
||||
</plugin>
|
1
plugin/code/clipboard.min.js
vendored
Normal file
BIN
plugin/code/font/monaco-webfont.eot
Normal file
239
plugin/code/font/monaco-webfont.svg
Normal file
@ -0,0 +1,239 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata>
|
||||
This is a custom SVG webfont generated by Font Squirrel.
|
||||
Copyright : 199091 Apple Computer Inc 199091 Type Solutions Inc 199091 The Font Bureau Inc
|
||||
</metadata>
|
||||
<defs>
|
||||
<font id="webfontyFRf53FT" horiz-adv-x="1229" >
|
||||
<font-face units-per-em="2048" ascent="1638" descent="-410" />
|
||||
<missing-glyph horiz-adv-x="500" />
|
||||
<glyph unicode=" " />
|
||||
<glyph unicode="!" d="M529 442l-46 1110h248l-47 -1110h-155zM615 -47q-59 0 -101.5 42.5t-42.5 101.5t42.5 101t101.5 42q58 0 100.5 -41.5t42.5 -101.5t-43 -102t-100 -42z" />
|
||||
<glyph unicode=""" d="M465 1055h-128l-64 559h249zM896 1055h-127l-57 559h244z" />
|
||||
<glyph unicode="#" d="M71 419v140h196l110 411h-306v139h341l117 443h146l-117 -443h283l122 443h146l-120 -443h168v-139h-207l-109 -411h316v-140h-355l-114 -419h-148l116 419h-279l-110 -419h-148l111 419h-159zM414 559h280l113 411h-286z" />
|
||||
<glyph unicode="$" d="M580 -155v157q-67 0 -139 7t-135 21.5t-145 51.5v192q66 -34 129.5 -58t134 -38t155.5 -20v557l-107 58q-304 163 -304 394q0 123 101 239.5t310 134.5v166h140v-166q118 0 279 -41v-173l-35 10q-151 42 -244 51v-544l112 -64q158 -91 216.5 -179t58.5 -187 q0 -89 -44.5 -172.5t-127.5 -143.5t-215 -83v-170h-140zM580 928v462q-101 -23 -155.5 -76t-54.5 -124q0 -67 46.5 -128.5t163.5 -133.5zM720 632v-460q109 39 147.5 95.5t38.5 126.5q0 68 -38 116.5t-148 121.5z" />
|
||||
<glyph unicode="%" d="M314 1552q145 0 227.5 -108t82.5 -280q0 -173 -82.5 -280.5t-227.5 -107.5t-228 107.5t-83 280.5q0 172 83 280t228 108zM314 1427q-81 0 -118 -77.5t-37 -185.5q0 -109 37 -186.5t118 -77.5q80 0 117.5 77.5t37.5 186.5q0 108 -37.5 185.5t-117.5 77.5zM166 -47h-164 l1061 1645h165zM912 776q139 0 226 -104t87 -268q0 -189 -92 -296.5t-223 -107.5q-128 0 -217 102.5t-89 285.5q0 174 84 281t224 107zM915 652q-79 0 -117 -76t-38 -194q0 -131 46 -194.5t108 -63.5q66 0 111 69t45 199q0 102 -37.5 181t-117.5 79z" />
|
||||
<glyph unicode="&" d="M881 130q-99 -104 -195.5 -140.5t-208.5 -36.5q-214 0 -344.5 121t-130.5 309q0 263 274 491q-82 103 -123.5 192.5t-41.5 166.5q0 93 49 181t135 136t190 48q138 0 231 -74t93 -212q0 -101 -56.5 -202t-234.5 -236l354 -436q15 50 19.5 82t7.5 117t3 105v49h186v-47 q0 -66 -14 -189.5t-84 -262.5l238 -292h-238zM421 992q101 71 160 155.5t59 152.5q0 65 -41.5 111.5t-129.5 46.5q-76 0 -124 -56t-48 -137q0 -45 12 -91.5t90 -151.5zM778 254l-405 498q-190 -164 -190 -354q0 -130 87 -210t211 -80q66 0 133 23t164 123z" />
|
||||
<glyph unicode="'" d="M683 993h-134l-105 621h341z" />
|
||||
<glyph unicode="(" d="M1072 -372q-277 17 -467 156.5t-303.5 376.5t-113.5 475t113.5 475t303.5 376.5t467 157.5v-156q-209 -19 -359.5 -140.5t-236.5 -309.5t-86 -403t86 -403t236.5 -309t359.5 -141v-155z" />
|
||||
<glyph unicode=")" d="M157 1645q277 -18 467 -157.5t303.5 -376.5t113.5 -475t-113.5 -475t-303.5 -376.5t-467 -156.5v155q209 20 359.5 141t237 309t86.5 403t-86.5 403t-237 309.5t-359.5 140.5v156z" />
|
||||
<glyph unicode="*" d="M519 659l21 347l-283 -190l-93 162l307 150l-307 152l93 159l283 -189l-21 348h188l-26 -348l289 189l94 -159l-308 -152l308 -150l-94 -162l-289 190l26 -347h-188z" />
|
||||
<glyph unicode="+" d="M1157 621v-156h-465v-465h-156v465h-465v156h465v465h156v-465h465z" />
|
||||
<glyph unicode="," d="M424 -434v124q72 19 109.5 54.5t60 90t22.5 131.5q-93 0 -137 52.5t-44 112.5q0 69 49 116.5t114 47.5q84 0 145 -72.5t61 -198.5q0 -110 -48 -207.5t-130.5 -166.5t-201.5 -84z" />
|
||||
<glyph unicode="-" d="M227 551v155h776v-155h-776z" />
|
||||
<glyph unicode="." d="M614 -47q-67 0 -115 48t-48 115q0 68 48.5 115.5t114.5 47.5t114.5 -47.5t48.5 -115.5q0 -67 -48 -115t-115 -48z" />
|
||||
<glyph unicode="/" d="M216 -47h-183l987 1645h177z" />
|
||||
<glyph unicode="0" d="M614 1598q265 0 404 -222.5t139 -599.5q0 -378 -139 -600.5t-404 -222.5q-264 0 -403.5 222.5t-139.5 600.5q0 377 139.5 599.5t403.5 222.5zM311 444l537 841q-51 93 -110.5 125.5t-123.5 32.5q-167 0 -254 -185.5t-87 -470.5q0 -65 4 -140t34 -203zM915 1100l-533 -846 q43 -73 99 -109.5t125 -36.5q190 0 270 212.5t80 471.5q0 160 -41 308z" />
|
||||
<glyph unicode="1" d="M568 155v1198q-84 -67 -163 -114t-217 -96v168q219 93 380 241h186v-1397h373v-155h-939v155h380z" />
|
||||
<glyph unicode="2" d="M1088 0h-939v171q0 66 27 141.5t103 169.5t161 181l106 108q32 33 140 153t142.5 184t34.5 126q0 100 -80 154.5t-180 54.5q-57 0 -127.5 -13t-123.5 -30.5t-172 -71.5v165q126 60 252.5 82.5t208.5 22.5q121 0 222.5 -39.5t151 -122.5t49.5 -177q0 -105 -63.5 -215 t-239.5 -283l-114 -113l-96 -94q-91 -92 -147 -178t-62 -205h746v-171z" />
|
||||
<glyph unicode="3" d="M145 28v196q229 -116 397 -116q154 0 254.5 93.5t100.5 240.5q0 148 -110.5 241t-375.5 93h-103v155h143q195 0 282 87.5t87 194.5q0 97 -71 163.5t-218 66.5q-165 0 -355 -93v177q190 71 348 71q283 0 390.5 -111.5t107.5 -254.5q0 -106 -57 -199t-210 -166 q135 -40 204 -98t104.5 -137t35.5 -177q0 -218 -161.5 -360t-417.5 -142q-74 0 -161.5 11t-213.5 64z" />
|
||||
<glyph unicode="4" d="M707 0v434h-659v156l659 962h187v-962h287v-156h-287v-434h-187zM707 590v680l-461 -680h461z" />
|
||||
<glyph unicode="5" d="M188 807v745h869v-179h-683v-380h32q335 0 516 -140t181 -377q0 -150 -73 -269t-206 -186.5t-283 -67.5t-384 73v203q85 -46 190 -75.5t194 -29.5t174 43t132 125.5t47 168.5q0 145 -128.5 245.5t-456.5 100.5h-121z" />
|
||||
<glyph unicode="6" d="M292 728q72 107 178.5 174.5t234.5 67.5q121 0 229.5 -59t165.5 -164.5t57 -245.5q0 -221 -141.5 -384.5t-372.5 -163.5q-272 0 -406.5 227.5t-134.5 578.5q0 388 171 613.5t463 225.5q157 0 305 -46v-188q-166 79 -313 79q-208 0 -322 -191t-114 -484v-40zM657 108 q75 0 151 44.5t119.5 137t43.5 201.5q0 142 -73.5 233t-209.5 91q-141 0 -231.5 -105.5t-90.5 -256.5q0 -152 88.5 -248.5t202.5 -96.5z" />
|
||||
<glyph unicode="7" d="M319 0v139q0 163 37 274t130 247t149 210l162 214l58 75q66 89 114 206h-805v187h985v-124q0 -74 -29.5 -137t-178.5 -269l-71 -98l-104 -146q-100 -141 -148 -225t-72.5 -175t-24.5 -239v-139h-202z" />
|
||||
<glyph unicode="8" d="M459 837l-34 25q-71 50 -139 147.5t-68 214.5q0 155 122 264.5t310 109.5q115 0 207 -41.5t142 -122.5t50 -177q0 -66 -23 -127.5t-68.5 -122t-180.5 -170.5l84 -67q147 -120 198 -207t51 -195q0 -168 -122 -291.5t-366 -123.5q-245 0 -367 115.5t-122 286.5 q0 255 326 482zM650 932q141 107 176.5 179t35.5 134q0 75 -66 136.5t-170 61.5q-112 0 -170.5 -67t-58.5 -139q0 -70 49 -132t157 -139zM599 738q-264 -203 -264 -380q0 -105 87 -177t206 -72q109 0 195 69t86 172q0 101 -104.5 205t-145.5 136z" />
|
||||
<glyph unicode="9" d="M936 824q-72 -107 -178.5 -174.5t-234.5 -67.5q-121 0 -229.5 58.5t-165.5 164.5t-57 246q0 220 141.5 383.5t372.5 163.5q272 0 406.5 -227.5t134.5 -578.5q0 -388 -171 -613.5t-463 -225.5q-157 0 -305 47v187q166 -78 313 -78q208 0 322 191t114 484v40zM571 1443 q-75 0 -151 -44.5t-119.5 -136.5t-43.5 -202q0 -141 73.5 -232t209.5 -91q141 0 231.5 105.5t90.5 255.5q0 152 -88.5 248.5t-202.5 96.5z" />
|
||||
<glyph unicode=":" d="M614 -47q-67 0 -115 48t-48 115q0 68 48.5 115.5t114.5 47.5t114.5 -47.5t48.5 -115.5q0 -67 -48 -115t-115 -48zM614 822q-67 0 -115 48t-48 115q0 68 48.5 115.5t114.5 47.5t114.5 -47.5t48.5 -115.5q0 -67 -48 -115t-115 -48z" />
|
||||
<glyph unicode=";" d="M424 -434v124q72 19 109.5 54.5t60 90t22.5 131.5q-93 0 -137 52.5t-44 112.5q0 69 49 116.5t114 47.5q84 0 145 -72.5t61 -198.5q0 -110 -48 -207.5t-130.5 -166.5t-201.5 -84zM598 822q-67 0 -115 48t-48 115q0 68 48.5 115.5t114.5 47.5t114.5 -47.5t48.5 -115.5 q0 -67 -48 -115t-115 -48z" />
|
||||
<glyph unicode="<" d="M71 543l1086 543v-173l-742 -369l742 -373v-171z" />
|
||||
<glyph unicode="=" d="M1157 791v-155h-1086v155h1086zM1157 442v-155h-1086v155h1086z" />
|
||||
<glyph unicode=">" d="M1157 543l-1086 -543v173l743 369l-743 373v171z" />
|
||||
<glyph unicode="?" d="M401 442v35q0 83 14 138.5t53.5 115t118.5 143.5l62 66q18 19 52 62l66 83q84 104 84 180q0 70 -60 124t-195 54q-87 0 -177.5 -23.5t-211.5 -91.5v180q185 90 387 90q224 0 341.5 -91.5t117.5 -237.5q0 -144 -152 -299l-66 -68l-78 -81l-71 -73q-39 -44 -69 -101 t-30 -159v-46h-186zM503 -47q-58 0 -100.5 42.5t-42.5 101.5t42.5 101t100.5 42q59 0 101.5 -41.5t42.5 -101.5t-43 -102t-101 -42z" />
|
||||
<glyph unicode="@" d="M921 200v-157q-84 -55 -149 -72.5t-140 -17.5q-208 0 -340.5 101.5t-211 283t-78.5 443.5q0 364 167 590.5t451 226.5q281 0 444.5 -200t163.5 -526q0 -144 -42 -236.5t-111 -147t-167 -54.5q-76 0 -124 33.5t-72 154.5q-28 -65 -86 -126.5t-157 -61.5 q-103 0 -170.5 93.5t-67.5 229.5q0 167 96.5 310t348.5 143h191v-438q0 -87 6.5 -123.5t27 -55.5t44.5 -19q39 0 78.5 37.5t60 106t20.5 148.5q0 167 -61 324.5t-181 224.5t-251 67q-139 0 -244.5 -83.5t-173 -250.5t-67.5 -369q0 -203 67 -376t181 -253t254 -80 q159 0 293 130zM712 809v269h-36q-118 0 -170 -37t-82 -116t-30 -174q0 -77 24 -119t66 -42q59 0 120.5 68.5t107.5 150.5z" />
|
||||
<glyph unicode="A" d="M227 0h-194l478 1552h205l481 -1552h-213l-106 341h-546zM380 496h453l-187 589l-44 156l-39 -156z" />
|
||||
<glyph unicode="B" d="M172 0v1552h303q273 0 365.5 -41.5t138.5 -122.5t46 -185q0 -82 -27 -155.5t-80 -134t-154 -114.5q185 -74 250.5 -182t65.5 -216q0 -103 -55.5 -200t-155.5 -149t-320 -52h-377zM374 853h212q103 43 150.5 90.5t71 106t23.5 128.5q0 110 -64.5 164t-251.5 54h-141v-543z M374 155h191q160 0 236.5 75.5t76.5 181.5q0 78 -42 143.5t-130 104t-276 38.5h-56v-543z" />
|
||||
<glyph unicode="C" d="M1088 18q-174 -65 -312 -65q-182 0 -335 97.5t-238 290t-85 435.5q0 241 84 433t237 291t337 99q138 0 312 -65v-184q-161 93 -320 93q-120 0 -219.5 -82t-160.5 -240.5t-61 -344.5q0 -189 63 -349t161 -239.5t217 -79.5q158 0 320 93v-183z" />
|
||||
<glyph unicode="D" d="M155 0v1552h368q254 0 377.5 -88.5t185.5 -267.5t62 -424q0 -232 -65.5 -407.5t-185.5 -270t-374 -94.5h-368zM357 171h135q205 0 292.5 73t125 202.5t37.5 357.5q0 223 -44 343t-126 184.5t-269 64.5h-151v-1225z" />
|
||||
<glyph unicode="E" d="M1041 171v-171h-838v1552h822v-156h-620v-527h558v-155h-558v-543h636z" />
|
||||
<glyph unicode="F" d="M227 0v1552h853v-156h-651v-527h589v-155h-589v-714h-202z" />
|
||||
<glyph unicode="G" d="M1088 1q-164 -48 -301 -48q-194 0 -345.5 96t-237.5 289.5t-86 437.5q0 241 84 433t237 291t336 99q138 0 312 -65v-184q-161 93 -320 93q-120 0 -219.5 -82t-160 -240.5t-60.5 -346.5q0 -252 115 -459t363 -207q32 0 81 5v500h-155v155h357v-767z" />
|
||||
<glyph unicode="H" d="M126 0v1552h202v-668h574v668h201v-1552h-201v729h-574v-729h-202z" />
|
||||
<glyph unicode="I" d="M172 0v155h341v1241h-341v156h884v-156h-341v-1241h341v-155h-884z" />
|
||||
<glyph unicode="J" d="M110 34v190q218 -115 365 -115q77 0 140.5 30t101 100.5t37.5 301.5v855h-349v156h551v-1016q0 -248 -56.5 -357t-158.5 -167.5t-261 -58.5q-178 0 -370 81z" />
|
||||
<glyph unicode="K" d="M157 0v1552h202v-761l577 761h214l-557 -737l635 -815h-253l-616 791v-791h-202z" />
|
||||
<glyph unicode="L" d="M1057 171v-171h-838v1552h202v-1381h636z" />
|
||||
<glyph unicode="M" d="M219 0h-163v1552h203l358 -1022l358 1022h198v-1552h-186v989l5 136h-5l-44 -136l-240 -679h-202l-243 679l-39 136h-5l5 -136v-989z" />
|
||||
<glyph unicode="N" d="M312 0h-186v1552h182l549 -1033l60 -154h5l-5 154v1033h186v-1552h-186l-534 1016l-75 163l4 -161v-1018z" />
|
||||
<glyph unicode="O" d="M614 -47q-264 0 -403.5 222.5t-139.5 600.5q0 377 139.5 599.5t403.5 222.5q265 0 404 -222.5t139 -599.5q0 -378 -139 -600.5t-404 -222.5zM614 109q146 0 243.5 165.5t97.5 501.5t-97.5 501.5t-243.5 165.5t-243.5 -165.5t-97.5 -501.5t97.5 -501.5t243.5 -165.5z" />
|
||||
<glyph unicode="P" d="M378 566v-566h-202v1552h386q238 0 347 -53.5t167 -156.5t58 -230q0 -149 -78 -278t-217.5 -198.5t-378.5 -69.5h-82zM378 721h87q187 0 278 48.5t140 139.5t49 197q0 134 -87.5 212t-345.5 78h-121v-675z" />
|
||||
<glyph unicode="Q" d="M746 -29q70 -116 125 -161t143 -67t195 -22h18v-155h-47q-193 0 -281 40t-166 123t-142 226q-183 20 -289.5 116t-168.5 297t-62 432q0 338 135 568t408 230q264 0 403.5 -222t139.5 -601q0 -180 -36.5 -344.5t-126 -289t-248.5 -170.5zM614 1443q-146 0 -243.5 -165.5 t-97.5 -501.5t97.5 -501.5t243.5 -165.5t243.5 165.5t97.5 501.5t-97.5 501.5t-243.5 165.5z" />
|
||||
<glyph unicode="R" d="M351 659v-659h-202v1552h415q203 0 299 -41.5t148.5 -125.5t52.5 -181q0 -90 -35 -181t-96.5 -162.5t-177.5 -135.5l449 -725h-240l-411 659h-202zM351 815h283q95 52 141.5 106t70.5 115t24 122q0 109 -79.5 173.5t-288.5 64.5h-151v-581z" />
|
||||
<glyph unicode="S" d="M157 33v190q240 -114 436 -114q82 0 157 31.5t113.5 90.5t38.5 128q0 81 -53 151.5t-199 155.5l-102 59l-103 59q-272 161 -272 400q0 175 121.5 294.5t379.5 119.5q166 0 321 -48v-173q-171 66 -333 66q-129 0 -208.5 -68t-79.5 -164q0 -95 61 -158t156 -116l78 -47 l97 -59l82 -48q255 -156 255 -392q0 -180 -131 -309t-420 -129q-92 0 -175.5 15.5t-219.5 64.5z" />
|
||||
<glyph unicode="T" d="M513 0v1381h-465v171h1133v-171h-466v-1381h-202z" />
|
||||
<glyph unicode="U" d="M126 1552h202v-1019q0 -201 33.5 -274.5t103 -112t154.5 -38.5q90 0 160.5 41.5t104 130t33.5 332.5v940h186v-1013q0 -217 -64.5 -339.5t-168.5 -184.5t-262 -62q-146 0 -257 54t-168 162t-57 390v993z" />
|
||||
<glyph unicode="V" d="M1003 1552h194l-478 -1552h-205l-481 1552h213l337 -1084l44 -158l39 157z" />
|
||||
<glyph unicode="W" d="M208 0l-180 1552h184l106 -945l14 -157h5l20 157l163 945h184l186 -983l19 -150h5l12 151l117 982h158l-188 -1552h-191l-200 1052l-21 158h-5l-19 -158l-180 -1052h-189z" />
|
||||
<glyph unicode="X" d="M258 0h-210l454 811l-410 741h229l297 -535l304 535h211l-410 -726l458 -826h-233l-341 619z" />
|
||||
<glyph unicode="Y" d="M514 0v718l-462 834h229l345 -616l344 616h207l-461 -834v-718h-202z" />
|
||||
<glyph unicode="Z" d="M122 0v171l737 1225h-714v156h947v-156l-736 -1225h751v-171h-985z" />
|
||||
<glyph unicode="[" d="M355 -372v2017h807v-156h-621v-1706h621v-155h-807z" />
|
||||
<glyph unicode="\" d="M1014 -47l-981 1645h177l987 -1645h-183z" />
|
||||
<glyph unicode="]" d="M874 1645v-2017h-807v155h621v1706h-621v156h807z" />
|
||||
<glyph unicode="^" d="M614 1552l543 -1087h-171l-372 747l-372 -747h-171z" />
|
||||
<glyph unicode="_" d="M71 -155v155h1086v-155h-1086z" />
|
||||
<glyph unicode="`" d="M832 1288h-170l-342 326h216z" />
|
||||
<glyph unicode="a" d="M889 251q-85 -140 -204.5 -211t-219.5 -71q-140 0 -251.5 121t-111.5 367q0 194 74 346.5t198 241t307 88.5q53 0 160 -11q16 -2 48 -5h187v-789q0 -202 42 -328h-194q-22 92 -35 251zM889 472v479q-99 26 -184 26q-172 0 -286.5 -133t-114.5 -362q0 -166 62.5 -250.5 t142.5 -84.5q87 0 192 88t188 237z" />
|
||||
<glyph unicode="b" d="M327 866q86 140 205 211t219 71q140 0 252 -121t112 -367q0 -194 -74.5 -346.5t-198.5 -241t-307 -88.5q-52 0 -160 11q-16 2 -48 5h-186v1614h186v-748zM327 645v-479q101 -26 186 -26q169 0 284.5 132.5t115.5 362.5q0 167 -63 251t-143 84q-87 0 -191.5 -88 t-188.5 -237z" />
|
||||
<glyph unicode="c" d="M1095 32q-187 -63 -356 -63q-168 0 -298.5 77.5t-203.5 210t-73 301.5q0 254 165.5 422t399.5 168q173 0 366 -65v-179q-195 89 -349 89q-102 0 -192 -50.5t-139 -157.5t-49 -220q0 -151 94.5 -288t296.5 -137q61 0 120 8.5t218 62.5v-179z" />
|
||||
<glyph unicode="d" d="M901 251q-85 -140 -204.5 -211t-219.5 -71q-140 0 -251.5 121t-111.5 367q0 194 74 346.5t198 241t307 88.5q53 0 160 -11q16 -2 48 -5v497h187v-1614h-187v251zM901 472v479q-99 26 -184 26q-172 0 -286.5 -133t-114.5 -362q0 -166 62.5 -250.5t142.5 -84.5q87 0 192 88 t188 237z" />
|
||||
<glyph unicode="e" d="M1084 74q-223 -106 -422 -106q-151 0 -270 75t-190.5 214.5t-71.5 298.5q0 153 68 294t190 219.5t272 78.5q199 0 319.5 -142t120.5 -438v-40h-770q0 -116 48.5 -212t127.5 -144t180 -48q180 0 398 120v-170zM341 667h557v27q0 137 -67 218t-179 81q-113 0 -195.5 -82.5 t-115.5 -243.5z" />
|
||||
<glyph unicode="f" d="M415 0v869h-248v155h248v52q0 221 50 327t154.5 174t276.5 68q130 0 264 -27v-177q-145 48 -257 48q-89 0 -157 -33t-106.5 -107.5t-38.5 -252.5v-72h443v-155h-443v-869h-186z" />
|
||||
<glyph unicode="g" d="M901 251q-85 -140 -204.5 -211t-219.5 -71q-140 0 -251.5 121t-111.5 367q0 194 74 346.5t198 241t307 88.5q53 0 160 -11q16 -2 48 -5h187v-790q0 -282 -7.5 -344.5t-24.5 -126.5q-40 -149 -182.5 -235t-344.5 -86q-203 0 -411 104v188q79 -54 194.5 -95.5t223.5 -41.5 q85 0 161 27t123 78t64 118.5t17 179.5v158zM901 472v479q-99 26 -184 26q-172 0 -286.5 -133t-114.5 -362q0 -166 62.5 -250.5t142.5 -84.5q87 0 192 88t188 237z" />
|
||||
<glyph unicode="h" d="M155 0v1614h186v-741q80 129 193 202t226 73q95 0 173.5 -48.5t109.5 -117.5q25 -53 34 -112.5t9 -245.5v-624h-186v647q0 161 -15.5 212.5t-57 84.5t-90.5 33q-98 0 -210.5 -93t-185.5 -233v-651h-186z" />
|
||||
<glyph unicode="i" d="M468 0v962h-310v155h496v-962h311v-155h-497zM437 1520q0 63 43 94t81 31q39 0 82 -31t43 -94q0 -62 -43 -93t-82 -31q-38 0 -81 31t-43 93z" />
|
||||
<glyph unicode="j" d="M172 -438v174q156 -46 263 -46q93 0 158 32.5t101.5 109.5t36.5 268v862h-474v155h660v-982q0 -284 -67 -394.5t-162 -158.5t-260 -48q-119 0 -256 28zM700 1520q0 63 42.5 94t81.5 31t81.5 -31t42.5 -94q0 -62 -42.5 -93t-81.5 -31t-81.5 31t-42.5 93z" />
|
||||
<glyph unicode="k" d="M205 0v1614h186v-1014l537 517h248l-536 -517l550 -600h-256l-543 600v-600h-186z" />
|
||||
<glyph unicode="l" d="M455 0v1458h-334v156h520v-1459h349v-155h-535z" />
|
||||
<glyph unicode="m" d="M71 0v1117h163v-256q77 163 143.5 225t134.5 62q81 0 130.5 -63.5t49.5 -180.5v-60q33 102 79.5 165.5t96.5 101t115 37.5q72 0 123 -61t51 -243v-844h-163v763q0 94 -6 128.5t-24 52.5t-39 18q-52 0 -111.5 -79.5t-121.5 -263.5v-619h-156v762q0 148 -29 174t-52 26 q-51 0 -109.5 -89t-111.5 -228v-645h-163z" />
|
||||
<glyph unicode="n" d="M155 0v1117h186v-244q80 129 193 202t226 73q99 0 180 -52.5t113.5 -137.5t32.5 -334v-624h-186v647q0 161 -15.5 212.5t-57 84.5t-90.5 33q-98 0 -210.5 -93t-185.5 -233v-651h-186z" />
|
||||
<glyph unicode="o" d="M615 -31q-240 0 -384 167.5t-144 422.5t144 422t384 167q239 0 383 -167t144 -422t-144 -422.5t-383 -167.5zM615 124q149 0 237 116t88 319q0 202 -88 318t-237 116q-150 0 -238 -116t-88 -318q0 -203 88 -319t238 -116z" />
|
||||
<glyph unicode="p" d="M327 866q86 140 205 211t219 71q140 0 252 -121t112 -367q0 -194 -74.5 -346.5t-198.5 -241t-307 -88.5q-52 0 -160 11q-16 2 -48 5v-434h-186v1551h186v-251zM327 645v-479q101 -26 186 -26q169 0 284.5 132.5t115.5 362.5q0 167 -63 251t-143 84q-87 0 -191.5 -88 t-188.5 -237z" />
|
||||
<glyph unicode="q" d="M901 251q-85 -140 -204.5 -211t-219.5 -71q-140 0 -251.5 121t-111.5 367q0 194 74 346.5t198 241t307 88.5q53 0 160 -11q16 -2 48 -5h187v-1551h-187v685zM901 472v479q-99 26 -184 26q-172 0 -286.5 -133t-114.5 -362q0 -166 62.5 -250.5t142.5 -84.5q87 0 192 88 t188 237z" />
|
||||
<glyph unicode="r" d="M250 0v1117h186v-244q87 138 199.5 206.5t250.5 68.5q101 0 202 -31v-403h-179v255q-47 8 -74 8q-104 0 -204 -82t-195 -246v-649h-186z" />
|
||||
<glyph unicode="s" d="M168 59v197q112 -73 237 -102.5t212 -29.5q141 0 203 45.5t62 113.5q0 45 -29 77t-144 79l-64 26l-129 51q-208 81 -262.5 149.5t-54.5 166.5q0 138 106.5 227t345.5 89q179 0 339 -52v-169q-184 66 -346 66q-118 0 -184.5 -41.5t-66.5 -103.5q0 -60 57.5 -96t186.5 -83 l126 -46q173 -63 243 -137t70 -185q0 -145 -111.5 -238.5t-356.5 -93.5q-214 0 -440 90z" />
|
||||
<glyph unicode="t" d="M1089 45q-131 -55 -190 -65.5t-114 -10.5q-117 0 -214 45t-146.5 133t-49.5 272v450h-279v155h279v450h186v-450h497v-155h-497v-447q0 -135 32 -190.5t85.5 -81.5t126.5 -26q135 0 284 85v-164z" />
|
||||
<glyph unicode="u" d="M1074 1117v-1117h-186v245q-90 -138 -200 -207t-220 -69q-98 0 -179.5 52.5t-113.5 138t-32 333.5v624h186v-647q0 -161 15.5 -212.5t57 -84.5t89.5 -33q98 0 210.5 92.5t186.5 233.5v651h186z" />
|
||||
<glyph unicode="v" d="M518 0l-485 1117h204l383 -884l391 884h186l-489 -1117h-190z" />
|
||||
<glyph unicode="w" d="M202 0l-182 1117h173l106 -680l28 -158l27 158l178 680h167l201 -680l35 -158l23 158l107 680h143l-181 -1117h-174l-214 719l-34 158h-5l-31 -157l-186 -720h-181z" />
|
||||
<glyph unicode="x" d="M271 0h-215l439 585l-410 532h238l291 -375l283 375h211l-388 -514l461 -603h-239l-340 445z" />
|
||||
<glyph unicode="y" d="M566 45l-516 1072h205l411 -838l344 838h187l-433 -1038q-137 -329 -260.5 -437t-319.5 -108q-85 0 -152 15v164q77 -24 147 -24q90 0 160 35t128 124t82 154z" />
|
||||
<glyph unicode="z" d="M133 0v171l685 791h-669v155h915v-155l-690 -791h713v-171h-954z" />
|
||||
<glyph unicode="{" d="M547 636q93 -49 136.5 -96t65 -96.5t21.5 -113.5q0 -57 -20 -149l-25 -114q-20 -93 -20 -138q0 -61 47.5 -103.5t195.5 -42.5h155v-155h-157q-274 0 -353 88t-79 199q0 59 15 127l18 80l17 87l12 53q7 37 7 72q0 93 -62.5 159t-220.5 66h-89v155h89q156 0 219.5 65 t63.5 162q0 36 -7 70l-12 52l-17 87l-18 80q-15 69 -15 128q0 110 79 198.5t353 88.5h157v-156h-155q-147 0 -195 -42.5t-48 -104.5q0 -44 20 -137l25 -114q20 -92 20 -149q0 -64 -21.5 -113.5t-65 -96.5t-136.5 -96z" />
|
||||
<glyph unicode="|" d="M533 -47v1645h163v-1645h-163z" />
|
||||
<glyph unicode="}" d="M682 636q-93 49 -136.5 96t-64.5 96.5t-21 113.5q0 57 19 149l25 114q20 93 20 138q0 61 -47.5 103.5t-195.5 42.5h-155v156h157q274 0 353.5 -88.5t79.5 -198.5q0 -60 -16 -128l-18 -80l-17 -87l-12 -52q-7 -38 -7 -73q0 -92 62.5 -158t220.5 -66h89v-155h-89 q-156 0 -219.5 -65.5t-63.5 -162.5q0 -35 7 -69l12 -53l17 -87l18 -80q16 -69 16 -128q0 -111 -79.5 -198.5t-353.5 -87.5h-157v155h155q148 0 195.5 42.5t47.5 104.5q0 44 -20 137l-25 114q-19 92 -19 149q0 64 21 113.5t64.5 96.5t136.5 96z" />
|
||||
<glyph unicode="~" d="M56 403v18q0 131 77.5 227.5t208.5 96.5q33 0 64.5 -6.5t71.5 -22t120 -60.5l121 -67q111 -61 181 -61q74 0 109.5 53.5t35.5 116.5v16h128v-16q0 -167 -94.5 -246.5t-200.5 -79.5q-99 0 -262 93l-102 59q-116 66 -187 66q-40 0 -74.5 -21t-55.5 -67t-21 -81v-18h-120z " />
|
||||
<glyph unicode=" " />
|
||||
<glyph unicode="¡" d="M700 659l46 -1109h-248l47 1109h155zM615 1148q56 0 99.5 -43t43.5 -100q0 -58 -43.5 -101t-99.5 -43q-57 0 -100.5 43t-43.5 101q0 57 43.5 100t100.5 43z" />
|
||||
<glyph unicode="¢" d="M607 -155v346q-149 18 -255.5 96t-170 200.5t-63.5 278.5t59 277t163.5 201t266.5 109v354h155v-354q166 -19 287 -56v-179q-36 21 -80 37t-93 29t-114 19v-866q80 9 123 21t130 52q12 6 34 16v-180q-149 -49 -287 -55v-346h-155zM607 345v850q-154 -48 -220.5 -165 t-66.5 -265q0 -126 60 -249.5t227 -170.5z" />
|
||||
<glyph unicode="£" d="M141 0v171q93 21 136.5 62.5t66 121t22.5 202.5v211h-225v155h225v69q0 266 51 380t145 170t225 56q124 0 262 -58v-180q-158 83 -284 83q-57 0 -109.5 -37.5t-78 -114.5t-25.5 -289v-79h326v-155h-326v-117q0 -187 -22 -284.5t-128 -195.5h709v-171h-970z" />
|
||||
<glyph unicode="¤" d="M1042 1381l115 -101l-184 -212q73 -102 89 -164.5t16 -129.5q0 -68 -16 -131.5t-89 -165.5l184 -211l-115 -95l-185 206q-91 -48 -142.5 -57.5t-100.5 -9.5t-100.5 9.5t-142.5 57.5l-185 -206l-115 95l184 211q-73 102 -89 165.5t-16 131.5q0 67 16 129.5t89 164.5 l-184 212l115 101l185 -211q88 54 143.5 62.5t99.5 8.5t99.5 -8.5t143.5 -62.5zM614 465q119 0 213.5 86.5t94.5 218.5q0 86 -41.5 160.5t-116.5 115t-150 40.5t-150 -40.5t-116.5 -115t-41.5 -160.5q0 -132 94.5 -218.5t213.5 -86.5z" />
|
||||
<glyph unicode="¥" d="M522 0v248h-326v140h326v194h-326v139h317l-461 831h205l367 -642l368 642h185l-469 -831h318v-139h-318v-194h318v-140h-318v-248h-186z" />
|
||||
<glyph unicode="§" d="M149 -301v201q102 -55 218.5 -86t210.5 -31q149 0 228.5 61t79.5 131q0 58 -39.5 101.5t-170.5 117.5l-147 83q-196 110 -276.5 209t-80.5 208q0 163 145 296q-64 48 -96.5 109.5t-32.5 136.5q0 97 55.5 180t156.5 132.5t258 49.5q148 0 337 -57v-178q-61 32 -164.5 56 t-181.5 24q-136 0 -198 -54t-62 -120q0 -35 17.5 -66t52.5 -59q69 -55 126 -89l63 -35l149 -88q193 -114 249.5 -200.5t56.5 -190.5q0 -164 -144 -297q92 -76 110.5 -136t18.5 -106q0 -94 -66.5 -187.5t-178.5 -140t-272 -46.5q-220 0 -422 71zM833 319q100 80 100 186 q0 72 -64.5 140.5t-148.5 116.5l-94 53l-184 105q-58 -66 -71 -106.5t-13 -77.5q0 -81 55 -143.5t253 -176.5z" />
|
||||
<glyph unicode="¨" d="M397 1288q-51 0 -87.5 36t-36.5 88t37 88t87 36t87 -36t37 -88t-36.5 -88t-87.5 -36zM832 1288q-51 0 -88 36t-37 88t37.5 88t87.5 36t87 -36t37 -88t-37 -88t-87 -36z" />
|
||||
<glyph unicode="©" d="M615 -47q-194 0 -323 101t-209.5 291t-80.5 431q0 232 74.5 418t206 295t332.5 109q194 0 323.5 -102t209.5 -291t80 -429q0 -241 -80.5 -431t-209.5 -291t-323 -101zM615 78q128 0 240 80.5t180.5 252.5t68.5 365q0 192 -69 365t-181 253t-239 80q-130 0 -243.5 -83.5 t-179.5 -255t-66 -359.5q0 -195 70 -369t181 -251.5t238 -77.5zM894 433v-152q-90 -33 -214 -33q-131 0 -232.5 70.5t-161 190t-59.5 266.5q0 146 57.5 269t151 191t229.5 68q102 0 229 -32v-159q-38 12 -83 20t-79.5 12.5t-57.5 4.5q-127 0 -201.5 -103t-74.5 -273 q0 -187 87.5 -286t214.5 -99q82 0 194 45z" />
|
||||
<glyph unicode="ª" d="M840 1060q-58 -76 -155 -122t-184 -46q-112 0 -201 73.5t-89 224.5q0 118 58.5 209.5t157 145t247.5 53.5q45 0 129 -5l36 -3h140v-476q0 -49 5.5 -94.5t41.5 -111.5h-155q-20 58 -31 152zM839 1208l-1 255q-78 11 -147 11q-136 0 -230.5 -72t-94.5 -201q0 -89 50 -133 t118 -44q72 0 159 52t146 132z" />
|
||||
<glyph unicode="«" d="M626 481v155l384 419l113 -109l-312 -387l312 -399l-113 -98zM153 481v155l384 419l112 -109l-311 -387l311 -399l-112 -98z" />
|
||||
<glyph unicode="¬" d="M1157 621v-466h-155v310h-931v156h1086z" />
|
||||
<glyph unicode="­" d="M227 551v155h776v-155h-776z" />
|
||||
<glyph unicode="®" d="M615 -47q-194 0 -323 101t-209.5 291t-80.5 431q0 232 74.5 418t206 295t332.5 109q194 0 323.5 -102t209.5 -291t80 -429q0 -241 -80.5 -431t-209.5 -291t-323 -101zM615 78q128 0 240 80.5t180.5 252.5t68.5 365q0 192 -69 365t-181 253t-239 80q-130 0 -243.5 -83.5 t-179.5 -255t-66 -359.5q0 -195 70 -369t181 -251.5t238 -77.5zM494 718v-379h-139v914h220q176 0 238.5 -64.5t62.5 -146.5q0 -75 -42 -151.5t-132 -127.5l236 -424h-166l-196 379h-82zM494 829h116q64 36 95.5 82.5t31.5 104.5q0 59 -41.5 93t-156.5 34h-45v-314z" />
|
||||
<glyph unicode="¯" d="M335 1288v124h559v-124h-559z" />
|
||||
<glyph unicode="°" d="M615 1055q-114 0 -193 80.5t-79 190.5q0 113 80.5 192.5t191.5 79.5t191 -79.5t80 -192.5q0 -110 -79 -190.5t-192 -80.5zM615 1148q75 0 126.5 54t51.5 124q0 73 -52.5 126t-125.5 53q-74 0 -126.5 -53t-52.5 -126q0 -70 51.5 -124t127.5 -54z" />
|
||||
<glyph unicode="±" d="M1157 931v-155h-465v-466h-156v466h-465v155h465v465h156v-465h465zM1157 155v-155h-1086v155h1086z" />
|
||||
<glyph unicode="²" d="M1088 0h-939v171q0 66 27 141.5t103 169.5t161 181l106 108q32 33 140 153t142.5 184t34.5 126q0 100 -80 154.5t-180 54.5q-57 0 -127.5 -13t-123.5 -30.5t-172 -71.5v165q126 60 252.5 82.5t208.5 22.5q121 0 222.5 -39.5t151 -122.5t49.5 -177q0 -105 -63.5 -215 t-239.5 -283l-114 -113l-96 -94q-91 -92 -147 -178t-62 -205h746v-171z" />
|
||||
<glyph unicode="³" d="M145 28v196q229 -116 397 -116q154 0 254.5 93.5t100.5 240.5q0 148 -110.5 241t-375.5 93h-103v155h143q195 0 282 87.5t87 194.5q0 97 -71 163.5t-218 66.5q-165 0 -355 -93v177q190 71 348 71q283 0 390.5 -111.5t107.5 -254.5q0 -106 -57 -199t-210 -166 q135 -40 204 -98t104.5 -137t35.5 -177q0 -218 -161.5 -360t-417.5 -142q-74 0 -161.5 11t-213.5 64z" />
|
||||
<glyph unicode="´" d="M320 1288l296 326h216l-342 -326h-170z" />
|
||||
<glyph unicode="µ" d="M1076 1117v-1117h-186v242q-76 -142 -175 -207.5t-196 -65.5q-34 0 -71.5 8t-65.5 20.5t-74 49.5v-419h-186v1489h186v-649q0 -189 59 -263t147 -74t170.5 65.5t205.5 261.5v659h186z" />
|
||||
<glyph unicode="¶" d="M552 -372v1055q-235 24 -350 150.5t-115 290.5q0 112 56 215t156.5 158t344.5 55h537v-156h-163v-1768h-155v1768h-155v-1768h-156z" />
|
||||
<glyph unicode="¸" d="M685 0l-73 -131q107 -21 140 -65.5t33 -92.5q0 -55 -44 -100.5t-138 -45.5q-83 0 -159 28v89q58 -31 119 -31q35 0 63 21t28 44q0 68 -186 87l109 197h108z" />
|
||||
<glyph unicode="¹" d="M568 155v1198q-84 -67 -163 -114t-217 -96v168q219 93 380 241h186v-1397h373v-155h-939v155h380z" />
|
||||
<glyph unicode="º" d="M614 884q-218 0 -326 107t-108 250q0 144 108 250.5t326 106.5q219 0 327 -106.5t108 -250.5q0 -143 -108 -250t-327 -107zM614 1008q124 0 202 60t78 173t-78 173t-202 60q-123 0 -201 -60t-78 -173t78 -173t201 -60z" />
|
||||
<glyph unicode="»" d="M602 636v-155l-383 -419l-113 109l312 388l-312 398l113 98zM1076 636v-155l-384 -419l-113 109l312 388l-312 398l113 98z" />
|
||||
<glyph unicode="¼" horiz-adv-x="3687" d="M3165 0v434h-659v156l659 962h187v-962h287v-156h-287v-434h-187zM3165 590v680l-461 -680h461zM1395 -47h-164l1061 1645h165zM568 155v1198q-84 -67 -163 -114t-217 -96v168q219 93 380 241h186v-1397h373v-155h-939v155h380z" />
|
||||
<glyph unicode="½" horiz-adv-x="3687" d="M3546 0h-939v171q0 66 27 141.5t103 169.5t161 181l106 108q32 33 140 153t142.5 184t34.5 126q0 100 -80 154.5t-180 54.5q-57 0 -127.5 -13t-123.5 -30.5t-172 -71.5v165q126 60 252.5 82.5t208.5 22.5q121 0 222.5 -39.5t151 -122.5t49.5 -177q0 -105 -63.5 -215 t-239.5 -283l-114 -113l-96 -94q-91 -92 -147 -178t-62 -205h746v-171zM1395 -47h-164l1061 1645h165zM568 155v1198q-84 -67 -163 -114t-217 -96v168q219 93 380 241h186v-1397h373v-155h-939v155h380z" />
|
||||
<glyph unicode="¾" horiz-adv-x="3687" d="M3165 0v434h-659v156l659 962h187v-962h287v-156h-287v-434h-187zM3165 590v680l-461 -680h461zM1395 -47h-164l1061 1645h165zM145 28v196q229 -116 397 -116q154 0 254.5 93.5t100.5 240.5q0 148 -110.5 241t-375.5 93h-103v155h143q195 0 282 87.5t87 194.5 q0 97 -71 163.5t-218 66.5q-165 0 -355 -93v177q190 71 348 71q283 0 390.5 -111.5t107.5 -254.5q0 -106 -57 -199t-210 -166q135 -40 204 -98t104.5 -137t35.5 -177q0 -218 -161.5 -360t-417.5 -142q-74 0 -161.5 11t-213.5 64z" />
|
||||
<glyph unicode="¿" d="M828 659v-35q0 -82 -14 -137.5t-54 -115t-119 -143.5l-62 -67q-17 -18 -52 -61l-66 -83q-83 -104 -83 -180q0 -70 60 -124t194 -54q87 0 178 23t212 91v-179q-186 -91 -388 -91q-224 0 -341 92t-117 237q0 144 151 300l67 68l77 80l72 73q39 45 68.5 101.5t29.5 158.5v46 h187zM725 853q-59 0 -101 42.5t-42 101.5t42 101t101 42q58 0 101 -41.5t43 -101.5t-43 -102t-101 -42z" />
|
||||
<glyph unicode="À" d="M227 0h-194l478 1552h205l481 -1552h-213l-106 341h-546zM380 496h453l-187 589l-44 156l-39 -156zM869 1722h-170l-342 326h216z" />
|
||||
<glyph unicode="Á" d="M227 0h-194l478 1552h205l481 -1552h-213l-106 341h-546zM380 496h453l-187 589l-44 156l-39 -156zM357 1722l296 326h216l-342 -326h-170z" />
|
||||
<glyph unicode="Â" d="M227 0h-194l478 1552h205l481 -1552h-213l-106 341h-546zM380 496h453l-187 589l-44 156l-39 -156zM615 1890l-140 -168h-155l233 326h124l233 -326h-156z" />
|
||||
<glyph unicode="Ã" d="M227 0h-194l478 1552h205l481 -1552h-213l-106 341h-546zM380 496h453l-187 589l-44 156l-39 -156zM422 1722h-125q0 132 51.5 194t129.5 62q62 0 126 -40l42 -25q83 -52 116 -52q60 0 60 117h127q-6 -102 -27 -149t-64.5 -77.5t-95.5 -30.5q-65 0 -141 49l-44 28l-24 17 q-34 23 -65 23q-22 0 -44 -23t-22 -93z" />
|
||||
<glyph unicode="Ä" d="M227 0h-194l478 1552h205l481 -1552h-213l-106 341h-546zM380 496h453l-187 589l-44 156l-39 -156zM397 1722q-51 0 -87.5 36t-36.5 88t37 88t87 36t87 -36t37 -88t-36.5 -88t-87.5 -36zM832 1722q-51 0 -88 36t-37 88t37.5 88t87.5 36t87 -36t37 -88t-37 -88t-87 -36z " />
|
||||
<glyph unicode="Å" d="M716 1552l481 -1552h-213l-106 341h-546l-105 -341h-194l478 1552q-42 31 -63 69.5t-21 85.5q0 75 54.5 130.5t131.5 55.5t131.5 -55t54.5 -131q0 -46 -20.5 -85t-62.5 -70zM380 496h453l-187 589l-44 156l-39 -156zM520 1707q0 -38 27.5 -65.5t65.5 -27.5t65.5 27.5 t27.5 65.5t-27.5 65.5t-65.5 27.5t-65.5 -28t-27.5 -65z" />
|
||||
<glyph unicode="Æ" d="M638 0v372h-314l-152 -372h-170l636 1552h543v-156h-357v-535h342v-155h-342v-535h357v-171h-543zM381 512h257v622z" />
|
||||
<glyph unicode="Ç" d="M1088 1534v-184q-161 93 -320 93q-120 0 -219.5 -82t-160.5 -240.5t-61 -344.5q0 -189 63 -349t161 -239.5t217 -79.5q158 0 320 93v-183q-128 -46 -192 -56.5t-144 -10.5l-45 -82q107 -21 140 -65.5t33 -92.5q0 -55 -44 -100.5t-138 -45.5q-83 0 -159 28v89 q58 -31 119 -31q35 0 63 21t28 44q0 68 -186 87l88 160q-194 49 -309.5 164.5t-169.5 269t-54 357.5q0 403 187.5 624t470.5 221q138 0 312 -65z" />
|
||||
<glyph unicode="È" d="M1041 171v-171h-838v1552h822v-156h-620v-527h558v-155h-558v-543h636zM879 1722h-170l-342 326h216z" />
|
||||
<glyph unicode="É" d="M1041 171v-171h-838v1552h822v-156h-620v-527h558v-155h-558v-543h636zM367 1722l296 326h216l-342 -326h-170z" />
|
||||
<glyph unicode="Ê" d="M1041 171v-171h-838v1552h822v-156h-620v-527h558v-155h-558v-543h636zM615 1890l-140 -168h-155l233 326h124l233 -326h-156z" />
|
||||
<glyph unicode="Ë" d="M1041 171v-171h-838v1552h822v-156h-620v-527h558v-155h-558v-543h636zM405 1722q-51 0 -87.5 36t-36.5 88t37 88t87 36t87 -36t37 -88t-36.5 -88t-87.5 -36zM840 1722q-51 0 -88 36t-37 88t37.5 88t87.5 36t87 -36t37 -88t-37 -88t-87 -36z" />
|
||||
<glyph unicode="Ì" d="M172 0v155h341v1241h-341v156h884v-156h-341v-1241h341v-155h-884zM871 1722h-170l-342 326h216z" />
|
||||
<glyph unicode="Í" d="M172 0v155h341v1241h-341v156h884v-156h-341v-1241h341v-155h-884zM359 1722l296 326h216l-342 -326h-170z" />
|
||||
<glyph unicode="Î" d="M172 0v155h341v1241h-341v156h884v-156h-341v-1241h341v-155h-884zM615 1890l-140 -168h-155l233 326h124l233 -326h-156z" />
|
||||
<glyph unicode="Ï" d="M172 0v155h341v1241h-341v156h884v-156h-341v-1241h341v-155h-884zM397 1722q-51 0 -87.5 36t-36.5 88t37 88t87 36t87 -36t37 -88t-36.5 -88t-87.5 -36zM832 1722q-51 0 -88 36t-37 88t37.5 88t87.5 36t87 -36t37 -88t-37 -88t-87 -36z" />
|
||||
<glyph unicode="Ñ" d="M312 0h-186v1552h182l549 -1033l60 -154h5l-5 154v1033h186v-1552h-186l-534 1016l-75 163l4 -161v-1018zM422 1722h-125q0 132 51.5 194t129.5 62q62 0 126 -40l42 -25q83 -52 116 -52q60 0 60 117h127q-6 -102 -27 -149t-64.5 -77.5t-95.5 -30.5q-65 0 -141 49l-44 28 l-24 17q-34 23 -65 23q-22 0 -44 -23t-22 -93z" />
|
||||
<glyph unicode="Ò" d="M614 -47q-264 0 -403.5 222.5t-139.5 600.5q0 377 139.5 599.5t403.5 222.5q265 0 404 -222.5t139 -599.5q0 -378 -139 -600.5t-404 -222.5zM614 109q146 0 243.5 165.5t97.5 501.5t-97.5 501.5t-243.5 165.5t-243.5 -165.5t-97.5 -501.5t97.5 -501.5t243.5 -165.5z M871 1722h-170l-342 326h216z" />
|
||||
<glyph unicode="Ó" d="M614 -47q-264 0 -403.5 222.5t-139.5 600.5q0 377 139.5 599.5t403.5 222.5q265 0 404 -222.5t139 -599.5q0 -378 -139 -600.5t-404 -222.5zM614 109q146 0 243.5 165.5t97.5 501.5t-97.5 501.5t-243.5 165.5t-243.5 -165.5t-97.5 -501.5t97.5 -501.5t243.5 -165.5z M359 1722l296 326h216l-342 -326h-170z" />
|
||||
<glyph unicode="Ô" d="M614 -47q-264 0 -403.5 222.5t-139.5 600.5q0 377 139.5 599.5t403.5 222.5q265 0 404 -222.5t139 -599.5q0 -378 -139 -600.5t-404 -222.5zM614 109q146 0 243.5 165.5t97.5 501.5t-97.5 501.5t-243.5 165.5t-243.5 -165.5t-97.5 -501.5t97.5 -501.5t243.5 -165.5z M615 1890l-140 -168h-155l233 326h124l233 -326h-156z" />
|
||||
<glyph unicode="Õ" d="M614 -47q-264 0 -403.5 222.5t-139.5 600.5q0 377 139.5 599.5t403.5 222.5q265 0 404 -222.5t139 -599.5q0 -378 -139 -600.5t-404 -222.5zM614 109q146 0 243.5 165.5t97.5 501.5t-97.5 501.5t-243.5 165.5t-243.5 -165.5t-97.5 -501.5t97.5 -501.5t243.5 -165.5z M414 1722h-125q0 132 51.5 194t129.5 62q62 0 126 -40l42 -25q83 -52 116 -52q60 0 60 117h127q-6 -102 -27 -149t-64.5 -77.5t-95.5 -30.5q-65 0 -141 49l-44 28l-24 17q-34 23 -65 23q-22 0 -44 -23t-22 -93z" />
|
||||
<glyph unicode="Ö" d="M614 -47q-264 0 -403.5 222.5t-139.5 600.5q0 377 139.5 599.5t403.5 222.5q265 0 404 -222.5t139 -599.5q0 -378 -139 -600.5t-404 -222.5zM614 109q146 0 243.5 165.5t97.5 501.5t-97.5 501.5t-243.5 165.5t-243.5 -165.5t-97.5 -501.5t97.5 -501.5t243.5 -165.5z M397 1722q-51 0 -87.5 36t-36.5 88t37 88t87 36t87 -36t37 -88t-36.5 -88t-87.5 -36zM832 1722q-51 0 -88 36t-37 88t37.5 88t87.5 36t87 -36t37 -88t-37 -88t-87 -36z" />
|
||||
<glyph unicode="Ø" d="M209 -109h-138l148 276q-63 100 -90 189.5t-42.5 198.5t-15.5 230q0 398 147.5 605.5t390.5 207.5q54 0 111.5 -11.5t102.5 -30.5t108 -68l93 172h133l-142 -273q61 -103 87 -185t40.5 -201.5t14.5 -235.5q0 -249 -66.5 -436t-180 -281.5t-306.5 -94.5q-82 0 -143.5 19 t-154.5 97zM321 360l525 969q-62 73 -119.5 93.5t-112.5 20.5q-154 0 -247.5 -174.5t-93.5 -479.5q0 -48 3 -146q3 -99 11.5 -150t33.5 -133zM911 1195l-521 -970q53 -66 108.5 -91t110.5 -25q174 0 260 184.5t86 483.5q0 52 -3 138t-10.5 140.5t-30.5 139.5z" />
|
||||
<glyph unicode="Ù" d="M126 1552h202v-1019q0 -201 33.5 -274.5t103 -112t154.5 -38.5q90 0 160.5 41.5t104 130t33.5 332.5v940h186v-1013q0 -217 -64.5 -339.5t-168.5 -184.5t-262 -62q-146 0 -257 54t-168 162t-57 390v993zM871 1722h-170l-342 326h216z" />
|
||||
<glyph unicode="Ú" d="M126 1552h202v-1019q0 -201 33.5 -274.5t103 -112t154.5 -38.5q90 0 160.5 41.5t104 130t33.5 332.5v940h186v-1013q0 -217 -64.5 -339.5t-168.5 -184.5t-262 -62q-146 0 -257 54t-168 162t-57 390v993zM359 1722l296 326h216l-342 -326h-170z" />
|
||||
<glyph unicode="Û" d="M126 1552h202v-1019q0 -201 33.5 -274.5t103 -112t154.5 -38.5q90 0 160.5 41.5t104 130t33.5 332.5v940h186v-1013q0 -217 -64.5 -339.5t-168.5 -184.5t-262 -62q-146 0 -257 54t-168 162t-57 390v993zM615 1890l-140 -168h-155l233 326h124l233 -326h-156z" />
|
||||
<glyph unicode="Ü" d="M126 1552h202v-1019q0 -201 33.5 -274.5t103 -112t154.5 -38.5q90 0 160.5 41.5t104 130t33.5 332.5v940h186v-1013q0 -217 -64.5 -339.5t-168.5 -184.5t-262 -62q-146 0 -257 54t-168 162t-57 390v993zM397 1722q-51 0 -87.5 36t-36.5 88t37 88t87 36t87 -36t37 -88 t-36.5 -88t-87.5 -36zM832 1722q-51 0 -88 36t-37 88t37.5 88t87.5 36t87 -36t37 -88t-37 -88t-87 -36z" />
|
||||
<glyph unicode="Ý" d="M530 1720l296 326h216l-342 -326h-170zM514 0v718l-462 834h229l345 -616l344 616h207l-461 -834v-718h-202z" />
|
||||
<glyph unicode="ß" d="M130 0v1122q0 198 57.5 303.5t161 162.5t249.5 57q191 0 276.5 -89.5t85.5 -187.5q0 -62 -35 -121.5t-138 -148.5l-68 -58q-20 -17 -60 -55.5t-40 -78.5q0 -28 12 -48t71 -63l64 -47l126 -87q106 -72 176.5 -157t70.5 -200q0 -146 -113 -240.5t-289 -94.5q-38 0 -91 3.5 t-82.5 7.5t-84.5 20v185q60 -26 102 -36.5t84 -17.5t70 -7q50 0 105 18t83.5 58.5t28.5 82.5q0 62 -48.5 122t-162.5 136l-120 80q-92 62 -144 121.5t-52 133.5q0 55 29.5 108t130.5 146l59 55q48 44 81 87.5t33 90.5q0 65 -62 95.5t-122 30.5q-69 0 -127.5 -33.5 t-94.5 -102t-36 -231.5v-1122h-186z" />
|
||||
<glyph unicode="à" d="M889 251q-85 -140 -204.5 -211t-219.5 -71q-140 0 -251.5 121t-111.5 367q0 194 74 346.5t198 241t307 88.5q53 0 160 -11q16 -2 48 -5h187v-789q0 -202 42 -328h-194q-22 92 -35 251zM889 472v479q-99 26 -184 26q-172 0 -286.5 -133t-114.5 -362q0 -166 62.5 -250.5 t142.5 -84.5q87 0 192 88t188 237zM898 1288h-170l-342 326h216z" />
|
||||
<glyph unicode="á" d="M889 251q-85 -140 -204.5 -211t-219.5 -71q-140 0 -251.5 121t-111.5 367q0 194 74 346.5t198 241t307 88.5q53 0 160 -11q16 -2 48 -5h187v-789q0 -202 42 -328h-194q-22 92 -35 251zM889 472v479q-99 26 -184 26q-172 0 -286.5 -133t-114.5 -362q0 -166 62.5 -250.5 t142.5 -84.5q87 0 192 88t188 237zM480 1288l296 326h216l-342 -326h-170z" />
|
||||
<glyph unicode="â" d="M889 251q-85 -140 -204.5 -211t-219.5 -71q-140 0 -251.5 121t-111.5 367q0 194 74 346.5t198 241t307 88.5q53 0 160 -11q16 -2 48 -5h187v-789q0 -202 42 -328h-194q-22 92 -35 251zM889 472v479q-99 26 -184 26q-172 0 -286.5 -133t-114.5 -362q0 -166 62.5 -250.5 t142.5 -84.5q87 0 192 88t188 237zM703 1456l-140 -168h-155l233 326h124l233 -326h-156z" />
|
||||
<glyph unicode="ã" d="M889 251q-85 -140 -204.5 -211t-219.5 -71q-140 0 -251.5 121t-111.5 367q0 194 74 346.5t198 241t307 88.5q53 0 160 -11q16 -2 48 -5h187v-789q0 -202 42 -328h-194q-22 92 -35 251zM889 472v479q-99 26 -184 26q-172 0 -286.5 -133t-114.5 -362q0 -166 62.5 -250.5 t142.5 -84.5q87 0 192 88t188 237zM457 1288h-125q0 132 51.5 194t129.5 62q62 0 126 -40l42 -25q83 -52 116 -52q60 0 60 117h127q-6 -102 -27 -149t-64.5 -77.5t-95.5 -30.5q-65 0 -141 49l-44 28l-24 17q-34 23 -65 23q-22 0 -44 -23t-22 -93z" />
|
||||
<glyph unicode="ä" d="M889 251q-85 -140 -204.5 -211t-219.5 -71q-140 0 -251.5 121t-111.5 367q0 194 74 346.5t198 241t307 88.5q53 0 160 -11q16 -2 48 -5h187v-789q0 -202 42 -328h-194q-22 92 -35 251zM889 472v479q-99 26 -184 26q-172 0 -286.5 -133t-114.5 -362q0 -166 62.5 -250.5 t142.5 -84.5q87 0 192 88t188 237zM454 1288q-51 0 -87.5 36t-36.5 88t37 88t87 36t87 -36t37 -88t-36.5 -88t-87.5 -36zM889 1288q-51 0 -88 36t-37 88t37.5 88t87.5 36t87 -36t37 -88t-37 -88t-87 -36z" />
|
||||
<glyph unicode="å" d="M889 251q-85 -140 -204.5 -211t-219.5 -71q-140 0 -251.5 121t-111.5 367q0 194 74 346.5t198 241t307 88.5q53 0 160 -11q16 -2 48 -5h187v-789q0 -202 42 -328h-194q-22 92 -35 251zM889 472v479q-99 26 -184 26q-172 0 -286.5 -133t-114.5 -362q0 -166 62.5 -250.5 t142.5 -84.5q87 0 192 88t188 237zM657 1381q39 0 66 27.5t27 65.5t-27 65.5t-66 27.5q-38 0 -65.5 -27.5t-27.5 -65.5t27.5 -65.5t65.5 -27.5zM657 1288q-78 0 -132 56t-54 130q0 75 54.5 130.5t131.5 55.5q78 0 132 -55.5t54 -130.5q0 -74 -54 -130t-132 -56z" />
|
||||
<glyph unicode="æ" d="M592 226q-52 -130 -120 -193.5t-132 -63.5q-112 0 -194 144t-82 370q0 200 55.5 349.5t148 232.5t198.5 83q35 0 74.5 -7.5t71 -19t79.5 -44.5q73 54 113 62.5t71 8.5q127 0 209 -113.5t82 -449.5v-50h-404v-83q0 -148 22.5 -208.5t64.5 -90t94 -29.5q101 0 223 79v-170 q-141 -64 -254 -64q-74 0 -136 25.5t-107.5 76.5t-76.5 155zM576 470v489q-24 17 -47 25.5t-45 8.5q-117 0 -175.5 -165t-58.5 -365q0 -118 33 -203q32 -82 80 -82h4q105 7 209 292zM762 667h217v32q0 176 -27 235t-79 59q-55 0 -83 -73.5t-28 -220.5v-32z" />
|
||||
<glyph unicode="ç" d="M702 -131q108 -21 141 -65.5t33 -92.5q0 -55 -44.5 -100.5t-137.5 -45.5q-83 0 -159 28v89q58 -31 118 -31q36 0 63.5 21t27.5 44q0 68 -185 87l93 169q-165 28 -272 112t-161.5 196.5t-54.5 266.5q0 272 169 436.5t396 164.5q173 0 366 -65v-179q-195 89 -349 89 q-102 0 -192 -50.5t-139 -157.5t-49 -220q0 -151 94.5 -288t296.5 -137q61 0 120 8.5t218 62.5v-179q-156 -56 -338 -66z" />
|
||||
<glyph unicode="è" d="M1084 74q-223 -106 -422 -106q-151 0 -270 75t-190.5 214.5t-71.5 298.5q0 153 68 294t190 219.5t272 78.5q199 0 319.5 -142t120.5 -438v-40h-770q0 -116 48.5 -212t127.5 -144t180 -48q180 0 398 120v-170zM341 667h557v27q0 137 -67 218t-179 81q-113 0 -195.5 -82.5 t-115.5 -243.5zM910 1288h-170l-342 326h216z" />
|
||||
<glyph unicode="é" d="M1084 74q-223 -106 -422 -106q-151 0 -270 75t-190.5 214.5t-71.5 298.5q0 153 68 294t190 219.5t272 78.5q199 0 319.5 -142t120.5 -438v-40h-770q0 -116 48.5 -212t127.5 -144t180 -48q180 0 398 120v-170zM341 667h557v27q0 137 -67 218t-179 81q-113 0 -195.5 -82.5 t-115.5 -243.5zM445 1288l296 326h216l-342 -326h-170z" />
|
||||
<glyph unicode="ê" d="M1084 74q-223 -106 -422 -106q-151 0 -270 75t-190.5 214.5t-71.5 298.5q0 153 68 294t190 219.5t272 78.5q199 0 319.5 -142t120.5 -438v-40h-770q0 -116 48.5 -212t127.5 -144t180 -48q180 0 398 120v-170zM341 667h557v27q0 137 -67 218t-179 81q-113 0 -195.5 -82.5 t-115.5 -243.5zM654 1456l-140 -168h-155l233 326h124l233 -326h-156z" />
|
||||
<glyph unicode="ë" d="M1084 74q-223 -106 -422 -106q-151 0 -270 75t-190.5 214.5t-71.5 298.5q0 153 68 294t190 219.5t272 78.5q199 0 319.5 -142t120.5 -438v-40h-770q0 -116 48.5 -212t127.5 -144t180 -48q180 0 398 120v-170zM341 667h557v27q0 137 -67 218t-179 81q-113 0 -195.5 -82.5 t-115.5 -243.5zM450 1288q-51 0 -87.5 36t-36.5 88t37 88t87 36t87 -36t37 -88t-36.5 -88t-87.5 -36zM885 1288q-51 0 -88 36t-37 88t37.5 88t87.5 36t87 -36t37 -88t-37 -88t-87 -36z" />
|
||||
<glyph unicode="ì" d="M467 0v962h-310v155h496v-962h311v-155h-497zM816 1288h-170l-342 326h216z" />
|
||||
<glyph unicode="í" d="M467 0v962h-310v155h496v-962h311v-155h-497zM304 1288l296 326h216l-342 -326h-170z" />
|
||||
<glyph unicode="î" d="M467 0v962h-310v155h496v-962h311v-155h-497zM562 1456l-140 -168h-155l233 326h124l233 -326h-156z" />
|
||||
<glyph unicode="ï" d="M467 0v962h-310v155h496v-962h311v-155h-497zM344 1288q-51 0 -87.5 36t-36.5 88t37 88t87 36t87 -36t37 -88t-36.5 -88t-87.5 -36zM779 1288q-51 0 -88 36t-37 88t37.5 88t87.5 36t87 -36t37 -88t-37 -88t-87 -36z" />
|
||||
<glyph unicode="ñ" d="M157 0v1117h186v-244q80 129 193 202t226 73q99 0 180 -52.5t113.5 -137.5t32.5 -334v-624h-186v647q0 161 -15.5 212.5t-57 84.5t-90.5 33q-98 0 -210.5 -93t-185.5 -233v-651h-186zM430 1288h-125q0 132 51.5 194t129.5 62q62 0 126 -40l42 -25q83 -52 116 -52 q60 0 60 117h127q-6 -102 -27 -149t-64.5 -77.5t-95.5 -30.5q-65 0 -141 49l-44 28l-24 17q-34 23 -65 23q-22 0 -44 -23t-22 -93z" />
|
||||
<glyph unicode="ò" d="M615 -31q-240 0 -384 167.5t-144 422.5t144 422t384 167q239 0 383 -167t144 -422t-144 -422.5t-383 -167.5zM615 124q149 0 237 116t88 319q0 202 -88 318t-237 116q-150 0 -238 -116t-88 -318q0 -203 88 -319t238 -116zM871 1288h-170l-342 326h216z" />
|
||||
<glyph unicode="ó" d="M615 -31q-240 0 -384 167.5t-144 422.5t144 422t384 167q239 0 383 -167t144 -422t-144 -422.5t-383 -167.5zM615 124q149 0 237 116t88 319q0 202 -88 318t-237 116q-150 0 -238 -116t-88 -318q0 -203 88 -319t238 -116zM359 1288l296 326h216l-342 -326h-170z" />
|
||||
<glyph unicode="ô" d="M615 -31q-240 0 -384 167.5t-144 422.5t144 422t384 167q239 0 383 -167t144 -422t-144 -422.5t-383 -167.5zM615 124q149 0 237 116t88 319q0 202 -88 318t-237 116q-150 0 -238 -116t-88 -318q0 -203 88 -319t238 -116zM615 1456l-140 -168h-155l233 326h124l233 -326 h-156z" />
|
||||
<glyph unicode="õ" d="M615 -31q-240 0 -384 167.5t-144 422.5t144 422t384 167q239 0 383 -167t144 -422t-144 -422.5t-383 -167.5zM615 124q149 0 237 116t88 319q0 202 -88 318t-237 116q-150 0 -238 -116t-88 -318q0 -203 88 -319t238 -116zM414 1288h-125q0 132 51.5 194t129.5 62 q62 0 126 -40l42 -25q83 -52 116 -52q60 0 60 117h127q-6 -102 -27 -149t-64.5 -77.5t-95.5 -30.5q-65 0 -141 49l-44 28l-24 17q-34 23 -65 23q-22 0 -44 -23t-22 -93z" />
|
||||
<glyph unicode="ö" d="M615 -31q-240 0 -384 167.5t-144 422.5t144 422t384 167q239 0 383 -167t144 -422t-144 -422.5t-383 -167.5zM615 124q149 0 237 116t88 319q0 202 -88 318t-237 116q-150 0 -238 -116t-88 -318q0 -203 88 -319t238 -116zM397 1288q-51 0 -87.5 36t-36.5 88t37 88t87 36 t87 -36t37 -88t-36.5 -88t-87.5 -36zM832 1288q-51 0 -88 36t-37 88t37.5 88t87.5 36t87 -36t37 -88t-37 -88t-87 -36z" />
|
||||
<glyph unicode="÷" d="M614 776q-57 0 -100 43t-43 100q0 58 43 101t100 43t100.5 -43t43.5 -101q0 -57 -43.5 -100t-100.5 -43zM1157 621v-156h-1086v156h1086zM614 23q-57 0 -100 43t-43 101t43 100.5t100 42.5t100.5 -42.5t43.5 -100.5t-43.5 -101t-100.5 -43z" />
|
||||
<glyph unicode="ø" d="M236 -93h-149l150 221q-150 189 -150 436q0 243 135 413.5t391 170.5q50 0 100 -7t89.5 -20t95.5 -46l94 135h150l-149 -215q149 -193 149 -436q0 -237 -132 -413.5t-396 -176.5q-63 0 -123.5 10.5t-158.5 64.5zM341 280l464 663q-89 50 -190 50q-159 0 -242.5 -115.5 t-83.5 -313.5q0 -150 52 -284zM889 845l-465 -668q96 -53 181 -53q183 0 259 122.5t76 307.5q0 160 -51 291z" />
|
||||
<glyph unicode="ù" d="M1074 1117v-1117h-186v245q-90 -138 -200 -207t-220 -69q-98 0 -179.5 52.5t-113.5 138t-32 333.5v624h186v-647q0 -161 15.5 -212.5t57 -84.5t89.5 -33q98 0 210.5 92.5t186.5 233.5v651h186zM873 1288h-170l-342 326h216z" />
|
||||
<glyph unicode="ú" d="M1074 1117v-1117h-186v245q-90 -138 -200 -207t-220 -69q-98 0 -179.5 52.5t-113.5 138t-32 333.5v624h186v-647q0 -161 15.5 -212.5t57 -84.5t89.5 -33q98 0 210.5 92.5t186.5 233.5v651h186zM406 1288l296 326h216l-342 -326h-170z" />
|
||||
<glyph unicode="û" d="M1074 1117v-1117h-186v245q-90 -138 -200 -207t-220 -69q-98 0 -179.5 52.5t-113.5 138t-32 333.5v624h186v-647q0 -161 15.5 -212.5t57 -84.5t89.5 -33q98 0 210.5 92.5t186.5 233.5v651h186zM617 1456l-140 -168h-155l233 326h124l233 -326h-156z" />
|
||||
<glyph unicode="ü" d="M1074 1117v-1117h-186v245q-90 -138 -200 -207t-220 -69q-98 0 -179.5 52.5t-113.5 138t-32 333.5v624h186v-647q0 -161 15.5 -212.5t57 -84.5t89.5 -33q98 0 210.5 92.5t186.5 233.5v651h186zM399 1288q-51 0 -87.5 36t-36.5 88t37 88t87 36t87 -36t37 -88t-36.5 -88 t-87.5 -36zM834 1288q-51 0 -88 36t-37 88t37.5 88t87.5 36t87 -36t37 -88t-37 -88t-87 -36z" />
|
||||
<glyph unicode="ý" d="M538 1270l296 326h216l-342 -326h-170zM566 45l-516 1072h205l411 -838l344 838h187l-433 -1038q-137 -329 -260.5 -437t-319.5 -108q-85 0 -152 15v164q77 -24 147 -24q90 0 160 35t128 124t82 154z" />
|
||||
<glyph unicode="ÿ" d="M582 45l-516 1072h205l411 -838l344 838h187l-433 -1038q-137 -329 -260.5 -437t-319.5 -108q-85 0 -152 15v164q77 -24 147 -24q90 0 160 35t128 124t82 154zM444 1288q-51 0 -87.5 36t-36.5 88t37 88t87 36t87 -36t37 -88t-36.5 -88t-87.5 -36zM879 1288q-51 0 -88 36 t-37 88t37.5 88t87.5 36t87 -36t37 -88t-37 -88t-87 -36z" />
|
||||
<glyph unicode="ı" d="M467 0v962h-310v155h496v-962h311v-155h-497z" />
|
||||
<glyph unicode="Œ" d="M1184 0h-551v39q-68 -60 -103.5 -65.5t-53.5 -5.5q-115 0 -221.5 94t-162.5 293.5t-56 439.5q0 252 61.5 438.5t164.5 268t217 81.5q33 0 68 -10t86 -60v39h536v-156h-349v-535h333v-155h-333v-535h364v-171zM633 521v501q0 265 -37.5 335.5t-109.5 70.5 q-131 0 -189.5 -184.5t-58.5 -463.5q0 -248 55.5 -452t196.5 -204q70 0 106.5 70.5t36.5 326.5z" />
|
||||
<glyph unicode="œ" d="M625 135q-59 -111 -124.5 -138.5t-119.5 -27.5q-88 0 -159 63t-113 208.5t-42 329.5q0 217 76.5 397.5t258.5 180.5q80 0 139 -41.5t98 -124.5q44 83 103 124.5t133 41.5q119 0 202.5 -112.5t83.5 -438.5v-62h-404v-61q0 -178 24.5 -236.5t67 -86t92.5 -27.5 q103 0 220 78v-173q-141 -60 -251 -60q-85 0 -155.5 32.5t-129.5 133.5zM571 493v102q0 127 -6.5 178t-24.5 101.5t-52 86.5q-32 32 -70 32h-6q-85 -5 -126 -129t-41 -320q0 -166 39.5 -293t131.5 -127q67 0 111 86t44 283zM757 667h218v33q0 185 -30 239t-77 54 q-48 0 -79.5 -69.5t-31.5 -222.5v-34z" />
|
||||
<glyph unicode="Ÿ" d="M514 0v718l-462 834h229l345 -616l344 616h207l-461 -834v-718h-202zM397 1722q-51 0 -87.5 36t-36.5 88t37 88t87 36t87 -36t37 -88t-36.5 -88t-87.5 -36zM832 1722q-51 0 -88 36t-37 88t37.5 88t87.5 36t87 -36t37 -88t-37 -88t-87 -36z" />
|
||||
<glyph unicode="ˆ" d="M615 1456l-140 -168h-155l233 326h124l233 -326h-156z" />
|
||||
<glyph unicode="˚" d="M614 1381q39 0 66 27.5t27 65.5t-27 65.5t-66 27.5q-38 0 -65.5 -27.5t-27.5 -65.5t27.5 -65.5t65.5 -27.5zM614 1288q-78 0 -132 56t-54 130q0 75 54.5 130.5t131.5 55.5q78 0 132 -55.5t54 -130.5q0 -74 -54 -130t-132 -56z" />
|
||||
<glyph unicode="˜" d="M414 1288h-125q0 132 51.5 194t129.5 62q62 0 126 -40l42 -25q83 -52 116 -52q60 0 60 117h127q-6 -102 -27 -149t-64.5 -77.5t-95.5 -30.5q-65 0 -141 49l-44 28l-24 17q-34 23 -65 23q-22 0 -44 -23t-22 -93z" />
|
||||
<glyph unicode=" " horiz-adv-x="1024" />
|
||||
<glyph unicode=" " horiz-adv-x="2048" />
|
||||
<glyph unicode=" " horiz-adv-x="1024" />
|
||||
<glyph unicode=" " horiz-adv-x="2048" />
|
||||
<glyph unicode=" " horiz-adv-x="682" />
|
||||
<glyph unicode=" " horiz-adv-x="512" />
|
||||
<glyph unicode=" " horiz-adv-x="341" />
|
||||
<glyph unicode=" " horiz-adv-x="341" />
|
||||
<glyph unicode=" " horiz-adv-x="256" />
|
||||
<glyph unicode=" " horiz-adv-x="409" />
|
||||
<glyph unicode=" " horiz-adv-x="113" />
|
||||
<glyph unicode="‐" d="M227 551v155h776v-155h-776z" />
|
||||
<glyph unicode="‑" d="M227 551v155h776v-155h-776z" />
|
||||
<glyph unicode="‒" d="M227 551v155h776v-155h-776z" />
|
||||
<glyph unicode="–" d="M71 528v155h1086v-155h-1086z" />
|
||||
<glyph unicode="—" d="M71 528v124h1086v-124h-1086z" />
|
||||
<glyph unicode="‘" d="M804 1645v-125q-72 -19 -109.5 -54t-60 -89.5t-22.5 -132.5q93 0 137 -52.5t44 -111.5q0 -70 -49 -117.5t-114 -47.5q-84 0 -145 72.5t-61 198.5q0 111 48 208t130.5 166t201.5 85z" />
|
||||
<glyph unicode="’" d="M424 915v125q72 19 109.5 54t60 89.5t22.5 132.5q-93 0 -137 52.5t-44 111.5q0 70 49 117.5t114 47.5q84 0 145 -72.5t61 -198.5q0 -111 -48 -208t-130.5 -166t-201.5 -85z" />
|
||||
<glyph unicode="‚" d="M424 -434v124q72 19 109.5 54.5t57 82.5t25.5 139q-93 0 -137 52.5t-44 112.5q0 69 49 116.5t114 47.5q84 0 145 -72.5t61 -198.5q0 -110 -48 -207.5t-130.5 -166.5t-201.5 -84z" />
|
||||
<glyph unicode="“" d="M1049 1645v-125q-72 -19 -109.5 -54t-60 -89.5t-22.5 -132.5q92 0 136.5 -52.5t44.5 -111.5q0 -70 -49 -117.5t-114 -47.5q-85 0 -145.5 72.5t-60.5 198.5q0 111 48 208t130.5 166t201.5 85zM560 1645v-125q-72 -19 -109.5 -54t-60 -89.5t-22.5 -132.5q93 0 137 -52.5 t44 -111.5q0 -70 -49 -117.5t-114 -47.5q-84 0 -145 72.5t-61 198.5q0 111 48 208t130.5 166t201.5 85z" />
|
||||
<glyph unicode="”" d="M180 915v125q72 19 109.5 54t60 89.5t22.5 132.5q-93 0 -137 52.5t-44 111.5q0 70 49 117.5t114 47.5q84 0 145 -72.5t61 -198.5q0 -111 -48 -208t-130.5 -166t-201.5 -85zM669 915v125q71 19 109 54t60.5 89.5t22.5 132.5q-93 0 -137 52.5t-44 111.5q0 70 48.5 117.5 t113.5 47.5q85 0 146 -72.5t61 -198.5q0 -111 -48 -208t-130.5 -166t-201.5 -85z" />
|
||||
<glyph unicode="„" d="M180 -434v124q72 19 109.5 54.5t57 82.5t25.5 139q-93 0 -137 52.5t-44 112.5q0 69 49 116.5t114 47.5q84 0 145 -72.5t61 -198.5q0 -110 -48 -207.5t-130.5 -166.5t-201.5 -84zM669 -434v124q71 19 109 54.5t57.5 82.5t25.5 139q-93 0 -137 52.5t-44 112.5 q0 69 48.5 116.5t113.5 47.5q85 0 146 -72.5t61 -198.5q0 -110 -48 -207.5t-130.5 -166.5t-201.5 -84z" />
|
||||
<glyph unicode="•" d="M615 341q-113 0 -211 55t-157 155t-59 217q0 114 57 213.5t157 156.5t213 57q112 0 212 -57t157 -156.5t57 -213.5q0 -117 -59 -217t-157 -155t-210 -55z" />
|
||||
<glyph unicode="…" d="M205 -47q-57 0 -100.5 43t-43.5 101t43.5 100.5t100.5 42.5q56 0 99.5 -42.5t43.5 -100.5t-43.5 -101t-99.5 -43zM614 -47q-57 0 -100 43t-43 101t43 100.5t100 42.5t100.5 -42.5t43.5 -100.5t-43.5 -101t-100.5 -43zM1024 -47q-57 0 -100.5 43t-43.5 101t43.5 100.5 t100.5 42.5t100 -42.5t43 -100.5t-43 -101t-100 -43z" />
|
||||
<glyph unicode=" " horiz-adv-x="409" />
|
||||
<glyph unicode="‹" d="M331 484v160l501 473l112 -118l-429 -438l429 -446l-112 -115z" />
|
||||
<glyph unicode="›" d="M898 633v-160l-501 -473l-112 118l429 438l-429 446l112 115z" />
|
||||
<glyph unicode="⁄" d="M166 -47h-164l1061 1645h165z" />
|
||||
<glyph unicode=" " horiz-adv-x="512" />
|
||||
<glyph unicode="™" d="M225 776v663h-223v113h575v-113h-224v-663h-128zM744 1254v-478h-106v776h125l170 -464l172 464h123v-776h-121v477l-121 -328h-119z" />
|
||||
<glyph unicode="" horiz-adv-x="1115" d="M0 1115h1115v-1115h-1115v1115z" />
|
||||
<glyph unicode="fi" horiz-adv-x="2458" d="M1697 0v962h-310v155h496v-962h311v-155h-497zM1666 1520q0 63 43 94t81 31q39 0 82 -31t43 -94q0 -62 -43 -93t-82 -31q-38 0 -81 31t-43 93zM415 0v869h-248v155h248v52q0 221 50 327t154.5 174t276.5 68q130 0 264 -27v-177q-145 48 -257 48q-89 0 -157 -33 t-106.5 -107.5t-38.5 -252.5v-72h443v-155h-443v-869h-186z" />
|
||||
<glyph unicode="fl" horiz-adv-x="2458" d="M1684 0v1458h-334v156h520v-1459h349v-155h-535zM415 0v869h-248v155h248v52q0 221 50 327t154.5 174t276.5 68q130 0 264 -27v-177q-145 48 -257 48q-89 0 -157 -33t-106.5 -107.5t-38.5 -252.5v-72h443v-155h-443v-869h-186z" />
|
||||
<glyph unicode="ffi" horiz-adv-x="3687" d="M2926 0v962h-310v155h496v-962h311v-155h-497zM2895 1520q0 63 43 94t81 31q39 0 82 -31t43 -94q0 -62 -43 -93t-82 -31q-38 0 -81 31t-43 93zM1644 0v869h-248v155h248v52q0 221 50 327t154.5 174t276.5 68q130 0 264 -27v-177q-145 48 -257 48q-89 0 -157 -33 t-106.5 -107.5t-38.5 -252.5v-72h443v-155h-443v-869h-186zM415 0v869h-248v155h248v52q0 221 50 327t154.5 174t276.5 68q130 0 264 -27v-177q-145 48 -257 48q-89 0 -157 -33t-106.5 -107.5t-38.5 -252.5v-72h443v-155h-443v-869h-186z" />
|
||||
<glyph unicode="ffl" horiz-adv-x="3687" d="M2913 0v1458h-334v156h520v-1459h349v-155h-535zM1644 0v869h-248v155h248v52q0 221 50 327t154.5 174t276.5 68q130 0 264 -27v-177q-145 48 -257 48q-89 0 -157 -33t-106.5 -107.5t-38.5 -252.5v-72h443v-155h-443v-869h-186zM415 0v869h-248v155h248v52q0 221 50 327 t154.5 174t276.5 68q130 0 264 -27v-177q-145 48 -257 48q-89 0 -157 -33t-106.5 -107.5t-38.5 -252.5v-72h443v-155h-443v-869h-186z" />
|
||||
</font>
|
||||
</defs></svg>
|
After Width: | Height: | Size: 52 KiB |
BIN
plugin/code/font/monaco-webfont.ttf
Normal file
BIN
plugin/code/font/monaco-webfont.woff
Normal file
5
plugin/code/include.php
Normal file
@ -0,0 +1,5 @@
|
||||
<?php
|
||||
function zxd_ctrlcenter_code(){
|
||||
global $zbp;
|
||||
$zbp->footer .='<link rel="stylesheet" href="'.$zbp->host.'zb_users/plugin/zxd_ctrlcenter/plugin/code/z_codeplus.css"><script src="'.$zbp->host.'zb_users/plugin/zxd_ctrlcenter/plugin/code/z_codeplus.js" type="text/javascript"/></script>';
|
||||
}
|
BIN
plugin/code/logo.png
Normal file
After Width: | Height: | Size: 11 KiB |
4
plugin/code/manage/config.php
Normal file
@ -0,0 +1,4 @@
|
||||
<?php
|
||||
$PluginTitle = "代码显示优化";
|
||||
$PluginShortTitle = "代码高亮";
|
||||
$PluginIntro = '本子插件为“隔壁老李”作者的群友福利插件,此处仅提供测试,正式使用请大家去原作者的交流群(236895886)中下载。在此对“隔壁老李”作者表示感谢!';
|
33
plugin/code/manage/status.php
Normal file
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
if(!empty($_GET['include'])&&$_GET['include']=="c_system_base"){
|
||||
// 单独打开时需要引入这个,不然$zbp未定义
|
||||
include_once '../../../../../../zb_system/function/c_system_base.php';
|
||||
}
|
||||
|
||||
global $zbp;
|
||||
if(empty($_GET['action']))
|
||||
$status_action = "";
|
||||
else
|
||||
$status_action = $_GET['action'];
|
||||
|
||||
$Close = '<script>window.close(); window.opener.location.reload(); </script>';
|
||||
switch ($status_action) {
|
||||
case 'chk':
|
||||
$pluginstatus = $zbp->Config('zxd_ctrlcenter')-> plugin_code_Enable;
|
||||
break;
|
||||
case 'enb':
|
||||
$zbp->Config('zxd_ctrlcenter')-> plugin_code_Enable = true;
|
||||
$zbp->SaveConfig('zxd_ctrlcenter');
|
||||
echo $Close;
|
||||
break;
|
||||
case 'dis':
|
||||
$zbp->Config('zxd_ctrlcenter')-> plugin_code_Enable = false;
|
||||
$zbp->SaveConfig('zxd_ctrlcenter');
|
||||
echo $Close;
|
||||
break;
|
||||
|
||||
default:
|
||||
$pluginstatus = $zbp->Config('zxd_ctrlcenter')-> plugin_code_Enable;
|
||||
break;
|
||||
}
|
||||
?>
|
44
plugin/code/plugin.xml
Normal file
@ -0,0 +1,44 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<plugin version="php">
|
||||
<id>z_codeplus</id>
|
||||
<name>野路子代码显示优化 Plus(张小弟之家修改,修正编辑代码区域太小的问题)</name>
|
||||
<url>https://yeelz.com</url>
|
||||
<note>修改UE编辑器默认的代码高亮效果,并加入复制、运行、编辑功能</note>
|
||||
<description>修改UE编辑器默认的代码高亮效果,并加入复制、运行、编辑功能,兼容自带UE编辑器和NE编辑器</description>
|
||||
<path></path>
|
||||
<include>include.php</include>
|
||||
<level>1</level>
|
||||
<author>
|
||||
<name>隔壁老李</name>
|
||||
<email>393988832@qq.com</email>
|
||||
<url>https://yeelz.com</url>
|
||||
</author>
|
||||
<source>
|
||||
<name></name>
|
||||
<email></email>
|
||||
<url></url>
|
||||
</source>
|
||||
<adapted>151935</adapted>
|
||||
<version>1.1</version>
|
||||
<pubdate>2019-12-06</pubdate>
|
||||
<modified>2020-04-15</modified>
|
||||
<price>0</price>
|
||||
<phpver>5.2</phpver>
|
||||
<advanced>
|
||||
<dependency></dependency>
|
||||
<rewritefunctions></rewritefunctions>
|
||||
<existsfunctions></existsfunctions>
|
||||
<conflict></conflict>
|
||||
</advanced>
|
||||
<sidebars>
|
||||
<sidebar1></sidebar1>
|
||||
<sidebar2></sidebar2>
|
||||
<sidebar3></sidebar3>
|
||||
<sidebar4></sidebar4>
|
||||
<sidebar5></sidebar5>
|
||||
<sidebar6></sidebar6>
|
||||
<sidebar7></sidebar7>
|
||||
<sidebar8></sidebar8>
|
||||
<sidebar9></sidebar9>
|
||||
</sidebars>
|
||||
</plugin>
|
1
plugin/code/svg/bianji.svg
Normal file
@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1575549118767" class="icon" viewBox="0 0 1031 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1258" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16"><defs><style type="text/css"></style></defs><path d="M982.115656 345.184767a33.940762 33.940762 0 0 0-36.107193 36.107194v519.943582a49.105783 49.105783 0 0 1-50.550071 50.550071H122.764457a49.105783 49.105783 0 0 1-50.550071-50.550071V135.763047a49.105783 49.105783 0 0 1 50.550071-50.550071h491.057828a33.940762 33.940762 0 0 0 36.107193-36.107193 40.440056 40.440056 0 0 0-36.107193-43.328632H122.764457A126.375176 126.375176 0 0 0 0 128.541608v772.693935a126.375176 126.375176 0 0 0 122.764457 122.764457h772.693935a126.375176 126.375176 0 0 0 122.764457-122.764457v-519.943582a38.995769 38.995769 0 0 0-36.107193-36.107194z" p-id="1259" fill="#404b69"></path><path d="M346.629055 518.499295l-72.214386 187.757405a31.77433 31.77433 0 0 0 7.221438 36.107193c7.221439 7.221439 14.442877 7.221439 28.885755 7.221438h14.442877l187.757405-72.214386c7.221439 0 7.221439-7.221439 14.442877-7.221439l476.614951-476.61495a83.046544 83.046544 0 0 0 0-122.764457l-43.328632-43.328632a83.046544 83.046544 0 0 0-122.764457 0l-483.836389 476.61495a25.275035 25.275035 0 0 1-7.221439 14.442878z m534.38646-433.286319c7.221439-7.221439 14.442877-7.221439 14.442877 0l43.328632 43.328632c7.221439 7.221439 7.221439 14.442877 0 14.442877l-433.286319 433.286319-57.771509-57.771509z m-476.614951 491.057828l50.550071 50.55007-86.657264 28.885755z" p-id="1260" fill="#404b69"></path></svg>
|
After Width: | Height: | Size: 1.7 KiB |
1
plugin/code/svg/bianjigo.svg
Normal file
@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1575549096386" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="962" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16"><defs><style type="text/css"></style></defs><path d="M894.195568 0.002163H129.804432A129.081145 129.081145 0 0 0 0.002163 129.804432v764.391136a129.081145 129.081145 0 0 0 129.802269 129.802269h764.391136a129.081145 129.081145 0 0 0 129.802269-129.802269V129.804432A129.081145 129.081145 0 0 0 894.195568 0.002163z m57.689897 894.193405a56.968773 56.968773 0 0 1-57.689897 57.689897H129.804432a56.968773 56.968773 0 0 1-57.689897-57.689897V129.804432a56.968773 56.968773 0 0 1 57.689897-57.689897h764.391136a56.968773 56.968773 0 0 1 57.689897 57.689897z" p-id="963" fill="#404b69"></path><path d="M800.449485 252.395463h-576.89897a33.892815 33.892815 0 0 0-36.056186 36.056186 33.892815 33.892815 0 0 0 36.056186 36.056185h576.89897a33.892815 33.892815 0 0 0 36.056186-36.056185 33.892815 33.892815 0 0 0-36.056186-36.056186zM800.449485 454.310103h-576.89897a36.056186 36.056186 0 0 0 0 72.112371h576.89897a36.056186 36.056186 0 0 0 0-72.112371zM800.449485 699.492166h-576.89897a36.056186 36.056186 0 0 0 0 72.112371h576.89897a36.056186 36.056186 0 0 0 0-72.112371z" p-id="964" fill="#404b69"></path></svg>
|
After Width: | Height: | Size: 1.4 KiB |
1
plugin/code/svg/copy.svg
Normal file
@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1575548982839" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="814" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16"><defs><style type="text/css"></style></defs><path d="M749.714286 146.285714h-621.714286A91.428571 91.428571 0 0 0 36.571429 237.714286v694.857143A91.428571 91.428571 0 0 0 128 1024h621.714286A91.428571 91.428571 0 0 0 841.142857 932.571429v-694.857143A91.428571 91.428571 0 0 0 749.714286 146.285714zM768 932.571429a18.285714 18.285714 0 0 1-18.285714 18.285714h-621.714286a18.285714 18.285714 0 0 1-18.285714-18.285714v-694.857143A18.285714 18.285714 0 0 1 128 219.428571h621.714286a18.285714 18.285714 0 0 1 18.285714 18.285715z" p-id="815" fill="#404b69"></path><path d="M896 0h-621.714286a36.571429 36.571429 0 0 0 0 73.142857h621.714286a18.285714 18.285714 0 0 1 18.285714 18.285714v694.857143a36.571429 36.571429 0 0 0 73.142857 0v-694.857143A91.428571 91.428571 0 0 0 896 0z" p-id="816" fill="#404b69"></path><path d="M621.714286 337.92H256a36.571429 36.571429 0 0 0-36.571429 36.571429 36.571429 36.571429 0 0 0 36.571429 36.571428h365.714286a36.571429 36.571429 0 0 0 36.571428-36.571428 36.571429 36.571429 0 0 0-36.571428-36.571429z m0 182.857143H256a36.571429 36.571429 0 0 0-36.571429 36.571428 36.571429 36.571429 0 0 0 36.571429 36.571429h365.714286a36.571429 36.571429 0 0 0 36.571428-36.571429 36.571429 36.571429 0 0 0-36.571428-36.571428zM475.428571 702.171429H256a36.571429 36.571429 0 0 0-36.571429 36.571428 36.571429 36.571429 0 0 0 36.571429 36.571429h219.428571a36.571429 36.571429 0 0 0 36.571429-36.571429 36.571429 36.571429 0 0 0-36.571429-36.571428z" p-id="817" fill="#404b69"></path></svg>
|
After Width: | Height: | Size: 1.8 KiB |
1
plugin/code/svg/yunxing.svg
Normal file
@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1575549108962" class="icon" viewBox="0 0 1038 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1110" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16"><defs><style type="text/css"></style></defs><path d="M906.905605 0.002194H131.649464A130.915896 130.915896 0 0 0 0.002194 131.649463v555.844026a130.915896 130.915896 0 0 0 131.64727 131.64727h175.529692V950.788028H190.159361a36.568686 36.568686 0 0 0 0 73.137372h665.550084a34.374565 34.374565 0 0 0 36.568686-36.568686 40.956928 40.956928 0 0 0-43.882423-36.568686H731.375913v-138.961006h175.529692a130.915896 130.915896 0 0 0 131.647269-131.64727V131.649463A130.915896 130.915896 0 0 0 906.905605 0.002194z m58.509898 687.491295a57.778524 57.778524 0 0 1-58.509898 58.509898H131.649464a57.778524 57.778524 0 0 1-58.509898-58.509898V131.649463a57.778524 57.778524 0 0 1 58.509898-58.509897h775.256141a57.778524 57.778524 0 0 1 58.509898 58.509897z" p-id="1111" fill="#404b69"></path><path d="M197.473098 270.61047a34.374565 34.374565 0 0 0-36.568686 36.568686v343.745647a34.374565 34.374565 0 0 0 36.568686 36.568686 34.374565 34.374565 0 0 0 36.568686-36.568686V307.179156a39.494181 39.494181 0 0 0-36.568686-36.568686zM409.571477 365.689053a34.374565 34.374565 0 0 0-36.568686 36.568686v248.667064a36.568686 36.568686 0 0 0 73.137372 0V402.257739a34.374565 34.374565 0 0 0-36.568686-36.568686zM621.669855 285.237944a34.374565 34.374565 0 0 0-36.568686 36.568686v329.118173a36.568686 36.568686 0 0 0 73.137372 0V321.80663a34.374565 34.374565 0 0 0-36.568686-36.568686zM833.768233 212.100572a34.374565 34.374565 0 0 0-36.568686 36.568686v402.255545a36.568686 36.568686 0 1 0 73.137372 0V248.669258a34.374565 34.374565 0 0 0-36.568686-36.568686z" p-id="1112" fill="#404b69"></path></svg>
|
After Width: | Height: | Size: 1.9 KiB |
75
plugin/code/z_codeplus.css
Normal file
@ -0,0 +1,75 @@
|
||||
@charset "utf-8";
|
||||
/**
|
||||
* 作品:Z-Blog代码高亮+复制
|
||||
* 作者:隔壁老李
|
||||
* 网址:https://zpanz.com
|
||||
* 本插件完全免费,请勿删除此段内容
|
||||
*/
|
||||
@font-face {
|
||||
font-family: 'MonacoRegular';
|
||||
src: url(font/monaco-webfont.eot);
|
||||
src: url(font/monaco-webfont.eot?#iefix) format('embedded-opentype'), url(font/monaco-webfont.woff) format('woff'), url(font/monaco-webfont.ttf) format('truetype'), url(font/monaco-webfont.svg#MonacoRegular) format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal
|
||||
}
|
||||
code[class*="language-"], pre[class*="language-"] {
|
||||
color:#fff;
|
||||
text-shadow: none;
|
||||
font-size: 1rem;
|
||||
font-family:Monaco,'MonacoRegular','Microsoft Yahei',monospace;
|
||||
}
|
||||
pre[class*="language-"] {
|
||||
border-radius: 0.3em;
|
||||
margin: .5em 0 2em 0;
|
||||
}
|
||||
|
||||
:not(pre) > code[class*="language-"], pre[class*="language-"] {
|
||||
background: #1f1f1f;
|
||||
}
|
||||
.prism-token.prism-punctuation {
|
||||
color: #fff;
|
||||
}
|
||||
.prism-token.property, .prism-token.prism-tag, .prism-token.prism-boolean, .prism-token.prism-number, .prism-token.prism-constant, .prism-token.prism-symbol, .prism-token.prism-deleted {
|
||||
color: #f92650;
|
||||
}
|
||||
.prism-token.prism-selector, .prism-token.prism-attr-name, .prism-token.prism-string, .prism-token.prism-char, .prism-token.prism-builtin, .prism-token.prism-inserted {
|
||||
color: #a6e22d;
|
||||
}
|
||||
.prism-token.prism-operator, .prism-token.prism-entity, .prism-token.prism-url, .prism-language-css .prism-token.prism-string, .prism-style .prism-token.prism-string {
|
||||
color: #fff;
|
||||
background: none;
|
||||
}
|
||||
.prism-token.prism-atrule, .prism-token.prism-attr-value, .prism-token.prism-keyword {
|
||||
color: #e6db5d;
|
||||
}
|
||||
.prism-token.prism-function {
|
||||
color: #DD4A68;
|
||||
}
|
||||
.prism-line-numbers .prism-line-numbers-rows {
|
||||
border-right: none;
|
||||
}
|
||||
.prism-line-numbers-rows > span:before {
|
||||
color: #868686;
|
||||
padding-right: none;
|
||||
text-align: center;
|
||||
}
|
||||
div.prism-show-language > div.prism-show-language-label[data-language] {
|
||||
background-color: #f4f5f9;
|
||||
border: 1px solid #f4f5f9;
|
||||
font-size: 0.8em;
|
||||
border-radius: 0 0.3em 0;
|
||||
padding: 0 0.5em;
|
||||
}
|
||||
|
||||
.prism-show-language-label img.z_go{
|
||||
display: inline;
|
||||
margin: 0 8px 3px 0;
|
||||
}
|
||||
div.post-body code {
|
||||
border: none;
|
||||
}
|
||||
.cdm_code{display:none;padding:10px;font-size: 1rem;
|
||||
font-family:Monaco,'MonacoRegular','Microsoft Yahei',monospace;color: #404b69;background-color: #f4f5f9; margin: .5em 0 2em 0;}
|
||||
.zcodehide{display:none;}
|
||||
textarea.zcodeshow{display:block;width: 100%;}
|
||||
.cdmtip{position:fixed;top:50%;left:50%;color:#f90;font-size:18px;font-family:'\5FAE\8F6F\96C5\9ED1';margin-top:-10px}
|
100
plugin/code/z_codeplus.js
Normal file
@ -0,0 +1,100 @@
|
||||
var preNum = 0;
|
||||
var preStyle = 'pre[class*="brush:"],pre[class*="prism"],pre>code';
|
||||
var copyimg = bloghost + "zb_users/plugin/zxd_ctrlcenter/plugin/code/svg/copy.svg";
|
||||
var goimg = bloghost + "zb_users/plugin/zxd_ctrlcenter/plugin/code/svg/yunxing.svg";
|
||||
var bjimg = bloghost + "zb_users/plugin/zxd_ctrlcenter/plugin/code/svg/bianji.svg";
|
||||
var bjgoimg = bloghost + "zb_users/plugin/zxd_ctrlcenter/plugin/code/svg/bianjigo.svg";
|
||||
$(preStyle).each(function() {
|
||||
yid = "pre_" + preNum;
|
||||
precode = $(this).html();
|
||||
xyattr = $(this).attr("class");
|
||||
if ($("pre>code").length) {
|
||||
$cdom = $(this).parent()
|
||||
} else {
|
||||
$cdom = $(this)
|
||||
}
|
||||
$cdom.attr("id", yid);
|
||||
$cdom.after('<textarea id="t' + yid + '" class="cdm_code">' + precode + "</textarea>");
|
||||
preNum++
|
||||
});
|
||||
$(document).ready(function() {
|
||||
var a = 0;
|
||||
$("pre").each(function() {
|
||||
var d = "pre_" + a;
|
||||
var c = $(this).prev();
|
||||
var b = '<img class="z_codeplus z_go" data-clipboard-target="' + d + '" src="' + copyimg +
|
||||
'" style="cursor: pointer;vertical-align: middle;" title="点击复制代码"><img class="z_go" onclick="runCode(\'' + d +
|
||||
'\')" src="' + goimg +
|
||||
'" style="cursor: pointer;vertical-align: middle;" title="运行代码"><img class="z_go editbtn" src="' + bjimg +
|
||||
'" style="cursor: pointer;vertical-align: middle;" title="编辑模式">';
|
||||
if (c.hasClass("prism-show-language")) {
|
||||
c.find("div").prepend(b)
|
||||
} else {
|
||||
$(this).before(
|
||||
'<div class="prism-show-language"><div class="prism-show-language-label" data-language="default">' + b +
|
||||
"</div>")
|
||||
}
|
||||
a++
|
||||
})
|
||||
});
|
||||
$('textarea[id*="tpre"]').blur(function() {
|
||||
$(this).text($(this).val())
|
||||
});
|
||||
|
||||
function runCode(a) {
|
||||
var b = window.open("", "", "");
|
||||
b.document.open("text/html", "replace");
|
||||
b.opener = null;
|
||||
b.document.write($("#" + a).next("textarea").html().replace(/</g, "<").replace(/>/g, ">").replace(/ /g, " ")
|
||||
.replace(/"/g, '"').replace(/&/g, "&"));
|
||||
b.document.close()
|
||||
}
|
||||
document.writeln('<script src="' + bloghost + 'zb_users/plugin/zxd_ctrlcenter/plugin/code/clipboard.min.js" type="text/javascript"><\/script>');
|
||||
$(function() {
|
||||
$(".editbtn").each(function() {
|
||||
var b = $(this).parent().parent().next().children("code").height();
|
||||
$(this).click(function() {
|
||||
$(this).parent().parent().next().toggleClass("zcodehide");
|
||||
$(this).parent().parent().next().next().toggleClass("zcodeshow").css({
|
||||
height: b + 80 + "px",
|
||||
});
|
||||
if ("编辑模式" == $(this)[0].title) {
|
||||
$(this)[0].title = "恢复默认";
|
||||
$(this)[0].src = bjgoimg
|
||||
} else {
|
||||
$(this)[0].title = "编辑模式";
|
||||
$(this)[0].src = bjimg
|
||||
}
|
||||
})
|
||||
});
|
||||
$("pre[id^='pre_']").each(function() {
|
||||
$(this).html($(this).html()/*' + <span style="position:absolute;left:-9999px;">\r\n\r\n代码来自:' + bloghost +
|
||||
"</span>"*/)
|
||||
});
|
||||
$(".z_codeplus").click(function() {
|
||||
if ($(this).parent().parent().next().next("textarea").is(":visible")) {
|
||||
cdMode = 1
|
||||
} else {
|
||||
cdMode = 0
|
||||
}
|
||||
if (cdMode == 1) {
|
||||
$(this).parent().parent().next().next("textarea").val($(this).parent().parent().next().next("textarea").val() /* + "\r\n\r代码来自:" + bloghost */ )
|
||||
}
|
||||
});
|
||||
var a = new ClipboardJS(".z_codeplus", {
|
||||
target: function(b) {
|
||||
if (cdMode == 1) {
|
||||
return b.parentNode.parentNode.nextSibling.nextSibling
|
||||
} else {
|
||||
return b.parentNode.parentNode.nextSibling
|
||||
}
|
||||
}
|
||||
});
|
||||
a.on("success", function(b) {
|
||||
alert("复制成功");
|
||||
b.clearSelection()
|
||||
});
|
||||
a.on("error", function(b) {
|
||||
alert("复制失败")
|
||||
})
|
||||
});
|
12
plugin/grey/grey.css
Normal file
@ -0,0 +1,12 @@
|
||||
@charset "utf-8";
|
||||
/* CSS Document 使整个网站变成灰色 */
|
||||
|
||||
html{
|
||||
filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
|
||||
-webkit-filter: grayscale(100%);
|
||||
-moz-filter: grayscale(100%);
|
||||
-ms-filter: grayscale(100%);
|
||||
-o-filter: grayscale(100%);
|
||||
filter: grayscale(100%);
|
||||
filter: gray;
|
||||
}
|
6
plugin/grey/include.php
Normal file
@ -0,0 +1,6 @@
|
||||
<?php
|
||||
function zxd_ctrlcenter_grey(){
|
||||
global $zbp;
|
||||
$zbp->header .= '<link href="'.$zbp->host.'zb_users/plugin/zxd_ctrlcenter/plugin/grey/grey.css" rel="stylesheet" type="text/css" />
|
||||
' . "\r\n";
|
||||
}
|
BIN
plugin/grey/logo.png
Normal file
After Width: | Height: | Size: 18 KiB |
3
plugin/grey/manage/config.php
Normal file
@ -0,0 +1,3 @@
|
||||
<?php
|
||||
$PluginTitle = "网站变灰(适合清明节用)";
|
||||
$PluginShortTitle = "网站变灰";
|
33
plugin/grey/manage/status.php
Normal file
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
if(!empty($_GET['include'])&&$_GET['include']=="c_system_base"){
|
||||
// 单独打开时需要引入这个,不然$zbp未定义
|
||||
include_once '../../../../../../zb_system/function/c_system_base.php';
|
||||
}
|
||||
|
||||
global $zbp;
|
||||
if(empty($_GET['action']))
|
||||
$status_action = "";
|
||||
else
|
||||
$status_action = $_GET['action'];
|
||||
|
||||
$Close = '<script>window.close(); window.opener.location.reload(); </script>';
|
||||
switch ($status_action) {
|
||||
case 'chk':
|
||||
$pluginstatus = $zbp->Config('zxd_ctrlcenter')-> plugin_grey_Enable;
|
||||
break;
|
||||
case 'enb':
|
||||
$zbp->Config('zxd_ctrlcenter')-> plugin_grey_Enable = true;
|
||||
$zbp->SaveConfig('zxd_ctrlcenter');
|
||||
echo $Close;
|
||||
break;
|
||||
case 'dis':
|
||||
$zbp->Config('zxd_ctrlcenter')-> plugin_grey_Enable = false;
|
||||
$zbp->SaveConfig('zxd_ctrlcenter');
|
||||
echo $Close;
|
||||
break;
|
||||
|
||||
default:
|
||||
$pluginstatus = $zbp->Config('zxd_ctrlcenter')-> plugin_grey_Enable;
|
||||
break;
|
||||
}
|
||||
?>
|
38
plugin/grey/plugin.xml
Normal file
@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<plugin version="php">
|
||||
<id>xd_gray</id>
|
||||
<name>整站变灰</name>
|
||||
<url></url>
|
||||
<note>整站变灰</note>
|
||||
<description>整站变灰</description>
|
||||
<path></path>
|
||||
<include>include.php</include>
|
||||
<level>1</level>
|
||||
<author>
|
||||
<name>xiandan</name>
|
||||
<email></email>
|
||||
<url></url>
|
||||
</author>
|
||||
<source>
|
||||
<name></name>
|
||||
<email></email>
|
||||
<url></url>
|
||||
</source>
|
||||
<adapted>151626</adapted>
|
||||
<version>1.0</version>
|
||||
<pubdate>2017-02-01</pubdate>
|
||||
<modified>2017-02-05</modified>
|
||||
<price>0</price>
|
||||
<advanced>
|
||||
<dependency></dependency>
|
||||
<rewritefunctions></rewritefunctions>
|
||||
<conflict></conflict>
|
||||
</advanced>
|
||||
<sidebars>
|
||||
<sidebar1></sidebar1>
|
||||
<sidebar2></sidebar2>
|
||||
<sidebar3></sidebar3>
|
||||
<sidebar4></sidebar4>
|
||||
<sidebar5></sidebar5>
|
||||
</sidebars>
|
||||
</plugin>
|
53
plugin/spider/include.php
Normal file
@ -0,0 +1,53 @@
|
||||
<?php
|
||||
$table['zxd_ctrlcenter_spider'] = '%pre%zxd_ctrlcenter_spider';
|
||||
|
||||
$datainfo['zxd_ctrlcenter_spider'] = array(
|
||||
'ID'=>array('Spider_ID','integer','',0),
|
||||
'Name'=>array('Spider_Name','string',20,''),
|
||||
'IP'=>array('Spider_IP','string',15,''),
|
||||
'DateTime'=>array('Spider_DateTime','integer','',0),
|
||||
'Url'=>array('Spider_Url','string',250,''),
|
||||
'Status'=>array('Spider_Status','integer','',1),
|
||||
);
|
||||
|
||||
function zxd_ctrlcenter_spider_SubMenu($id){
|
||||
$arySubMenu = array(
|
||||
0 => array('基本设置', 'config', 'left', false),
|
||||
1 => array('查看记录', 'spider', 'left', false),
|
||||
|
||||
);
|
||||
foreach($arySubMenu as $k => $v){
|
||||
echo '<a href="?plugin=spider&act='.$v[1].'"><span class="m-'.$v[2].' '.($id==$v[1]?'m-now':'').'">'.$v[0].'</span></a>';
|
||||
}
|
||||
}
|
||||
|
||||
class zxd_ctrlcenter_spider extends Base{
|
||||
|
||||
function __construct() {
|
||||
global $zbp;
|
||||
parent::__construct($zbp->table['zxd_ctrlcenter_spider'], $zbp->datainfo['zxd_ctrlcenter_spider']);
|
||||
|
||||
$this->DateTime = time();
|
||||
}
|
||||
|
||||
public function Time($s='Y-m-d H:i:s'){
|
||||
return date($s,(int)$this->DateTime);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function zxd_ctrlcenter_spider_CreateTable() {
|
||||
global $zbp;
|
||||
if ($zbp->db->ExistTable($GLOBALS['table']['zxd_ctrlcenter_spider']) == false) {
|
||||
$s = $zbp->db->sql->CreateTable($GLOBALS['table']['zxd_ctrlcenter_spider'], $GLOBALS['datainfo']['zxd_ctrlcenter_spider']);
|
||||
$zbp->db->QueryMulit($s);
|
||||
}
|
||||
}
|
||||
|
||||
function zxd_ctrlcenter_spider_DelTable() {
|
||||
global $zbp;
|
||||
if ($zbp->db->ExistTable($zbp->table['zxd_ctrlcenter_spider']) == true) {
|
||||
$s = $zbp->db->sql->DelTable($zbp->table['zxd_ctrlcenter_spider']);
|
||||
$zbp->db->QueryMulit($s);
|
||||
}
|
||||
}
|
BIN
plugin/spider/logo.png
Normal file
After Width: | Height: | Size: 38 KiB |
111
plugin/spider/main.php
Normal file
@ -0,0 +1,111 @@
|
||||
<?php
|
||||
$zbp->Load();
|
||||
$action='root';
|
||||
|
||||
$act = '';
|
||||
if (isset($_GET['act']) && $_GET['act']){$act = $_GET['act'] == "" ? 'config' : $_GET['act'];}
|
||||
else $act = "config";
|
||||
?>
|
||||
<!--<script>alert(1);</script>-->
|
||||
<link rel="stylesheet" type="text/css" href="plugin/spider/style.css"/>
|
||||
|
||||
<div class="SubMenu" style="overflow: initial;">
|
||||
<?php zxd_ctrlcenter_spider_SubMenu($act);?>
|
||||
</div>
|
||||
<!--代码-->
|
||||
<?php if ($act == 'config' || $act == ''){ ?>
|
||||
<?php
|
||||
if(isset($_POST['viewconut'])) {
|
||||
$zbp->Config('zxd_ctrlcenter') -> plugin_spider_viewconut = $_POST['viewconut'];
|
||||
$zbp->Config('zxd_ctrlcenter') -> plugin_spider_spiders = $_POST['spiders'];
|
||||
$zbp->SaveConfig('zxd_ctrlcenter');
|
||||
$zbp->SetHint('good');
|
||||
Redirect('./main.php?&plugin=spider&act=config');
|
||||
}
|
||||
?>
|
||||
<p style="color: red;">如果下面两个文本框默认状态下是空白的,没有内容,说明插件升级不完全,将【控制中心】插件关闭后再开启一次即可。关闭插件不会丢失其他子插件配置。</p>
|
||||
<form method="post">
|
||||
<table class="tb-set" width="100%">
|
||||
<tr>
|
||||
<td align="right"><b>显示篇数:</b></td>
|
||||
<td><input type="text" class="txt" name="viewconut" value="<?php echo $zbp->Config('zxd_ctrlcenter') -> plugin_spider_viewconut; ?>" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right"><b>蜘蛛列表:</b><br />格式:蜘蛛名称,显示名称。<br />多个用“|”分隔,如:Baiduspider,Baidu|Googlebot,Google。</td>
|
||||
<td><textarea class="txt txt-lar" name="spiders"><?php echo $zbp->Config('zxd_ctrlcenter') -> plugin_spider_spiders; ?></textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td><input type="submit" name="submit" value="保存" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
<!-- CSRF -->
|
||||
<?php if (function_exists('CheckIsRefererValid')) {echo '<input type="hidden" name="csrfToken" value="' . $zbp->GetCSRFToken() . '">';}?>
|
||||
</form>
|
||||
<p>模拟百度抓取查看插件效果:<a href="https://tools.aizhan.com/rb/" target="_blank">点击前往</a><br />输入要检测的网页URL,如您的Z-Blog网站首页:<?=$GLOBALS['bloghost']; ?>。</p>
|
||||
<br />
|
||||
【备注】
|
||||
<p>1. 本插件可与【流年岁月】的【来访蜘蛛统计】同时开启,但无必要,且数据不互通,建议只开启一个。同时开启相当于每个插件分别记录,互不干扰。</p>
|
||||
|
||||
<p>2. 右上角清除设置和关闭插件均不会清空统计结果,如需删除或清空统计结果,请登录后台数据库删除表【表前缀_zxd_ctrlcenter_spider】。再次使用本【蜘蛛来访统计】子插件,需要关闭【控制中心】插件然后再次打开以创建新表。</p>
|
||||
|
||||
<p>3. 本插件与爱站网无任何利益关系,提供上方的跳转将连接仅为方便测试插件是否能正常工作。对于该站点,本插件作者不保证服务始终可用,也不承担因此引发的任何问题。</p>
|
||||
|
||||
<br />
|
||||
【默认设置】
|
||||
<p>如果您不小心修改了上方文本框中的内容,可以将下方参数复制到上方文本框并保存以恢复默认设置。</p>
|
||||
|
||||
<p>显示篇数:20</p>
|
||||
|
||||
<p>蜘蛛列表:Baiduspider,Baidu|Googlebot,Google|Sosospider,SoSo|YoudaoBot,YouDao|bingbot,Bing|Sogou web spider,SoGou|Yahoo! Slurp,Yahoo|Alexa,Alexa|360Spider,So</p>
|
||||
<br />
|
||||
|
||||
<?php } if ($act == 'spider') {
|
||||
|
||||
echo '<table border="1" class="tableFull tableBorder tableBorder-thcenter">';
|
||||
echo '<tr>
|
||||
<th> ID </th>
|
||||
<th> 蜘蛛名称 </th>
|
||||
<th> 蜘蛛IP </th>
|
||||
<th> 抓取时间 </th>
|
||||
<th> 抓取地址 </th>
|
||||
<th> 抓取状态 </th>
|
||||
</tr>';
|
||||
|
||||
$p = new Pagebar('{%host%}zb_users/plugin/zxd_ctrlcenter/main.php?plugin=spider&act=spider{&page=%page%}',false);
|
||||
$p->PageCount = $zbp->Config('zxd_ctrlcenter') -> plugin_spider_viewconut;
|
||||
$p->PageNow = (int)GetVars('page','GET')==0?1:(int)GetVars('page','GET');
|
||||
$p->PageBarCount = $zbp->pagebarcount;
|
||||
|
||||
$select = array('*');
|
||||
$where = array();
|
||||
$order = array('Spider_ID'=>'DESC');
|
||||
$limit = array(($p->PageNow-1) * $p->PageCount,$p->PageCount);
|
||||
$option = array('pagebar'=>$p);
|
||||
|
||||
error_reporting(0); // 屏蔽掉可能出现的 Undefined index: ZC_MYSQL_ENGINE 提示
|
||||
$sql = $zbp->db->sql->Select($zbp->table['zxd_ctrlcenter_spider'], $select, $where, $order, $limit, $option);
|
||||
$array = $zbp->GetListType('zxd_ctrlcenter_spider',$sql);
|
||||
|
||||
|
||||
foreach ($array as $key => $value) {
|
||||
echo '<tr>';
|
||||
echo '<td class="td5">' . $value->ID . '</td>';
|
||||
echo '<td class="td5">' . $value->Name . '</td>';
|
||||
echo '<td class="td5">' . $value->IP . '</td>';
|
||||
echo '<td class="td20">' .$value->Time() . '</td>';
|
||||
echo '<td><a href="'.$value->Url.'" target="_blank">' .$value->Url . '</a></td>';
|
||||
echo '<td class="td5">' . $value->Status . '</td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
|
||||
echo '</table>';
|
||||
echo '<hr/><p class="pagebar">';
|
||||
|
||||
foreach ($p->buttons as $key => $value) {
|
||||
echo '<a href="'. $value .'">' . $key . '</a> ' ;
|
||||
}
|
||||
|
||||
echo '</p>';
|
||||
|
||||
} ?>
|
3
plugin/spider/manage/config.php
Normal file
@ -0,0 +1,3 @@
|
||||
<?php
|
||||
$PluginTitle = "蜘蛛来访统计";
|
||||
$PluginShortTitle = "蜘蛛来访";
|
34
plugin/spider/manage/status.php
Normal file
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
if(!empty($_GET['include'])&&$_GET['include']=="c_system_base"){
|
||||
// 单独打开时需要引入这个,不然$zbp未定义
|
||||
include_once '../../../../../../zb_system/function/c_system_base.php';
|
||||
}
|
||||
|
||||
global $zbp;
|
||||
if(empty($_GET['action']))
|
||||
$status_action = "";
|
||||
else
|
||||
$status_action = $_GET['action'];
|
||||
|
||||
$Close = '<script>window.close(); window.opener.location.reload(); </script>';
|
||||
switch ($status_action) {
|
||||
case 'chk':
|
||||
$pluginstatus = $zbp->Config('zxd_ctrlcenter') -> plugin_spider_Enable;
|
||||
break;
|
||||
case 'enb':
|
||||
$zbp->Config('zxd_ctrlcenter') -> plugin_spider_Enable = true;
|
||||
$zbp->SaveConfig('zxd_ctrlcenter');
|
||||
echo $Close;
|
||||
break;
|
||||
case 'dis':
|
||||
$zbp->Config('zxd_ctrlcenter') -> plugin_spider_Enable = false;
|
||||
$zbp->SaveConfig('zxd_ctrlcenter');
|
||||
echo $Close;
|
||||
break;
|
||||
|
||||
default:
|
||||
$pluginstatus = $zbp->Config('zxd_ctrlcenter') -> plugin_spider_Enable;
|
||||
break;
|
||||
}
|
||||
?>
|
||||
|
38
plugin/spider/plugin.xml
Normal file
@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<plugin version="php">
|
||||
<id>SpiderStatistics</id>
|
||||
<name>来访蜘蛛统计(张小弟之家修改;修复开发模式下部分站点报Notice错误的Bug,并添加CSRF保护,使用更安全)</name>
|
||||
<url>http://www.fengwensheng.com</url>
|
||||
<note>来访蜘蛛统计,统计来访蜘蛛</note>
|
||||
<description>来访蜘蛛统计,统计来访蜘蛛</description>
|
||||
<path>main.php?act=config</path>
|
||||
<include>include.php</include>
|
||||
<level>1</level>
|
||||
<author>
|
||||
<name>流年岁月</name>
|
||||
<email>372664700@qq.com</email>
|
||||
<url>http://www.fengwensheng.com/</url>
|
||||
</author>
|
||||
<source>
|
||||
<name></name>
|
||||
<email></email>
|
||||
<url></url>
|
||||
</source>
|
||||
<adapted>140614</adapted>
|
||||
<version>1.3</version>
|
||||
<pubdate>2014-08-26</pubdate>
|
||||
<modified>2015-03-17</modified>
|
||||
<price>0</price>
|
||||
<advanced>
|
||||
<dependency></dependency>
|
||||
<rewritefunctions></rewritefunctions>
|
||||
<conflict></conflict>
|
||||
</advanced>
|
||||
<sidebars>
|
||||
<sidebar1></sidebar1>
|
||||
<sidebar2></sidebar2>
|
||||
<sidebar3></sidebar3>
|
||||
<sidebar4></sidebar4>
|
||||
<sidebar5></sidebar5>
|
||||
</sidebars>
|
||||
</plugin>
|
70
plugin/spider/style.css
Normal file
@ -0,0 +1,70 @@
|
||||
/**
|
||||
* @Description: 在线QQ悬浮插件
|
||||
* @Author: Liuzp
|
||||
* @Author URL: http://www.liuzp.com
|
||||
*/
|
||||
|
||||
.com-hd{
|
||||
margin: 20px 0 15px;
|
||||
}
|
||||
|
||||
.com-hd b{
|
||||
font-size:16px;
|
||||
color:#333;
|
||||
font-family:'Microsoft Yahei';
|
||||
}
|
||||
|
||||
.tb-set{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
.tb-set tr td{
|
||||
padding: 10px 5px;
|
||||
border: 1px solid #e0e0e0;
|
||||
}
|
||||
|
||||
.tb-set tr td input, .tb-set tr td img{
|
||||
margin:0 auto;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.tb-set tr td b{
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.tb-set tr td .sel{
|
||||
height:17px;
|
||||
border:1px solid #ccc;
|
||||
border-radius:5px;
|
||||
outline: none;
|
||||
color:#333;
|
||||
padding:3px 1px;
|
||||
}
|
||||
|
||||
.tb-set tr td .sel select{
|
||||
border:none;
|
||||
outline:none;
|
||||
width:120px;
|
||||
}
|
||||
|
||||
.tb-set tr td .txt{
|
||||
width:240px;
|
||||
height:18px;
|
||||
border:1px solid #ccc;
|
||||
line-height:23px;
|
||||
border-radius:5px;
|
||||
outline: none;
|
||||
color:#333;
|
||||
padding:3px 0 2px 5px;
|
||||
}
|
||||
|
||||
.tb-set tr td .txt-lar{
|
||||
width:450px;
|
||||
height:100px;
|
||||
border:1px solid #ccc;
|
||||
line-height:15px;
|
||||
}
|
||||
|
||||
.tb-set tr td .txt-sho{
|
||||
width:150px;
|
||||
}
|
31
plugin/wxreward/include.php
Normal file
@ -0,0 +1,31 @@
|
||||
<?php
|
||||
/**
|
||||
* @package wx-Reward(微信打赏)
|
||||
* @version 1.8
|
||||
* Plugin Name: 微信打赏
|
||||
* Description: 在文章末尾添加微信打赏功能,如果读者觉得这篇文章对他有用,可以用微信扫一扫打赏赞助。
|
||||
* Author: 木木的布劳格
|
||||
* Version: 1.8
|
||||
* Author URI: http://m2009.org
|
||||
*/
|
||||
function zxd_ctrlcenter_wxreward_js(){
|
||||
global $zbp;
|
||||
$zbp->footer .= '<link href="'.$zbp->host.'zb_users/plugin/zxd_ctrlcenter/plugin/wxreward/src/wx-reward.css" rel="stylesheet"> <script type="text/javascript" src="'.$zbp->host.'zb_users/plugin/zxd_ctrlcenter/plugin/wxreward/src/wx-reward.js"></script>';
|
||||
}
|
||||
function zxd_ctrlcenter_wxreward_html(&$template){
|
||||
global $zbp;
|
||||
if ($zbp->Config('zxd_ctrlcenter')->plugin_wxreward_picurl){
|
||||
$QR=$zbp->Config('zxd_ctrlcenter')->plugin_wxreward_picurl;
|
||||
}else{
|
||||
$QR= $zbp->host.'zb_users/plugin/zxd_ctrlcenter/plugin/wxreward/src/wxpay.jpg';
|
||||
}
|
||||
if ($zbp->Config('zxd_ctrlcenter')->plugin_wxreward_txt){
|
||||
$txt=$zbp->Config('zxd_ctrlcenter')->plugin_wxreward_txt;
|
||||
}else{
|
||||
$txt='微信扫一扫,打赏作者吧~';
|
||||
}
|
||||
$html='<div class="gave"><a href="javascript:;" id="gave">打赏</a><div class="code" id="wechatCode" style="display: none"><img src="'.$QR.'" alt="微信扫一扫支付"><div id="ico-wechat"><img src="'.$zbp->host.'zb_users/plugin/zxd_ctrlcenter/plugin/wxreward/src/ico-wechat.jpg" alt="微信" class="ico-wechat">'.$txt.'</div></div></div>';
|
||||
$content=$template->GetTags('article')->Content;
|
||||
$template->GetTags('article')->Content=$content . $html;
|
||||
|
||||
}
|
BIN
plugin/wxreward/logo.png
Normal file
After Width: | Height: | Size: 69 KiB |
73
plugin/wxreward/main.php
Normal file
@ -0,0 +1,73 @@
|
||||
<?php
|
||||
if ($zbp->Config('zxd_ctrlcenter')->plugin_wxreward_picurl){
|
||||
$picurl=$zbp->Config('zxd_ctrlcenter')->plugin_wxreward_picurl;
|
||||
}else{
|
||||
$picurl=$zbp->Config('zxd_ctrlcenter')->urlpath.'plugin/wxreward/src/wxpay.jpg';
|
||||
}//名称
|
||||
|
||||
if ($zbp->Config('zxd_ctrlcenter')->plugin_wxreward_txt){
|
||||
$txt=$zbp->Config('zxd_ctrlcenter')->plugin_wxreward_txt;
|
||||
}else{
|
||||
$txt='微信扫一扫,打赏作者吧~';
|
||||
}
|
||||
|
||||
if(isset($_POST['submit'])){
|
||||
/*SEO*/
|
||||
$zbp->Config('zxd_ctrlcenter')->plugin_wxreward_picurl = $_POST['picurl'];
|
||||
$zbp->Config('zxd_ctrlcenter')->plugin_wxreward_txt = $_POST['txt'];
|
||||
$zbp->SaveConfig('zxd_ctrlcenter');
|
||||
$zbp->ShowHint('good');
|
||||
}
|
||||
?>
|
||||
<style type="text/css">
|
||||
textarea{ margin:10px; padding:4px;}
|
||||
p{ line-height:30px;}
|
||||
</style>
|
||||
|
||||
<div style="width:100%;display: inline-block;position:relative;">
|
||||
<div style="width:80%; float:left;">
|
||||
<b>微信支付二维码设置:</b>
|
||||
<form id="form1" name="form1" method="post" enctype="multipart/form-data" action="<?php echo $zbp->Config('zxd_ctrlcenter')->urlpath.'plugin/wxreward/'; ?>save.php?type=picurl">
|
||||
<?php if (function_exists('CheckIsRefererValid')) {
|
||||
echo '<input type="hidden" name="csrfToken" value="' . $zbp->GetCSRFToken() . '">';
|
||||
}
|
||||
?>
|
||||
方式1.本站上传:(选择图片后,请点击上传按钮)<br />
|
||||
<input name="picurl" type="file"/> <input name="submit" type="Submit" class="button" style="width:70px;" value="上传"/>
|
||||
</form>
|
||||
|
||||
<form id="form2" name="form2" method="post">
|
||||
<!-- CSRF -->
|
||||
<?php if (function_exists('CheckIsRefererValid')) {echo '<input type="hidden" name="csrfToken" value="' . $zbp->GetCSRFToken() . '">';}?>
|
||||
|
||||
方式2.已知微信支付二维码URL:<br />
|
||||
<input type="text" name="picurl" id="vurl" style="width:68%;" value="<?php echo $picurl; ?>"/>
|
||||
<br />
|
||||
<b>底部文字设置:</b>
|
||||
<br /><input type="text" name="txt" id="txt"style="width:30%;" value="<?php echo $txt; ?>"/>
|
||||
</div>
|
||||
<div style="width:20%;height:220;float:right;">
|
||||
<div style="width:140px;height:165px;margin:0 auto; border:5px solid #3a6ea5;float:left; text-align:center;">
|
||||
<p style="background-color: lightgray;">当前二维码</p>
|
||||
<p> <img src="<?php echo $picurl; ?>" alt="微信打赏二维码" height="122" width="122"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<input name="submit" type="Submit" class="button" style="width:120px;" value="保存"/>
|
||||
</form>
|
||||
|
||||
<br><br><br>
|
||||
<b>一些注意事项:</b>
|
||||
<p style="color: red;">微信生成的二维码图片建议先裁剪再上传</p>
|
||||
<p style="color: red;">上传的图片大小不要太大,不然上传与网页加载时间会延长,不利于网页展示。</p>
|
||||
<p style="color: red;">该插件修改自“阿木林”作者的“wxreward”插件(应用商店id为1264),本子插件不得与“wxreward”插件同时开启!!!</p>
|
||||
<p>图片上传目录:[你的网站Z-Blog地址/zb_users/plugin/zxd_ctrlcenter/plugin/wxreward/src/]。如需删除上传图片,请在登录后台ftp,删除相应图片</p>
|
||||
<br><br>
|
||||
<b>通过手机微信获取付款二维码,操作步骤如下:</b>
|
||||
<p>
|
||||
1.打开微信,点击右上角“+”号,点击“收钱”,进入微信收钱页面;<br />
|
||||
2.长按二维码,点击“保存图片”,保存图片到手机;<br />
|
||||
3.将图片上传到电脑;<br />
|
||||
4.将二维码图片传到上方;或者上传到第三方图床并复制URL在上方保存。
|
||||
</p>
|
3
plugin/wxreward/manage/config.php
Normal file
@ -0,0 +1,3 @@
|
||||
<?php
|
||||
$PluginTitle = "微信打赏";
|
||||
$PluginShortTitle = "微信打赏";
|
33
plugin/wxreward/manage/status.php
Normal file
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
if(!empty($_GET['include'])&&$_GET['include']=="c_system_base"){
|
||||
// 单独打开时需要引入这个,不然$zbp未定义
|
||||
include_once '../../../../../../zb_system/function/c_system_base.php';
|
||||
}
|
||||
|
||||
global $zbp;
|
||||
if(empty($_GET['action']))
|
||||
$status_action = "";
|
||||
else
|
||||
$status_action = $_GET['action'];
|
||||
|
||||
$Close = '<script>window.close(); window.opener.location.reload(); </script>';
|
||||
switch ($status_action) {
|
||||
case 'chk':
|
||||
$pluginstatus = $zbp->Config('zxd_ctrlcenter')-> plugin_wxreward_Enable;
|
||||
break;
|
||||
case 'enb':
|
||||
$zbp->Config('zxd_ctrlcenter')-> plugin_wxreward_Enable = true;
|
||||
$zbp->SaveConfig('zxd_ctrlcenter');
|
||||
echo $Close;
|
||||
break;
|
||||
case 'dis':
|
||||
$zbp->Config('zxd_ctrlcenter')-> plugin_wxreward_Enable = false;
|
||||
$zbp->SaveConfig('zxd_ctrlcenter');
|
||||
echo $Close;
|
||||
break;
|
||||
|
||||
default:
|
||||
$pluginstatus = $zbp->Config('zxd_ctrlcenter')-> plugin_wxreward_Enable;
|
||||
break;
|
||||
}
|
||||
?>
|
40
plugin/wxreward/plugin.xml
Normal file
@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<plugin version="php">
|
||||
<id>wxreward</id>
|
||||
<name>微信打赏(张小弟之家修改;并添加CSRF保护,使用更安全)</name>
|
||||
<url></url>
|
||||
<note>无需更改模板代码,在文章末尾添加微信打赏功能,如果读者觉得这篇文章对他有用,可以用微信扫一扫打赏赞助。</note>
|
||||
<description>无需更改模板代码,在文章末尾添加微信打赏功能,如果读者觉得这篇文章对他有用,可以用微信扫一扫打赏赞助。</description>
|
||||
<path>main.php</path>
|
||||
<include>include.php</include>
|
||||
<level>1</level>
|
||||
<author>
|
||||
<name>阿木林</name>
|
||||
<email></email>
|
||||
<url></url>
|
||||
</author>
|
||||
<source>
|
||||
<name></name>
|
||||
<email></email>
|
||||
<url></url>
|
||||
</source>
|
||||
<adapted>150101</adapted>
|
||||
<version>1.8</version>
|
||||
<pubdate>2017-02-20</pubdate>
|
||||
<modified>2019-01-11</modified>
|
||||
<price>0</price>
|
||||
<phpver>5.2</phpver>
|
||||
<advanced>
|
||||
<dependency></dependency>
|
||||
<rewritefunctions></rewritefunctions>
|
||||
<existsfunctions></existsfunctions>
|
||||
<conflict></conflict>
|
||||
</advanced>
|
||||
<sidebars>
|
||||
<sidebar1></sidebar1>
|
||||
<sidebar2></sidebar2>
|
||||
<sidebar3></sidebar3>
|
||||
<sidebar4></sidebar4>
|
||||
<sidebar5></sidebar5>
|
||||
</sidebars>
|
||||
</plugin>
|
27
plugin/wxreward/save.php
Normal file
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
require '../../../../../zb_system/function/c_system_base.php';
|
||||
require '../../../../../zb_system/function/c_system_admin.php';
|
||||
|
||||
$zbp->Load();
|
||||
$action='root';
|
||||
if (!$zbp->CheckRights($action)) {$zbp->ShowError(6);die();}
|
||||
if (!$zbp->CheckPlugin('zxd_ctrlcenter')) {$zbp->ShowError(48);die();}
|
||||
|
||||
if($_GET['type'] == 'picurl' ){
|
||||
global $zbp;
|
||||
foreach ($_FILES as $key => $value) {
|
||||
if(!strpos($key, "_php")){
|
||||
if (is_uploaded_file($_FILES[$key]['tmp_name'])) {
|
||||
$tmp_name = $_FILES[$key]['tmp_name'];
|
||||
$name = $_FILES[$key]['name'];
|
||||
@move_uploaded_file($_FILES[$key]['tmp_name'], $zbp->usersdir . 'plugin/zxd_ctrlcenter/plugin/wxreward/src/'. $name);
|
||||
$zbp->Config('zxd_ctrlcenter')->plugin_wxreward_picurl = $zbp->host . 'zb_users/plugin/zxd_ctrlcenter/plugin/wxreward/src/'. $name;
|
||||
$zbp->SaveConfig('zxd_ctrlcenter');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$zbp->SetHint('good','二维码上传成功');
|
||||
Redirect($zbp->Config('zxd_ctrlcenter')->urlpath . 'main.php?plugin=wxreward');
|
||||
}
|
||||
?>
|
BIN
plugin/wxreward/src/ico-wechat.jpg
Normal file
After Width: | Height: | Size: 1.9 KiB |
60
plugin/wxreward/src/wx-reward.2.css
Normal file
@ -0,0 +1,60 @@
|
||||
.gave {
|
||||
height: 110px;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.gave .code::after {
|
||||
border-color: #fff transparent transparent;
|
||||
border-style: solid;
|
||||
border-width: 10px;
|
||||
content: "";
|
||||
height: 0;
|
||||
left: 50%;
|
||||
margin-left: -7.5px;
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
width: 0;
|
||||
}
|
||||
.gave .code {
|
||||
background: #fff none repeat scroll 0 0;
|
||||
border-radius: 5px;
|
||||
bottom: 100%;
|
||||
box-shadow: 0 0 15px #e5e5e5;
|
||||
color: #68b3de;
|
||||
display: none;
|
||||
font-size: 13px;
|
||||
height: 160px;
|
||||
left: 50%;
|
||||
box-sizing: content-box;
|
||||
margin-left: -110px;
|
||||
padding: 20px;
|
||||
position: absolute;
|
||||
width: 180px;
|
||||
z-index: 999;
|
||||
text-align: center;
|
||||
}
|
||||
#gave {
|
||||
background: #f06363 none repeat scroll 0 0;
|
||||
border-radius: 50%;
|
||||
color: #fff !important;
|
||||
display: inline-block;
|
||||
font-size: 18px;
|
||||
height: 75px;
|
||||
line-height: 75px;
|
||||
text-align: center;
|
||||
width: 75px;
|
||||
text-decoration: none;
|
||||
}
|
||||
#wechatCode img{ /* 严格限制QR图片 */
|
||||
height: 124px;
|
||||
width: 124px;
|
||||
border: medium none;
|
||||
max-width: 100%;
|
||||
}
|
||||
#ico-wechat img{/* 严格限制wx图片 */
|
||||
height: 15px;
|
||||
width: 20px;
|
||||
border: medium none;
|
||||
max-width: 100%;
|
||||
}
|
55
plugin/wxreward/src/wx-reward.css
Normal file
@ -0,0 +1,55 @@
|
||||
.gave {
|
||||
height: 110px;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.gave .code::after {
|
||||
border-color: #fff transparent transparent;
|
||||
border-style: solid;
|
||||
border-width: 10px;
|
||||
content: "";
|
||||
height: 0;
|
||||
left: 50%;
|
||||
margin-left: -7.5px;
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
width: 0;
|
||||
}
|
||||
.gave .code {
|
||||
background: #fff none repeat scroll 0 0;
|
||||
border-radius: 5px;
|
||||
bottom: 100%;
|
||||
box-shadow: 0 0 15px #e5e5e5;
|
||||
color: #68b3de;
|
||||
display: none;
|
||||
font-size: 13px;
|
||||
height: 160px;
|
||||
left: 50%;
|
||||
box-sizing: content-box;
|
||||
margin-left: -110px;
|
||||
padding: 20px;
|
||||
position: absolute;
|
||||
width: 180px;
|
||||
z-index: 999;
|
||||
text-align: center;
|
||||
}
|
||||
.gave a {
|
||||
background: #f06363 none repeat scroll 0 0;
|
||||
border-radius: 50%;
|
||||
color: #fff !important;
|
||||
display: inline-block;
|
||||
font-size: 18px;
|
||||
height: 75px;
|
||||
line-height: 75px;
|
||||
text-align: center;
|
||||
width: 75px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.gave .code > img {
|
||||
height: 124px;
|
||||
width: 124px;
|
||||
border: medium none;
|
||||
max-width: 100%;
|
||||
}
|
13
plugin/wxreward/src/wx-reward.js
Normal file
@ -0,0 +1,13 @@
|
||||
jQuery(function ($) {
|
||||
$("#gave").mouseover(function(){
|
||||
$("#wechatCode").css('display','block');
|
||||
}).mouseout(function(){
|
||||
$("#wechatCode").css('display','none');
|
||||
})
|
||||
|
||||
$("#wechatCode").mouseover(function(){
|
||||
$("#wechatCode").css('display','block');
|
||||
}).mouseout(function(){
|
||||
$("#wechatCode").css('display','none');
|
||||
})
|
||||
})
|
BIN
plugin/wxreward/src/wxpay.jpg
Normal file
After Width: | Height: | Size: 24 KiB |
103
public/copyright.php
Normal file
@ -0,0 +1,103 @@
|
||||
<?php
|
||||
// error_reporting(E_ALL &~ E_NOTICE);
|
||||
/* 除了notice以外的错误 */
|
||||
|
||||
// ini_set('display_errors', 'Off');
|
||||
/* 隐藏所有错误 */
|
||||
|
||||
// $file = $_GET['path'];
|
||||
$file = $blogpath.$copyrightfilepath.'plugin.xml';
|
||||
|
||||
//将XML中的数据,读取到数组对象中
|
||||
$xml_object = simplexml_load_file($file);
|
||||
|
||||
$xml_json = json_encode($xml_object);
|
||||
//对象转成json
|
||||
|
||||
$xml_arr = json_decode($xml_json,true);
|
||||
//json再转成数组
|
||||
|
||||
// 输出$xml_arr
|
||||
// echo "<pre>";
|
||||
// var_dump($xml_arr);
|
||||
|
||||
// function getattr1($attribute) {
|
||||
// global $xml_arr;
|
||||
// try {
|
||||
// echo $xml_arr[$attribute];
|
||||
// } catch(Exception $e) {
|
||||
// echo "";
|
||||
// }
|
||||
// }
|
||||
|
||||
?>
|
||||
<br />
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
$(".btn1").click(function(){
|
||||
$(".copyrightdiv").slideToggle(150);/* $(".copyrightdiv").toggle(); */
|
||||
$('html,body').animate({ scrollTop: $(".copyrightdiv").offset().top - 90 }, 200)
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<button class="btn1">查看/隐藏当前子插件版权信息</button>
|
||||
|
||||
|
||||
<div class="copyrightdiv" style="display: none;">
|
||||
<h1>插件版权信息如下:</h1>
|
||||
<table data-sort="sortDisabled" style="width: 100%;">
|
||||
<tbody>
|
||||
<tr class="firstRow">
|
||||
<td style="width: 100px;">插件信息</td>
|
||||
<td>
|
||||
<img src="<?php echo $bloghost.$copyrightfilepath; ?>/logo.png" width="64" height="64">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>插件名称</td>
|
||||
<td><?php if( !is_array($xml_arr["name"]) ) {echo $xml_arr["name"];} ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>应用id</td>
|
||||
<td><?php if( !is_array($xml_arr["id"]) ) {echo $xml_arr["id"];} ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>发布页面</td>
|
||||
<td><?php if( !is_array($xml_arr["url"]) ) {echo $xml_arr["url"];} ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>版本号</td>
|
||||
<td><?php if( !is_array($xml_arr["version"]) ) {echo $xml_arr["version"];} ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>创建日期</td>
|
||||
<td><?php if( !is_array($xml_arr["pubdate"]) ) {echo $xml_arr["pubdate"];} ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>更新日期</td>
|
||||
<td><?php if( !is_array($xml_arr["modified"]) ) {echo $xml_arr["modified"];} ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>插件价格</td>
|
||||
<td><?php if( !is_array($xml_arr["price"]) ) {echo $xml_arr["price"];} ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>插件简介</td>
|
||||
<td><?php if( !is_array($xml_arr["note"]) ) {echo $xml_arr["note"];} ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>插件介绍</td>
|
||||
<td><?php if( !is_array($xml_arr["description"]) ) {echo $xml_arr["description"];} ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>插件作者</td>
|
||||
<td>
|
||||
作者名称:<?php if( !is_array($xml_arr["author"]["name"]) ) {echo $xml_arr["author"]["name"];} ?><br />
|
||||
作者邮箱:<?php if( !is_array($xml_arr["author"]["email"]) ) {echo $xml_arr["author"]["email"];} ?><br />
|
||||
作者网站:<?php if( !is_array($xml_arr["author"]["url"]) ) {echo $xml_arr["author"]["url"];} ?>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<br /><br /><br />
|
24
public/ctrlcenter_config.php
Normal file
@ -0,0 +1,24 @@
|
||||
<?php
|
||||
/* 公共头部开始 */
|
||||
require '../../../../zb_system/function/c_system_base.php';
|
||||
require '../../../../zb_system/function/c_system_admin.php';
|
||||
|
||||
$zbp->Load();
|
||||
$action = 'root';
|
||||
if (!$zbp->CheckRights($action) || empty($_GET['action'])) { $zbp->ShowError(6); die(); }
|
||||
if (!$zbp->CheckPlugin('zxd_ctrlcenter')) { $zbp->ShowError(48); die(); }
|
||||
|
||||
//?><script>alert("<?php echo $_GET['action']; ?>");</script><?php
|
||||
|
||||
switch ($_GET['action']) {
|
||||
case 'Delete':
|
||||
$zbp->DelConfig('zxd_ctrlcenter'); ?>
|
||||
<script>alert("插件设置清空完毕!");window.location.href="<?=$bloghost.'/zb_users/plugin/zxd_ctrlcenter/main.php'?>";</script>
|
||||
<?php break;
|
||||
|
||||
default: ?>
|
||||
<script>alert("啊喔,出了点问题~");window.location.href="<?=$bloghost.'/zb_users/plugin/zxd_ctrlcenter/main.php'?>";</script>
|
||||
<?php break;
|
||||
}
|
||||
|
||||
// 以上逻辑还有问题
|
7
public/plugin-disbtn.php
Normal file
@ -0,0 +1,7 @@
|
||||
<script>
|
||||
function disbtnclick() {
|
||||
window.open().location = "<?php echo $bloghost.'zb_users/plugin/zxd_ctrlcenter/plugin/'.$PluginName.'/manage/status.php?include=c_system_base&action=dis'; ?>";
|
||||
}
|
||||
</script>
|
||||
<span style="position: relative; margin-left: 8px;"><img width="16" style="position: absolute;top: 50%;left: 50%;margin-top: -8px;margin-left: -8px;" src="<?php echo $bloghost.'zb_system/image/admin/ok.png'; ?>"/></span> <span id="pluginName"></span>插件已启用,<input type="submit" class="button" value="禁用插件" onclick="disbtnclick();">
|
||||
|
6
public/plugin-enbbtn.php
Normal file
@ -0,0 +1,6 @@
|
||||
<script>
|
||||
function enbbtnclick() {
|
||||
window.open().location = "<?php echo $bloghost.'zb_users/plugin/zxd_ctrlcenter/plugin/'.$PluginName.'/manage/status.php?include=c_system_base&action=enb'; ?>";
|
||||
}
|
||||
</script>
|
||||
<span style="position: relative; margin-left: 8px;"><img width="16" style="position: absolute;top: 50%;left: 50%;margin-top: -8px;margin-left: -8px;" src="<?php echo $bloghost.'zb_system/image/admin/information.png'; ?>"/></span> <span id="pluginName"></span>插件已禁用,<input type="submit" class="button" value="启用插件" onclick="enbbtnclick();">
|