加入登录功能,整合钩子函数融入到一起,配合插件唤起弹窗登录页面
输出变量 <?php blog_navi() ?>
对应函数:(登录显示有2个,判断未初始化以作处理)
/**
* 页顶:导航
*/
function blog_navi()
{
global $CACHE;
$navi_cache = $CACHE->readCache('navi');
// 检查用户登录状态
$is_login = !User::isVisitor();
// 初始化是否有登录项的标志
$has_login_item = false;
?> <?php
foreach ($navi_cache as $value):
if ($value['pid'] != 0) {
continue;
}
// 检查是否有登录相关的导航项
if (strpos($value['naviname'], '登录') !== false) {
$has_login_item = true;
}
if ($value['url'] == 'admin' && (!User::isVisitor())):
?>
<a class="navbar__item navbar__link" href="<?= BLOG_URL ?>admin/" <?= $newtab ?>>管理</a>
<a class="navbar__item navbar__link" href="<?= BLOG_URL ?>admin/account.php?action=logout">退出</a>
<?php
continue;
endif;
$newtab = $value['newtab'] == 'y' ? 'target="_blank"' : '';
$value['url'] = $value['isdefault'] == 'y' ? BLOG_URL . $value['url'] : trim($value['url'], '/');
$current_tab = BLOG_URL . trim(Dispatcher::setPath(), '/') == $value['url'] ? 'active' : '';
?>
<a class="navbar__item navbar__link" href="<?= $value['url'] ?>" <?= $newtab ?>><?= $value['naviname'] ?></a>
<?php endforeach ?>
<?php
// 仅当没有原有登录项且未登录时,才显示新增的登录按钮
if (!$is_login && !$has_login_item):
?>
<a class="navbar__item navbar__link" href="javascript:Ixc_login_but_login();">登录</a>
<?php
endif;}