找到
37
篇与
筱序二十
相关的结果
- 第 4 页
-
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图片 -
WRCT-2025赛前集训一目 青序栈文官 备战WRCT2025江苏选拔赛WHALESBOT赛项,更换设备提升效率,采用模块化设计应对随机赛道,因巡线问题改用启动电机实现精准转向,已完成部分路线程序。 此内容根据文章生成,仅用于文章内容的解释与总结 WRCT2025 江苏选拔赛 WHALESBOT 赛项备赛日记:从手忙脚乱到稳如老狗 各位,最近正和队友们疯狂备战Enjoy AI 文明启航 WRCT2025 世界机器人大赛青少年设计大赛 WHALESBOT 赛项江苏省选拔赛(名字长到我念一遍得喘气 😂)。今天开始正式参与赛前准备集训。 赛事详情见 ENJOY AI | 全球青少年人工智能普及活动 这次斥巨资————1000 元 更换了 9101 套装,再也不用之前老掉牙的设备了,能存几十套程序,非常爽! 第一天当然是要搞好线路了,准备采用模块化的思路,因为比赛项目位置到时候是随机的,也就是说我们需要设计 8 个位置的线路的程序,方便比赛时组程序,编“作战”路线。 不知道怎么回事,光线检测一直出问题,往往巡不到线,巡不到路口,很烦!!! 聪明的栈主选择不用巡线————直接用启动电机,这样更直接,不容易出错。 比如我连用转弯路口中间会因巡不到线少转一次,改用启用电机左右轮速度 40时间 0.62s完美实现了 180° 原地掉头,一鼓作气冲回基地。目前第一个项目已经完成 5/8 个位置,加油! 不说太多了,明天 8:20 还得去社区中心。晚安! -
Joe再续前缘魔改铺垫(一) 青序栈文官 从Hexo安知鱼主题迁移后,旧美化教程不适用,作者研究两三天移植部分内容,本期为魔改教程铺垫。介绍了柳神两个项目“朋友圈精简版”和“友链状态检测”的适配方法,包括新建api文件夹和php文件,实现伪静态静态化json。下期将出适配鱼塘的教程。 此内容根据文章生成,仅用于文章内容的解释与总结 从 Hexo 安知鱼主题迁移过来后,许多旧的美化教程都不适用了,网上搜搜也找不到多少适配的。 研究了两三天后,已经移植了不少,本期是魔改教程铺垫的第一期,后续会发正式魔改教程。 那时候魔改印象最深刻的还是柳神的两个项目 朋友圈精简版 > 友链状态检测具体使用教程请见仓库的 readme 文档,及柳神博客的相关教程。 朋友圈精简版 friend.json 适配 根目录新建文件夹 api,里面创建friend.php文件 mdgxwvrl.png图片 文件内容如下 隐藏内容,请前往内页查看详情 可以使用伪静态实现静态化 json 规则如下 62a300 每日一图图片 友链状态检测 flink_count.json 适配 根目录新建文件夹 api,里面创建flink_count.php文件 mdgyce3c.png图片 文件内容如下 隐藏内容,请前往内页查看详情 可以使用伪静态实现静态化 json 规则如下 62a300 下期出适配鱼塘的教程 本站邮箱订阅链接 -
在线扒站网PHP源码 青序栈文官 这是一款在线网站模板下载程序,用于轻松下载他人网站模板样式,提高前端编写速度。安装需PHP 7.2或7.3版本,配置信息修改在includes/config.php,打赏二维码图片修改在assets/js/main.js。注意:扒取内容仅供个人学习交流,不得用于商业或违法用途。 此内容根据文章生成,仅用于文章内容的解释与总结 隐藏内容,请前往内页查看详情 这是一款在线的网站模板下载程序,也就是我们常说的扒站工具,利用它我们可以很轻松的将别人的网站模板样式下载下来,这样就可以大大提高我们编写前端的速度了! 注:扒取的任何站点不得用于商业、违法用途,仅供个人学习交流参考!安装环境:PHP必须是7.2或7.3版本! view图片 网站名称,Q群链接等信息修改 请在includes/config.php 打赏二维码图片修改在:assets/js/main.js