Files
BlackFruit-UI/clientarea/hgcloud/footer.php
yiqiu 521c88cc57
All checks were successful
continuous-integration/drone/push Build is passing
fix: Logo 从插件配置 API 动态获取
- img src 默认用静态 logo 路径
- footer.php 加 XHR 请求 config.json
- 读取 site_config.official_website_logo 动态替换
2026-03-19 19:03:52 +08:00

66 lines
2.3 KiB
PHP

<!-- =======公共======= -->
<script src="/{$template_catalog}/template/{$public_themes}/utils/directive.js"></script>
<script src="/{$template_catalog}/template/{$public_themes}/js/common/axios.min.js"></script>
<script src="/{$template_catalog}/template/{$public_themes}/utils/request.js"></script>
<script src="/{$template_catalog}/template/{$public_themes}/api/common.js"></script>
<script src="/{$template_catalog}/template/{$themes}/components/coinActive/coinActive.js"></script>
<script src="/{$template_catalog}/template/{$public_themes}/components/asideMenu/asideMenu.js"></script>
<script src="/{$template_catalog}/template/{$public_themes}/components/topMenu/topMenu.js"></script>
<!-- 页面过渡动画 -->
<script>
(function() {
var transitioning = false;
function doTransition(href) {
if (transitioning || !href) return;
transitioning = true;
document.body.classList.add('page-leaving');
setTimeout(function() {
// 直接用原始赋值跳转
Object.getOwnPropertyDescriptor(Object.getPrototypeOf(window.location), 'href')
? (window.location.href = href)
: (window.location = href);
}, 250);
}
// 1) 拦截 <a> 标签点击
document.addEventListener('click', function(e) {
var link = e.target.closest('a[href]');
if (!link) return;
var href = link.getAttribute('href');
if (!href || href.startsWith('#') || href.startsWith('javascript') ||
link.target === '_blank' || e.ctrlKey || e.metaKey || e.shiftKey) return;
e.preventDefault();
e.stopPropagation();
doTransition(href);
}, true); // 用捕获阶段,比 Vue 先拦截
// 2) 暴露全局函数供 Vue 调用(覆盖常见跳转方法)
window.__navigateTo = function(href) { doTransition(href); };
})();
</script>
<!-- 动态加载插件配置 Logo -->
<script>
(function() {
var logoEl = document.getElementById('siteLogo');
if (!logoEl) return;
var xhr = new XMLHttpRequest();
xhr.open('GET', '/web/BlackFruit-web/plugins/addon/theme_configurator/config.json', true);
xhr.onload = function() {
if (xhr.status === 200) {
try {
var cfg = JSON.parse(xhr.responseText);
var logoUrl = cfg.site_config && cfg.site_config.official_website_logo;
if (logoUrl) logoEl.src = logoUrl;
} catch(e) {}
}
};
xhr.send();
})();
</script>
</body>
</html>