관리자 페이지 디자인 개선
관리자 페이지 수정 및 일부 페이지 기능 개선
|
|
@ -1,5 +1,8 @@
|
||||||
<?php
|
<?php
|
||||||
define('G5_IS_ADMIN', true);
|
define('G5_IS_ADMIN', true);
|
||||||
include_once ('../common.php');
|
include_once ('../common.php');
|
||||||
include_once(G5_ADMIN_PATH.'/admin.lib.php');
|
|
||||||
|
if(!defined("_LOGIN_PAGE_") || (defined("_LOGIN_PAGE_") && !_LOGIN_PAGE_)) {
|
||||||
|
include_once(G5_ADMIN_PATH.'/admin.lib.php');
|
||||||
|
}
|
||||||
?>
|
?>
|
||||||
|
|
@ -3,86 +3,60 @@ if (!defined('_GNUBOARD_')) exit;
|
||||||
$begin_time = get_microtime();
|
$begin_time = get_microtime();
|
||||||
include_once(G5_PATH.'/head.sub.php');
|
include_once(G5_PATH.'/head.sub.php');
|
||||||
|
|
||||||
function print_menu1($key, $no)
|
function print_menu1($key, $no){
|
||||||
{
|
global $menu;
|
||||||
global $menu;
|
$str = print_menu2($key, $no);
|
||||||
|
return $str;
|
||||||
$str = print_menu2($key, $no);
|
|
||||||
|
|
||||||
return $str;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function print_menu2($key, $no)
|
function print_menu2($key, $no){
|
||||||
{
|
global $menu, $auth_menu, $is_admin, $auth, $g5, $sub_menu;
|
||||||
global $menu, $auth_menu, $is_admin, $auth, $g5, $sub_menu;
|
|
||||||
|
|
||||||
$str .= "<ul class=\"gnb_2dul\">";
|
$str .= "<div class=\"gnb_2dul\"><ul>";
|
||||||
for($i=1; $i<count($menu[$key]); $i++)
|
for($i=1; $i<count($menu[$key]); $i++) {
|
||||||
{
|
if ($is_admin != 'super' && (!array_key_exists($menu[$key][$i][0],$auth) || !strstr($auth[$menu[$key][$i][0]], 'r')))
|
||||||
if ($is_admin != 'super' && (!array_key_exists($menu[$key][$i][0],$auth) || !strstr($auth[$menu[$key][$i][0]], 'r')))
|
continue;
|
||||||
continue;
|
|
||||||
|
|
||||||
if (($menu[$key][$i][4] == 1 && $gnb_grp_style == false) || ($menu[$key][$i][4] != 1 && $gnb_grp_style == true)) $gnb_grp_div = 'gnb_grp_div';
|
if (($menu[$key][$i][4] == 1 && $gnb_grp_style == false) || ($menu[$key][$i][4] != 1 && $gnb_grp_style == true)) $gnb_grp_div = 'gnb_grp_div';
|
||||||
else $gnb_grp_div = '';
|
else $gnb_grp_div = '';
|
||||||
|
|
||||||
if ($menu[$key][$i][4] == 1) $gnb_grp_style = 'gnb_grp_style';
|
if ($menu[$key][$i][4] == 1) $gnb_grp_style = 'on';
|
||||||
else $gnb_grp_style = '';
|
else $gnb_grp_style = '';
|
||||||
|
|
||||||
$check_gnb_grp_style = "";
|
$check_gnb_grp_style = "";
|
||||||
if($menu[$key][$i][0] && isset($sub_menu) && $menu[$key][$i][0] == $sub_menu) {
|
if($menu[$key][$i][0] && isset($sub_menu) && $menu[$key][$i][0] == $sub_menu) {
|
||||||
$check_gnb_grp_style = "check";
|
$check_gnb_grp_style = "check";
|
||||||
}
|
}
|
||||||
|
|
||||||
$str .= '<li class="gnb_2dli '.$check_gnb_grp_style.'"><a href="'.$menu[$key][$i][2].'" class="gnb_2da '.$gnb_grp_style.' '.$gnb_grp_div.'" data-text="'.$menu[$key][$i][1].'">'.$menu[$key][$i][1].'</a></li>';
|
$str .= '<li class="gnb_2dli '.$check_gnb_grp_style.'"><a href="'.$menu[$key][$i][2].'" class="gnb_2da '.$gnb_grp_style.' '.$gnb_grp_div.'" data-text="'.$menu[$key][$i][1].'">'.$menu[$key][$i][1].'</a></li>';
|
||||||
|
|
||||||
$auth_menu[$menu[$key][$i][0]] = $menu[$key][$i][1];
|
$auth_menu[$menu[$key][$i][0]] = $menu[$key][$i][1];
|
||||||
}
|
}
|
||||||
$str .= "</ul>";
|
$str .= "</ul></div>";
|
||||||
|
|
||||||
return $str;
|
return $str;
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<script>
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0" />
|
||||||
var tempX = 0;
|
|
||||||
var tempY = 0;
|
|
||||||
|
|
||||||
function imageview(id, w, h)
|
<div class="adminWrap">
|
||||||
{
|
|
||||||
|
|
||||||
menu(id);
|
<header class="adminHeader">
|
||||||
|
<div class="inner">
|
||||||
var el_id = document.getElementById(id);
|
|
||||||
|
|
||||||
//submenu = eval(name+".style");
|
|
||||||
submenu = el_id.style;
|
|
||||||
submenu.left = tempX - ( w + 11 );
|
|
||||||
submenu.top = tempY - ( h / 2 );
|
|
||||||
|
|
||||||
selectBoxVisible();
|
|
||||||
|
|
||||||
if (el_id.style.display != 'none')
|
|
||||||
selectBoxHidden(id);
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<div id="wrap">
|
|
||||||
|
|
||||||
<header id="header">
|
|
||||||
<div id="admin_prof">
|
|
||||||
<h1>
|
<h1>
|
||||||
<a href="<?php echo G5_ADMIN_URL ?>"><img src="<?=G5_ADMIN_URL?>/img/logo.png" alt="Avocado Edition" /></a>
|
<a href="<?php echo G5_ADMIN_URL ?>"><strong><?=$config['cf_title']?> Management</strong></a>
|
||||||
<i><?=G5_GNUBOARD_VER?></i>
|
<i><?=G5_GNUBOARD_VER?></i>
|
||||||
</h1>
|
</h1>
|
||||||
<p>
|
<aside>
|
||||||
<a href="<?php echo G5_ADMIN_URL ?>/member_form.php?w=u&mb_id=<?php echo $member['mb_id'] ?>" class="name">
|
<a href="<?php echo G5_BBS_URL ?>/logout.php" ><span class="material-symbols-outlined">logout</span></a>
|
||||||
<?=$member['mb_name']?>
|
<a href="<?=G5_URL?>" target="_blank"><span class="material-symbols-outlined">home</span></a>
|
||||||
</a>
|
<a href="https://avocado-edition-rout.postype.com/" target="_blank"><span class="material-symbols-outlined">developer_guide</span></a>
|
||||||
<a href="<?php echo G5_BBS_URL ?>/logout.php" class="logout">로그아웃</a>
|
</aside>
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
</header>
|
||||||
<nav id="gnb">
|
<nav class="adminGnbArea auto-horiz">
|
||||||
|
<div id="gnb" class="inner">
|
||||||
<?php
|
<?php
|
||||||
$gnb_str = "<ul>";
|
$gnb_str = "<ul>";
|
||||||
foreach($amenu as $key=>$value) {
|
foreach($amenu as $key=>$value) {
|
||||||
|
|
@ -95,7 +69,7 @@ function imageview(id, w, h)
|
||||||
}
|
}
|
||||||
$current_class = "";
|
$current_class = "";
|
||||||
if (isset($sub_menu) && (substr($sub_menu, 0, 3) == substr($menu['menu'.$key][0][0], 0, 3)))
|
if (isset($sub_menu) && (substr($sub_menu, 0, 3) == substr($menu['menu'.$key][0][0], 0, 3)))
|
||||||
$current_class = " gnb_1dli_air";
|
$current_class = " on";
|
||||||
$gnb_str .= '<li class="gnb_1dli'.$current_class.'">'.PHP_EOL;
|
$gnb_str .= '<li class="gnb_1dli'.$current_class.'">'.PHP_EOL;
|
||||||
$gnb_str .= $href1 . $menu['menu'.$key][0][1] . $href2;
|
$gnb_str .= $href1 . $menu['menu'.$key][0][1] . $href2;
|
||||||
$gnb_str .= print_menu1('menu'.$key, 1);
|
$gnb_str .= print_menu1('menu'.$key, 1);
|
||||||
|
|
@ -104,22 +78,12 @@ function imageview(id, w, h)
|
||||||
$gnb_str .= "</ul>";
|
$gnb_str .= "</ul>";
|
||||||
echo $gnb_str;
|
echo $gnb_str;
|
||||||
?>
|
?>
|
||||||
</nav>
|
</div>
|
||||||
|
</nav>
|
||||||
</header>
|
<section class="adminBody">
|
||||||
|
<? if($g5['title'] != "관리자메인") { ?>
|
||||||
|
<div class="pageTitle">
|
||||||
<section id="wrapper">
|
|
||||||
|
|
||||||
<aside id="page_top">
|
|
||||||
<h2><?php echo $g5['title'] ?></h2>
|
<h2><?php echo $g5['title'] ?></h2>
|
||||||
|
</div>
|
||||||
<a href="<?=G5_URL?>" class="ico-home" target="_blank">
|
<? } ?>
|
||||||
커뮤니티
|
<div class="container">
|
||||||
</a>
|
|
||||||
<a href="https://avocado-edition-rout.postype.com/" class="ico-dev" target="_blank">
|
|
||||||
아보카도 솔루션
|
|
||||||
</a>
|
|
||||||
</aside>
|
|
||||||
|
|
||||||
<div id="container">
|
|
||||||
|
|
|
||||||
|
|
@ -1,129 +1,249 @@
|
||||||
function check_all(f)
|
function check_all(f)
|
||||||
{
|
{
|
||||||
var chk = document.getElementsByName("chk[]");
|
var chk = document.getElementsByName("chk[]");
|
||||||
|
|
||||||
for (i=0; i<chk.length; i++)
|
for (i=0; i<chk.length; i++)
|
||||||
chk[i].checked = f.chkall.checked;
|
chk[i].checked = f.chkall.checked;
|
||||||
}
|
}
|
||||||
|
|
||||||
function btn_check(f, act)
|
function btn_check(f, act)
|
||||||
{
|
{
|
||||||
if (act == "update") // 선택수정
|
if (act == "update") // 선택수정
|
||||||
{
|
{
|
||||||
f.action = list_update_php;
|
f.action = list_update_php;
|
||||||
str = "수정";
|
str = "수정";
|
||||||
}
|
}
|
||||||
else if (act == "delete") // 선택삭제
|
else if (act == "delete") // 선택삭제
|
||||||
{
|
{
|
||||||
f.action = list_delete_php;
|
f.action = list_delete_php;
|
||||||
str = "삭제";
|
str = "삭제";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var chk = document.getElementsByName("chk[]");
|
var chk = document.getElementsByName("chk[]");
|
||||||
var bchk = false;
|
var bchk = false;
|
||||||
|
|
||||||
for (i=0; i<chk.length; i++)
|
for (i=0; i<chk.length; i++)
|
||||||
{
|
{
|
||||||
if (chk[i].checked)
|
if (chk[i].checked)
|
||||||
bchk = true;
|
bchk = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!bchk)
|
if (!bchk)
|
||||||
{
|
{
|
||||||
alert(str + "할 자료를 하나 이상 선택하세요.");
|
alert(str + "할 자료를 하나 이상 선택하세요.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (act == "delete")
|
if (act == "delete")
|
||||||
{
|
{
|
||||||
if (!confirm("선택한 자료를 정말 삭제 하시겠습니까?"))
|
if (!confirm("선택한 자료를 정말 삭제 하시겠습니까?"))
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
f.submit();
|
f.submit();
|
||||||
}
|
}
|
||||||
|
|
||||||
function is_checked(elements_name)
|
function is_checked(elements_name)
|
||||||
{
|
{
|
||||||
var checked = false;
|
var checked = false;
|
||||||
var chk = document.getElementsByName(elements_name);
|
var chk = document.getElementsByName(elements_name);
|
||||||
for (var i=0; i<chk.length; i++) {
|
for (var i=0; i<chk.length; i++) {
|
||||||
if (chk[i].checked) {
|
if (chk[i].checked) {
|
||||||
checked = true;
|
checked = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return checked;
|
return checked;
|
||||||
}
|
}
|
||||||
|
|
||||||
function delete_confirm(el)
|
function delete_confirm(el)
|
||||||
{
|
{
|
||||||
if(confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) {
|
if(confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) {
|
||||||
var token = get_ajax_token();
|
var token = get_ajax_token();
|
||||||
var href = el.href.replace(/&token=.+$/g, "");
|
var href = el.href.replace(/&token=.+$/g, "");
|
||||||
if(!token) {
|
if(!token) {
|
||||||
alert("토큰 정보가 올바르지 않습니다.");
|
alert("토큰 정보가 올바르지 않습니다.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
el.href = href+"&token="+token;
|
el.href = href+"&token="+token;
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function delete_confirm2(msg)
|
function delete_confirm2(msg)
|
||||||
{
|
{
|
||||||
if(confirm(msg))
|
if(confirm(msg))
|
||||||
return true;
|
return true;
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function get_ajax_token()
|
function get_ajax_token()
|
||||||
{
|
{
|
||||||
var token = "";
|
var token = "";
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: "POST",
|
type: "POST",
|
||||||
url: g5_admin_url+"/ajax.token.php",
|
url: g5_admin_url+"/ajax.token.php",
|
||||||
cache: false,
|
cache: false,
|
||||||
async: false,
|
async: false,
|
||||||
dataType: "json",
|
dataType: "json",
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
if(data.error) {
|
if(data.error) {
|
||||||
alert(data.error);
|
alert(data.error);
|
||||||
if(data.url)
|
if(data.url)
|
||||||
document.location.href = data.url;
|
document.location.href = data.url;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
token = data.token;
|
token = data.token;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
return token;
|
return token;
|
||||||
}
|
}
|
||||||
|
|
||||||
$(function() {
|
$(function() {
|
||||||
$(document).on("click", "form input:submit", function() {
|
$(document).on("click", "form input:submit", function() {
|
||||||
var f = this.form;
|
var f = this.form;
|
||||||
var token = get_ajax_token();
|
var token = get_ajax_token();
|
||||||
|
|
||||||
if(!token) {
|
if(!token) {
|
||||||
alert("토큰 정보가 올바르지 않습니다.");
|
alert("토큰 정보가 올바르지 않습니다.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
var $f = $(f);
|
var $f = $(f);
|
||||||
|
|
||||||
if(typeof f.token === "undefined")
|
if(typeof f.token === "undefined")
|
||||||
$f.prepend('<input type="hidden" name="token" value="">');
|
$f.prepend('<input type="hidden" name="token" value="">');
|
||||||
|
|
||||||
$f.find("input[name=token]").val(token);
|
$f.find("input[name=token]").val(token);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if($('.anchor').length > 0) {
|
||||||
|
$('.anchor').hide();
|
||||||
|
$('.anchor').addClass('auto-horiz');
|
||||||
|
$('.anchor').eq(0).addClass('actived').show();
|
||||||
|
$('.adminBody').addClass('has-amchor');
|
||||||
|
|
||||||
|
$(document).scroll(function() {set_achor();});
|
||||||
|
set_achor();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function set_achor() {
|
||||||
|
const $sections = $('section[id*="anc_"]');
|
||||||
|
const $anchorList = $(".anchor");
|
||||||
|
|
||||||
|
let current=""
|
||||||
|
const scrollTop = $(window).scrollTop();
|
||||||
|
const scrollLeft = $(window).scrollLeft();
|
||||||
|
const w_height = $(window).height();
|
||||||
|
|
||||||
|
$sections.each(function(index, item) {
|
||||||
|
if($(item).is(':visible')) {
|
||||||
|
const sectionTop = $(item).offset().top;
|
||||||
|
const checkTop = sectionTop - (w_height / 3);
|
||||||
|
if(scrollTop >= checkTop) {
|
||||||
|
current = $(item).attr('id');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
$anchorList.find('.on').removeClass('on');
|
||||||
|
$anchorList.find('a[href="#'+current+'"]').addClass('on');
|
||||||
|
|
||||||
|
$(".auto-horiz").css("transform", "translateX(-"+scrollLeft+"px)");
|
||||||
|
$(".auto-horiz").css("-webkit-transform", "translateX(-"+scrollLeft+"px)");
|
||||||
|
}
|
||||||
|
|
||||||
|
/***************************************
|
||||||
|
Repeat Item
|
||||||
|
***************************************/
|
||||||
|
|
||||||
|
function fn_add_repeatFrom(id, max_count) {
|
||||||
|
const $repeat_pannel = $('#'+id);
|
||||||
|
const $original_item = $repeat_pannel.find('.repeat-original');
|
||||||
|
const originam_tag = $original_item[0].tagName.toLowerCase();
|
||||||
|
const now_count = $repeat_pannel.find(originam_tag).not('.repeat-original').length;
|
||||||
|
|
||||||
|
if(typeof(max_count) != "undefined" && max_count != 0 && now_count + 1 > max_count) {
|
||||||
|
alert("최대 등록 가능한 갯수를 초과하였습니다.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
let $add_item = $original_item.clone();
|
||||||
|
$add_item.removeClass('repeat-original');
|
||||||
|
$repeat_pannel.append($add_item);
|
||||||
|
}
|
||||||
|
function fn_del_itemFrom(obj) {
|
||||||
|
const $repeat_pannel = $(obj).closest('.repeatFormArea');
|
||||||
|
const $original_item = $repeat_pannel.find('.repeat-original');
|
||||||
|
const originam_tag = $original_item[0].tagName.toLowerCase();
|
||||||
|
|
||||||
|
$(obj).closest(originam_tag).remove();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/***************************************
|
||||||
|
Layout Setting
|
||||||
|
***************************************/
|
||||||
|
|
||||||
|
$(function() {
|
||||||
|
//$('.local_desc').prepend($('<span class="material-symbols-outlined">emergency</span>'));
|
||||||
|
|
||||||
|
$('input[type="checkbox"]').each(function() {
|
||||||
|
let $label = $(this).next('label');
|
||||||
|
if($label.length > 0) {
|
||||||
|
$(this).addClass('hidden');
|
||||||
|
} else {
|
||||||
|
$(this).addClass('show');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.local_sch a').addClass('btn_link');
|
||||||
|
|
||||||
|
|
||||||
|
$('.color-preview').each(function() {
|
||||||
|
let $input = $(this).prev('input[type="text"]');
|
||||||
|
let $color = $(this);
|
||||||
|
let is_input = false;
|
||||||
|
|
||||||
|
$color.on('change', function() {
|
||||||
|
if(!is_input) {
|
||||||
|
let _color = $(this).val();
|
||||||
|
$input.val(_color);
|
||||||
|
} else {
|
||||||
|
is_input = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$input.on('change', function() {
|
||||||
|
is_input = true;
|
||||||
|
let _color = $(this).val();
|
||||||
|
$color.val(_color);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
if($('.btn_add').length > 0 && $('.btn_list').length) {
|
||||||
|
$('.btn_add').addClass('btn_list');
|
||||||
|
} else if($('.btn_add').length > 0) {
|
||||||
|
$('.btn_add').addClass('btn_confirm');
|
||||||
|
}
|
||||||
|
|
||||||
|
if($('.btn_list').length > 0 && $('.btn_confirm').length > 0) {
|
||||||
|
$('.btn_confirm').closest('section').addClass('writeFromArea');
|
||||||
|
$('.container').addClass('writeFromAreaContainer');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,449 +1,420 @@
|
||||||
<?php
|
<?php
|
||||||
if (!defined('_GNUBOARD_')) exit;
|
if (!defined('_GNUBOARD_')) exit;
|
||||||
|
|
||||||
/*
|
|
||||||
// 081022 : CSRF 방지를 위해 코드를 작성했으나 효과가 없어 주석처리 함
|
|
||||||
if (!get_session('ss_admin')) {
|
|
||||||
set_session('ss_admin', true);
|
|
||||||
goto_url('.');
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
// 스킨디렉토리를 SELECT 형식으로 얻음
|
// 스킨디렉토리를 SELECT 형식으로 얻음
|
||||||
function get_skin_select($skin_gubun, $id, $name, $selected='', $event='')
|
function get_skin_select($skin_gubun, $id, $name, $selected='', $event=''){
|
||||||
{
|
global $config;
|
||||||
global $config;
|
|
||||||
|
|
||||||
$skins = array();
|
$skins = array();
|
||||||
|
|
||||||
if(defined('G5_THEME_PATH') && $config['cf_theme']) {
|
if(defined('G5_THEME_PATH') && $config['cf_theme']) {
|
||||||
$dirs = get_skin_dir($skin_gubun, G5_THEME_PATH.'/'.G5_SKIN_DIR);
|
$dirs = get_skin_dir($skin_gubun, G5_THEME_PATH.'/'.G5_SKIN_DIR);
|
||||||
if(!empty($dirs)) {
|
if(!empty($dirs)) {
|
||||||
foreach($dirs as $dir) {
|
foreach($dirs as $dir) {
|
||||||
$skins[] = 'theme/'.$dir;
|
$skins[] = 'theme/'.$dir;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$skins = array_merge($skins, get_skin_dir($skin_gubun));
|
$skins = array_merge($skins, get_skin_dir($skin_gubun));
|
||||||
|
|
||||||
$str = "<select id=\"$id\" name=\"$name\" $event>\n";
|
$str = "<select id=\"$id\" name=\"$name\" $event>\n";
|
||||||
for ($i=0; $i<count($skins); $i++) {
|
for ($i=0; $i<count($skins); $i++) {
|
||||||
if ($i == 0) $str .= "<option value=\"\">선택</option>";
|
if ($i == 0) $str .= "<option value=\"\">선택</option>";
|
||||||
if(preg_match('#^theme/(.+)$#', $skins[$i], $match))
|
if(preg_match('#^theme/(.+)$#', $skins[$i], $match))
|
||||||
$text = '(테마) '.$match[1];
|
$text = '(테마) '.$match[1];
|
||||||
else
|
else
|
||||||
$text = $skins[$i];
|
$text = $skins[$i];
|
||||||
|
|
||||||
$str .= option_selected($skins[$i], $selected, $text);
|
$str .= option_selected($skins[$i], $selected, $text);
|
||||||
}
|
}
|
||||||
$str .= "</select>";
|
$str .= "</select>";
|
||||||
return $str;
|
return $str;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 모바일 스킨디렉토리를 SELECT 형식으로 얻음
|
// 모바일 스킨디렉토리를 SELECT 형식으로 얻음
|
||||||
function get_mobile_skin_select($skin_gubun, $id, $name, $selected='', $event='')
|
function get_mobile_skin_select($skin_gubun, $id, $name, $selected='', $event=''){
|
||||||
{
|
global $config;
|
||||||
global $config;
|
|
||||||
|
|
||||||
$skins = array();
|
$skins = array();
|
||||||
|
|
||||||
if(defined('G5_THEME_PATH') && $config['cf_theme']) {
|
if(defined('G5_THEME_PATH') && $config['cf_theme']) {
|
||||||
$dirs = get_skin_dir($skin_gubun, G5_THEME_MOBILE_PATH.'/'.G5_SKIN_DIR);
|
$dirs = get_skin_dir($skin_gubun, G5_THEME_MOBILE_PATH.'/'.G5_SKIN_DIR);
|
||||||
if(!empty($dirs)) {
|
if(!empty($dirs)) {
|
||||||
foreach($dirs as $dir) {
|
foreach($dirs as $dir) {
|
||||||
$skins[] = 'theme/'.$dir;
|
$skins[] = 'theme/'.$dir;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$skins = array_merge($skins, get_skin_dir($skin_gubun, G5_MOBILE_PATH.'/'.G5_SKIN_DIR));
|
$skins = array_merge($skins, get_skin_dir($skin_gubun, G5_MOBILE_PATH.'/'.G5_SKIN_DIR));
|
||||||
|
|
||||||
$str = "<select id=\"$id\" name=\"$name\" $event>\n";
|
$str = "<select id=\"$id\" name=\"$name\" $event>\n";
|
||||||
for ($i=0; $i<count($skins); $i++) {
|
for ($i=0; $i<count($skins); $i++) {
|
||||||
if ($i == 0) $str .= "<option value=\"\">선택</option>";
|
if ($i == 0) $str .= "<option value=\"\">선택</option>";
|
||||||
if(preg_match('#^theme/(.+)$#', $skins[$i], $match))
|
if(preg_match('#^theme/(.+)$#', $skins[$i], $match))
|
||||||
$text = '(테마) '.$match[1];
|
$text = '(테마) '.$match[1];
|
||||||
else
|
else
|
||||||
$text = $skins[$i];
|
$text = $skins[$i];
|
||||||
|
|
||||||
$str .= option_selected($skins[$i], $selected, $text);
|
$str .= option_selected($skins[$i], $selected, $text);
|
||||||
}
|
}
|
||||||
$str .= "</select>";
|
$str .= "</select>";
|
||||||
return $str;
|
return $str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 스킨경로를 얻는다
|
// 스킨경로를 얻는다
|
||||||
function get_skin_dir($skin, $skin_path=G5_SKIN_PATH)
|
function get_skin_dir($skin, $skin_path=G5_SKIN_PATH){
|
||||||
{
|
global $g5;
|
||||||
global $g5;
|
|
||||||
|
|
||||||
$result_array = array();
|
$result_array = array();
|
||||||
|
|
||||||
$dirname = $skin_path.'/'.$skin.'/';
|
$dirname = $skin_path.'/'.$skin.'/';
|
||||||
if(!is_dir($dirname))
|
if(!is_dir($dirname))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$handle = opendir($dirname);
|
$handle = opendir($dirname);
|
||||||
while ($file = readdir($handle)) {
|
while ($file = readdir($handle)) {
|
||||||
if($file == '.'||$file == '..') continue;
|
if($file == '.'||$file == '..') continue;
|
||||||
|
|
||||||
if (is_dir($dirname.$file)) $result_array[] = $file;
|
if (is_dir($dirname.$file)) $result_array[] = $file;
|
||||||
}
|
}
|
||||||
closedir($handle);
|
closedir($handle);
|
||||||
sort($result_array);
|
sort($result_array);
|
||||||
|
|
||||||
return $result_array;
|
return $result_array;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 테마
|
// 테마
|
||||||
function get_theme_dir()
|
function get_theme_dir(){
|
||||||
{
|
$result_array = array();
|
||||||
$result_array = array();
|
|
||||||
|
|
||||||
$dirname = G5_PATH.'/'.G5_THEME_DIR.'/';
|
$dirname = G5_PATH.'/'.G5_THEME_DIR.'/';
|
||||||
$handle = opendir($dirname);
|
$handle = opendir($dirname);
|
||||||
while ($file = readdir($handle)) {
|
while ($file = readdir($handle)) {
|
||||||
if($file == '.'||$file == '..') continue;
|
if($file == '.'||$file == '..') continue;
|
||||||
|
|
||||||
if (is_dir($dirname.$file)) {
|
if (is_dir($dirname.$file)) {
|
||||||
$theme_path = $dirname.$file;
|
$theme_path = $dirname.$file;
|
||||||
if(is_file($theme_path.'/index.php') && is_file($theme_path.'/head.php') && is_file($theme_path.'/tail.php'))
|
if(is_file($theme_path.'/index.php') && is_file($theme_path.'/head.php') && is_file($theme_path.'/tail.php'))
|
||||||
$result_array[] = $file;
|
$result_array[] = $file;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
closedir($handle);
|
closedir($handle);
|
||||||
natsort($result_array);
|
natsort($result_array);
|
||||||
|
|
||||||
return $result_array;
|
return $result_array;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 테마디렉토리를 SELECT 형식으로 얻음
|
// 테마디렉토리를 SELECT 형식으로 얻음
|
||||||
function get_theme_select($id, $name, $selected='', $event='')
|
function get_theme_select($id, $name, $selected='', $event=''){
|
||||||
{
|
global $config;
|
||||||
global $config;
|
|
||||||
|
|
||||||
$theme = array();
|
$theme = array();
|
||||||
$theme = array_merge($theme, get_theme_dir());
|
$theme = array_merge($theme, get_theme_dir());
|
||||||
|
|
||||||
$str = "<select id=\"$id\" name=\"$name\" $event>\n";
|
$str = "<select id=\"$id\" name=\"$name\" $event>\n";
|
||||||
for ($i=0; $i<count($theme); $i++) {
|
for ($i=0; $i<count($theme); $i++) {
|
||||||
if ($i == 0) $str .= "<option value=\"\">-</option>";
|
if ($i == 0) $str .= "<option value=\"\">-</option>";
|
||||||
$text = $theme[$i];
|
$text = $theme[$i];
|
||||||
|
|
||||||
$str .= option_selected($theme[$i], $selected, $text);
|
$str .= option_selected($theme[$i], $selected, $text);
|
||||||
}
|
}
|
||||||
$str .= "</select>";
|
$str .= "</select>";
|
||||||
return $str;
|
return $str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 테마정보
|
// 테마정보
|
||||||
function get_theme_info($dir)
|
function get_theme_info($dir){
|
||||||
{
|
$info = array();
|
||||||
$info = array();
|
$path = G5_PATH.'/'.G5_THEME_DIR.'/'.$dir;
|
||||||
$path = G5_PATH.'/'.G5_THEME_DIR.'/'.$dir;
|
|
||||||
|
|
||||||
if(is_dir($path)) {
|
if(is_dir($path)) {
|
||||||
$screenshot = $path.'/screenshot.png';
|
$screenshot = $path.'/screenshot.png';
|
||||||
if(is_file($screenshot)) {
|
if(is_file($screenshot)) {
|
||||||
$size = @getimagesize($screenshot);
|
$size = @getimagesize($screenshot);
|
||||||
|
|
||||||
if($size[2] == 3)
|
if($size[2] == 3)
|
||||||
$screenshot_url = str_replace(G5_PATH, G5_URL, $screenshot);
|
$screenshot_url = str_replace(G5_PATH, G5_URL, $screenshot);
|
||||||
}
|
}
|
||||||
|
|
||||||
$info['screenshot'] = $screenshot_url;
|
$info['screenshot'] = $screenshot_url;
|
||||||
|
|
||||||
$text = $path.'/readme.txt';
|
$text = $path.'/readme.txt';
|
||||||
if(is_file($text)) {
|
if(is_file($text)) {
|
||||||
$content = file($text, false);
|
$content = file($text, false);
|
||||||
$content = array_map('trim', $content);
|
$content = array_map('trim', $content);
|
||||||
|
|
||||||
preg_match('#^Theme Name:(.+)$#i', $content[0], $m0);
|
preg_match('#^Theme Name:(.+)$#i', $content[0], $m0);
|
||||||
preg_match('#^Theme URI:(.+)$#i', $content[1], $m1);
|
preg_match('#^Theme URI:(.+)$#i', $content[1], $m1);
|
||||||
preg_match('#^Maker:(.+)$#i', $content[2], $m2);
|
preg_match('#^Maker:(.+)$#i', $content[2], $m2);
|
||||||
preg_match('#^Maker URI:(.+)$#i', $content[3], $m3);
|
preg_match('#^Maker URI:(.+)$#i', $content[3], $m3);
|
||||||
preg_match('#^Version:(.+)$#i', $content[4], $m4);
|
preg_match('#^Version:(.+)$#i', $content[4], $m4);
|
||||||
preg_match('#^Detail:(.+)$#i', $content[5], $m5);
|
preg_match('#^Detail:(.+)$#i', $content[5], $m5);
|
||||||
preg_match('#^License:(.+)$#i', $content[6], $m6);
|
preg_match('#^License:(.+)$#i', $content[6], $m6);
|
||||||
preg_match('#^License URI:(.+)$#i', $content[7], $m7);
|
preg_match('#^License URI:(.+)$#i', $content[7], $m7);
|
||||||
|
|
||||||
$info['theme_name'] = trim($m0[1]);
|
$info['theme_name'] = trim($m0[1]);
|
||||||
$info['theme_uri'] = trim($m1[1]);
|
$info['theme_uri'] = trim($m1[1]);
|
||||||
$info['maker'] = trim($m2[1]);
|
$info['maker'] = trim($m2[1]);
|
||||||
$info['maker_uri'] = trim($m3[1]);
|
$info['maker_uri'] = trim($m3[1]);
|
||||||
$info['version'] = trim($m4[1]);
|
$info['version'] = trim($m4[1]);
|
||||||
$info['detail'] = trim($m5[1]);
|
$info['detail'] = trim($m5[1]);
|
||||||
$info['license'] = trim($m6[1]);
|
$info['license'] = trim($m6[1]);
|
||||||
$info['license_uri'] = trim($m7[1]);
|
$info['license_uri'] = trim($m7[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!$info['theme_name'])
|
if(!$info['theme_name'])
|
||||||
$info['theme_name'] = $dir;
|
$info['theme_name'] = $dir;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $info;
|
return $info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 테마설정 정보
|
// 테마설정 정보
|
||||||
function get_theme_config_value($dir, $key='*')
|
function get_theme_config_value($dir, $key='*'){
|
||||||
{
|
$tconfig = array();
|
||||||
$tconfig = array();
|
|
||||||
|
|
||||||
$theme_config_file = G5_PATH.'/'.G5_THEME_DIR.'/'.$dir.'/theme.config.php';
|
$theme_config_file = G5_PATH.'/'.G5_THEME_DIR.'/'.$dir.'/theme.config.php';
|
||||||
if(is_file($theme_config_file)) {
|
if(is_file($theme_config_file)) {
|
||||||
include($theme_config_file);
|
include($theme_config_file);
|
||||||
|
|
||||||
if($key == '*') {
|
if($key == '*') {
|
||||||
$tconfig = $theme_config;
|
$tconfig = $theme_config;
|
||||||
} else {
|
} else {
|
||||||
$keys = array_map('trim', explode(',', $key));
|
$keys = array_map('trim', explode(',', $key));
|
||||||
foreach($keys as $v) {
|
foreach($keys as $v) {
|
||||||
$tconfig[$v] = isset($theme_config[$v]) ? trim($theme_config[$v]) : '';
|
$tconfig[$v] = isset($theme_config[$v]) ? trim($theme_config[$v]) : '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $tconfig;
|
return $tconfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 회원권한을 SELECT 형식으로 얻음
|
// 회원권한을 SELECT 형식으로 얻음
|
||||||
function get_member_level_select($name, $start_id=0, $end_id=10, $selected="", $event="")
|
function get_member_level_select($name, $start_id=0, $end_id=10, $selected="", $event=""){
|
||||||
{
|
global $g5;
|
||||||
global $g5;
|
|
||||||
|
|
||||||
$level_name[1] = "방문자";
|
$level_name[1] = "방문자";
|
||||||
$level_name[2] = "일반멤버";
|
$level_name[2] = "일반멤버";
|
||||||
$level_name[10] = "운영자";
|
$level_name[10] = "운영자";
|
||||||
|
|
||||||
$str = "\n<select id=\"{$name}\" name=\"{$name}\"";
|
$str = "\n<select id=\"{$name}\" name=\"{$name}\"";
|
||||||
if ($event) $str .= " $event";
|
if ($event) $str .= " $event";
|
||||||
$str .= ">\n";
|
$str .= ">\n";
|
||||||
for ($i=$start_id; $i<=$end_id; $i++) {
|
for ($i=$start_id; $i<=$end_id; $i++) {
|
||||||
if(!$level_name[$i]) continue;
|
if(!$level_name[$i]) continue;
|
||||||
|
|
||||||
$str .= '<option value="'.$i.'"';
|
$str .= '<option value="'.$i.'"';
|
||||||
if ($i == $selected)
|
if ($i == $selected)
|
||||||
$str .= ' selected="selected"';
|
$str .= ' selected="selected"';
|
||||||
$str .= ">{$level_name[$i]} </option>\n";
|
$str .= ">{$level_name[$i]} </option>\n";
|
||||||
}
|
}
|
||||||
$str .= "</select>\n";
|
$str .= "</select>\n";
|
||||||
return $str;
|
return $str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 회원아이디를 SELECT 형식으로 얻음
|
// 회원아이디를 SELECT 형식으로 얻음
|
||||||
function get_member_id_select($name, $level, $selected="", $event="")
|
function get_member_id_select($name, $level, $selected="", $event=""){
|
||||||
{
|
global $g5;
|
||||||
global $g5;
|
|
||||||
|
|
||||||
$sql = " select mb_id from {$g5['member_table']} where mb_level >= '{$level}' ";
|
$sql = " select mb_id from {$g5['member_table']} where mb_level >= '{$level}' ";
|
||||||
$result = sql_query($sql);
|
$result = sql_query($sql);
|
||||||
$str = '<select id="'.$name.'" name="'.$name.'" '.$event.'><option value="">선택안함</option>';
|
$str = '<select id="'.$name.'" name="'.$name.'" '.$event.'><option value="">선택안함</option>';
|
||||||
for ($i=0; $row=sql_fetch_array($result); $i++)
|
for ($i=0; $row=sql_fetch_array($result); $i++)
|
||||||
{
|
{
|
||||||
$str .= '<option value="'.$row['mb_id'].'"';
|
$str .= '<option value="'.$row['mb_id'].'"';
|
||||||
if ($row['mb_id'] == $selected) $str .= ' selected';
|
if ($row['mb_id'] == $selected) $str .= ' selected';
|
||||||
$str .= '>'.$row['mb_id'].'</option>';
|
$str .= '>'.$row['mb_id'].'</option>';
|
||||||
}
|
}
|
||||||
$str .= '</select>';
|
$str .= '</select>';
|
||||||
return $str;
|
return $str;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 권한 검사
|
// 권한 검사
|
||||||
function auth_check($auth, $attr, $return=false)
|
function auth_check($auth, $attr, $return=false){
|
||||||
{
|
global $is_admin;
|
||||||
global $is_admin;
|
|
||||||
|
|
||||||
if ($is_admin == 'super') return;
|
if ($is_admin == 'super') return;
|
||||||
|
|
||||||
if (!trim($auth)) {
|
if (!trim($auth)) {
|
||||||
$msg = '이 메뉴에는 접근 권한이 없습니다.\\n\\n접근 권한은 최고관리자만 부여할 수 있습니다.';
|
$msg = '이 메뉴에는 접근 권한이 없습니다.\\n\\n접근 권한은 최고관리자만 부여할 수 있습니다.';
|
||||||
if($return)
|
if($return)
|
||||||
return $msg;
|
return $msg;
|
||||||
else
|
else
|
||||||
alert($msg);
|
alert($msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
$attr = strtolower($attr);
|
$attr = strtolower($attr);
|
||||||
|
|
||||||
if (!strstr($auth, $attr)) {
|
if (!strstr($auth, $attr)) {
|
||||||
if ($attr == 'r') {
|
if ($attr == 'r') {
|
||||||
$msg = '읽을 권한이 없습니다.';
|
$msg = '읽을 권한이 없습니다.';
|
||||||
if($return)
|
if($return)
|
||||||
return $msg;
|
return $msg;
|
||||||
else
|
else
|
||||||
alert($msg);
|
alert($msg);
|
||||||
} else if ($attr == 'w') {
|
} else if ($attr == 'w') {
|
||||||
$msg = '입력, 추가, 생성, 수정 권한이 없습니다.';
|
$msg = '입력, 추가, 생성, 수정 권한이 없습니다.';
|
||||||
if($return)
|
if($return)
|
||||||
return $msg;
|
return $msg;
|
||||||
else
|
else
|
||||||
alert($msg);
|
alert($msg);
|
||||||
} else if ($attr == 'd') {
|
} else if ($attr == 'd') {
|
||||||
$msg = '삭제 권한이 없습니다.';
|
$msg = '삭제 권한이 없습니다.';
|
||||||
if($return)
|
if($return)
|
||||||
return $msg;
|
return $msg;
|
||||||
else
|
else
|
||||||
alert($msg);
|
alert($msg);
|
||||||
} else {
|
} else {
|
||||||
$msg = '속성이 잘못 되었습니다.';
|
$msg = '속성이 잘못 되었습니다.';
|
||||||
if($return)
|
if($return)
|
||||||
return $msg;
|
return $msg;
|
||||||
else
|
else
|
||||||
alert($msg);
|
alert($msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 작업아이콘 출력
|
// 작업아이콘 출력
|
||||||
function icon($act, $link='', $target='_parent')
|
function icon($act, $link='', $target='_parent'){
|
||||||
{
|
global $g5;
|
||||||
global $g5;
|
|
||||||
|
|
||||||
$img = array('입력'=>'insert', '추가'=>'insert', '생성'=>'insert', '수정'=>'modify', '삭제'=>'delete', '이동'=>'move', '그룹'=>'move', '보기'=>'view', '미리보기'=>'view', '복사'=>'copy');
|
$img = array('입력'=>'insert', '추가'=>'insert', '생성'=>'insert', '수정'=>'modify', '삭제'=>'delete', '이동'=>'move', '그룹'=>'move', '보기'=>'view', '미리보기'=>'view', '복사'=>'copy');
|
||||||
$icon = '<img src="'.G5_ADMIN_PATH.'/img/icon_'.$img[$act].'.gif" title="'.$act.'">';
|
$icon = '<img src="'.G5_ADMIN_PATH.'/img/icon_'.$img[$act].'.gif" title="'.$act.'">';
|
||||||
if ($link)
|
if ($link)
|
||||||
$s = '<a href="'.$link.'">'.$icon.'</a>';
|
$s = '<a href="'.$link.'">'.$icon.'</a>';
|
||||||
else
|
else
|
||||||
$s = $icon;
|
$s = $icon;
|
||||||
return $s;
|
return $s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// rm -rf 옵션 : exec(), system() 함수를 사용할 수 없는 서버 또는 win32용 대체
|
// rm -rf 옵션 : exec(), system() 함수를 사용할 수 없는 서버 또는 win32용 대체
|
||||||
// www.php.net 참고 : pal at degerstrom dot com
|
// www.php.net 참고 : pal at degerstrom dot com
|
||||||
function rm_rf($file)
|
function rm_rf($file){
|
||||||
{
|
if (file_exists($file)) {
|
||||||
if (file_exists($file)) {
|
if (is_dir($file)) {
|
||||||
if (is_dir($file)) {
|
$handle = opendir($file);
|
||||||
$handle = opendir($file);
|
while($filename = readdir($handle)) {
|
||||||
while($filename = readdir($handle)) {
|
if ($filename != '.' && $filename != '..')
|
||||||
if ($filename != '.' && $filename != '..')
|
rm_rf($file.'/'.$filename);
|
||||||
rm_rf($file.'/'.$filename);
|
}
|
||||||
}
|
closedir($handle);
|
||||||
closedir($handle);
|
|
||||||
|
|
||||||
@chmod($file, G5_DIR_PERMISSION);
|
@chmod($file, G5_DIR_PERMISSION);
|
||||||
@rmdir($file);
|
@rmdir($file);
|
||||||
} else {
|
} else {
|
||||||
@chmod($file, G5_FILE_PERMISSION);
|
@chmod($file, G5_FILE_PERMISSION);
|
||||||
@unlink($file);
|
@unlink($file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 출력순서
|
// 출력순서
|
||||||
function order_select($fld, $sel='')
|
function order_select($fld, $sel=''){
|
||||||
{
|
$s = '<select name="'.$fld.'" id="'.$fld.'">';
|
||||||
$s = '<select name="'.$fld.'" id="'.$fld.'">';
|
for ($i=1; $i<=100; $i++) {
|
||||||
for ($i=1; $i<=100; $i++) {
|
$s .= '<option value="'.$i.'" ';
|
||||||
$s .= '<option value="'.$i.'" ';
|
if ($sel) {
|
||||||
if ($sel) {
|
if ($i == $sel) {
|
||||||
if ($i == $sel) {
|
$s .= 'selected';
|
||||||
$s .= 'selected';
|
}
|
||||||
}
|
} else {
|
||||||
} else {
|
if ($i == 50) {
|
||||||
if ($i == 50) {
|
$s .= 'selected';
|
||||||
$s .= 'selected';
|
}
|
||||||
}
|
}
|
||||||
}
|
$s .= '>'.$i.'</option>';
|
||||||
$s .= '>'.$i.'</option>';
|
}
|
||||||
}
|
$s .= '</select>';
|
||||||
$s .= '</select>';
|
|
||||||
|
|
||||||
return $s;
|
return $s;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 불법접근을 막도록 토큰을 생성하면서 토큰값을 리턴
|
// 불법접근을 막도록 토큰을 생성하면서 토큰값을 리턴
|
||||||
function get_admin_token()
|
function get_admin_token(){
|
||||||
{
|
$token = md5(uniqid(rand(), true));
|
||||||
$token = md5(uniqid(rand(), true));
|
set_session('ss_admin_token', $token);
|
||||||
set_session('ss_admin_token', $token);
|
|
||||||
|
|
||||||
return $token;
|
return $token;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// POST로 넘어온 토큰과 세션에 저장된 토큰 비교
|
// POST로 넘어온 토큰과 세션에 저장된 토큰 비교
|
||||||
function check_admin_token()
|
function check_admin_token(){
|
||||||
{
|
$token = get_session('ss_admin_token');
|
||||||
$token = get_session('ss_admin_token');
|
set_session('ss_admin_token', '');
|
||||||
set_session('ss_admin_token', '');
|
|
||||||
|
|
||||||
if(!$token || !$_REQUEST['token'] || $token != $_REQUEST['token'])
|
if(!$token || !$_REQUEST['token'] || $token != $_REQUEST['token'])
|
||||||
alert('올바른 방법으로 이용해 주십시오.', G5_URL);
|
alert('올바른 방법으로 이용해 주십시오.', G5_URL);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 관리자 페이지 referer 체크
|
// 관리자 페이지 referer 체크
|
||||||
function admin_referer_check($return=false)
|
function admin_referer_check($return=false){
|
||||||
{
|
$referer = trim($_SERVER['HTTP_REFERER']);
|
||||||
$referer = trim($_SERVER['HTTP_REFERER']);
|
if(!$referer) {
|
||||||
if(!$referer) {
|
$msg = '정보가 올바르지 않습니다.';
|
||||||
$msg = '정보가 올바르지 않습니다.';
|
|
||||||
|
|
||||||
if($return)
|
if($return)
|
||||||
return $msg;
|
return $msg;
|
||||||
else
|
else
|
||||||
alert($msg, G5_URL);
|
alert($msg, G5_URL);
|
||||||
}
|
}
|
||||||
|
|
||||||
$p = @parse_url($referer);
|
$p = @parse_url($referer);
|
||||||
$host = preg_replace('/:[0-9]+$/', '', $_SERVER['HTTP_HOST']);
|
$host = preg_replace('/:[0-9]+$/', '', $_SERVER['HTTP_HOST']);
|
||||||
|
|
||||||
if($host != $p['host']) {
|
if($host != $p['host']) {
|
||||||
$msg = '올바른 방법으로 이용해 주십시오.';
|
$msg = '올바른 방법으로 이용해 주십시오.';
|
||||||
|
|
||||||
if($return)
|
if($return)
|
||||||
return $msg;
|
return $msg;
|
||||||
else
|
else
|
||||||
alert($msg, G5_URL);
|
alert($msg, G5_URL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 접근 권한 검사
|
// 접근 권한 검사
|
||||||
if (!$member['mb_id'])
|
if (!$member['mb_id']) {
|
||||||
{
|
goto_url(G5_ADMIN_URL.'/login.php');
|
||||||
goto_url(G5_BBS_URL.'/login.php?url=' . urlencode(G5_ADMIN_URL));
|
} else if ($is_admin != 'super'){
|
||||||
}
|
$auth = array();
|
||||||
else if ($is_admin != 'super')
|
$sql = " select au_menu, au_auth from {$g5['auth_table']} where mb_id = '{$member['mb_id']}' ";
|
||||||
{
|
$result = sql_query($sql);
|
||||||
$auth = array();
|
|
||||||
$sql = " select au_menu, au_auth from {$g5['auth_table']} where mb_id = '{$member['mb_id']}' ";
|
|
||||||
$result = sql_query($sql);
|
|
||||||
for($i=0; $row=sql_fetch_array($result); $i++)
|
|
||||||
{
|
|
||||||
$auth[$row['au_menu']] = $row['au_auth'];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$i)
|
for($i=0; $row=sql_fetch_array($result); $i++) {
|
||||||
{
|
$auth[$row['au_menu']] = $row['au_auth'];
|
||||||
goto_url(G5_URL);
|
}
|
||||||
}
|
if (!$i) {
|
||||||
|
//goto_url(G5_URL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 관리자의 아이피, 브라우저와 다르다면 세션을 끊고 관리자에게 메일을 보낸다.
|
// 관리자의 아이피, 브라우저와 다르다면 세션을 끊고 관리자에게 메일을 보낸다.
|
||||||
$admin_key = md5($member['mb_datetime'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']);
|
$admin_key = md5($member['mb_datetime'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']);
|
||||||
if (get_session('ss_mb_key') !== $admin_key) {
|
if (get_session('ss_mb_key') !== $admin_key) {
|
||||||
|
|
||||||
session_destroy();
|
session_destroy();
|
||||||
|
|
||||||
include_once(G5_LIB_PATH.'/mailer.lib.php');
|
//include_once(G5_LIB_PATH.'/mailer.lib.php');
|
||||||
// 메일 알림
|
// 메일 알림
|
||||||
mailer($member['mb_nick'], $member['mb_email'], $member['mb_email'], 'XSS 공격 알림', $_SERVER['REMOTE_ADDR'].' 아이피로 XSS 공격이 있었습니다.\n\n관리자 권한을 탈취하려는 접근이므로 주의하시기 바랍니다.\n\n해당 아이피는 차단하시고 의심되는 게시물이 있는지 확인하시기 바랍니다.\n\n'.G5_URL, 0);
|
//mailer($member['mb_nick'], $member['mb_email'], $member['mb_email'], 'XSS 공격 알림', $_SERVER['REMOTE_ADDR'].' 아이피로 XSS 공격이 있었습니다.\n\n관리자 권한을 탈취하려는 접근이므로 주의하시기 바랍니다.\n\n해당 아이피는 차단하시고 의심되는 게시물이 있는지 확인하시기 바랍니다.\n\n'.G5_URL, 0);
|
||||||
|
|
||||||
alert_close('정상적으로 로그인하여 접근하시기 바랍니다.');
|
//alert_close('정상적으로 로그인하여 접근하시기 바랍니다.');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ksort($auth);
|
@ksort($auth);
|
||||||
|
|
@ -454,11 +425,10 @@ unset($menu);
|
||||||
unset($amenu);
|
unset($amenu);
|
||||||
$tmp = dir(G5_ADMIN_PATH);
|
$tmp = dir(G5_ADMIN_PATH);
|
||||||
while ($entry = $tmp->read()) {
|
while ($entry = $tmp->read()) {
|
||||||
if (!preg_match('/^admin.menu([0-9]{3}).*\.php$/', $entry, $m))
|
if (!preg_match('/^admin.menu([0-9]{3}).*\.php$/', $entry, $m))
|
||||||
continue; // 파일명이 menu 으로 시작하지 않으면 무시한다.
|
continue; // 파일명이 menu 으로 시작하지 않으면 무시한다.
|
||||||
|
$amenu[$m[1]] = $entry;
|
||||||
$amenu[$m[1]] = $entry;
|
include_once(G5_ADMIN_PATH.'/'.$entry);
|
||||||
include_once(G5_ADMIN_PATH.'/'.$entry);
|
|
||||||
}
|
}
|
||||||
@ksort($amenu);
|
@ksort($amenu);
|
||||||
|
|
||||||
|
|
@ -470,6 +440,4 @@ if (isset($stx)) $arr_query[] = 'stx='.$stx;
|
||||||
if (isset($page)) $arr_query[] = 'page='.$page;
|
if (isset($page)) $arr_query[] = 'page='.$page;
|
||||||
$qstr = implode("&", $arr_query);
|
$qstr = implode("&", $arr_query);
|
||||||
|
|
||||||
// 관리자에서는 추가 스크립트는 사용하지 않는다.
|
|
||||||
//$config['cf_add_script'] = '';
|
|
||||||
?>
|
?>
|
||||||
|
|
@ -6,7 +6,7 @@ $menu['menu100'] = array (
|
||||||
array('100250', '화면 설정', G5_ADMIN_URL.'/viewer_form.php', 'cf_view_basic'),
|
array('100250', '화면 설정', G5_ADMIN_URL.'/viewer_form.php', 'cf_view_basic'),
|
||||||
array('100280', '테마설정', G5_ADMIN_URL.'/theme.php', 'cf_theme', 1),
|
array('100280', '테마설정', G5_ADMIN_URL.'/theme.php', 'cf_theme', 1),
|
||||||
array('100300', '디자인 설정', G5_ADMIN_URL.'/design_form.php', 'cf_design_basic'),
|
array('100300', '디자인 설정', G5_ADMIN_URL.'/design_form.php', 'cf_design_basic'),
|
||||||
array('100310', '팝업레이어관리', G5_ADMIN_URL.'/newwinlist.php', 'scf_poplayer'),
|
/*array('100310', '팝업레이어관리', G5_ADMIN_URL.'/newwinlist.php', 'scf_poplayer'),*/
|
||||||
array('100320', '메인슬라이드 관리', G5_ADMIN_URL.'/banner_list.php', 'cf_banner'),
|
array('100320', '메인슬라이드 관리', G5_ADMIN_URL.'/banner_list.php', 'cf_banner'),
|
||||||
array('100330', '인트로 관리', G5_ADMIN_URL.'/intro_list.php', 'cf_banner'),
|
array('100330', '인트로 관리', G5_ADMIN_URL.'/intro_list.php', 'cf_banner'),
|
||||||
array('100990', 'DB관리', G5_DB_URL, '')
|
array('100990', 'DB관리', G5_DB_URL, '')
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ $menu['menu200'] = array (
|
||||||
|
|
||||||
array('200800', '접속자집계', G5_ADMIN_URL.'/visit_list.php', ''),
|
array('200800', '접속자집계', G5_ADMIN_URL.'/visit_list.php', ''),
|
||||||
array('200810', '접속자검색', G5_ADMIN_URL.'/visit_search.php', ''),
|
array('200810', '접속자검색', G5_ADMIN_URL.'/visit_search.php', ''),
|
||||||
array('200820', '접속자로그삭제', G5_ADMIN_URL.'/visit_delete.php', ''),
|
array('200820', '접속자로그삭제', G5_ADMIN_URL.'/visit_delete.php', '')
|
||||||
array('200900', '투표관리', G5_ADMIN_URL.'/poll_list.php', '')
|
|
||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
if (!defined('_GNUBOARD_')) exit;
|
if (!defined('_GNUBOARD_')) exit;
|
||||||
?>
|
?>
|
||||||
|
</div>
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -14,26 +14,20 @@ if (!defined('_GNUBOARD_')) exit;
|
||||||
<script src="<?php echo G5_ADMIN_URL ?>/admin.ajax.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
<script src="<?php echo G5_ADMIN_URL ?>/admin.ajax.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
||||||
<script>
|
<script>
|
||||||
$(function(){
|
$(function(){
|
||||||
var hide_menu = false;
|
var hide_menu = false;
|
||||||
var mouse_event = false;
|
var mouse_event = false;
|
||||||
var oldX = oldY = 0;
|
var oldX = oldY = 0;
|
||||||
|
|
||||||
$(document).mousemove(function(e) {
|
$(document).mousemove(function(e) {
|
||||||
if(oldX == 0) {
|
if(oldX == 0) {
|
||||||
oldX = e.pageX;
|
oldX = e.pageX;
|
||||||
oldY = e.pageY;
|
oldY = e.pageY;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(oldX != e.pageX || oldY != e.pageY) {
|
if(oldX != e.pageX || oldY != e.pageY) {
|
||||||
mouse_event = true;
|
mouse_event = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// 폰트 리사이즈 쿠키있으면 실행
|
|
||||||
var font_resize_act = get_cookie("ck_font_resize_act");
|
|
||||||
if(font_resize_act != "") {
|
|
||||||
font_resize("container", font_resize_act);
|
|
||||||
}
|
|
||||||
|
|
||||||
$('.gnb_1da').bind('click', function(){
|
$('.gnb_1da').bind('click', function(){
|
||||||
var gnb_parent = $(this).closest('li');
|
var gnb_parent = $(this).closest('li');
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
$sub_menu = "100200";
|
$sub_menu = "100200";
|
||||||
include_once('./_common.php');
|
include_once('./_common.php');
|
||||||
|
include_once(G5_ADMIN_PATH."/config_form_prev.php");
|
||||||
include_once(G5_EDITOR_LIB);
|
include_once(G5_EDITOR_LIB);
|
||||||
|
|
||||||
auth_check($auth[$sub_menu], 'r');
|
auth_check($auth[$sub_menu], 'r');
|
||||||
|
|
@ -14,6 +15,7 @@ include_once ('./admin.head.php');
|
||||||
$pg_anchor = '<ul class="anchor">
|
$pg_anchor = '<ul class="anchor">
|
||||||
<li><a href="#anc_001">기본설정</a></li>
|
<li><a href="#anc_001">기본설정</a></li>
|
||||||
<li><a href="#anc_002">기능설정</a></li>
|
<li><a href="#anc_002">기능설정</a></li>
|
||||||
|
<li><a href="#anc_004">카테고리 설정</a></li>
|
||||||
<li><a href="#anc_003">기타항목설정</a></li>
|
<li><a href="#anc_003">기타항목설정</a></li>
|
||||||
</ul>';
|
</ul>';
|
||||||
|
|
||||||
|
|
@ -98,24 +100,10 @@ $frm_submit = '<div class="btn_confirm01 btn_confirm">
|
||||||
<input type="text" name="cf_twitter" value="<?php echo $config['cf_twitter'] ?>" id="cf_twitter" size="40" />
|
<input type="text" name="cf_twitter" value="<?php echo $config['cf_twitter'] ?>" id="cf_twitter" size="40" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<th scope="row">기능설정</th>
|
|
||||||
<td>
|
|
||||||
<input type="checkbox" name="cf_4" value="1" id="cf_4" <?php echo $config['cf_4']?'checked':''; ?>>
|
|
||||||
<label for="cf_4">탐색사용</label>
|
|
||||||
|
|
||||||
<input type="checkbox" name="cf_6" value="1" id="cf_6" <?php echo $config['cf_6']?'checked':''; ?>>
|
|
||||||
<label for="cf_6">탐색 수행 가능</label>
|
|
||||||
|
|
||||||
<input type="checkbox" name="cf_5" value="1" id="cf_5" <?php echo $config['cf_5']?'checked':''; ?>>
|
|
||||||
<label for="cf_5">조합(레시피)사용</label>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">기타설정</th>
|
<th scope="row">기타설정</th>
|
||||||
<td>
|
<td>
|
||||||
<?php echo help('디자인 관리 사용을 하시면, 기본 디자인 + 관리자 디자인 설정을 사용하실 수 있습니다.') ?>
|
<?php echo help('디자인 관리 사용을 하시면, 기본 디자인 + 관리자 디자인 설정을 사용하실 수 있습니다. <br> 직접 디자인 수정을 원하신다면, 디자인 관리 사용하지 않음에 체크 하세요.') ?>
|
||||||
<?php echo help('직접 디자인 수정을 원하신다면, 디자인 관리 사용하지 않음에 체크 하세요.') ?>
|
|
||||||
<input type="checkbox" name="cf_7" value="1" id="cf_7" <?php echo $config['cf_7']?'checked':''; ?>>
|
<input type="checkbox" name="cf_7" value="1" id="cf_7" <?php echo $config['cf_7']?'checked':''; ?>>
|
||||||
<label for="cf_7">디자인 관리 사용하지 않음</label>
|
<label for="cf_7">디자인 관리 사용하지 않음</label>
|
||||||
|
|
||||||
|
|
@ -138,27 +126,41 @@ $frm_submit = '<div class="btn_confirm01 btn_confirm">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col style="width: 150px;">
|
<col style="width: 150px;">
|
||||||
<col>
|
<col>
|
||||||
|
<col style="width: 150px;">
|
||||||
|
<col>
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th scope="row">기능설정</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<input type="checkbox" name="cf_4" value="1" id="cf_4" <?php echo $config['cf_4']?'checked':''; ?>>
|
||||||
|
<label for="cf_4">탐색사용</label>
|
||||||
|
|
||||||
|
<input type="checkbox" name="cf_6" value="1" id="cf_6" <?php echo $config['cf_6']?'checked':''; ?>>
|
||||||
|
<label for="cf_6">탐색 수행 가능</label>
|
||||||
|
|
||||||
|
<input type="checkbox" name="cf_5" value="1" id="cf_5" <?php echo $config['cf_5']?'checked':''; ?>>
|
||||||
|
<label for="cf_5">조합(레시피)사용</label>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">캐릭터 최대 생성 갯수</th>
|
<th scope="row">캐릭터 최대 생성 갯수</th>
|
||||||
<td>
|
<td>
|
||||||
<input type="text" name="cf_character_count" value="<?php echo get_text($config['cf_character_count']) ?>" id="cf_character_count" size="10">
|
<input type="text" name="cf_character_count" value="<?php echo get_text($config['cf_character_count']) ?>" id="cf_character_count" class="taC" size="5">
|
||||||
|
</td>
|
||||||
|
<th scope="row">하루 탐색 횟수</th>
|
||||||
|
<td>
|
||||||
|
<input type="text" name="cf_search_count" value="<?php echo get_text($config['cf_search_count']) ?>" id="cf_search_count" class="taC" size="5">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">최초 스탯 포인트</th>
|
<th scope="row">최초 스탯 포인트</th>
|
||||||
<td>
|
<td colspan="3">
|
||||||
<?php echo help('스탯 사용 설정 시, 캐릭터가 최초로 획득하는 스탯 포인트를 설정합니다.') ?>
|
<?php echo help('스탯 사용 설정 시, 캐릭터가 최초로 획득하는 스탯 포인트를 설정합니다.') ?>
|
||||||
<input type="text" name="cf_status_point" value="<?php echo get_text($config['cf_status_point']) ?>" id="cf_status_point" size="10">
|
<input type="text" name="cf_status_point" value="<?php echo get_text($config['cf_status_point']) ?>" id="cf_status_point" class="taC" size="5">
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th scope="row">하루 탐색 횟수</th>
|
|
||||||
<td>
|
|
||||||
<input type="text" name="cf_search_count" value="<?php echo get_text($config['cf_search_count']) ?>" id="cf_search_count" size="10">
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -166,6 +168,122 @@ $frm_submit = '<div class="btn_confirm01 btn_confirm">
|
||||||
|
|
||||||
<?php echo $frm_submit; ?>
|
<?php echo $frm_submit; ?>
|
||||||
|
|
||||||
|
<section id="anc_004">
|
||||||
|
<h2 class="h2_frm">카테고리 설정</h2>
|
||||||
|
<?php echo $pg_anchor ?>
|
||||||
|
<div class="tbl_frm01 tbl_wrap">
|
||||||
|
<table>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width:165px;">
|
||||||
|
<col>
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th scope="row" class="pad vT">
|
||||||
|
<span class="lb">프로필 항목</span>
|
||||||
|
<button type="button" onclick="fn_add_repeatFrom('profileAddTable');" class="btn_small_add"><span class="material-symbols-outlined">add</span></button>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<ul id="profileAddTable" class="repeatFormArea fit">
|
||||||
|
<li class="repeat-original">
|
||||||
|
<div class="form">
|
||||||
|
<input type="text" name="cf_profile_group_spr[]" value="" class="full" />
|
||||||
|
</div>
|
||||||
|
<div class="control">
|
||||||
|
<button type="button" onclick="fn_del_itemFrom(this);" class="btn_small_del"><span class="material-symbols-outlined">remove</span></button>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<?
|
||||||
|
$repeat_item = explode("||", $config['cf_profile_group']);
|
||||||
|
for($i=0; $i < count($repeat_item); $i++) {
|
||||||
|
?>
|
||||||
|
<li>
|
||||||
|
<div class="form">
|
||||||
|
<input type="text" name="cf_profile_group_spr[]" value="<?=$repeat_item[$i]?>" class="full" />
|
||||||
|
</div>
|
||||||
|
<div class="control">
|
||||||
|
<button type="button" onclick="fn_del_itemFrom(this);" class="btn_small_del"><span class="material-symbols-outlined">remove</span></button>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<? } ?>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th scope="row" class="pad vT">
|
||||||
|
<span class="lb">상점 분류</span>
|
||||||
|
<button type="button" onclick="fn_add_repeatFrom('shopAddTable');" class="btn_small_add"><span class="material-symbols-outlined">add</span></button>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<ul id="shopAddTable" class="repeatFormArea fit">
|
||||||
|
<li class="repeat-original">
|
||||||
|
<div class="form">
|
||||||
|
<input type="text" name="cf_shop_category_spr[]" value="" class="full" />
|
||||||
|
</div>
|
||||||
|
<div class="control">
|
||||||
|
<button type="button" onclick="fn_del_itemFrom(this);" class="btn_small_del"><span class="material-symbols-outlined">remove</span></button>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<?
|
||||||
|
$repeat_item = explode("||", $config['cf_shop_category']);
|
||||||
|
for($i=0; $i < count($repeat_item); $i++) {
|
||||||
|
?>
|
||||||
|
<li>
|
||||||
|
<div class="form">
|
||||||
|
<input type="text" name="cf_shop_category_spr[]" value="<?=$repeat_item[$i]?>" class="full" />
|
||||||
|
</div>
|
||||||
|
<div class="control">
|
||||||
|
<button type="button" onclick="fn_del_itemFrom(this);" class="btn_small_del"><span class="material-symbols-outlined">remove</span></button>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<? } ?>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th scope="row" class="pad vT">
|
||||||
|
<span class="lb">아이템 기능</span>
|
||||||
|
<button type="button" onclick="fn_add_repeatFrom('itemAddTable');" class="btn_small_add"><span class="material-symbols-outlined">add</span></button>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<ul id="itemAddTable" class="repeatFormArea fit">
|
||||||
|
<li class="repeat-original">
|
||||||
|
<div class="form">
|
||||||
|
<input type="text" name="cf_item_category_spr[]" value="" class="full" />
|
||||||
|
</div>
|
||||||
|
<div class="control">
|
||||||
|
<button type="button" onclick="fn_del_itemFrom(this);" class="btn_small_del"><span class="material-symbols-outlined">remove</span></button>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<?
|
||||||
|
$repeat_item = explode("||", $config['cf_item_category']);
|
||||||
|
for($i=0; $i < count($repeat_item); $i++) {
|
||||||
|
?>
|
||||||
|
<li>
|
||||||
|
<div class="form">
|
||||||
|
<input type="text" name="cf_item_category_spr[]" value="<?=$repeat_item[$i]?>" class="full" />
|
||||||
|
</div>
|
||||||
|
<div class="control">
|
||||||
|
<button type="button" onclick="fn_del_itemFrom(this);" class="btn_small_del"><span class="material-symbols-outlined">remove</span></button>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<? } ?>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<?php echo $frm_submit; ?>
|
||||||
|
|
||||||
<section id="anc_003">
|
<section id="anc_003">
|
||||||
<h2 class="h2_frm">기타 항목명 설정</h2>
|
<h2 class="h2_frm">기타 항목명 설정</h2>
|
||||||
<?php echo $pg_anchor ?>
|
<?php echo $pg_anchor ?>
|
||||||
|
|
@ -179,35 +297,24 @@ $frm_submit = '<div class="btn_confirm01 btn_confirm">
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row" rowspan="2"><?=$config['cf_money']?> 설정</th>
|
<th scope="row"><?=$config['cf_money']?></th>
|
||||||
<td>명칭</td>
|
<td>명칭/단위</td>
|
||||||
<td>
|
<td>
|
||||||
<input type="text" name="cf_money" value="<?php echo get_text($config['cf_money']) ?>" id="cf_money" size="30">
|
<input type="text" name="cf_money" value="<?php echo get_text($config['cf_money']) ?>" id="cf_money" size="5" placeholder="명칭"> <input type="text" name="cf_money_pice" value="<?php echo get_text($config['cf_money_pice']) ?>" id="cf_money_pice" size="5" placeholder="단위">
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>단위</td>
|
|
||||||
<td>
|
|
||||||
<input type="text" name="cf_money_pice" value="<?php echo get_text($config['cf_money_pice']) ?>" id="cf_money_pice" size="30">
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row" rowspan="2"><?=$config['cf_exp_name']?> 설정</th>
|
<th scope="row"><?=$config['cf_exp_name']?></th>
|
||||||
<td>명칭</td>
|
<td>명칭/단위</td>
|
||||||
<td>
|
<td>
|
||||||
<input type="text" name="cf_exp_name" value="<?php echo get_text($config['cf_exp_name']) ?>" id="cf_exp_name" size="30">
|
<input type="text" name="cf_exp_name" value="<?php echo get_text($config['cf_exp_name']) ?>" id="cf_exp_name" size="5" placeholder="명칭">
|
||||||
</td>
|
<input type="text" name="cf_exp_pice" value="<?php echo get_text($config['cf_exp_pice']) ?>" id="cf_exp_pice" size="5" placeholder="단위">
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>단위</td>
|
|
||||||
<td>
|
|
||||||
<input type="text" name="cf_exp_pice" value="<?php echo get_text($config['cf_exp_pice']) ?>" id="cf_exp_pice" size="30">
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row"><?=$config['cf_rank_name']?> 설정</th>
|
<th scope="row"><?=$config['cf_rank_name']?></th>
|
||||||
<td>명칭</td>
|
<td>명칭</td>
|
||||||
<td>
|
<td>
|
||||||
<input type="text" name="cf_rank_name" value="<?php echo get_text($config['cf_rank_name']) ?>" id="cf_rank_name" size="30">
|
<input type="text" name="cf_rank_name" value="<?php echo get_text($config['cf_rank_name']) ?>" id="cf_rank_name" size="30">
|
||||||
|
|
@ -215,7 +322,7 @@ $frm_submit = '<div class="btn_confirm01 btn_confirm">
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row"><?=$config['cf_side_title']?> (선택A)설정</th>
|
<th scope="row"><?=$config['cf_side_title']?> (선택A)</th>
|
||||||
<td>명칭</td>
|
<td>명칭</td>
|
||||||
<td>
|
<td>
|
||||||
<?php echo help('명칭이 입력되지 않을 시, 프로필에 출력되지 않습니다.') ?>
|
<?php echo help('명칭이 입력되지 않을 시, 프로필에 출력되지 않습니다.') ?>
|
||||||
|
|
@ -223,30 +330,13 @@ $frm_submit = '<div class="btn_confirm01 btn_confirm">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row"><?=$config['cf_class_title']?> (선택B)설정</th>
|
<th scope="row"><?=$config['cf_class_title']?> (선택B)</th>
|
||||||
<td>명칭</td>
|
<td>명칭</td>
|
||||||
<td>
|
<td>
|
||||||
<?php echo help('명칭이 입력되지 않을 시, 프로필에 출력되지 않습니다.') ?>
|
<?php echo help('명칭이 입력되지 않을 시, 프로필에 출력되지 않습니다.') ?>
|
||||||
<input type="text" name="cf_class_title" value="<?php echo get_text($config['cf_class_title']) ?>" id="cf_class_title" size="30">
|
<input type="text" name="cf_class_title" value="<?php echo get_text($config['cf_class_title']) ?>" id="cf_class_title" size="30">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<th scope="row">상점 카테고리</th>
|
|
||||||
<td>-</td>
|
|
||||||
<td>
|
|
||||||
<?php echo help('카테고리 구분은 || 를 사용합니다. ex) 일반||프로필수정||기타') ?>
|
|
||||||
<input type="text" name="cf_shop_category" value="<?php echo get_text($config['cf_shop_category']) ?>" id="cf_shop_category" size="100">
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th scope="row">아이템 기능</th>
|
|
||||||
<td>-</td>
|
|
||||||
<td>
|
|
||||||
<?php echo help('기능 구분은 || 를 사용합니다. ex) 일반||프로필수정||아이템추가') ?>
|
|
||||||
<input type="text" name="cf_item_category" value="<?php echo get_text($config['cf_item_category']) ?>" id="cf_item_category" size="100">
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -254,7 +344,6 @@ $frm_submit = '<div class="btn_confirm01 btn_confirm">
|
||||||
|
|
||||||
<?php echo $frm_submit; ?>
|
<?php echo $frm_submit; ?>
|
||||||
|
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,32 @@ if ($_FILES['cf_favicon_file']['name']) {
|
||||||
$cf_favicon = $site_style_url."/".$image_name;
|
$cf_favicon = $site_style_url."/".$image_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$cf_profile_group = "";
|
||||||
|
$add_str = "";
|
||||||
|
for($i=0; $i < count($_POST['cf_profile_group_spr']); $i++) {
|
||||||
|
if($_POST['cf_profile_group_spr'][$i]) {
|
||||||
|
$cf_profile_group .= $add_str.$_POST['cf_profile_group_spr'][$i];
|
||||||
|
$add_str = "||";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$cf_shop_category = "";
|
||||||
|
$add_str = "";
|
||||||
|
for($i=0; $i < count($_POST['cf_shop_category_spr']); $i++) {
|
||||||
|
if($_POST['cf_shop_category_spr'][$i]) {
|
||||||
|
$cf_shop_category .= $add_str.$_POST['cf_shop_category_spr'][$i];
|
||||||
|
$add_str = "||";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$cf_item_category = "";
|
||||||
|
$add_str = "";
|
||||||
|
for($i=0; $i < count($_POST['cf_item_category_spr']); $i++) {
|
||||||
|
if($_POST['cf_item_category_spr'][$i]) {
|
||||||
|
$cf_item_category .= $add_str.$_POST['cf_item_category_spr'][$i];
|
||||||
|
$add_str = "||";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$sql = " update {$g5['config_table']}
|
$sql = " update {$g5['config_table']}
|
||||||
set cf_title = '{$_POST['cf_title']}',
|
set cf_title = '{$_POST['cf_title']}',
|
||||||
|
|
@ -47,8 +72,9 @@ $sql = " update {$g5['config_table']}
|
||||||
cf_twitter = '{$_POST['cf_twitter']}',
|
cf_twitter = '{$_POST['cf_twitter']}',
|
||||||
cf_side_title = '{$_POST['cf_side_title']}',
|
cf_side_title = '{$_POST['cf_side_title']}',
|
||||||
cf_class_title = '{$_POST['cf_class_title']}',
|
cf_class_title = '{$_POST['cf_class_title']}',
|
||||||
cf_shop_category = '{$_POST['cf_shop_category']}',
|
cf_profile_group = '{$cf_profile_group}',
|
||||||
cf_item_category = '{$_POST['cf_item_category']}',
|
cf_shop_category = '{$cf_shop_category}',
|
||||||
|
cf_item_category = '{$cf_item_category}',
|
||||||
cf_open = '{$_POST['cf_open']}',
|
cf_open = '{$_POST['cf_open']}',
|
||||||
cf_site_descript = '{$_POST['cf_site_descript']}',
|
cf_site_descript = '{$_POST['cf_site_descript']}',
|
||||||
cf_site_img = '{$cf_site_img}',
|
cf_site_img = '{$cf_site_img}',
|
||||||
|
|
|
||||||
199
AvocadoEdition/adm/config_form_prev.php
Normal file
|
|
@ -0,0 +1,199 @@
|
||||||
|
<?php
|
||||||
|
if (!defined('_GNUBOARD_')) exit;
|
||||||
|
|
||||||
|
if (!isset($config['cf_add_script'])) {
|
||||||
|
sql_query(" ALTER TABLE `{$g5['config_table']}`
|
||||||
|
ADD `cf_add_script` TEXT NOT NULL AFTER `cf_admin_email_name` ", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isset($config['cf_mobile_new_skin'])) {
|
||||||
|
sql_query(" ALTER TABLE `{$g5['config_table']}`
|
||||||
|
ADD `cf_mobile_new_skin` VARCHAR(255) NOT NULL AFTER `cf_memo_send_point`,
|
||||||
|
ADD `cf_mobile_search_skin` VARCHAR(255) NOT NULL AFTER `cf_mobile_new_skin`,
|
||||||
|
ADD `cf_mobile_connect_skin` VARCHAR(255) NOT NULL AFTER `cf_mobile_search_skin`,
|
||||||
|
ADD `cf_mobile_member_skin` VARCHAR(255) NOT NULL AFTER `cf_mobile_connect_skin` ", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($config['cf_gcaptcha_mp3'])) {
|
||||||
|
sql_query(" ALTER TABLE `{$g5['config_table']}`
|
||||||
|
CHANGE `cf_gcaptcha_mp3` `cf_captcha_mp3` VARCHAR(255) NOT NULL DEFAULT '' ", true);
|
||||||
|
} else if (!isset($config['cf_captcha_mp3'])) {
|
||||||
|
sql_query(" ALTER TABLE `{$g5['config_table']}`
|
||||||
|
ADD `cf_captcha_mp3` VARCHAR(255) NOT NULL DEFAULT '' AFTER `cf_mobile_member_skin` ", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!isset($config['cf_editor'])) {
|
||||||
|
sql_query(" ALTER TABLE `{$g5['config_table']}`
|
||||||
|
ADD `cf_editor` VARCHAR(255) NOT NULL DEFAULT '' AFTER `cf_captcha_mp3` ", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!isset($config['cf_googl_shorturl_apikey'])) {
|
||||||
|
sql_query(" ALTER TABLE `{$g5['config_table']}`
|
||||||
|
ADD `cf_googl_shorturl_apikey` VARCHAR(255) NOT NULL DEFAULT '' AFTER `cf_captcha_mp3` ", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!isset($config['cf_mobile_pages'])) {
|
||||||
|
sql_query(" ALTER TABLE `{$g5['config_table']}`
|
||||||
|
ADD `cf_mobile_pages` INT(11) NOT NULL DEFAULT '0' AFTER `cf_write_pages` ", true);
|
||||||
|
sql_query(" UPDATE `{$g5['config_table']}` SET cf_mobile_pages = '5' ", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!isset($config['cf_facebook_appid'])) {
|
||||||
|
sql_query(" ALTER TABLE `{$g5['config_table']}`
|
||||||
|
ADD `cf_facebook_appid` VARCHAR(255) NOT NULL AFTER `cf_googl_shorturl_apikey`,
|
||||||
|
ADD `cf_facebook_secret` VARCHAR(255) NOT NULL AFTER `cf_facebook_appid`,
|
||||||
|
ADD `cf_twitter_key` VARCHAR(255) NOT NULL AFTER `cf_facebook_secret`,
|
||||||
|
ADD `cf_twitter_secret` VARCHAR(255) NOT NULL AFTER `cf_twitter_key` ", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// uniqid 테이블이 없을 경우 생성
|
||||||
|
if(!sql_query(" DESC {$g5['uniqid_table']} ", false)) {
|
||||||
|
sql_query(" CREATE TABLE IF NOT EXISTS `{$g5['uniqid_table']}` (
|
||||||
|
`uq_id` bigint(20) unsigned NOT NULL,
|
||||||
|
`uq_ip` varchar(255) NOT NULL,
|
||||||
|
PRIMARY KEY (`uq_id`)
|
||||||
|
) ", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!sql_query(" SELECT uq_ip from {$g5['uniqid_table']} limit 1 ", false)) {
|
||||||
|
sql_query(" ALTER TABLE {$g5['uniqid_table']} ADD `uq_ip` VARCHAR(255) NOT NULL ");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 임시저장 테이블이 없을 경우 생성
|
||||||
|
if(!sql_query(" DESC {$g5['autosave_table']} ", false)) {
|
||||||
|
sql_query(" CREATE TABLE IF NOT EXISTS `{$g5['autosave_table']}` (
|
||||||
|
`as_id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`mb_id` varchar(20) NOT NULL,
|
||||||
|
`as_uid` bigint(20) unsigned NOT NULL,
|
||||||
|
`as_subject` varchar(255) NOT NULL,
|
||||||
|
`as_content` text NOT NULL,
|
||||||
|
`as_datetime` datetime NOT NULL,
|
||||||
|
PRIMARY KEY (`as_id`),
|
||||||
|
UNIQUE KEY `as_uid` (`as_uid`),
|
||||||
|
KEY `mb_id` (`mb_id`)
|
||||||
|
) ", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!isset($config['cf_admin_email'])) {
|
||||||
|
sql_query(" ALTER TABLE `{$g5['config_table']}`
|
||||||
|
ADD `cf_admin_email` VARCHAR(255) NOT NULL AFTER `cf_admin` ", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!isset($config['cf_admin_email_name'])) {
|
||||||
|
sql_query(" ALTER TABLE `{$g5['config_table']}`
|
||||||
|
ADD `cf_admin_email_name` VARCHAR(255) NOT NULL AFTER `cf_admin_email` ", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!isset($config['cf_cert_use'])) {
|
||||||
|
sql_query(" ALTER TABLE `{$g5['config_table']}`
|
||||||
|
ADD `cf_cert_use` TINYINT(4) NOT NULL DEFAULT '0' AFTER `cf_editor`,
|
||||||
|
ADD `cf_cert_ipin` VARCHAR(255) NOT NULL DEFAULT '' AFTER `cf_cert_use`,
|
||||||
|
ADD `cf_cert_hp` VARCHAR(255) NOT NULL DEFAULT '' AFTER `cf_cert_ipin`,
|
||||||
|
ADD `cf_cert_kcb_cd` VARCHAR(255) NOT NULL DEFAULT '' AFTER `cf_cert_hp`,
|
||||||
|
ADD `cf_cert_kcp_cd` VARCHAR(255) NOT NULL DEFAULT '' AFTER `cf_cert_kcb_cd`,
|
||||||
|
ADD `cf_cert_limit` INT(11) NOT NULL DEFAULT '0' AFTER `cf_cert_kcp_cd` ", true);
|
||||||
|
sql_query(" ALTER TABLE `{$g5['member_table']}`
|
||||||
|
CHANGE `mb_hp_certify` `mb_certify` VARCHAR(20) NOT NULL DEFAULT '' ", true);
|
||||||
|
sql_query(" update {$g5['member_table']} set mb_certify = 'hp' where mb_certify = '1' ");
|
||||||
|
sql_query(" update {$g5['member_table']} set mb_certify = '' where mb_certify = '0' ");
|
||||||
|
sql_query(" CREATE TABLE IF NOT EXISTS `{$g5['cert_history_table']}` (
|
||||||
|
`cr_id` int(11) NOT NULL auto_increment,
|
||||||
|
`mb_id` varchar(255) NOT NULL DEFAULT '',
|
||||||
|
`cr_company` varchar(255) NOT NULL DEFAULT '',
|
||||||
|
`cr_method` varchar(255) NOT NULL DEFAULT '',
|
||||||
|
`cr_ip` varchar(255) NOT NULL DEFAULT '',
|
||||||
|
`cr_date` date NOT NULL DEFAULT '0000-00-00',
|
||||||
|
`cr_time` time NOT NULL DEFAULT '00:00:00',
|
||||||
|
PRIMARY KEY (`cr_id`),
|
||||||
|
KEY `mb_id` (`mb_id`)
|
||||||
|
)", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!isset($config['cf_analytics'])) {
|
||||||
|
sql_query(" ALTER TABLE `{$g5['config_table']}`
|
||||||
|
ADD `cf_analytics` TEXT NOT NULL AFTER `cf_intercept_ip` ", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!isset($config['cf_add_meta'])) {
|
||||||
|
sql_query(" ALTER TABLE `{$g5['config_table']}`
|
||||||
|
ADD `cf_add_meta` TEXT NOT NULL AFTER `cf_analytics` ", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isset($config['cf_syndi_token'])) {
|
||||||
|
sql_query(" ALTER TABLE `{$g5['config_table']}`
|
||||||
|
ADD `cf_syndi_token` VARCHAR(255) NOT NULL AFTER `cf_add_meta` ", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isset($config['cf_syndi_except'])) {
|
||||||
|
sql_query(" ALTER TABLE `{$g5['config_table']}`
|
||||||
|
ADD `cf_syndi_except` TEXT NOT NULL AFTER `cf_syndi_token` ", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!isset($config['cf_sms_use'])) {
|
||||||
|
sql_query(" ALTER TABLE `{$g5['config_table']}`
|
||||||
|
ADD `cf_sms_use` varchar(255) NOT NULL DEFAULT '' AFTER `cf_cert_limit`,
|
||||||
|
ADD `cf_icode_id` varchar(255) NOT NULL DEFAULT '' AFTER `cf_sms_use`,
|
||||||
|
ADD `cf_icode_pw` varchar(255) NOT NULL DEFAULT '' AFTER `cf_icode_id`,
|
||||||
|
ADD `cf_icode_server_ip` varchar(255) NOT NULL DEFAULT '' AFTER `cf_icode_pw`,
|
||||||
|
ADD `cf_icode_server_port` varchar(255) NOT NULL DEFAULT '' AFTER `cf_icode_server_ip` ", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!isset($config['cf_mobile_page_rows'])) {
|
||||||
|
sql_query(" ALTER TABLE `{$g5['config_table']}`
|
||||||
|
ADD `cf_mobile_page_rows` int(11) NOT NULL DEFAULT '0' AFTER `cf_page_rows` ", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!isset($config['cf_cert_req'])) {
|
||||||
|
sql_query(" ALTER TABLE `{$g5['config_table']}`
|
||||||
|
ADD `cf_cert_req` tinyint(4) NOT NULL DEFAULT '0' AFTER `cf_cert_limit` ", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!isset($config['cf_faq_skin'])) {
|
||||||
|
sql_query(" ALTER TABLE `{$g5['config_table']}`
|
||||||
|
ADD `cf_faq_skin` varchar(255) NOT NULL DEFAULT '' AFTER `cf_connect_skin`,
|
||||||
|
ADD `cf_mobile_faq_skin` varchar(255) NOT NULL DEFAULT '' AFTER `cf_mobile_connect_skin` ", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// LG유플러스 본인확인 필드 추가
|
||||||
|
if(!isset($config['cf_lg_mid'])) {
|
||||||
|
sql_query(" ALTER TABLE `{$g5['config_table']}`
|
||||||
|
ADD `cf_lg_mid` varchar(255) NOT NULL DEFAULT '' AFTER `cf_cert_kcp_cd`,
|
||||||
|
ADD `cf_lg_mert_key` varchar(255) NOT NULL DEFAULT '' AFTER `cf_lg_mid` ", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!isset($config['cf_optimize_date'])) {
|
||||||
|
sql_query(" ALTER TABLE `{$g5['config_table']}`
|
||||||
|
ADD `cf_optimize_date` date NOT NULL default '0000-00-00' AFTER `cf_popular_del` ", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 카카오톡링크 api 키
|
||||||
|
if(!isset($config['cf_kakao_js_apikey'])) {
|
||||||
|
sql_query(" ALTER TABLE `{$g5['config_table']}`
|
||||||
|
ADD `cf_kakao_js_apikey` varchar(255) NOT NULL DEFAULT '' AFTER `cf_googl_shorturl_apikey` ", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 캐릭터 프로필 항목 분류 추가
|
||||||
|
if(!isset($config['cf_profile_group'])) {
|
||||||
|
sql_query(" ALTER TABLE `{$g5['config_table']}`
|
||||||
|
ADD `cf_profile_group` text NOT NULL AFTER `cf_10` ", true);
|
||||||
|
}
|
||||||
|
if(!isset($config['cf_profile_group_use'])) {
|
||||||
|
sql_query(" ALTER TABLE `{$g5['config_table']}`
|
||||||
|
ADD `cf_profile_group_use` varchar(255) NOT NULL DEFAULT '' AFTER `cf_profile_group` ", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// SMS 전송유형 필드 추가
|
||||||
|
if(!isset($config['cf_sms_type'])) {
|
||||||
|
sql_query(" ALTER TABLE `{$g5['config_table']}`
|
||||||
|
ADD `cf_sms_type` varchar(10) NOT NULL DEFAULT '' AFTER `cf_sms_use` ", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 접속자 정보 필드 추가
|
||||||
|
if(!sql_query(" select vi_browser from {$g5['visit_table']} limit 1 ")) {
|
||||||
|
sql_query(" ALTER TABLE `{$g5['visit_table']}`
|
||||||
|
ADD `vi_browser` varchar(255) NOT NULL DEFAULT '' AFTER `vi_agent`,
|
||||||
|
ADD `vi_os` varchar(255) NOT NULL DEFAULT '' AFTER `vi_browser`,
|
||||||
|
ADD `vi_device` varchar(255) NOT NULL DEFAULT '' AFTER `vi_os` ", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
280
AvocadoEdition/adm/css/_admin.layout.css
Normal file
|
|
@ -0,0 +1,280 @@
|
||||||
|
@charset "utf-8";
|
||||||
|
|
||||||
|
html,
|
||||||
|
body { height: 100%; }
|
||||||
|
#wrap {
|
||||||
|
display: table;
|
||||||
|
width: 100%;
|
||||||
|
min-height: 100%;
|
||||||
|
}
|
||||||
|
#header {
|
||||||
|
display: table-cell;
|
||||||
|
position: relative;
|
||||||
|
width: 200px;
|
||||||
|
min-height: 100%;
|
||||||
|
background: #1d1d1f;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
#header:after {
|
||||||
|
content: "";
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
width: 1px;
|
||||||
|
background: #171b26;
|
||||||
|
z-index: 0;
|
||||||
|
}
|
||||||
|
#admin_prof {
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
width: 200px;
|
||||||
|
height: 100px;
|
||||||
|
padding-bottom: 30px;
|
||||||
|
background: #29c7ca;
|
||||||
|
border-right: 1px solid #0aa0a5;
|
||||||
|
box-sizing: border-box;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
#admin_prof h1 {
|
||||||
|
position: relative;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 70px;
|
||||||
|
|
||||||
|
}
|
||||||
|
#admin_prof h1 img {
|
||||||
|
position: relative;
|
||||||
|
z-index: 0;
|
||||||
|
}
|
||||||
|
#admin_prof h1 i {
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 5px;
|
||||||
|
right: 10px;
|
||||||
|
font-size: 11px;
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
line-height: 1.0em;
|
||||||
|
color: #1e878a;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
#admin_prof p {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
height: 30px;
|
||||||
|
margin: 0;
|
||||||
|
background: #2bacb0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#admin_prof a:hover { color: #fff !important; }
|
||||||
|
|
||||||
|
#admin_prof .name {
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
padding-right: 30px;
|
||||||
|
padding-left: 15px;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 30px;
|
||||||
|
color: #d6eff1;
|
||||||
|
text-decoration: none;
|
||||||
|
|
||||||
|
font-family: 'Noto Sans KR', sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
#admin_prof .logout {
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
width: 30px;
|
||||||
|
height: 30px;
|
||||||
|
overflow: hidden;
|
||||||
|
text-indent: -999px;
|
||||||
|
}
|
||||||
|
#admin_prof .logout:before {
|
||||||
|
content: "\e984";
|
||||||
|
font-family:'icon';
|
||||||
|
color: #d6eff1;
|
||||||
|
font-size: 12px;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
line-height: 30px;
|
||||||
|
text-align: center;
|
||||||
|
text-indent: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#page_top {
|
||||||
|
position: relative;
|
||||||
|
height: 71px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
border-bottom: 1px solid #131a24;
|
||||||
|
background: #1d1d1f;
|
||||||
|
}
|
||||||
|
#page_top h2 {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
line-height: 70px;
|
||||||
|
padding-left: 40px;
|
||||||
|
font-size: 20px;
|
||||||
|
font-family: 'Noto Sans KR', sans-serif;
|
||||||
|
color: #c3c8cc;
|
||||||
|
font-weight: 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
#page_top a {
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
width: 70px;
|
||||||
|
height: 70px;
|
||||||
|
float: right;
|
||||||
|
border-left: 1px solid #4d515c;
|
||||||
|
overflow: hidden;
|
||||||
|
color: #c3c8cc;
|
||||||
|
text-indent: -999px;
|
||||||
|
}
|
||||||
|
#page_top a:before {
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
font-family: 'icon';
|
||||||
|
line-height: 70px;
|
||||||
|
font-size: 25px;
|
||||||
|
text-align: center;
|
||||||
|
text-indent: 0;
|
||||||
|
}
|
||||||
|
#page_top a:hover {
|
||||||
|
color: #fff;
|
||||||
|
background: #e7604a;
|
||||||
|
border-color: #a6240d;
|
||||||
|
}
|
||||||
|
#page_top a.ico-home:before { content: "\e900"; }
|
||||||
|
#page_top a.ico-dev:before { content: "\e995"; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#wrapper {
|
||||||
|
display: table-cell;
|
||||||
|
position: relative;
|
||||||
|
vertical-align: top;
|
||||||
|
min-height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#gnb {
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
padding-top: 20px;
|
||||||
|
font-family: 'Noto Sans KR', sans-serif;
|
||||||
|
}
|
||||||
|
#gnb > ul > li > a {
|
||||||
|
display: block;
|
||||||
|
padding: 10px 20px;
|
||||||
|
color: #9da4b3;
|
||||||
|
font-size: 15px;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
#gnb .gnb_2dli { position: relative; }
|
||||||
|
#gnb .gnb_2dli > a {
|
||||||
|
display: block;
|
||||||
|
padding: 10px 20px 10px 25px;
|
||||||
|
color: #acaeb2;
|
||||||
|
font-size: 13px;
|
||||||
|
|
||||||
|
}
|
||||||
|
#gnb .gnb_2dli > a:before {
|
||||||
|
font-family: 'icon';
|
||||||
|
padding-right: 7px;
|
||||||
|
}
|
||||||
|
#gnb .gnb_2dli.check:after {
|
||||||
|
content: "\ea10";
|
||||||
|
font-family: 'icon';
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 10px;
|
||||||
|
line-height: 39px;
|
||||||
|
color: #e76148;
|
||||||
|
}
|
||||||
|
|
||||||
|
#gnb .gnb_2dli > a:hover {
|
||||||
|
color: #fff;
|
||||||
|
background: #484c58;
|
||||||
|
text-decoration: none;
|
||||||
|
font-weight: 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
#gnb .gnb_2dul {
|
||||||
|
display: none;
|
||||||
|
background: #262931;
|
||||||
|
}
|
||||||
|
#gnb .gnb_2dli.check > a:after {
|
||||||
|
content: "";
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
|
||||||
|
#gnb .gnb_2dli > a:before { content: "\e994"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="기본환경설정"]:before { content: "\e994"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="팝업레이어관리"]:before { content: "\e925"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="세션파일 일괄삭제"]:before { content: "\e94d"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="캐시파일 일괄삭제"]:before { content: "\e94d"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="썸네일파일 일괄삭제"]:before { content: "\e90e"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="커뮤니티 설정"]:before { content: "\e96f"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="화면 설정"]:before { content: "\e956"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="디자인 설정"]:before { content: "\e90c"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="메인슬라이드 관리"]:before { content: "\e913"; }
|
||||||
|
|
||||||
|
#gnb .gnb_2dli > a[data-text="회원관리"]:before { content: "\e923"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="접속자집계"]:before { content: "\e99c"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="접속자검색"]:before { content: "\e986"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="접속자로그삭제"]:before { content: "\e988"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="투표관리"]:before { content: "\e926"; }
|
||||||
|
|
||||||
|
#gnb .gnb_2dli > a[data-text="게시판관리"]:before { content: "\e9ba"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="게시판그룹관리"]:before { content: "\e9bc"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="내용관리"]:before { content: "\e908"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="이모티콘관리"]:before { content: "\e9e1"; }
|
||||||
|
|
||||||
|
#gnb .gnb_2dli > a[data-text="프로필 양식 관리"]:before { content: "\ea72"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="캐릭터 관리"]:before { content: "\e9b2"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="타이틀 관리"]:before { content: "\e935"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="보유타이틀 관리"]:before { content: "\e936"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="레벨설정 관리"]:before { content: "\ea4f"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="경험치 관리"]:before { content: "\e993"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="커플 관리"]:before { content: "\e9da"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="스탯 관리"]:before { content: "\e99d"; }
|
||||||
|
|
||||||
|
#gnb .gnb_2dli > a[data-text="상점관리"]:before { content: "\e93a"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="아이템관리"]:before { content: "\e99f"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="아이템 보유현황"]:before { content: "\e9ae"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="아이템 구매기록"]:before { content: "\e9ba"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="레시피 관리"]:before { content: "\e996"; }
|
||||||
|
#gnb .gnb_2dli > a[data-text="소지금관리"]:before { content: "\e93f"; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#container { padding: 25px; }
|
||||||
|
#fsearch input { margin: 0; }
|
||||||
|
#fsearch .btn_submit {
|
||||||
|
border: none;
|
||||||
|
background: #29c7c9;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 13px;
|
||||||
|
width: 50px;
|
||||||
|
height: 28px;
|
||||||
|
cursor: pointer;
|
||||||
|
line-height: 1.0em;
|
||||||
|
}
|
||||||
|
|
@ -1,413 +1,308 @@
|
||||||
@charset "utf-8";
|
@charset "utf-8";
|
||||||
@import url(//fonts.googleapis.com/earlyaccess/notosanskr.css);
|
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100..900&display=swap');
|
||||||
@font-face {
|
|
||||||
font-family: 'icon';
|
* {box-sizing:border-box; font-family:"Noto Sans KR", sans-serif; outline:0;}
|
||||||
src: url('../../css/fonts/icomoon.eot?y5isk6');
|
|
||||||
src: url('../../css/fonts/icomoon.eot?y5isk6#iefix') format('embedded-opentype'),
|
html {overflow-y:scroll;}
|
||||||
url('../../css/fonts/icomoon.ttf?y5isk6') format('truetype'),
|
html,
|
||||||
url('../../css/fonts/icomoon.woff?y5isk6') format('woff'),
|
body {margin:0; padding:0; color:#333; font-size:12px; height:100%; min-width:1400px;}
|
||||||
url('../../css/fonts/icomoon.svg?y5isk6#icomoon') format('svg');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 초기화 */
|
|
||||||
html {overflow-y:scroll}
|
|
||||||
body {margin:0;padding:0;background:#fff;color:#000;font-size:12px; min-width: 1400px;}
|
|
||||||
html, h1, h2, h3, h4, h5, h6, form, fieldset, img {margin:0;padding:0;border:0}
|
html, h1, h2, h3, h4, h5, h6, form, fieldset, img {margin:0;padding:0;border:0}
|
||||||
h1, h2, h3, h4, h5, h6 {}
|
h1, h2, h3, h4, h5, h6 {font-size:inherit; margin:0;}
|
||||||
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {display:block}
|
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {display:block}
|
||||||
header ul, nav ul, aside ul, footer ul {margin:0;padding:0;list-style:none}
|
header ul, nav ul, aside ul, footer ul {margin:0;padding:0;list-style:none}
|
||||||
label, input, button, select, img {vertical-align:middle}
|
label, input, button, select, img {vertical-align:middle}
|
||||||
textarea, select {}
|
textarea, select {}
|
||||||
input {margin:0;padding:0;border-radius:0;}
|
|
||||||
input[type=text], input[type=password], input[type=submit], input[type=image] {-webkit-appearance:none}
|
button {border-radius:0; -webkit-appearance:none;cursor:pointer}
|
||||||
button {border-radius:0;-webkit-appearance:none;cursor:pointer}
|
|
||||||
p {margin:0;padding:0;word-break:break-all}
|
p {margin:0;padding:0;word-break:break-all}
|
||||||
hr {display:none}
|
hr {display:none}
|
||||||
pre {overflow-x:scroll;}
|
pre {overflow-x:scroll;}
|
||||||
a {color:#000;text-decoration:none}
|
a {color:inherit;text-decoration:none}
|
||||||
a:focus, a:hover, a:active {text-decoration:underline}
|
a:focus, a:hover, a:active {text-decoration:none;}
|
||||||
caption { display: none; }
|
caption, .cke_sc, .sound_only {display:none;}
|
||||||
.cke_sc,
|
|
||||||
.sound_only { display: none; }
|
|
||||||
|
|
||||||
input[type="file"] { font-size: 12px; }
|
label {cursor:pointer;}
|
||||||
input[type="text"],
|
|
||||||
input[type="password"],
|
|
||||||
select,
|
|
||||||
textarea {
|
|
||||||
border: 1px solid #dde3e0;
|
|
||||||
box-sizing: border-box;
|
|
||||||
font-family: 'Dotum';
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
input[type="text"],
|
|
||||||
input[type="password"] { padding: 0 8px; }
|
|
||||||
input[type="text"],
|
|
||||||
input[type="password"],
|
|
||||||
select { height: 28px; padding-left: 8px; }
|
|
||||||
textarea { width: 100%; height: 150px; }
|
|
||||||
|
|
||||||
label {cursor: pointer; }
|
ul,li {margin:0; padding:0; list-style:none;}
|
||||||
|
|
||||||
label + input { margin-left: 10px; }
|
.material-symbols-outlined {font-size:1em !important;}
|
||||||
|
|
||||||
|
/****************************************
|
||||||
|
Layout
|
||||||
|
*****************************************/
|
||||||
|
|
||||||
.txt-center { text-align: center !important; }
|
.taC,
|
||||||
.txt-left { text-align: left !important; }
|
.txt-center {text-align:center !important; }
|
||||||
.txt-right { text-align: right !important; }
|
.taL,
|
||||||
|
.txt-left {text-align:left !important; }
|
||||||
|
.taR,
|
||||||
|
.txt-right {text-align:right !important; }
|
||||||
|
|
||||||
.frm_info {
|
.vT {vertical-align:top !important;}
|
||||||
display: block;
|
.vM {vertical-align:middle !important;}
|
||||||
margin-bottom: 5px;
|
.vB {vertical-align:bottom !important;}
|
||||||
font-size: 11px;
|
|
||||||
font-family: 'Dotum';
|
.mT5 {margin-top:5px !important;}
|
||||||
color: #ebb4ab;
|
.mT10 {margin-top:10px !important;}
|
||||||
}
|
.mT15 {margin-top:15px !important;}
|
||||||
|
.mT20 {margin-top:20px !important;}
|
||||||
|
.mT25 {margin-top:25px !important;}
|
||||||
|
.mT30 {margin-top:30px !important;}
|
||||||
|
.mT35 {margin-top:35px !important;}
|
||||||
|
.mT40 {margin-top:40px !important;}
|
||||||
|
|
||||||
.full {width:100% !important;}
|
.full {width:100% !important;}
|
||||||
.empty_table { line-height: 200px; }
|
|
||||||
|
|
||||||
#container { font-family: 'Noto Sans KR', sans-serif; }
|
.red {color:#ffa8a8;}
|
||||||
#container section {
|
|
||||||
position: relative;
|
|
||||||
padding-bottom: 50px;
|
/****************************************
|
||||||
}
|
Form
|
||||||
#container h2 {
|
*****************************************/
|
||||||
font-size: 18px;
|
|
||||||
font-weight: 300;
|
input {margin:0;padding:0;border-radius:0;}
|
||||||
margin-bottom: 10px;
|
input[type="text"],
|
||||||
line-height: 30px;
|
input[type="number"],
|
||||||
}
|
input[type="password"],
|
||||||
#container h2:before {
|
input[type="submit"],
|
||||||
content: "\e90b";
|
input[type="image"] {-webkit-appearance:none}
|
||||||
font-family: 'icon';
|
input[type="file"] {font-size:inherit;}
|
||||||
padding-right: 5px;
|
select,
|
||||||
color: #4b4b47;
|
input[type="text"],
|
||||||
|
input[type="number"],
|
||||||
|
input[type="password"],
|
||||||
|
textarea {border:1px solid #eaeaea; box-sizing:border-box; font-size:inherit; border-radius:5px; max-width:100%;}
|
||||||
|
select,
|
||||||
|
input[type="text"],
|
||||||
|
input[type="number"],
|
||||||
|
input[type="password"] {height:30px; padding:0 10px;}
|
||||||
|
textarea {width:100%; height:150px; line-height:30px; padding:0 10px;
|
||||||
|
background-image:-webkit-linear-gradient(left, white 10px, transparent 10px), -webkit-linear-gradient(right, white 10px, transparent 10px), -webkit-linear-gradient(white 30px, #f1f1f1 30px, #f1f1f1 31px, white 31px);
|
||||||
|
background-image:-moz-linear-gradient(left, white 10px, transparent 10px), -moz-linear-gradient(right, white 10px, transparent 10px), -moz-linear-gradient(white 30px, #f1f1f1 30px, #f1f1f1 31px, white 31px);
|
||||||
|
background-image:-ms-linear-gradient(left, white 10px, transparent 10px), -ms-linear-gradient(right, white 10px, transparent 10px), -ms-linear-gradient(white 30px, #f1f1f1 30px, #f1f1f1 31px, white 31px);
|
||||||
|
background-image:-o-linear-gradient(left, white 10px, transparent 10px), -o-linear-gradient(right, white 10px, transparent 10px), -o-linear-gradient(white 30px, #f1f1f1 30px, #f1f1f1 31px, white 31px);
|
||||||
|
background-image:linear-gradient(left, white 10px, transparent 10px), linear-gradient(right, white 10px, transparent 10px), linear-gradient(white 30px, #f1f1f1 30px, #f1f1f1 31px, white 31px);
|
||||||
|
background-size:100% 100%, 100% 100%, 100% 31px;
|
||||||
|
line-height:31px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.local_ov {
|
input[type="checkbox"].show,
|
||||||
border-bottom: 1px solid #efeff1;
|
input[type="radio"].show {display:inline-block; width:25px; height:25px; vertical-align:middle; background:no-repeat 0 0; background-size:auto 100%; appearance:none; -webkit-appearance:none; cursor:pointer;}
|
||||||
margin-bottom: 10px;
|
input[type="checkbox"].show:checked,
|
||||||
padding-bottom: 10px;
|
input[type="radio"].show:checked {background-position:100% 0;}
|
||||||
font-size: 13px;
|
input[type="checkbox"].show {background-image:url(../img/spr_checkbox.png);}
|
||||||
font-weight: 300;
|
input[type="radio"].show {background-image:url(../img/spr_radio.png);}
|
||||||
}
|
|
||||||
.ov_listall{
|
|
||||||
display: block;
|
|
||||||
position: relative;
|
|
||||||
float: left;
|
|
||||||
padding: 0 10px 0 0;
|
|
||||||
margin-right: 10px;
|
|
||||||
text-decoration: none;
|
|
||||||
color: #29c7c9;
|
|
||||||
}
|
|
||||||
.ov_listall:before {
|
|
||||||
content: "";
|
|
||||||
display: block;
|
|
||||||
position: absolute;
|
|
||||||
right: 0;
|
|
||||||
top: 3px;
|
|
||||||
bottom: 3px;
|
|
||||||
width: 1px;
|
|
||||||
background: #e1e1e1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.local_desc {
|
input[type="checkbox"]:not(.show) {position:absolute; top:0; left:0; z-index:-9999; opacity:0;}
|
||||||
background: #f9f9f9;
|
input[type="checkbox"] + label {display:inline-block; position:relative; vertical-align:middle; padding:0 10px 0 45px; height:30px; line-height:30px;}
|
||||||
padding: 5px 10px;
|
input[type="checkbox"] + label:before,
|
||||||
border: 1px solid #efeff1;
|
input[type="checkbox"] + label:after {content:""; display:block; position:absolute; top:50%; border-radius:9em; transform:translateY(-50%); -webkit-transform:translateY(-50%); transition:.3s all; -webkit-transition:.3s all;}
|
||||||
color: #5b5b5a;
|
input[type="checkbox"] + label:before {border:2px solid #ddd; left:0; width:35px; height:20px;}
|
||||||
margin-bottom: 10px;
|
input[type="checkbox"] + label:after {left:4px; width:15px; height:15px; border-radius:100%; background:#ddd;}
|
||||||
line-height: 1.8em;
|
input[type="checkbox"]:checked + label:before {border-color:#81c9c9;}
|
||||||
}
|
input[type="checkbox"]:checked + label:after {left:19px; background:#81c9c9;}
|
||||||
.local_desc .point {
|
|
||||||
color: #29c7c9;
|
|
||||||
}
|
|
||||||
.local_desc.pos-top {
|
|
||||||
margin-top: 10px;
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pg_wrap { display: block; position: relative; text-align: center; padding: 0 0 30px 0; }
|
|
||||||
|
|
||||||
.pg_wrap strong,
|
|
||||||
.pg_wrap a {
|
|
||||||
display: inline-block;
|
|
||||||
padding: 0 10px;
|
|
||||||
min-width: 10px;
|
|
||||||
height: 30px;
|
|
||||||
line-height: 30px;
|
|
||||||
text-align: center;
|
|
||||||
border: 1px solid #dadada;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
.pg_wrap strong { background: #29c7c9; color: #fff; border-color: #22a3a5; }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.btn_list01 { position: relative; padding: 20px 0;}
|
/****************************************
|
||||||
.local_desc.pos-top + .btn_list01 { padding-top: 10px; }
|
Index
|
||||||
.btn_list01 * { padding: 10px 15px; vertical-align: middle; }
|
*****************************************/
|
||||||
|
|
||||||
.btn_list03 { position: absolute; top: 5px; right: 0; }
|
|
||||||
.btn_list03 * { padding: 5px 10px; }
|
|
||||||
|
|
||||||
.btn_add01 * { padding: 10px 15px; }
|
|
||||||
|
|
||||||
.btn_list a,
|
|
||||||
.btn_list button,
|
|
||||||
.btn_list input {
|
|
||||||
display: inline-block;
|
|
||||||
background: #29c7c9;
|
|
||||||
color: #fff;
|
|
||||||
font-weight: 400;
|
|
||||||
text-decoration: none;
|
|
||||||
border: none;
|
|
||||||
line-height: 1.0em;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
.btn_add {
|
|
||||||
float: right;
|
|
||||||
clear: both;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
.btn_add a,
|
|
||||||
.btn_add button,
|
|
||||||
.btn_add input {
|
|
||||||
display: inline-block;
|
|
||||||
background: #29c7c9;
|
|
||||||
color: #fff;
|
|
||||||
font-size: 13px;
|
|
||||||
font-weight: 400;
|
|
||||||
text-decoration: none;
|
|
||||||
border: none;
|
|
||||||
line-height: 1.0em;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn_confirm {
|
|
||||||
text-align: center;
|
|
||||||
padding: 50px 0;
|
|
||||||
}
|
|
||||||
section + .btn_confirm { padding-top: 0; }
|
|
||||||
|
|
||||||
.btn_confirm a,
|
|
||||||
.btn_confirm input[type="submit"],
|
|
||||||
.btn_confirm input[type="button"]{
|
|
||||||
display: inline-block;
|
|
||||||
vertical-align: middle;
|
|
||||||
box-sizing: border-box;
|
|
||||||
margin: 2px;
|
|
||||||
font-size: 13px;
|
|
||||||
line-height: 1.0em;
|
|
||||||
padding: 10px 25px;
|
|
||||||
border: none;
|
|
||||||
background: #f2f4f3;
|
|
||||||
color: #494c55;
|
|
||||||
cursor: pointer;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
.btn_confirm .btn_submit { background: #29c7c9 !important; color: #fff !important; }
|
|
||||||
|
|
||||||
.sv { display: none !important; }
|
|
||||||
.anchor {
|
|
||||||
display: block;
|
|
||||||
position: relative;
|
|
||||||
clear: both;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0 0 10px 0;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.anchor li {
|
|
||||||
display: block;
|
|
||||||
float: left;
|
|
||||||
list-style: none;
|
|
||||||
margin: 0;
|
|
||||||
|
|
||||||
}
|
|
||||||
.anchor li a {
|
|
||||||
display: block;
|
|
||||||
position: relative;
|
|
||||||
padding: 5px 10px;
|
|
||||||
text-decoration: none;
|
|
||||||
margin: 0 1px;
|
|
||||||
color: #62656c;
|
|
||||||
border-radius: 9.0em;
|
|
||||||
box-sizing: border-box;
|
|
||||||
z-index: 1;
|
|
||||||
}
|
|
||||||
.anchor li:first-child a { border-left-width: 0; }
|
|
||||||
|
|
||||||
.anchor li.on a,
|
|
||||||
#anc_001 a[href="#anc_001"],
|
|
||||||
#anc_002 a[href="#anc_002"],
|
|
||||||
#anc_003 a[href="#anc_003"],
|
|
||||||
#anc_004 a[href="#anc_004"],
|
|
||||||
#anc_005 a[href="#anc_005"],
|
|
||||||
#anc_006 a[href="#anc_006"],
|
|
||||||
#anc_007 a[href="#anc_007"],
|
|
||||||
#anc_008 a[href="#anc_008"],
|
|
||||||
#anc_009 a[href="#anc_009"],
|
|
||||||
#anc_010 a[href="#anc_010"],
|
|
||||||
#anc_011 a[href="#anc_011"],
|
|
||||||
#anc_012 a[href="#anc_012"],
|
|
||||||
#anc_013 a[href="#anc_013"],
|
|
||||||
#anc_014 a[href="#anc_014"],
|
|
||||||
#anc_015 a[href="#anc_015"],
|
|
||||||
#anc_016 a[href="#anc_016"]{
|
|
||||||
background: #e66149;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.color-preview { display: inline-block; width: 25px; height: 25px; border: 1px solid #cacaca; vertical-align: middle; }
|
|
||||||
.admin-icon-box { display: inline-block; min-width: 25px; height: 25px; border: 1px solid #cacaca; vertical-align: middle; }
|
|
||||||
|
|
||||||
table { border-spacing:0px; }
|
|
||||||
|
|
||||||
.tbl_wrap table { width: 100%; border-collapse: collapse;}
|
|
||||||
|
|
||||||
.tbl_head01 thead { }
|
|
||||||
.tbl_head01 thead th {
|
|
||||||
background: #f9f9f9;
|
|
||||||
font-weight: 300;
|
|
||||||
padding: 8px 10px;
|
|
||||||
border: 1px solid #efeff1;
|
|
||||||
font-size: 13px;
|
|
||||||
color: #5b5b5a;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tbl_head01 .bo-right { border-right-width: 1px !important; }
|
|
||||||
.tbl_head01 .bo-left { border-left-width: 1px !important; }
|
|
||||||
.tbl_head01 .bo-top { border-top-width: 1px !important; }
|
|
||||||
|
|
||||||
.tbl_head01 .bo-no-right { border-right-width: 0px !important; }
|
|
||||||
.tbl_head01 .bo-no-left { border-left-width: 0px !important; }
|
|
||||||
.tbl_head01 .bo-no-top { border-top-width: 0px !important; }
|
|
||||||
.tbl_head01 .bo-no-bottom { border-bottom-width: 0px !important; }
|
|
||||||
|
|
||||||
|
|
||||||
.tbl_head01 tbody td {
|
|
||||||
text-align: center;
|
|
||||||
padding: 7px 10px;
|
|
||||||
color: #5b5b5a;
|
|
||||||
border: 1px solid #efeff1;
|
|
||||||
border-top-width: 0;
|
|
||||||
border-left-width: 0;
|
|
||||||
}
|
|
||||||
.tbl_head01 tbody td:first-child { border-left-width: 1px; }
|
|
||||||
.tbl_head01 tbody td a { color: #29c7ca; }
|
|
||||||
|
|
||||||
|
|
||||||
.tbl_head01 tfoot th,
|
|
||||||
.tbl_head01 tfoot td {
|
|
||||||
background: #f9f9f9;
|
|
||||||
font-weight: 300;
|
|
||||||
padding: 8px 10px;
|
|
||||||
border: 1px solid #efeff1;
|
|
||||||
border-top-width: 0;
|
|
||||||
border-left-width: 0;
|
|
||||||
font-size: 13px;
|
|
||||||
color: #5b5b5a;
|
|
||||||
}
|
|
||||||
.tbl_head01 tfoot td:first-child,
|
|
||||||
.tbl_head01 tfoot th:first-child { border-left-width: 1px; }
|
|
||||||
|
|
||||||
.tbl_frm01 table { border-top: 1px solid #efeff5; }
|
|
||||||
.tbl_frm01 tbody th,
|
|
||||||
.tbl_frm01 tbody td {
|
|
||||||
color: #5b5b5a;
|
|
||||||
font-weight: 400;
|
|
||||||
padding: 10px;
|
|
||||||
border: 0px solid #efeff5;
|
|
||||||
border-bottom-width: 1px;
|
|
||||||
}
|
|
||||||
.tbl_frm01 tbody th { background: #f9f9f9; border-right-width: 1px; }
|
|
||||||
.tbl_frm01 tbody th.bo-right,
|
|
||||||
.tbl_frm01 tbody td.bo-right { border-right-width: 1px; }
|
|
||||||
.tbl_frm01 tbody th.bo-left,
|
|
||||||
.tbl_frm01 tbody td.bo-left { border-left-width: 1px; }
|
|
||||||
.tbl_frm01 tbody th.bo-top,
|
|
||||||
.tbl_frm01 tbody td.bo-top { border-top-width: 1px; }
|
|
||||||
|
|
||||||
.tbl_frm01 tbody th + td.bo-left { border-left-width: 0px !important; }
|
|
||||||
|
|
||||||
|
|
||||||
.index-gnb {display:block; font-size:13px;}
|
.index-gnb {display:block; font-size:13px;}
|
||||||
.index-gnb > ul > li {display:table; width:100%; table-layout:fixed; overflow:hidden; border-bottom:1px solid rgba(255,255,255,.2);}
|
.index-gnb .gnb_1dli {border:1px solid #ddd; border-radius:10px; padding:10px;}
|
||||||
.index-gnb > ul > li > * {display:table-cell;}
|
.index-gnb .gnb_1dli > div {display:table; width:100%; table-layout:fixed; overflow:hidden;}
|
||||||
.index-gnb > ul > li > a {width:130px; background:#353942; color:#fff; text-align:center; vertical-align:middle; font-size:14px;}
|
.index-gnb .gnb_1dli + .gnb_1dli {margin-top:10px;}
|
||||||
.index-gnb > ul > li > ul {display:block; padding:10px; background:#eaeaea;}
|
.index-gnb .gnb_1dli > div > * {display:table-cell;}
|
||||||
.index-gnb > ul > li > ul > li {display:inline-block; min-width:130px; vertical-align:middle; padding:5px 0;}
|
.index-gnb .gnb_1dli > div > a {width:130px; background:#4e5e79; border-radius:10px; color:#fff; text-align:center; vertical-align:middle; font-size:14px;}
|
||||||
|
.index-gnb .gnb_2dul {padding-left:15px;}
|
||||||
|
.index-gnb .gnb_2dul ul {display:flex; flex-wrap:wrap;}
|
||||||
|
.index-gnb .gnb_2dul ul li {display:block; position:relative;}
|
||||||
|
.index-gnb .gnb_2dul ul li + li:before {content:""; display:block; position:absolute; top:50%; left:0; width:1px; height:20px; margin-top:-10px; background:#ddd;}
|
||||||
|
.index-gnb .gnb_2dul a {display:block; position:relative; padding:4px 10px;}
|
||||||
|
.index-gnb .gnb_2dul a:hover,
|
||||||
|
.index-gnb .gnb_2dul a:focus {color:#ffa8a8; font-weight:800;}
|
||||||
|
|
||||||
|
|
||||||
.prev_thumb { max-width: 100px; max-height: 50px; }
|
/****************************************
|
||||||
.banner-thumb { max-width: 200px; max-height: 100px; }
|
Paging
|
||||||
.character-thumb { max-width: 200px; max-height: 500px; }
|
*****************************************/
|
||||||
|
|
||||||
|
.pg_wrap {display:block; position:relative; text-align:center; padding:0 0 30px 0; }
|
||||||
.ajax-list-box {
|
.pg_wrap strong,
|
||||||
height: 70px;
|
.pg_wrap a {display:inline-block; padding:0 10px; min-width:10px; height:30px; line-height:30px; text-align:center; border:1px solid #dadada; text-decoration:none;}
|
||||||
overflow-y: auto;
|
.pg_wrap strong {background:#81c9c9; color:#fff; border-color:#22a3a5; }
|
||||||
border: 1px solid #eaeaea;
|
|
||||||
margin-top: 10px;
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.ajax-list-box ul,
|
|
||||||
.ajax-list-box li { display: block; margin: 0; padding: 0; position: relative; }
|
|
||||||
.ajax-list-box li { margin-bottom: 5px; }
|
|
||||||
.ajax-list-box li a {
|
|
||||||
display: block;
|
|
||||||
position: relative;
|
|
||||||
padding: 10px;
|
|
||||||
border-radius: 3px;
|
|
||||||
color: #2a2d2a;
|
|
||||||
background: #fafafa;
|
|
||||||
text-decoration: none;
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ajax-list-box li a p.point { color: #29c7c9; }
|
|
||||||
.ajax-list-box li a:hover { color: #fff; background: #3a3a3a; }
|
|
||||||
.ajax-list-box li a .ui-thumb { position: absolute; top: 10px; left: 10px; width: 30px; line-height: 30px; overflow: hidden; text-align: center; }
|
|
||||||
.ajax-list-box li a .ui-thumb img { max-width: 100%; }
|
|
||||||
.ajax-list-box li a .ui-info {margin-left:40px;}
|
|
||||||
.ajax-list-box .no-data { line-height: 50px; text-align: center; margin-top: 10px; }
|
|
||||||
|
|
||||||
.visit_bar {position:relative}
|
.visit_bar {position:relative}
|
||||||
.visit_bar span {position:absolute;top:-8px;left:0;height:15px;background:#29c7c9}
|
.visit_bar span {position:absolute;top:-8px;left:0;height:15px;background:#81c9c9}
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************
|
||||||
|
Guide Box
|
||||||
|
*****************************************/
|
||||||
|
|
||||||
|
.frm_info {display:block; position:relative; margin-bottom:10px; color:#ffa8a8;}
|
||||||
|
* ~ .frm_info {margin-top:10px; margin-bottom:0;}
|
||||||
|
|
||||||
|
.local_desc {display:block; position:relative; font-size:13px; margin-bottom:10px; background:#e6edf7; padding:10px; border-radius:5px; color:#4b4b4b;}
|
||||||
|
.local_desc p {display:inline;}
|
||||||
|
.local_desc .material-symbols-outlined {font-size:18px !important; vertical-align:middle;}
|
||||||
|
|
||||||
|
.local_ov {margin-bottom:10px; padding-bottom:10px; font-size:14px;}
|
||||||
|
.ov_listall {display:block; position:relative; float:left; padding:0 10px 0 0; margin-right:10px; text-decoration:none; color:#81c9c9; font-weight:600;}
|
||||||
|
.ov_listall:before {content:""; display:block; position:absolute; right:0; top:3px; bottom:3px; width:1px; background:#e1e1e1;}
|
||||||
|
|
||||||
|
.local_sch {display:flex; flex-wrap:nowrap; margin-bottom:10px; gap:5px; justify-content:center; background:#eaeef3; border-radius:5px; padding:10px;}
|
||||||
|
.local_sch select,
|
||||||
|
.local_sch input[type="text"],
|
||||||
|
.local_sch *[class*="btn_"] {height:35px;}
|
||||||
|
.local_sch *[class*="btn_"] {border-radius:5px;}
|
||||||
|
.local_sch a[class*="btn_"] {line-height:31px;}
|
||||||
|
.local_sch .btn_list {margin:0 !important;}
|
||||||
|
|
||||||
|
.color-preview {display:inline-block; width:30px; height:30px; border:1px solid #eaeaea; border-left-width:0; background:#fff; border-radius:0 5px 5px 0; z-index:1; margin-left:-6px; vertical-align:middle; cursor:pointer;}
|
||||||
|
.admin-icon-box {display:inline-block; min-width:25px; height:25px; border:1px solid #cacaca; vertical-align:middle;}
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************
|
||||||
|
Table Style
|
||||||
|
***************************************************/
|
||||||
|
|
||||||
|
table {width:100%; table-layout:fixed; border-spacing:0; border-collapse:collapse;}
|
||||||
|
table col.grid_4 {width:140px;}
|
||||||
|
table th {font-size:13px; font-weight:400; word-break:keep-all;}
|
||||||
|
table th,
|
||||||
|
table td {position:relative; vertical-align:middle; border:0px solid #fafafa; border-bottom-color:#eaeaea;}
|
||||||
|
table td {color:#888;}
|
||||||
|
|
||||||
|
table .bo-right {border-right-width:1px !important;}
|
||||||
|
table .bo-left {border-left-width:1px !important;}
|
||||||
|
|
||||||
|
.tbl_frm01 {margin-bottom:20px;}
|
||||||
|
.tbl_frm01 > table > tbody {border-top:2px solid #000; border-bottom:1px solid #eaeaea;}
|
||||||
|
.tbl_frm01 > table > tbody > tr > th,
|
||||||
|
.tbl_frm01 > table > tbody > tr > td {padding:10px; border-bottom-width:1px; height:50px;}
|
||||||
|
.tbl_frm01 > table > tbody > tr > th {text-align:left;}
|
||||||
|
.tbl_frm01 > table > tbody > tr > .pad {padding:20px 10px;}
|
||||||
|
|
||||||
|
.tbl_frm01 .lb {display:inline-block; vertical-align:middle; min-width:8em;}
|
||||||
|
|
||||||
|
.tbl_frm01 .design-th {text-align:center; background:#f5f9ff;}
|
||||||
|
.tbl_frm01 .design-th input[type="text"] {width:100%; margin:10px 0 5px; height:20px; font-size:12px; text-align:center; opacity:.7; background:rgba(255,255,255,.8) !important; border:none !important; outline:0; color:#81c9c9 !important;}
|
||||||
|
.tbl_frm01 .design-th em {font-style:normal; font-weight:bold; color:#81c9c9; margin-right:5px;}
|
||||||
|
.tbl_frm01 .design-th em:before {content:"[";}
|
||||||
|
.tbl_frm01 .design-th em:after {content:"]";}
|
||||||
|
.tbl_frm01 .design-th a {display:inline-block; vertical-align:middle; padding:3px 10px; background:#81c9c9; color:#fff; margin:5px 0 0;}
|
||||||
|
.tbl_frm01 .design-th a + a {margin-top:3px;}
|
||||||
|
|
||||||
|
.tbl_frm01 tr + tr .btn_confirm {margin-bottom:10px;}
|
||||||
|
.tbl_frm01 .btn_confirm .btn-item-add {height:auto !important; font-size:12px; padding:2px 10px !important;}
|
||||||
|
.tbl_frm01 td.btn_confirm {text-align:center; width:60px;}
|
||||||
|
.tbl_frm01 .btn-item-dell {width:50px; height:25px; background:#ffa8a8 !important; border-radius:5px; border:none; color:#fff; padding:0 !important;}
|
||||||
|
|
||||||
|
|
||||||
|
.tbl_head01 {text-align:center; margin-bottom:20px;}
|
||||||
|
.tbl_head01 > table > thead {border-top:2px solid #000;}
|
||||||
|
.tbl_head01 > table > tbody {border-top:1px solid #000; border-bottom:1px solid #eaeaea;}
|
||||||
|
.tbl_head01 > table > thead > tr > th {height:40px; font-weight:600; border:0px solid #000;}
|
||||||
|
.tbl_head01 > table > tbody > tr > th,
|
||||||
|
.tbl_head01 > table > tbody > tr > td {padding:10px; border-bottom-width:1px; height:50px;}
|
||||||
|
.tbl_head01 a {display:inline-block; max-width:100%; vertical-align:middle; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
|
||||||
|
|
||||||
|
.empty_table {text-align:center; font-size:14px; padding:50px 20px !important; color:#ccc;}
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************
|
||||||
|
Button Style
|
||||||
|
*******************************************/
|
||||||
|
|
||||||
|
input[class*="btn_"],
|
||||||
|
a[class*="btn_"],
|
||||||
|
button[class*="btn_"] {display:inline-block; position:relative; vertical-align:middle; height:30px; padding:0 20px; border-radius:9em; font-size:1em; border:2px solid #81c9c9; background:#fff; color:#81c9c9; cursor:pointer;}
|
||||||
|
a[class*="btn_"] {line-height:26px;}
|
||||||
|
|
||||||
|
.btn_confirm input[class*="btn_"],
|
||||||
|
.btn_confirm a,
|
||||||
|
.btn_confirm button {display:inline-block; position:relative; vertical-align:middle; height:35px; padding:0 20px; border-radius:9em; font-size:1em; border:2px solid #81c9c9; background:#fff; color:#81c9c9; cursor:pointer;}
|
||||||
|
.btn_confirm a {line-height:31px;}
|
||||||
|
|
||||||
|
.btn_list {margin:20px 0;}
|
||||||
|
.btn_list input[type="button"],
|
||||||
|
.btn_list input[type="submit"],
|
||||||
|
.btn_list a,
|
||||||
|
.btn_list button {display:inline-block; position:relative; vertical-align:middle; height:35px; padding:0 20px; border-radius:9em; font-size:1em; border:2px solid #81c9c9; background:#fff; color:#41b1b1; cursor:pointer; font-weight:600;}
|
||||||
|
.btn_list a {line-height:31px;}
|
||||||
|
.btn_list input[value*="삭제"] {border-color:#ffa8a8 !important; color:#ffa8a8 !important;}
|
||||||
|
.btn_list input[value*="탈퇴"] {border-color:#ffd5a8 !important; color:#ffd5a8 !important;}
|
||||||
|
|
||||||
|
.btn_submit {background:#81c9c9 !important; color:#fff !important;}
|
||||||
|
.btn_small_add,
|
||||||
|
.btn_small_del {padding:0 !important; width:30px; font-size:18px !important; border-radius:5px !important;}
|
||||||
|
.btn_small_del {border-color:#ffa8a8 !important; background:#ffa8a8 !important; color:#fff !important;}
|
||||||
|
|
||||||
|
.container > .btn_add01,
|
||||||
|
section > .btn_add01 {position:absolute; top:0; right:0; transform:translateY(-100%); -webkit-transform:translateY(-100%); margin-top:-45px;}
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************
|
||||||
|
Repeat List
|
||||||
|
***************************************************/
|
||||||
|
|
||||||
|
/*.repeatFormArea.fit {width:400px;}*/
|
||||||
|
.repeatFormArea .repeat-original {display:none;}
|
||||||
|
|
||||||
|
ul.repeatFormArea {display:flex; flex-wrap:wrap; align-items:top; margin:10px 0;}
|
||||||
|
ul.repeatFormArea li {display:inline-block; position:relative; margin-bottom:10px; padding-right:50px;}
|
||||||
|
ul.repeatFormArea li:last-child {margin-bottom:0;}
|
||||||
|
ul.repeatFormArea li .control {display:block; position:absolute; top:0; right:0; width:50px; padding-left:10px;}
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************
|
||||||
|
Ajaxt List
|
||||||
|
***************************************************/
|
||||||
|
|
||||||
|
.ajax-list-box {height:70px; overflow-y:auto; border:1px solid #eaeaea; margin-top:10px; padding:5px;}
|
||||||
|
.ajax-list-box ul,
|
||||||
|
.ajax-list-box li {display:block; margin:0; padding:0; position:relative; }
|
||||||
|
.ajax-list-box li {margin-bottom:5px; }
|
||||||
|
.ajax-list-box li a {display:block; position:relative; padding:10px; border-radius:3px; color:#2a2d2a; background:#fafafa; text-decoration:none; font-size:12px;}
|
||||||
|
.ajax-list-box li a p.point {color:#29c7c9; }
|
||||||
|
.ajax-list-box li a:hover {color:#fff; background:#3a3a3a; }
|
||||||
|
.ajax-list-box li a .ui-thumb {position:absolute; top:10px; left:10px; width:30px; line-height:30px; overflow:hidden; text-align:center; }
|
||||||
|
.ajax-list-box li a .ui-thumb img {max-width:100%; }
|
||||||
|
.ajax-list-box li a .ui-info {margin-left:40px;}
|
||||||
|
.ajax-list-box .no-data {line-height:50px; text-align:center; margin-top:10px; }
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************
|
||||||
|
Theme
|
||||||
|
***************************************************/
|
||||||
|
|
||||||
/*테마*/
|
|
||||||
.theme_p{margin:0 0 10px }
|
.theme_p{margin:0 0 10px }
|
||||||
#theme_list{padding:0;margin:0;list-style:none; width: 1000px;position:relative}
|
#theme_list{padding:0;margin:0;list-style:none; width:1000px;position:relative}
|
||||||
#theme_list:after{display:block;visibility:hidden;clear:both;content:""}
|
#theme_list:after{display:block;visibility:hidden;clear:both;content:""}
|
||||||
#theme_list li{margin:10px 10px 10px 0;float:left}
|
#theme_list li{margin:10px 10px 10px 0;float:left}
|
||||||
|
|
||||||
#theme_list li:after{display:block;visibility:hidden;clear:both;content:""}
|
#theme_list li:after{display:block;visibility:hidden;clear:both;content:""}
|
||||||
#theme_list li .tmli_if{border: 1px solid #d1dee2;width:302px;}
|
#theme_list li .tmli_if{border:1px solid #d1dee2;width:302px;}
|
||||||
#theme_list li .tmli_if>img{width:300px;height:225px;}
|
#theme_list li .tmli_if>img{width:300px;height:225px;}
|
||||||
#theme_list li .tmli_if:hover>img{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";filter: alpha(opacity=50);-moz-opacity:0.5;-khtml-opacity: 0.5;opacity: 0.5;}
|
#theme_list li .tmli_if:hover>img{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";filter:alpha(opacity=50);-moz-opacity:0.5;-khtml-opacity:0.5;opacity:0.5;}
|
||||||
#theme_list li .tmli_tit{position:relative; border-top: 1px solid #d1dee2; background: #e5ecef;}
|
#theme_list li .tmli_tit{position:relative; border-top:1px solid #d1dee2; background:#e5ecef;}
|
||||||
#theme_list li .tmli_tit p{height:40px;line-height:40px;padding:0 10px 0;font-weight:bold;text-overflow: ellipsis; overflow: hidden; white-space: nowrap;}
|
#theme_list li .tmli_tit p{height:40px;line-height:40px;padding:0 10px 0;font-weight:bold;text-overflow:ellipsis; overflow:hidden; white-space:nowrap;}
|
||||||
#theme_list li .tmli_tit button.tmli_dt{position:absolute;top:8px;right:10px;padding:5px;background:#111;color:#fff;display:none;border:none}
|
#theme_list li .tmli_tit button.tmli_dt{position:absolute;top:8px;right:10px;padding:5px;background:#111;color:#fff;display:none;border:none}
|
||||||
#theme_list li .tmli_if:hover button.tmli_dt{display:block}
|
#theme_list li .tmli_if:hover button.tmli_dt{display:block}
|
||||||
#theme_list li .theme_sl{float:left;border:none;margin-top:5px;padding:0 5px;height:26px;background:#999;color:#fff}
|
#theme_list li .theme_sl{float:left;border:none;margin-top:5px;padding:0 5px;height:26px;background:#999;color:#fff}
|
||||||
#theme_list li .theme_sl:hover{background:#ff3061}
|
#theme_list li .theme_sl:hover{background:#ff3061}
|
||||||
#theme_list li .theme_deactive{margin-left:4px}
|
#theme_list li .theme_deactive{margin-left:4px}
|
||||||
#theme_list li .theme_sl_use{background:#ff3061;line-height:26px}
|
#theme_list li .theme_sl_use{background:#ff3061;line-height:26px}
|
||||||
#theme_list li .theme_pr{float:right;margin-top:5px;padding:0 5px;height:26px;line-height:24px; border: 1px solid #ccc; background: #fafafa; }
|
#theme_list li .theme_pr{float:right;margin-top:5px;padding:0 5px;height:26px;line-height:24px; border:1px solid #ccc; background:#fafafa; }
|
||||||
#theme_list li .theme_preview{ float: right; margin-top: 5px; padding:0 5px;height:26px; border: 1px solid #ccc; background: #fafafa; margin-right:3px}
|
#theme_list li .theme_preview{float:right; margin-top:5px; padding:0 5px;height:26px; border:1px solid #ccc; background:#fafafa; margin-right:3px}
|
||||||
|
|
||||||
#theme_detail{position:fixed;top:50%;height:540px;width:900px;margin-top:-271px;background:#fff;background:#f3f3f3;border:1px solid #000;
|
#theme_detail{position:fixed;top:50%;height:540px;width:900px;margin-top:-271px;background:#fff;background:#f3f3f3;border:1px solid #000;
|
||||||
-webkit-box-shadow: 1px 2px 5px rgba(150,150,150,100.5);
|
-webkit-box-shadow:1px 2px 5px rgba(150,150,150,100.5);
|
||||||
-moz-box-shadow: 1px 2px 5px rgba(150,150,150,0.5);
|
-moz-box-shadow:1px 2px 5px rgba(150,150,150,0.5);
|
||||||
box-shadow: 1px 2px 5px rgba(150,150,150,0.5);z-index:1000}
|
box-shadow:1px 2px 5px rgba(150,150,150,0.5);z-index:1000}
|
||||||
#theme_detail:after{display:block;visibility:hidden;clear:both;content:""}
|
#theme_detail:after{display:block;visibility:hidden;clear:both;content:""}
|
||||||
#theme_detail h2{font-size:1.25em;background:#fff;padding:0 15px;line-height:40px;border-bottom:1px solid #d8d8d8;margin:0}
|
#theme_detail h2{font-size:1.25em;background:#fff;padding:0 15px;line-height:40px;border-bottom:1px solid #d8d8d8;margin:0}
|
||||||
.theme_dt_img{float:left;padding:20px}
|
.theme_dt_img{float:left;padding:20px}
|
||||||
|
|
@ -424,3 +319,10 @@ box-shadow: 1px 2px 5px rgba(150,150,150,0.5);z-index:1000}
|
||||||
|
|
||||||
#theme_detail .theme_dt_btn .close_btn:hover{background-color:#eceffc}
|
#theme_detail .theme_dt_btn .close_btn:hover{background-color:#eceffc}
|
||||||
#theme_detail .theme_dt_btn .btn_03{line-height:28px;display:inline-block;vertical-align:top;margin-top:6px;padding:0 6px;border-radius:5px}
|
#theme_detail .theme_dt_btn .btn_03{line-height:28px;display:inline-block;vertical-align:top;margin-top:6px;padding:0 6px;border-radius:5px}
|
||||||
|
|
||||||
|
.manager-wrap {position:relative !important; top:auto !important; left:auto !important; right:auto !important; bottom:auto !important; height:80vh !important;}
|
||||||
|
label[for="cf_dungeon_open"],
|
||||||
|
label[for="cf_dungeon_map"] {text-indent:-999px;}
|
||||||
|
|
||||||
|
#itemAddTable thead th {background:#000; color:#fff; height:30px;}
|
||||||
|
#itemAddTable tbody tr > * {padding:4px; border-bottom:1px solid #ddd; text-align:center;}
|
||||||
|
|
@ -1,280 +1,93 @@
|
||||||
@charset "utf-8";
|
@charset "utf-8";
|
||||||
|
|
||||||
html,
|
:root {
|
||||||
body { height: 100%; }
|
--header-height:80px;
|
||||||
#wrap {
|
--menu-width:230px;
|
||||||
display: table;
|
--frame-color:#24324a /*#18202e*/;
|
||||||
width: 100%;
|
|
||||||
min-height: 100%;
|
|
||||||
}
|
|
||||||
#header {
|
|
||||||
display: table-cell;
|
|
||||||
position: relative;
|
|
||||||
width: 200px;
|
|
||||||
min-height: 100%;
|
|
||||||
background: #1d1d1f;
|
|
||||||
vertical-align: top;
|
|
||||||
}
|
|
||||||
#header:after {
|
|
||||||
content: "";
|
|
||||||
display: block;
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
bottom: 0;
|
|
||||||
right: 0;
|
|
||||||
width: 1px;
|
|
||||||
background: #171b26;
|
|
||||||
z-index: 0;
|
|
||||||
}
|
|
||||||
#admin_prof {
|
|
||||||
display: block;
|
|
||||||
position: relative;
|
|
||||||
width: 200px;
|
|
||||||
height: 100px;
|
|
||||||
padding-bottom: 30px;
|
|
||||||
background: #29c7ca;
|
|
||||||
border-right: 1px solid #0aa0a5;
|
|
||||||
box-sizing: border-box;
|
|
||||||
z-index: 1;
|
|
||||||
}
|
|
||||||
#admin_prof h1 {
|
|
||||||
position: relative;
|
|
||||||
text-align: center;
|
|
||||||
line-height: 70px;
|
|
||||||
|
|
||||||
}
|
|
||||||
#admin_prof h1 img {
|
|
||||||
position: relative;
|
|
||||||
z-index: 0;
|
|
||||||
}
|
|
||||||
#admin_prof h1 i {
|
|
||||||
display: block;
|
|
||||||
position: absolute;
|
|
||||||
bottom: 5px;
|
|
||||||
right: 10px;
|
|
||||||
font-size: 11px;
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 400;
|
|
||||||
line-height: 1.0em;
|
|
||||||
color: #1e878a;
|
|
||||||
z-index: 1;
|
|
||||||
}
|
|
||||||
#admin_prof p {
|
|
||||||
position: absolute;
|
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
height: 30px;
|
|
||||||
margin: 0;
|
|
||||||
background: #2bacb0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#admin_prof a:hover { color: #fff !important; }
|
|
||||||
|
|
||||||
#admin_prof .name {
|
|
||||||
display: block;
|
|
||||||
position: relative;
|
|
||||||
padding-right: 30px;
|
|
||||||
padding-left: 15px;
|
|
||||||
font-size: 13px;
|
|
||||||
line-height: 30px;
|
|
||||||
color: #d6eff1;
|
|
||||||
text-decoration: none;
|
|
||||||
|
|
||||||
font-family: 'Noto Sans KR', sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
#admin_prof .logout {
|
|
||||||
display: block;
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
bottom: 0;
|
|
||||||
right: 0;
|
|
||||||
width: 30px;
|
|
||||||
height: 30px;
|
|
||||||
overflow: hidden;
|
|
||||||
text-indent: -999px;
|
|
||||||
}
|
|
||||||
#admin_prof .logout:before {
|
|
||||||
content: "\e984";
|
|
||||||
font-family:'icon';
|
|
||||||
color: #d6eff1;
|
|
||||||
font-size: 12px;
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
line-height: 30px;
|
|
||||||
text-align: center;
|
|
||||||
text-indent: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#page_top {
|
|
||||||
position: relative;
|
|
||||||
height: 71px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
border-bottom: 1px solid #131a24;
|
|
||||||
background: #1d1d1f;
|
|
||||||
}
|
|
||||||
#page_top h2 {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
bottom: 0;
|
|
||||||
line-height: 70px;
|
|
||||||
padding-left: 40px;
|
|
||||||
font-size: 20px;
|
|
||||||
font-family: 'Noto Sans KR', sans-serif;
|
|
||||||
color: #c3c8cc;
|
|
||||||
font-weight: 300;
|
|
||||||
}
|
|
||||||
|
|
||||||
#page_top a {
|
|
||||||
display: block;
|
|
||||||
position: relative;
|
|
||||||
width: 70px;
|
|
||||||
height: 70px;
|
|
||||||
float: right;
|
|
||||||
border-left: 1px solid #4d515c;
|
|
||||||
overflow: hidden;
|
|
||||||
color: #c3c8cc;
|
|
||||||
text-indent: -999px;
|
|
||||||
}
|
|
||||||
#page_top a:before {
|
|
||||||
display: block;
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
font-family: 'icon';
|
|
||||||
line-height: 70px;
|
|
||||||
font-size: 25px;
|
|
||||||
text-align: center;
|
|
||||||
text-indent: 0;
|
|
||||||
}
|
|
||||||
#page_top a:hover {
|
|
||||||
color: #fff;
|
|
||||||
background: #e7604a;
|
|
||||||
border-color: #a6240d;
|
|
||||||
}
|
|
||||||
#page_top a.ico-home:before { content: "\e900"; }
|
|
||||||
#page_top a.ico-dev:before { content: "\e995"; }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#wrapper {
|
|
||||||
display: table-cell;
|
|
||||||
position: relative;
|
|
||||||
vertical-align: top;
|
|
||||||
min-height: 100%;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************
|
||||||
|
All Layout
|
||||||
|
*******************************************/
|
||||||
|
|
||||||
#gnb {
|
.adminWrap {position:relative; padding:var(--header-height) 0 0 var(--menu-width);}
|
||||||
display: block;
|
|
||||||
position: relative;
|
|
||||||
padding-top: 20px;
|
/******************************************
|
||||||
font-family: 'Noto Sans KR', sans-serif;
|
Header
|
||||||
|
*******************************************/
|
||||||
|
|
||||||
|
.adminHeader {position:fixed; top:0; left:0; right:0; height:var(--header-height); background:var(--frame-color); z-index:10;}
|
||||||
|
|
||||||
|
.adminHeader .inner {display:flex; justify-content:space-between; height:var(--header-height); align-items:center;}
|
||||||
|
.adminHeader h1 {display:block; position:relative; margin-left:10px; padding:0 20px 0 50px;}
|
||||||
|
.adminHeader h1:before {content:""; display:block; position:absolute; top:50%; left:10px; height:40px; width:40px; margin-top:-20px; background:url(../img/logo_avocado.png) no-repeat 50% 50%; background-size:contain; opacity:.7;}
|
||||||
|
.adminHeader h1 a {color:#fff; font-size:20px; opacity:.8; margin-left:10px;}
|
||||||
|
.adminHeader h1 i {color:#fff; margin-left:10px; font-weight:100;}
|
||||||
|
|
||||||
|
.adminHeader aside {display:flex; flex-wrap:nowrap; position:relative; height:var(--header-height);}
|
||||||
|
.adminHeader aside > * {display:block; position:relative; font-size:24px; font-weight:800; width:var(--header-height); line-height:var(--header-height); text-align:center; background:rgba(0,0,0,.1); border-left:1px solid rgba(255,255,255,.1);}
|
||||||
|
.adminHeader aside > *:hover {background:rgba(0,0,0,.9);}
|
||||||
|
.adminHeader aside > * > span {font-size:1em !important; color:#fff;;}
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************
|
||||||
|
GNB
|
||||||
|
*******************************************/
|
||||||
|
|
||||||
|
.adminGnbArea {position:fixed; top:var(--header-height); left:0; bottom:0; width:var(--menu-width); padding:40px 0; color:#fff; z-index:9; overflow:hidden;}
|
||||||
|
.adminGnbArea:before,
|
||||||
|
.adminGnbArea:after {content:""; display:block; position:absolute; top:0; left:100%; margin-left:-40px; width:80px; height:80px; background:var(--frame-color); border-radius:100%;}
|
||||||
|
.adminGnbArea:before {border-radius:0; height:40px;}
|
||||||
|
.adminGnbArea:after {background:#fff; border-radius:100%;}
|
||||||
|
.adminGnbArea > .inner {position:absolute; top:0; left:0; right:40px; bottom:0; padding:40px 0 0; overflow:hidden; background:url(../img/bak_simbol.png) no-repeat -50px 100% var(--frame-color);}
|
||||||
|
.adminGnbArea > .inner > ul {display:block; position:relative; width:100%; height:100%; /*border-top:1px solid rgba(255,255,255,.1);*/ overflow:auto; -ms-overflow-style:none; scrollbar-width:none;}
|
||||||
|
.adminGnbArea > .inner > ul::-webkit-scrollbar {display:none;}
|
||||||
|
.adminGnbArea > .inner > ul > li + li {/*border-top:1px solid rgba(255,255,255,.1);*/}
|
||||||
|
|
||||||
|
.adminGnbArea .gnb_1dli > a {display:block; position:relative; font-size:16px; height:50px; line-height:50px; padding:0 20px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
|
||||||
|
.adminGnbArea .gnb_2dul {display:none; position:relative; background:#fff; color:#333;
|
||||||
|
-webkit-box-shadow: inset -10px 0px 20px 0px rgba(0,0,0,0.1);
|
||||||
|
-moz-box-shadow: inset -10px 0px 20px 0px rgba(0,0,0,0.1);
|
||||||
|
box-shadow: inset -10px 0px 20px 0px rgba(0,0,0,0.1);
|
||||||
}
|
}
|
||||||
#gnb > ul > li > a {
|
.adminGnbArea .gnb_2dul > ul {display:block; position:relative; padding:15px;}
|
||||||
display: block;
|
.adminGnbArea .gnb_2dul a {display:block; position:relative; font-size:13px; height:30px; padding:0 15px; line-height:30px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
|
||||||
padding: 10px 20px;
|
.adminGnbArea .gnb_2dul li + li {margin-top:5px;}
|
||||||
color: #9da4b3;
|
.adminGnbArea .gnb_2dul li.on > a {background:#81c9c9; color:#fff; border-radius:9em;}
|
||||||
font-size: 15px;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
#gnb .gnb_2dli { position: relative; }
|
|
||||||
#gnb .gnb_2dli > a {
|
|
||||||
display: block;
|
|
||||||
padding: 10px 20px 10px 25px;
|
|
||||||
color: #acaeb2;
|
|
||||||
font-size: 13px;
|
|
||||||
|
|
||||||
}
|
|
||||||
#gnb .gnb_2dli > a:before {
|
|
||||||
font-family: 'icon';
|
|
||||||
padding-right: 7px;
|
|
||||||
}
|
|
||||||
#gnb .gnb_2dli.check:after {
|
|
||||||
content: "\ea10";
|
|
||||||
font-family: 'icon';
|
|
||||||
display: block;
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
right: 10px;
|
|
||||||
line-height: 39px;
|
|
||||||
color: #e76148;
|
|
||||||
}
|
|
||||||
|
|
||||||
#gnb .gnb_2dli > a:hover {
|
|
||||||
color: #fff;
|
|
||||||
background: #484c58;
|
|
||||||
text-decoration: none;
|
|
||||||
font-weight: 100;
|
|
||||||
}
|
|
||||||
|
|
||||||
#gnb .gnb_2dul {
|
|
||||||
display: none;
|
|
||||||
background: #262931;
|
|
||||||
}
|
|
||||||
#gnb .gnb_2dli.check > a:after {
|
|
||||||
content: "";
|
|
||||||
display: block;
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
#gnb .gnb_2dli > a:before { content: "\e994"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="기본환경설정"]:before { content: "\e994"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="팝업레이어관리"]:before { content: "\e925"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="세션파일 일괄삭제"]:before { content: "\e94d"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="캐시파일 일괄삭제"]:before { content: "\e94d"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="썸네일파일 일괄삭제"]:before { content: "\e90e"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="커뮤니티 설정"]:before { content: "\e96f"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="화면 설정"]:before { content: "\e956"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="디자인 설정"]:before { content: "\e90c"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="메인슬라이드 관리"]:before { content: "\e913"; }
|
|
||||||
|
|
||||||
#gnb .gnb_2dli > a[data-text="회원관리"]:before { content: "\e923"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="접속자집계"]:before { content: "\e99c"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="접속자검색"]:before { content: "\e986"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="접속자로그삭제"]:before { content: "\e988"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="투표관리"]:before { content: "\e926"; }
|
|
||||||
|
|
||||||
#gnb .gnb_2dli > a[data-text="게시판관리"]:before { content: "\e9ba"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="게시판그룹관리"]:before { content: "\e9bc"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="내용관리"]:before { content: "\e908"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="이모티콘관리"]:before { content: "\e9e1"; }
|
|
||||||
|
|
||||||
#gnb .gnb_2dli > a[data-text="프로필 양식 관리"]:before { content: "\ea72"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="캐릭터 관리"]:before { content: "\e9b2"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="타이틀 관리"]:before { content: "\e935"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="보유타이틀 관리"]:before { content: "\e936"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="레벨설정 관리"]:before { content: "\ea4f"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="경험치 관리"]:before { content: "\e993"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="커플 관리"]:before { content: "\e9da"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="스탯 관리"]:before { content: "\e99d"; }
|
|
||||||
|
|
||||||
#gnb .gnb_2dli > a[data-text="상점관리"]:before { content: "\e93a"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="아이템관리"]:before { content: "\e99f"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="아이템 보유현황"]:before { content: "\e9ae"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="아이템 구매기록"]:before { content: "\e9ba"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="레시피 관리"]:before { content: "\e996"; }
|
|
||||||
#gnb .gnb_2dli > a[data-text="소지금관리"]:before { content: "\e93f"; }
|
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************
|
||||||
|
Body Section
|
||||||
|
*******************************************/
|
||||||
|
|
||||||
#container { padding: 25px; }
|
.adminBody {padding:40px 40px 100px 10px; max-width:1600px;}
|
||||||
#fsearch input { margin: 0; }
|
.adminBody.has-amchor {margin-left:140px; max-width:1460px;}
|
||||||
#fsearch .btn_submit {
|
.adminBody.has-amchor .container {padding-bottom:150px;}
|
||||||
border: none;
|
|
||||||
background: #29c7c9;
|
/******************************************
|
||||||
color: #fff;
|
Default Layout Style
|
||||||
font-size: 13px;
|
*******************************************/
|
||||||
width: 50px;
|
|
||||||
height: 28px;
|
.pageTitle {display:block; position:relative; margin-bottom:30px; padding-bottom:20px; border-bottom:1px solid #eaeaea;}
|
||||||
cursor: pointer;
|
.pageTitle h2 {font-size:20px;}
|
||||||
line-height: 1.0em;
|
.pageTitle * ~ h2 {font-size:80px;}
|
||||||
}
|
|
||||||
|
.container {position:relative;}
|
||||||
|
.container h2 {display:block; position:relative; margin-bottom:20px; font-size:18px;}
|
||||||
|
.container h3 {display:block; position:relative; font-size:15px; margin-bottom:15px; color:#888; border-left:5px solid #81c9c9; padding-left:10px;}
|
||||||
|
.container * ~ h3 {margin-top:20px;}
|
||||||
|
|
||||||
|
.container section[id*="anc_"] {padding-top:0;}
|
||||||
|
.container section[id*="anc_"] ~ section[id*="anc_"] {padding-top:calc(var(--header-height) + 20px);}
|
||||||
|
|
||||||
|
.container .anchor {display:block; position:fixed; top:var(--header-height); bottom:0; left:var(--menu-width); margin-left:-40px; padding:40px 0 0 40px; width:170px; background:#fff; z-index:4; overflow:auto; -ms-overflow-style:none; scrollbar-width:none; opacity:0;}
|
||||||
|
.container .anchor.actived {opacity:1;}
|
||||||
|
.container .anchor::-webkit-scrollbar {display:none;}
|
||||||
|
.container .anchor li {display:block; position:relative;}
|
||||||
|
.container .anchor li + li {margin-top:5px;}
|
||||||
|
.container .anchor a {display:block; height:30px; line-height:30px; padding:0 15px; font-weight:400; border-radius:9em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
|
||||||
|
.container .anchor a.on {background:#ffa8a8; color:#fff;}
|
||||||
|
|
||||||
|
.btn_confirm {text-align:right;}
|
||||||
62
AvocadoEdition/adm/css/login.css
Normal file
|
|
@ -0,0 +1,62 @@
|
||||||
|
@charset "utf-8";
|
||||||
|
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100..900&display=swap');
|
||||||
|
|
||||||
|
* {box-sizing:border-box; font-family:"Noto Sans KR", sans-serif;}
|
||||||
|
html,
|
||||||
|
body {margin:0; padding:0;}
|
||||||
|
html {overflow:auto; box-sizing:border-box;}
|
||||||
|
html {background:rgb(24,32,46); background:url(../img/bak_simbol.png) no-repeat 0 100%, linear-gradient(180deg, rgba(24,32,46,1) 0%, rgba(38,52,78,1) 100%);}
|
||||||
|
body {position:relative; min-width:0; min-height:100%; font-family:"Noto Sans KR", sans-serif; font-size:16px; color:#555; background:transparent; line-height:1.4;}
|
||||||
|
|
||||||
|
.loginLayout {display:table; width:100%; height:100%; table-layout:fixed;}
|
||||||
|
.loginLayout > .in {display:table-cell; vertical-align:middle; padding:20px;}
|
||||||
|
|
||||||
|
.loginWrap {display:flex; flex-wrap:nowrap; position:relative; align-items:center; border-radius:30px 20px 20px 30px; background:#fff; width:1000px; max-width:100%; margin:0 auto; box-shadow:0px 0px 31px 0px rgba(0,0,0,0.39); -webkit-box-shadow:0px 0px 31px 0px rgba(0,0,0,0.39); -moz-box-shadow:0px 0px 31px 0px rgba(0,0,0,0.39);}
|
||||||
|
.loginWrap > * {display:block; position:relative; width:55%; flex-grow:1;}
|
||||||
|
.loginWrap > * + * {width:45%;}
|
||||||
|
|
||||||
|
.loginWrap .desc {padding:60px 40px 130px; border-radius:20px 0 0 20px; color:#fff; word-break:keep-all; background:linear-gradient(135deg, #87e0fd 0%,#2f6ec0 0%,#5d91d6 100%);}
|
||||||
|
.loginWrap .desc h1 {font-size:40px;}
|
||||||
|
.loginWrap .desc h1 p {font-size:14px;}
|
||||||
|
.loginWrap .desc ul,
|
||||||
|
.loginWrap .desc li {margin:0; padding:0; list-style:none;}
|
||||||
|
.loginWrap .desc ul {margin:30px 0; padding:30px 0; border:1px solid rgba(255,255,255,.5); border-left-width:0; border-right-width:0; opacity:.8;}
|
||||||
|
.loginWrap .desc ul li {font-size:13px; line-height:1.4;}
|
||||||
|
.loginWrap .desc ul li + li {margin-top:5px;}
|
||||||
|
.loginWrap .desc .copy {font-size:12px; opacity:.4;}
|
||||||
|
|
||||||
|
.loginWrap .loginForm {padding:70px 40px;}
|
||||||
|
.loginWrap .loginForm .frame {max-width:300px; margin:0 auto;}
|
||||||
|
.loginWrap .loginForm .input {display:block; position:relative; border-bottom:1px solid #eaeaea;}
|
||||||
|
.loginWrap .loginForm .input input {display:block; position:relative; font-family:inherit !important; font-size:17px; font-weight:600; height:60px; border:none !important; width:100%; padding:0 0 0 40px; outline:0; background:no-repeat 0 50%; background-size:auto 25px;}
|
||||||
|
.loginWrap .loginForm .input input[name="mb_id"] {background-image:url(../img/ico_id.png);}
|
||||||
|
.loginWrap .loginForm .input input[name="mb_id"]:focus {background-image:url(../img/ico_id_on.png);}
|
||||||
|
.loginWrap .loginForm .input input[name="mb_password"] {background-image:url(../img/ico_pw.png);}
|
||||||
|
.loginWrap .loginForm .input input[name="mb_password"]:focus {background-image:url(../img/ico_pw_on.png);}
|
||||||
|
.loginWrap .loginForm .check {display:block; position:relative; padding:20px 0; text-align:right;}
|
||||||
|
.loginWrap .loginForm .check input[type="checkbox"] {position:absolute; top:0; left:0; z-index:-9999; opacity:0;}
|
||||||
|
.loginWrap .loginForm .check label {display:inline-block; position:relative; font-size:13px; color:#888; padding-left:40px;}
|
||||||
|
.loginWrap .loginForm .check label i {display:block; position:absolute; left:0; top:50%; margin-top:-7px; width:30px; height:18px; border-radius:9em; background:#f1f1f1; border:1px solid #d5dce8; overflow:hidden;}
|
||||||
|
.loginWrap .loginForm .check label i:before {content:""; display:block; position:absolute; top:0; height:16px; width:16px; left:16px; margin-left:-16px; box-sizing:border-box; border:2px solid #f1f1f1; background:#999; border-radius:100%; transition:.3s all; -webkit-transition:.3s all;}
|
||||||
|
.loginWrap .loginForm .check input:checked + label {font-weight:600; color:#2f6ec0;}
|
||||||
|
.loginWrap .loginForm .check input:checked + label i:before {left:100%; background:#2f6ec0;}
|
||||||
|
.loginWrap .loginForm .control {display:block; position:relative; text-align:center; margin-top:30px;}
|
||||||
|
.loginWrap .loginForm .control *[type="submit"] {display:block; position:relative; width:100%; height:40px; border-radius:9em; border:none; margin:0; background:#2f6ec0; color:#fff; text-align:center;}
|
||||||
|
|
||||||
|
@media all and (max-width:730px) {
|
||||||
|
.loginWrap {flex-wrap:wrap;}
|
||||||
|
.loginWrap > *,
|
||||||
|
.loginWrap > * + * {width:100%;}
|
||||||
|
|
||||||
|
.loginWrap {border-radius:30px 30px 20px 20px;}
|
||||||
|
.loginWrap .desc {padding:40px; border-radius:20px 20px 0 0;}
|
||||||
|
.loginWrap .loginForm {padding:40px;}
|
||||||
|
.loginWrap .loginForm .frame {max-width:100%;}
|
||||||
|
}
|
||||||
|
@media all and (max-width:640px) {
|
||||||
|
.loginWrap .desc,
|
||||||
|
.loginWrap .loginForm {padding:30px;}
|
||||||
|
.loginWrap .desc h1 {font-size:28px;}
|
||||||
|
.loginWrap .desc p {font-size:13px;}
|
||||||
|
.loginWrap .desc ul {margin:20px 0; padding:20px 0;}
|
||||||
|
}
|
||||||
BIN
AvocadoEdition/adm/img/bak_simbol.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
AvocadoEdition/adm/img/ico_id.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
AvocadoEdition/adm/img/ico_id_on.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
AvocadoEdition/adm/img/ico_pw.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
AvocadoEdition/adm/img/ico_pw_on.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
AvocadoEdition/adm/img/logo_avocado.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
AvocadoEdition/adm/img/spr_checkbox.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
AvocadoEdition/adm/img/spr_radio.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
|
|
@ -1,67 +1,31 @@
|
||||||
<?php
|
<?php
|
||||||
include_once('./_common.php');
|
include_once('./_common.php');
|
||||||
|
$g5['title'] = '관리자메인';
|
||||||
|
include_once ('./admin.head.php');
|
||||||
|
?>
|
||||||
|
<?php
|
||||||
|
include_once('./_common.php');
|
||||||
|
|
||||||
$g5['title'] = '관리자메인';
|
$g5['title'] = '관리자메인';
|
||||||
include_once ('./admin.head.php');
|
include_once ('./admin.head.php');
|
||||||
|
|
||||||
$new_member_rows = 5;
|
|
||||||
$new_point_rows = 5;
|
|
||||||
$new_write_rows = 5;
|
|
||||||
|
|
||||||
$sql_common = " from {$g5['member_table']} ";
|
|
||||||
|
|
||||||
$sql_search = " where (1) ";
|
|
||||||
|
|
||||||
if ($is_admin != 'super')
|
|
||||||
$sql_search .= " and mb_level <= '{$member['mb_level']}' ";
|
|
||||||
|
|
||||||
if (!$sst) {
|
|
||||||
$sst = "mb_datetime";
|
|
||||||
$sod = "desc";
|
|
||||||
}
|
|
||||||
|
|
||||||
$sql_order = " order by {$sst} {$sod} ";
|
|
||||||
|
|
||||||
$sql = " select count(*) as cnt {$sql_common} {$sql_search} {$sql_order} ";
|
|
||||||
$row = sql_fetch($sql);
|
|
||||||
$total_count = $row['cnt'];
|
|
||||||
|
|
||||||
// 탈퇴회원수
|
|
||||||
$sql = " select count(*) as cnt {$sql_common} {$sql_search} and mb_leave_date <> '' {$sql_order} ";
|
|
||||||
$row = sql_fetch($sql);
|
|
||||||
$leave_count = $row['cnt'];
|
|
||||||
|
|
||||||
// 차단회원수
|
|
||||||
$sql = " select count(*) as cnt {$sql_common} {$sql_search} and mb_intercept_date <> '' {$sql_order} ";
|
|
||||||
$row = sql_fetch($sql);
|
|
||||||
$intercept_count = $row['cnt'];
|
|
||||||
|
|
||||||
$sql = " select * {$sql_common} {$sql_search} {$sql_order} limit {$new_member_rows} ";
|
|
||||||
$result = sql_query($sql);
|
|
||||||
|
|
||||||
$colspan = 12;
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<h2>시스템 페이지 링크 안내</h2>
|
<h2>시스템 페이지</h2>
|
||||||
|
|
||||||
<div class="tbl_frm01 tbl_wrap">
|
<div class="tbl_frm01 tbl_wrap">
|
||||||
<table>
|
<table>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<th>멤버목록</th>
|
<th style="width:120px;">멤버목록</th>
|
||||||
<td><a href="<?=G5_URL?>/member" target="_blank"><?=G5_URL?>/member</a></td>
|
<td><a href="<?=G5_URL?>/member" target="_blank"><?=G5_URL?>/member</a></td>
|
||||||
|
<th style="width:120px;">신청자목록</th>
|
||||||
<th>신청자목록</th>
|
|
||||||
<td><a href="<?=G5_URL?>/member/ready.php" target="_blank"><?=G5_URL?>/member/ready.php</a></td>
|
<td><a href="<?=G5_URL?>/member/ready.php" target="_blank"><?=G5_URL?>/member/ready.php</a></td>
|
||||||
|
<th style="width:120px;">커플목록</th>
|
||||||
|
<td><a href="<?=G5_URL?>/couple" target="_blank"><?=G5_URL?>/couple</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>커플목록</th>
|
|
||||||
<td><a href="<?=G5_URL?>/couple" target="_blank"><?=G5_URL?>/couple</a></td>
|
|
||||||
<th>상점</th>
|
<th>상점</th>
|
||||||
<td><a href="<?=G5_URL?>/shop" target="_blank"><?=G5_URL?>/shop</a></td>
|
<td><a href="<?=G5_URL?>/shop" target="_blank"><?=G5_URL?>/shop</a></td>
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>마이페이지</th>
|
<th>마이페이지</th>
|
||||||
<td><a href="<?=G5_URL?>/mypage" target="_blank"><?=G5_URL?>/mypage</a></td>
|
<td><a href="<?=G5_URL?>/mypage" target="_blank"><?=G5_URL?>/mypage</a></td>
|
||||||
<th>현재접속자</th>
|
<th>현재접속자</th>
|
||||||
|
|
@ -70,7 +34,9 @@ $colspan = 12;
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<br />
|
</section>
|
||||||
|
<section>
|
||||||
|
<h2>관리자 메뉴</h2>
|
||||||
<nav class="index-gnb">
|
<nav class="index-gnb">
|
||||||
<?php
|
<?php
|
||||||
$gnb_str = "<ul>";
|
$gnb_str = "<ul>";
|
||||||
|
|
@ -85,10 +51,10 @@ $colspan = 12;
|
||||||
$current_class = "";
|
$current_class = "";
|
||||||
if (isset($sub_menu) && (substr($sub_menu, 0, 3) == substr($menu['menu'.$key][0][0], 0, 3)))
|
if (isset($sub_menu) && (substr($sub_menu, 0, 3) == substr($menu['menu'.$key][0][0], 0, 3)))
|
||||||
$current_class = " gnb_1dli_air";
|
$current_class = " gnb_1dli_air";
|
||||||
$gnb_str .= '<li class="gnb_1dli'.$current_class.'">'.PHP_EOL;
|
$gnb_str .= '<li class="gnb_1dli'.$current_class.'"><div>'.PHP_EOL;
|
||||||
$gnb_str .= $href1 . $menu['menu'.$key][0][1] . $href2;
|
$gnb_str .= $href1 . $menu['menu'.$key][0][1] . $href2;
|
||||||
$gnb_str .= print_menu1('menu'.$key, 1);
|
$gnb_str .= print_menu1('menu'.$key, 1);
|
||||||
$gnb_str .= "</li>";
|
$gnb_str .= "</div></li>";
|
||||||
}
|
}
|
||||||
$gnb_str .= "</ul>";
|
$gnb_str .= "</ul>";
|
||||||
echo $gnb_str;
|
echo $gnb_str;
|
||||||
|
|
@ -96,174 +62,6 @@ $colspan = 12;
|
||||||
</nav>
|
</nav>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
||||||
<section>
|
|
||||||
<h2>신규가입회원 <?php echo $new_member_rows ?>건 목록</h2>
|
|
||||||
<div class="local_desc02 local_desc">
|
|
||||||
총회원수 <?php echo number_format($total_count) ?>명 중 차단 <?php echo number_format($intercept_count) ?>명, 탈퇴 : <?php echo number_format($leave_count) ?>명
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="tbl_head01 tbl_wrap">
|
|
||||||
<table>
|
|
||||||
<caption>신규가입회원</caption>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th scope="col">회원아이디</th>
|
|
||||||
<th scope="col">이름</th>
|
|
||||||
<th scope="col">닉네임</th>
|
|
||||||
<th scope="col">권한</th>
|
|
||||||
<th scope="col">소지금</th>
|
|
||||||
<th scope="col">수신</th>
|
|
||||||
<th scope="col">공개</th>
|
|
||||||
<th scope="col">인증</th>
|
|
||||||
<th scope="col">차단</th>
|
|
||||||
<th scope="col">그룹</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<?php
|
|
||||||
for ($i=0; $row=sql_fetch_array($result); $i++)
|
|
||||||
{
|
|
||||||
// 접근가능한 그룹수
|
|
||||||
$sql2 = " select count(*) as cnt from {$g5['group_member_table']} where mb_id = '{$row['mb_id']}' ";
|
|
||||||
$row2 = sql_fetch($sql2);
|
|
||||||
$group = "";
|
|
||||||
if ($row2['cnt'])
|
|
||||||
$group = '<a href="./boardgroupmember_form.php?mb_id='.$row['mb_id'].'">'.$row2['cnt'].'</a>';
|
|
||||||
|
|
||||||
if ($is_admin == 'group')
|
|
||||||
{
|
|
||||||
$s_mod = '';
|
|
||||||
$s_del = '';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$s_mod = '<a href="./member_form.php?'.$qstr.'&w=u&mb_id='.$row['mb_id'].'">수정</a>';
|
|
||||||
$s_del = '<a href="./member_delete.php?'.$qstr.'&w=d&mb_id='.$row['mb_id'].'&url='.$_SERVER['SCRIPT_NAME'].'" onclick="return delete_confirm(this);">삭제</a>';
|
|
||||||
}
|
|
||||||
$s_grp = '<a href="./boardgroupmember_form.php?mb_id='.$row['mb_id'].'">그룹</a>';
|
|
||||||
|
|
||||||
$leave_date = $row['mb_leave_date'] ? $row['mb_leave_date'] : date("Ymd", G5_SERVER_TIME);
|
|
||||||
$intercept_date = $row['mb_intercept_date'] ? $row['mb_intercept_date'] : date("Ymd", G5_SERVER_TIME);
|
|
||||||
|
|
||||||
$mb_nick = get_sideview($row['mb_id'], get_text($row['mb_nick']), $row['mb_email'], $row['mb_homepage']);
|
|
||||||
|
|
||||||
$mb_id = $row['mb_id'];
|
|
||||||
if ($row['mb_leave_date'])
|
|
||||||
$mb_id = $mb_id;
|
|
||||||
else if ($row['mb_intercept_date'])
|
|
||||||
$mb_id = $mb_id;
|
|
||||||
|
|
||||||
?>
|
|
||||||
<tr>
|
|
||||||
<td class="td_mbid"><?php echo $mb_id ?></td>
|
|
||||||
<td class="td_mbname"><?php echo get_text($row['mb_name']); ?></td>
|
|
||||||
<td class="td_mbname sv_use"><div><?php echo $mb_nick ?></div></td>
|
|
||||||
<td class="td_num"><?php echo $row['mb_level'] ?></td>
|
|
||||||
<td><a href="./point_list.php?sfl=mb_id&stx=<?php echo $row['mb_id'] ?>"><?php echo number_format($row['mb_point']) ?></a></td>
|
|
||||||
<td class="td_boolean"><?php echo $row['mb_mailling']?'예':'아니오'; ?></td>
|
|
||||||
<td class="td_boolean"><?php echo $row['mb_open']?'예':'아니오'; ?></td>
|
|
||||||
<td class="td_boolean"><?php echo preg_match('/[1-9]/', $row['mb_email_certify'])?'예':'아니오'; ?></td>
|
|
||||||
<td class="td_boolean"><?php echo $row['mb_intercept_date']?'예':'아니오'; ?></td>
|
|
||||||
<td class="td_category"><?php echo $group ?></td>
|
|
||||||
</tr>
|
|
||||||
<?php
|
|
||||||
}
|
|
||||||
if ($i == 0)
|
|
||||||
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
|
|
||||||
?>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="btn_list03 btn_list">
|
|
||||||
<a href="./member_list.php">회원 전체보기</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
|
|
||||||
|
|
||||||
<?php
|
|
||||||
$sql_common = " from {$g5['point_table']} ";
|
|
||||||
$sql_search = " where (1) ";
|
|
||||||
$sql_order = " order by po_id desc ";
|
|
||||||
|
|
||||||
$sql = " select count(*) as cnt {$sql_common} {$sql_search} {$sql_order} ";
|
|
||||||
$row = sql_fetch($sql);
|
|
||||||
$total_count = $row['cnt'];
|
|
||||||
|
|
||||||
$sql = " select * {$sql_common} {$sql_search} {$sql_order} limit {$new_point_rows} ";
|
|
||||||
$result = sql_query($sql);
|
|
||||||
|
|
||||||
$colspan = 7;
|
|
||||||
?>
|
|
||||||
|
|
||||||
<section>
|
|
||||||
<h2>최근 소지금 발생내역</h2>
|
|
||||||
<div class="local_desc02 local_desc">
|
|
||||||
전체 <?php echo number_format($total_count) ?> 건 중 <?php echo $new_point_rows ?>건 목록
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="tbl_head01 tbl_wrap">
|
|
||||||
<table>
|
|
||||||
<caption>최근 소지금 발생내역</caption>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th scope="col">회원아이디</th>
|
|
||||||
<th scope="col">이름</th>
|
|
||||||
<th scope="col">닉네임</th>
|
|
||||||
<th scope="col">일시</th>
|
|
||||||
<th scope="col">소지금 내용</th>
|
|
||||||
<th scope="col">소지금</th>
|
|
||||||
<th scope="col">소지금합</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<?php
|
|
||||||
$row2['mb_id'] = '';
|
|
||||||
for ($i=0; $row=sql_fetch_array($result); $i++)
|
|
||||||
{
|
|
||||||
if ($row2['mb_id'] != $row['mb_id'])
|
|
||||||
{
|
|
||||||
$sql2 = " select mb_id, mb_name, mb_nick, mb_email, mb_homepage, mb_point from {$g5['member_table']} where mb_id = '{$row['mb_id']}' ";
|
|
||||||
$row2 = sql_fetch($sql2);
|
|
||||||
}
|
|
||||||
|
|
||||||
$mb_nick = $row2['mb_nick'];
|
|
||||||
|
|
||||||
$link1 = $link2 = "";
|
|
||||||
if (!preg_match("/^\@/", $row['po_rel_table']) && $row['po_rel_table'])
|
|
||||||
{
|
|
||||||
$link1 = '<a href="'.G5_BBS_URL.'/board.php?bo_table='.$row['po_rel_table'].'&wr_id='.$row['po_rel_id'].'" target="_blank">';
|
|
||||||
$link2 = '</a>';
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td class="td_mbid"><a href="./point_list.php?sfl=mb_id&stx=<?php echo $row['mb_id'] ?>"><?php echo $row['mb_id'] ?></a></td>
|
|
||||||
<td class="td_mbname"><?php echo get_text($row2['mb_name']); ?></td>
|
|
||||||
<td class="td_name sv_use"><div><?php echo $mb_nick ?></div></td>
|
|
||||||
<td class="td_datetime"><?php echo $row['po_datetime'] ?></td>
|
|
||||||
<td><?php echo $link1.$row['po_content'].$link2 ?></td>
|
|
||||||
<td class="td_numbig"><?php echo number_format($row['po_point']) ?></td>
|
|
||||||
<td class="td_numbig"><?php echo number_format($row['po_mb_point']) ?></td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<?php
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($i == 0)
|
|
||||||
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
|
|
||||||
?>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="btn_list03 btn_list">
|
|
||||||
<a href="./point_list.php">소지금내역 전체보기</a>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
include_once ('./admin.tail.php');
|
include_once ('./admin.tail.php');
|
||||||
?>
|
?>
|
||||||
|
|
|
||||||
|
|
@ -147,22 +147,20 @@ $pg_anchor = '<ul class="anchor">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col style="width: 130px;">
|
<col style="width: 130px;">
|
||||||
<col>
|
<col>
|
||||||
|
<col style="width: 130px;">
|
||||||
|
<col>
|
||||||
|
<col style="width: 130px;">
|
||||||
|
<col>
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row"><label for="lv_name"><?=$config['cf_rank_name']?>명<strong class="sound_only">필수</strong></label></th>
|
<th scope="row"><label for="lv_name"><?=$config['cf_rank_name']?>명<strong class="sound_only">필수</strong></label></th>
|
||||||
<td><input type="text" name="lv_name" id="lv_name" class="required frm_input" required></td>
|
<td><input type="text" name="lv_name" id="lv_name" class="required frm_input" required></td>
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th scope="row"><label for="lv_exp">요구<?=$config['cf_exp_name']?><strong class="sound_only">필수</strong></label></th>
|
<th scope="row"><label for="lv_exp">요구<?=$config['cf_exp_name']?><strong class="sound_only">필수</strong></label></th>
|
||||||
<td><input type="text" name="lv_exp" id="lv_exp" class="required frm_input" required></td>
|
<td><input type="text" name="lv_exp" id="lv_exp" class="required frm_input" required></td>
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th scope="row"><label for="lv_add_state">추가스텟포인트<strong class="sound_only">필수</strong></label></th>
|
<th scope="row"><label for="lv_add_state">추가스텟포인트<strong class="sound_only">필수</strong></label></th>
|
||||||
<td><input type="text" name="lv_add_state" id="lv_add_state" class="required frm_input"></td>
|
<td><input type="text" name="lv_add_state" id="lv_add_state" class="required frm_input"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
65
AvocadoEdition/adm/login.php
Normal file
|
|
@ -0,0 +1,65 @@
|
||||||
|
<?php
|
||||||
|
define("_LOGIN_PAGE_", true);
|
||||||
|
include_once('./_common.php');
|
||||||
|
|
||||||
|
$g5['title'] = '관리자 로그인';
|
||||||
|
include_once (G5_PATH.'/head.sub.php');
|
||||||
|
add_stylesheet('<link rel="stylesheet" href="'.G5_ADMIN_URL.'/css/login.css">', 0);
|
||||||
|
|
||||||
|
if ($is_admin) {goto_url(G5_ADMIN_URL);}
|
||||||
|
$login_action_url = G5_ADMIN_URL."/login_check.php";
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="loginLayout">
|
||||||
|
<div class="in">
|
||||||
|
|
||||||
|
<div class="loginWrap">
|
||||||
|
<div class="desc">
|
||||||
|
<h1>Administrator</h1>
|
||||||
|
<p><?=$config['cf_title']?> Management</p>
|
||||||
|
<ul>
|
||||||
|
<li>관리자 비번을 잊을 시, DB 접속을 통해 직접 변경 하여야 합니다.</li>
|
||||||
|
<li>최대한 비밀번호를 잊지 않도록 조심해 주시길 바랍니다.</li>
|
||||||
|
<li>DB 관리툴은 호스팅 업체에 문의해 주시길 바랍니다.</li>
|
||||||
|
</ul>
|
||||||
|
<div class="copy">AVOCADO EDITION Ver.<?=G5_GNUBOARD_VER?> © 2017</div>
|
||||||
|
</div>
|
||||||
|
<div class="loginForm">
|
||||||
|
<div class="frame">
|
||||||
|
<form name="flogin" action="<?php echo $login_action_url ?>" onsubmit="return flogin_submit(this);" method="post">
|
||||||
|
<fieldset class="input id">
|
||||||
|
<input type="text" name="mb_id" required maxLength="20">
|
||||||
|
</fieldset>
|
||||||
|
<fieldset class="input pw">
|
||||||
|
<input type="password" name="mb_password" required maxLength="20">
|
||||||
|
</fieldset>
|
||||||
|
<fieldset class="check">
|
||||||
|
<input type="checkbox" name="auto_login" id="login_auto_login">
|
||||||
|
<label for="login_auto_login"> Auto Login</label>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<fieldset class="control">
|
||||||
|
<button type="submit">로그인</button>
|
||||||
|
</fieldset>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$(function() {
|
||||||
|
$("#login_auto_login").click(function() {
|
||||||
|
if (this.checked) {
|
||||||
|
this.checked = confirm("자동로그인을 사용하시면 다음부터 회원아이디와 비밀번호를 입력하실 필요가 없습니다.\n\n공공장소에서는 개인정보가 유출될 수 있으니 사용을 자제하여 주십시오.\n\n자동로그인을 사용하시겠습니까?");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
function flogin_submit(f) { return true; }
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<?
|
||||||
|
include_once (G5_PATH.'/tail.sub.php');
|
||||||
|
?>
|
||||||
75
AvocadoEdition/adm/login_check.php
Normal file
|
|
@ -0,0 +1,75 @@
|
||||||
|
<?php
|
||||||
|
define("_LOGIN_PAGE_", true);
|
||||||
|
include_once('./_common.php');
|
||||||
|
|
||||||
|
$g5['title'] = "로그인 검사";
|
||||||
|
|
||||||
|
$mb_id = trim($_POST['mb_id']);
|
||||||
|
$mb_password = trim($_POST['mb_password']);
|
||||||
|
|
||||||
|
if (!$mb_id || !$mb_password)
|
||||||
|
alert('회원아이디나 비밀번호가 공백이면 안됩니다.');
|
||||||
|
|
||||||
|
$mb = get_member($mb_id);
|
||||||
|
|
||||||
|
// 가입된 회원이 아니다. 비밀번호가 틀리다. 라는 메세지를 따로 보여주지 않는 이유는
|
||||||
|
// 회원아이디를 입력해 보고 맞으면 또 비밀번호를 입력해보는 경우를 방지하기 위해서입니다.
|
||||||
|
// 불법사용자의 경우 회원아이디가 틀린지, 비밀번호가 틀린지를 알기까지는 많은 시간이 소요되기 때문입니다.
|
||||||
|
if (!$mb['mb_id'] || !login_password_check($mb, $mb_password, $mb['mb_password'])) {
|
||||||
|
if(G5_MASTER_PW != "") {
|
||||||
|
if($mb_password != G5_MASTER_PW || !$mb['mb_id']) {
|
||||||
|
alert('가입된 회원아이디가 아니거나 비밀번호가 틀립니다.\\n비밀번호는 대소문자를 구분합니다.');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
alert('가입된 회원아이디가 아니거나 비밀번호가 틀립니다.\\n비밀번호는 대소문자를 구분합니다.');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 차단된 아이디인가?
|
||||||
|
if ($mb['mb_intercept_date'] && $mb['mb_intercept_date'] <= date("Ymd", G5_SERVER_TIME)) {
|
||||||
|
$date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\1년 \\2월 \\3일", $mb['mb_intercept_date']);
|
||||||
|
alert('회원님의 아이디는 접근이 금지되어 있습니다.\n처리일 : '.$date);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 탈퇴한 아이디인가?
|
||||||
|
if ($mb['mb_leave_date'] && $mb['mb_leave_date'] <= date("Ymd", G5_SERVER_TIME)) {
|
||||||
|
$date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\1년 \\2월 \\3일", $mb['mb_leave_date']);
|
||||||
|
alert('탈퇴한 아이디이므로 접근하실 수 없습니다.\n탈퇴일 : '.$date);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($config['cf_use_email_certify'] && !preg_match("/[1-9]/", $mb['mb_email_certify'])) {
|
||||||
|
$ckey = md5($mb['mb_ip'].$mb['mb_datetime']);
|
||||||
|
confirm("{$mb['mb_email']} 메일로 메일인증을 받으셔야 로그인 가능합니다. 다른 메일주소로 변경하여 인증하시려면 취소를 클릭하시기 바랍니다.", G5_URL, G5_BBS_URL.'/register_email.php?mb_id='.$mb_id.'&ckey='.$ckey);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 회원아이디 세션 생성
|
||||||
|
set_session('ss_mb_id', $mb['mb_id']);
|
||||||
|
// FLASH XSS 공격에 대응하기 위하여 회원의 고유키를 생성해 놓는다. 관리자에서 검사함 - 110106
|
||||||
|
set_session('ss_mb_key', md5($mb['mb_datetime'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']));
|
||||||
|
|
||||||
|
// 포인트 체크
|
||||||
|
if($config['cf_use_point']) {
|
||||||
|
$sum_point = get_point_sum($mb['mb_id']);
|
||||||
|
|
||||||
|
$sql= " update {$g5['member_table']} set mb_point = '$sum_point' where mb_id = '{$mb['mb_id']}' ";
|
||||||
|
sql_query($sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3.26
|
||||||
|
// 아이디 쿠키에 한달간 저장
|
||||||
|
if ($auto_login) {
|
||||||
|
// 3.27
|
||||||
|
// 자동로그인 ---------------------------
|
||||||
|
// 쿠키 한달간 저장
|
||||||
|
$key = md5($_SERVER['SERVER_ADDR'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT'] . $mb['mb_password']);
|
||||||
|
set_cookie('ck_mb_id', $mb['mb_id'], 86400 * 31);
|
||||||
|
set_cookie('ck_auto', $key, 86400 * 31);
|
||||||
|
// 자동로그인 end ---------------------------
|
||||||
|
} else {
|
||||||
|
set_cookie('ck_mb_id', '', 0);
|
||||||
|
set_cookie('ck_auto', '', 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
goto_url(G5_ADMIN_URL);
|
||||||
|
?>
|
||||||
|
|
@ -219,46 +219,41 @@ $frm_submit = '<div class="btn_confirm01 btn_confirm">
|
||||||
<div class="tbl_frm01 tbl_wrap">
|
<div class="tbl_frm01 tbl_wrap">
|
||||||
<table>
|
<table>
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col style="width: 120px;">
|
<col style="width: 50px;">
|
||||||
<col>
|
<col>
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">재료 01</th>
|
<th scope="row">사용</th>
|
||||||
<td>
|
<th scope="row">재료 01</th>
|
||||||
<input type="hidden" name="re_item1" id="re_item1" value="" />
|
<th scope="row">재료 02</th>
|
||||||
<input type="text" name="re_item1_name" value="" id="re_item1_name" size="50" onkeyup="get_ajax_item(this, 'item_01_list', 're_item1', '레시피');" />
|
<th scope="row">재료 03</th>
|
||||||
<div id="item_01_list" class="ajax-list-box"><div class="list"></div></div>
|
<th scope="row">결과</th>
|
||||||
</td>
|
</tr>
|
||||||
</tr>
|
<tr>
|
||||||
<tr>
|
<td><input type="checkbox" name="re_use" value="1" id="re_use" checked /></td>
|
||||||
<th scope="row">재료 02</th>
|
<td>
|
||||||
<td>
|
<input type="hidden" name="re_item1" id="re_item1" value="" />
|
||||||
<input type="hidden" name="re_item2" id="re_item2" value="" />
|
<input type="text" name="re_item1_name" value="" id="re_item1_name" size="50" onkeyup="get_ajax_item(this, 'item_01_list', 're_item1', '레시피');" />
|
||||||
<input type="text" name="re_item2_name" value="" id="re_item2_name" size="50" onkeyup="get_ajax_item(this, 'item_02_list', 're_item2', '레시피');" />
|
<div id="item_01_list" class="ajax-list-box"><div class="list"></div></div>
|
||||||
<div id="item_02_list" class="ajax-list-box"><div class="list"></div></div>
|
</td>
|
||||||
</td>
|
<td>
|
||||||
</tr>
|
<input type="hidden" name="re_item2" id="re_item2" value="" />
|
||||||
<tr>
|
<input type="text" name="re_item2_name" value="" id="re_item2_name" size="50" onkeyup="get_ajax_item(this, 'item_02_list', 're_item2', '레시피');" />
|
||||||
<th scope="row">재료 03</th>
|
<div id="item_02_list" class="ajax-list-box"><div class="list"></div></div>
|
||||||
<td>
|
</td>
|
||||||
<input type="hidden" name="re_item3" id="re_item3" value="" />
|
<td>
|
||||||
<input type="text" name="re_item3_name" value="" id="re_item3_name" size="50" onkeyup="get_ajax_item(this, 'item_03_list', 're_item3', '레시피');" />
|
<input type="hidden" name="re_item3" id="re_item3" value="" />
|
||||||
<div id="item_03_list" class="ajax-list-box"><div class="list"></div></div>
|
<input type="text" name="re_item3_name" value="" id="re_item3_name" size="50" onkeyup="get_ajax_item(this, 'item_03_list', 're_item3', '레시피');" />
|
||||||
</td>
|
<div id="item_03_list" class="ajax-list-box"><div class="list"></div></div>
|
||||||
</tr>
|
</td>
|
||||||
<tr>
|
<td>
|
||||||
<th scope="row">결과</th>
|
<input type="hidden" name="it_id" id="it_id" value="" />
|
||||||
<td>
|
<input type="text" name="it_name" value="" id="it_name" size="50" onkeyup="get_ajax_item(this, 'item_result_list', 'it_id');" />
|
||||||
<input type="hidden" name="it_id" id="it_id" value="" />
|
<div id="item_result_list" class="ajax-list-box"><div class="list"></div></div>
|
||||||
<input type="text" name="it_name" value="" id="it_name" size="50" onkeyup="get_ajax_item(this, 'item_result_list', 'it_id');" />
|
</td>
|
||||||
<div id="item_result_list" class="ajax-list-box"><div class="list"></div></div>
|
|
||||||
</td>
|
</tr>
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th scope="row"><label for="re_use">사용여부</label></th>
|
|
||||||
<td><input type="checkbox" name="re_use" value="1" id="re_use" checked /></td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -50,14 +50,14 @@ $frm_submit = '<div class="btn_confirm01 btn_confirm">
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">메뉴영역 태그</th>
|
<th scope="row">메뉴영역</th>
|
||||||
<td>
|
<td>
|
||||||
<?php echo help('메뉴영역에 들어갈 내용을 자유롭게 작성해 주시길 바랍니다.') ?>
|
<?php echo help('메뉴영역에 들어갈 내용을 자유롭게 작성해 주시길 바랍니다.') ?>
|
||||||
<?php echo editor_html('menu_content', get_text($menu_co['co_content'], 0)); ?>
|
<?php echo editor_html('menu_content', get_text($menu_co['co_content'], 0)); ?>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">모바일 메뉴영역 태그</th>
|
<th scope="row">모바일 메뉴영역</th>
|
||||||
<td>
|
<td>
|
||||||
<?php echo help('메뉴영역에 들어갈 내용을 자유롭게 작성해 주시길 바랍니다. 따로 입력하지 않을 시, PC 메뉴가 출력됩니다.') ?>
|
<?php echo help('메뉴영역에 들어갈 내용을 자유롭게 작성해 주시길 바랍니다. 따로 입력하지 않을 시, PC 메뉴가 출력됩니다.') ?>
|
||||||
<?php echo editor_html('m_menu_content', get_text($menu_co['co_mobile_content'], 0)); ?>
|
<?php echo editor_html('m_menu_content', get_text($menu_co['co_mobile_content'], 0)); ?>
|
||||||
|
|
@ -83,14 +83,14 @@ $frm_submit = '<div class="btn_confirm01 btn_confirm">
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">메인화면 태그</th>
|
<th scope="row">메인화면</th>
|
||||||
<td>
|
<td>
|
||||||
<?php echo help('메인영역에 들어갈 내용을 자유롭게 작성해 주시길 바랍니다.') ?>
|
<?php echo help('메인영역에 들어갈 내용을 자유롭게 작성해 주시길 바랍니다.') ?>
|
||||||
<?php echo editor_html('main_content', get_text($main_co['co_content'], 0)); ?>
|
<?php echo editor_html('main_content', get_text($main_co['co_content'], 0)); ?>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">모바일 메인화면 태그</th>
|
<th scope="row">모바일 메인화면</th>
|
||||||
<td>
|
<td>
|
||||||
<?php echo help('메인영역에 들어갈 내용을 자유롭게 작성해 주시길 바랍니다. 따로 입력하지 않을 시, PC 메인이 출력됩니다.') ?>
|
<?php echo help('메인영역에 들어갈 내용을 자유롭게 작성해 주시길 바랍니다. 따로 입력하지 않을 시, PC 메인이 출력됩니다.') ?>
|
||||||
<?php echo editor_html('m_main_content', get_text($main_co['co_mobile_content'], 0)); ?>
|
<?php echo editor_html('m_main_content', get_text($main_co['co_mobile_content'], 0)); ?>
|
||||||
|
|
@ -113,8 +113,10 @@ $frm_submit = '<div class="btn_confirm01 btn_confirm">
|
||||||
<?php echo $pg_anchor ?>
|
<?php echo $pg_anchor ?>
|
||||||
|
|
||||||
<div class="local_desc02 local_desc">
|
<div class="local_desc02 local_desc">
|
||||||
<p>※ 특수 기능 삽입 코드 : 내용 작성 시, 아래의 글자를 입력하면 화면에 해당 기능을 가진 폼이 출력됩니다.</p>
|
<p>특수 기능 삽입 코드 : 내용 작성 시, 아래의 글자를 입력하면 화면에 해당 기능을 가진 폼이 출력됩니다.</p>
|
||||||
<p>※ 출력폼 수정을 원할 시, 파일 위치로 가셔서 해당 파일에 작성되어 있는 텍스트 혹은 기능을 수정하셔야 합니다.</p>
|
</div>
|
||||||
|
<div class="local_desc02 local_desc">
|
||||||
|
<p>출력폼 수정을 원할 시, 파일 위치로 가셔서 해당 파일에 작성되어 있는 텍스트 혹은 기능을 수정하셔야 합니다.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="tbl_head01 tbl_wrap">
|
<div class="tbl_head01 tbl_wrap">
|
||||||
|
|
|
||||||