找到
6
篇与
魔改
相关的结果
-
Joe再续前缘魔改(四) 青序栈文官 文章介绍了如何为网站添加个性化定位欢迎信息功能,主要使用JavaScript代码实现。通过调用IP查询API获取用户位置信息,并根据用户所在地显示不同的欢迎语和距离提示。代码还包含根据本地时间切换欢迎语的功能,并适配了IPv6地址显示。最后,通过在HTML中添加自定义侧边栏代码,即可实现前端效果。 此内容根据文章生成,仅用于文章内容的解释与总结 之前逛青桔气球,发现有个侧边栏欢迎卡片,蛮喜欢的,差不多断断续续适配十天左右完成了 JavaScript主要代码 从筱序二十の代码分享获取 请将 key?= 后内容替换为你自己的key,申请地址Nice猫主题修改 添加自定义侧边栏代码 <div id="welcome-info"></div>mer33xhk.png图片 现在你就可以正常使用啦! 写文的时候注意到原作者新适配了IPV6和部分城市匹配,JS代码已为最新,请放心食用。前端效果预览 mer2yxe7.png图片 每日精选 bizhi图片 参考文章 Hexo侧边栏添加个性定位欢迎信息 -
Joe再续前缘魔改(三) 青序栈文官 本教程介绍Joe主题魔改新增友人帐页面延迟展示功能,需修改/usr/themes/joe/friends.php文件,替换为指定PHP代码,实现友链展示及状态标签延迟加载。部署后,友人帐页面将按设置延迟显示状态标签,提升用户体验。 此内容根据文章生成,仅用于文章内容的解释与总结 本文系Joe再续前缘主题魔改类第三篇教程,前置教程请见. Joe再续前缘魔改铺垫(一)这一期讲讲新增友人帐页面新增延迟展示。 e64747 部署完成后,请修改博客文件夹中的/usr/themes/joe/friends.php文件 复制以下代码全部替换即可 隐藏内容,请前往内页查看详情 前端效果预览 mdphb2z6.png图片 每日精选 bizhi图片 -
Joe再续前缘魔改(二) 青序栈文官 本教程介绍如何在博客中新增轻量朋友圈页面,需先部署Friend-Circle-Lite项目。部署后,在博客后台添加独立页面代码,包括API地址、加载设置和样式脚本。教程提供代码示例和效果预览。 此内容根据文章生成,仅用于文章内容的解释与总结 本文系Joe再续前缘主题魔改类第二篇教程,前置教程请见. Joe再续前缘魔改铺垫(一)这一期讲讲新增轻量朋友圈页面,需要提前部署友链朋友圈项目。 e64747 部署完成后,请在博客后台>管理>独立页面 mdo185i4.png图片 代码如下 !!! <div id="friend-circle-lite-root"></div> <script> if (typeof UserConfig === 'undefined') { var UserConfig = { // 填写你的fc Lite地址 private_api_url: 'https://example.com', // 点击加载更多时,一次最多加载几篇文章,默认20 page_turning_number: 20, // 头像加载失败时,默认头像地址 error_img: 'https://i.p-i.vip/30/20240815-66bced9226a36.webp', } } </script> <link rel="stylesheet" href="https://jsd.xnet.ren/gh/willow-god/Friend-Circle-Lite/main/fclite.min.css"> <script src="https://jsd.xnet.ren/gh/willow-god/Friend-Circle-Lite/main/fclite.min.js"></script> !!!前端效果预览 mdo19qcu.png图片 每日精选 bizhi图片 -
Joe再续前缘魔改(一) 青序栈文官 本文介绍了如何为Joe主题添加友链状态页面,需先部署友链检测项目,并在博客中添加`ckflink.php`文件。教程还指导了在后台配置独立页面,并展示了前端效果预览。 此内容根据文章生成,仅用于文章内容的解释与总结 本文系Joe再续前缘主题魔改类第一篇正式教程,前置教程请见. Joe再续前缘魔改铺垫(一)这一期讲讲新增友链状态页面,需要提前部署友链检测项目。 e64747 部署完成后,请在博客文件夹中的/usr/themes/joe里新增ckflink.php 代码如下 隐藏内容,请前往内页查看详情 然后去博客后台>管理>独立页面>新增>模板选择友链状态 mdmolm4d.png图片 前端效果预览 mdmomlou.png图片 每日精选 bizhi图片 -
Joe再续前缘SafeGo适配魔改 青序栈文官 SafeGo插件适配Joe再续前缘主题,替换goto.php文件实现安全跳转页面功能,支持配置倒计时、Base64编码、头像、标题等,提供黑暗模式选项。 此内容根据文章生成,仅用于文章内容的解释与总结 原项目项目是柳神开发的Hexo插件安全跳转页面·插件版,我使用AI移植到了Joe再续前缘主题。 Joe再续前缘的外链中间页地址是/usr/themes/joe/module/goto.php,复制以下代码直接全部替换即可! 效果如图 mdjmqxqg.png图片 <?php // 检查必要条件 if (!defined('__TYPECHO_ROOT_DIR__') || empty($_SERVER['HTTP_HOST'])) { http_response_code(404); exit; } // 获取 URL 参数 function GetQueryString($name) { $query = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY); parse_str($query, $params); return isset($params[$name]) ? urldecode($params[$name]) : null; } // Base64 解码函数 function base64Decode($input) { return base64_decode($input); } // 配置参数,可根据需要修改 $countdown = 10; // 倒计时秒数 $url_param_name = 'url'; // URL 参数名 $enable_base64_encode = true; // 是否启用 Base64 编码 $avatar = $this->options->JFavicon; // 头像链接 $title = $this->options->title; // 标题 $subtitle = '大理寺卿'; // 副标题 $darkmode = false; // 是否启用黑暗模式 // 获取跳转 URL $jump_url = GetQueryString($url_param_name); if ($enable_base64_encode) { $jump_url = base64Decode($jump_url); } // 检查 URL 格式 $UrlReg = '/^((http|https|thunder|qqdl|ed2k|Flashget|qbrowser|ftp|rtsp|mms):\/\/)/'; if (!$jump_url ||!preg_match($UrlReg, $jump_url)) { $title = '参数错误,正在返回首页...'; $jump_url = $_SERVER['HTTP_HOST']; } ?> <!DOCTYPE html> <html lang="zh"> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="robots" content="noindex, nofollow"/> <title><?php echo $title; ?></title> <style type="text/css"> body { display: flex; align-items: center; justify-content: center; height: 100vh; margin: 0; font-family: Arial, sans-serif; overflow: hidden; flex-direction: column; } .avatar-placeholder, .avatar { width: 100px; height: 100px; border-radius: 50%; margin-bottom: 15px; display: block; } .avatar { display: none; } .description { font-size: 18px; } .subtitle { font-size: 12px; margin-bottom: 20px; color: #C4C4C4; } .loading { text-align: center; padding: 30px; border-radius: 18px; animation: fadein 2s; width: 400px; max-width: 90%; } @keyframes fadein { from { opacity: 0; } to { opacity: 1; } } .content { margin-bottom: 20px; } .url-text { margin-bottom: 10px; font-size: 16px; letter-spacing: 1px; } .jump-url { font-size: 20px; display: block; margin-top: 5px; margin-bottom: 25px; padding: 15px; border-radius: 8px; height: 25px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .countdown-text { margin-top: 12px; font-size: 12px; } .button-container { display: flex; justify-content: center; gap: 20%; margin-top: 20px; } .button { padding: 10px 20px; border-radius: 16px; border: none; cursor: pointer; font-size: 16px; width: 120px; height: 40px; } .cancel-button { color: black; } .confirm-button { color: white; } .progress-bar { width: 100%; border-radius: 5px; overflow: hidden; height: 10px; margin-top: 20px; } .progress { width: 100%; height: 100%; transition: width 1s; } <?php if ($darkmode): ?> body { background: linear-gradient(135deg, #364f6b, #222831); } .loading { background: #393e46; color: #EFEFEF; box-shadow: 0 4px 8px rgba(100, 100, 100, 0.1); } .description { color: #F3F3F3; } .url-text, .countdown-text { color: #EFEFEF; } .jump-url { border: 1px solid #777; background-color: #333; color: #EFEFEF; } .cancel-button { background-color: #872C2C; color: #FFF; } .confirm-button { background-color: #28566F; color: #FFF; } .progress-bar { background-color: #444; } .progress { background-color: #888; } <?php else: ?> body { background: linear-gradient(135deg, #E9E9E9, #FFFFFF); } .loading { background: rgba(255, 255, 255, 0.7); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); } .url-text { color: #333; } .jump-url { border: 1px solid #ccc; background-color: #F7F9FE; color: #333; } .countdown-text { color: #515151; } .cancel-button { background-color: #a6e3e9; } .confirm-button { background-color: #3fc1c9; } .progress { background-color: #abedd8; } <?php endif; ?> </style> <script type="text/javascript"> const host = window.location.host; let countdown = <?php echo $countdown; ?>; let jump_url = '<?php echo $jump_url; ?>'; let progressElement; let countdownElement; let countdownTextElement; let jumpUrlElement; function updateCountdown() { if (countdown < 0) { countdownTextElement.textContent = "💡自行点击跳转,请注意您的账号和财产安全"; return; } countdownElement.textContent = countdown; progressElement.style.width = (countdown / <?php echo $countdown; ?> * 100) + '%'; if (countdown === 0) { jump(); } else { countdown--; setTimeout(updateCountdown, 1000); } } function jump() { location.href = jump_url; } function closeWindow() { window.opener = null; window.close(); } function loadAvatar() { const avatarImg = document.querySelector('.avatar'); const placeholder = document.querySelector('.avatar-placeholder'); const img = new Image(); img.src = '<?php echo $avatar; ?>'; img.onload = function () { avatarImg.src = img.src; avatarImg.style.display = 'block'; placeholder.style.display = 'none'; } } window.addEventListener('load', function () { loadAvatar(); progressElement = document.getElementById('progress'); countdownElement = document.getElementById('countdown'); countdownTextElement = document.querySelector('.countdown-text'); jumpUrlElement = document.getElementById('jump-url'); jumpUrlElement.textContent = jump_url; updateCountdown(); }); </script> </head> <body> <div class="avatar-placeholder"></div> <img src="" alt="头像" class="avatar"> <div class="description"><?php echo $title; ?></div> <div class="subtitle"><?php echo $subtitle; ?></div> <div class="loading"> <div class="content"> <div class="url-text">您即将离开本站,跳转到:</div> <div class="jump-url" id="jump-url"></div> </div> <div class="countdown-text">⚡将在<span id="countdown"></span>秒后跳转,请自行确认链接安全性</div> <div class="progress-bar"> <div class="progress" id="progress"></div> </div> <div class="button-container"> <button class="button cancel-button" onclick="closeWindow()">取消跳转</button> <button class="button confirm-button" onclick="jump()">立即跳转</button> </div> </div> </body> </html>目前可配置项如下 mdiv9uq7.png图片