sitemap을 위하여 메뉴를 php에서 직접 출력하도록 변경

This commit is contained in:
2018-09-12 00:12:32 +09:00
parent 09f399db9a
commit effced24d1
8 changed files with 36 additions and 31 deletions
+2 -2
View File
@@ -217,8 +217,8 @@ $result = Util::generateFileUsingSimpleTemplate(
);
$result = Util::generateFileUsingSimpleTemplate(
__dir__.'/templates/menu.orig.js',
ROOT.'/d_shared/menu.js',
__dir__.'/templates/menu.orig.json',
ROOT.'/d_shared/menu.json',
[],
true
);
-8
View File
@@ -1,8 +0,0 @@
window.sammo_menu = [
['/bbs/board', '삼모게시판', '_blank'],
['/bbs/tip', '팁/강좌', '_blank'],
['/bbs/news', '삼국 일보', '_blank'],
['/bbs/history2', '개인 열전', '_blank'],
['/bbs/history3', '국가 열전', '_blank'],
['/bbs/patch', '패치 내역', '_blank']
];
+8
View File
@@ -0,0 +1,8 @@
[
["/bbs/board", "삼모게시판", "_blank"],
["/bbs/tip", "팁/강좌", "_blank"],
["/bbs/news", "삼국 일보", "_blank"],
["/bbs/history2", "개인 열전", "_blank"],
["/bbs/history3", "국가 열전", "_blank"],
["/bbs/patch", "패치 내역", "_blank"]
]
+2 -2
View File
@@ -12,6 +12,7 @@ $db = RootDB::db();
$notice = $db->queryFirstField('SELECT `NOTICE` FROM `system` WHERE `NO`=1');
$userGrade = $session->userGrade;
$acl = $session->acl;
?>
<!DOCTYPE html>
<html>
@@ -34,8 +35,6 @@ $acl = $session->acl;
<?=WebUtil::printJS('../e_lib/bootstrap.bundle.min.js')?>
<?=WebUtil::printJS('../js/func.js')?>
<?=WebUtil::printJS('../js/entrance.js')?>
<?=WebUtil::printJS('../d_shared/menu.js')?>
<?=WebUtil::printJS('../js/title.js')?>
<?php if ($userGrade >= 5 || $acl): ?>
<!-- 운영자 -->
@@ -53,6 +52,7 @@ $acl = $session->acl;
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<?=WebUtil::drawMenu(ROOT.'/d_shared/menu.json')?>
</ul>
</div>
</nav>
+1 -2
View File
@@ -26,8 +26,6 @@ require(__dir__.'/../vendor/autoload.php');
<?=WebUtil::printJS('../e_lib/moment.min.js')?>
<?=WebUtil::printJS('../js/func.js')?>
<?=WebUtil::printJS('../js/user_info.js')?>
<?=WebUtil::printJS('../d_shared/menu.js')?>
<?=WebUtil::printJS('../js/title.js')?>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
@@ -37,6 +35,7 @@ require(__dir__.'/../vendor/autoload.php');
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<?=WebUtil::drawMenu(ROOT.'/d_shared/menu.json')?>
</ul>
</div>
</nav>
+1 -2
View File
@@ -30,10 +30,8 @@ if ($session->isLoggedIn()) {
<?=WebUtil::printJS('e_lib/bootstrap.bundle.min.js')?>
<?=WebUtil::printJS('e_lib/jquery.validate.min.js')?>
<?=WebUtil::printJS('e_lib/sha512.min.js')?>
<?=WebUtil::printJS('d_shared/menu.js')?>
<?=WebUtil::printJS('js/common.js')?>
<?=WebUtil::printJS('js/login.js')?>
<?=WebUtil::printJS('js/title.js')?>
<?=WebUtil::printCSS('e_lib/bootstrap.min.css')?>
<?=WebUtil::printCSS('css/login.css')?>
<meta name="description" content="실시간으로 진행되는 삼국지 웹게임(삼모전)입니다">
@@ -141,6 +139,7 @@ function postOAuthResult(result){
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<?=WebUtil::drawMenu(ROOT.'/d_shared/menu.json')?>
</ul>
</div>
</nav>
-15
View File
@@ -1,15 +0,0 @@
jQuery(function($){
$.each(window.sammo_menu, function(idx){
var href = this[0];
var name = this[1];
var target = (this.length > 2)?this[2]:null;
var $a = $('<a class="nav-link" href="{0}">{1}</a>'.format(href, name));
if(target){
$a.attr('target', target);
}
var $li = $('<li class="nav-item"></li>').append($a);
$('#navbarNav .navbar-nav').append($li);
console.log(this);
});
});
+22
View File
@@ -135,4 +135,26 @@ class WebUtil
$purifier = new \HTMLPurifier($config);
return $purifier->purify($text);
}
public static function drawMenu(string $path): string{
$json = Json::decode(file_get_contents($path));
$result = [];
foreach($json as $menuItem){
if (count($path) == 2) {
[$url, $title] = $menuItem;
$targetAttr = '';
}
else{
[$url, $title, $target] = $menuItem;
$target = htmlspecialchars($target);
$targetAttr = "target='$target' ";
}
$title = htmlspecialchars($title);
$url = htmlspecialchars($url);
$result[] = "<a class='nav-link' href='$url' $targetAttr>$title</a>";
}
return join("\n", $result);
}
}