shoppingmallv2 init...

This commit is contained in:
최준흠 2023-08-14 17:05:41 +09:00
parent 430767e7be
commit 521e619642
37 changed files with 1287 additions and 323 deletions

View File

@ -144,7 +144,27 @@ define('LAYOUTS', [
'<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>',
'<script src="/vendors/tinymce/tinymce/tinymce.min.js" referrerpolicy="origin"></script>',
]
]
],
'main' => [
'path' => 'layouts' . DIRECTORY_SEPARATOR . 'main',
'stylesheets' => [
'<link rel="icon" href="/favicon.ico">',
'<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">',
'<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css">',
'<link href="//cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">',
'<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css">',
'<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/select2-bootstrap-5-theme@1.3.0/dist/select2-bootstrap-5-theme.min.css" />',
'<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/boxicons@latest/css/boxicons.min.css" />',
'<link rel="stylesheet" href="/css/style.css" />',
],
'javascripts' => [
'<script src="//cdn.jsdelivr.net/npm/jquery@3.7.0/dist/jquery.min.js"></script>',
'<script src="//code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>',
'<script src="//cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>',
'<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>',
'<script src="/vendors/tinymce/tinymce/tinymce.min.js" referrerpolicy="origin"></script>',
]
],
]);
//URL
@ -234,6 +254,7 @@ define('CLASS_ICONS', [
'DEPOSIT' => '<i class="bi bi-cash-coin"></i>',
]);
define('CLASS_TOP_BANNER', [
'MAIN' => '<img src="/images/banner/sub_visual1.jpg"/>',
'USER' => '<img src="/images/banner/sub_visual1.jpg"/>',
'USERSNS' => '<img src="/images/banner/sub_visual2.jpg"/>',
'BOARD' => '<img src="/images/banner/sub_visual3.jpg"/>',

View File

@ -58,9 +58,7 @@ abstract class BaseController extends Controller
// Preload any models, libraries, etc, here.
// E.g.: $this->session = \Config\Services::session();
$this->_session = \Config\Services::session();
$this->_viewDatas['layout'] = LAYOUTS['empty'];
$this->_viewDatas['session'] = $this->_session;
//사용자 기본 Role 지정
$this->_viewDatas[SESSION_NAMES['ISLOGIN']] = false;
$this->_viewDatas['currentRoles'] = [DEFAULTS["ROLE"]];

View File

@ -18,6 +18,8 @@ class BoardController extends FrontController
$this->_viewDatas['title'] = lang($this->_viewDatas['className'] . '.title');
$this->_viewDatas['class_icon'] = CLASS_ICONS[strtoupper($this->_viewDatas['className'])];
helper($this->_viewDatas['className']);
// echo var_export($this->_viewDatas['layout'], true);
// exit;
}
public function getFields(string $action = ""): array
{

View File

@ -2,6 +2,7 @@
namespace App\Controllers;
use App\Models\CategoryModel;
use CodeIgniter\Controller;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
@ -9,12 +10,41 @@ use Psr\Log\LoggerInterface;
class Home extends Controller
{
private $_category = null;
private $_categoryModel = null;
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{
parent::initController($request, $response, $logger);
$this->_viewDatas['control'] = 'main';
$this->_viewDatas['title'] = '쇼핑몰페이지';
$this->_viewDatas['layout'] = LAYOUTS['main'];
$this->_session = \Config\Services::session();
$this->_viewDatas['session'] = $this->_session;
$this->_viewDatas['className'] = 'MAIN';
// echo var_export($this->_viewDatas['layout'], true);
// exit;
//사용자 기본 Role 지정
$this->_viewDatas[SESSION_NAMES['ISLOGIN']] = false;
$this->_viewDatas['currentRoles'] = [DEFAULTS["ROLE"]];
if ($this->_session->get(SESSION_NAMES['ISLOGIN'])) {
$this->_viewDatas[SESSION_NAMES['ISLOGIN']] = true;
$this->_viewDatas['auth'] = $this->_session->get(SESSION_NAMES['AUTH']);
$currentRoles = explode(DEFAULTS['DELIMITER_ROLE'], $this->_viewDatas['auth'][AUTH_FIELDS['ROLE']]);
$this->_viewDatas['currentRoles'] = is_array($currentRoles) ? $currentRoles : [DEFAULTS["ROLE"]];
}
//Default 회원정보 Category
$this->_category = DEFAULTS['ORDER_CATEGORY'];
$this->_viewDatas['category'] = $this->getCategoryModel()->getEntity([$this->getCategoryModel()->getPrimaryKey() => $this->_category]);
// $this->_viewDatas['parent_category'] = $this->getCategoryModel()->getEntity([$this->getCategoryModel()->getPrimaryKey() => $this->_viewDatas['category']->getHierarchy_ParentUID()]);
}
final protected function getCategoryModel(): CategoryModel
{
return $this->_categoryModel = $this->_categoryModel ?: new CategoryModel();
}
public function index()
{
return view('welcome_message');
return view('welcome_message', ['viewDatas' => $this->_viewDatas]);
}
}

View File

@ -0,0 +1,71 @@
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name="viewport" id="viewport" content="width=1280">
<meta name="subject" content="IT Solution">
<meta name="description" content="일본IDC 일본서버 일본 서버 일본호스팅 서버호스팅 디도스 공격 해외 호스팅 DDOS 방어 ddos 의뢰 디도스 보안 일본 단독서버">
<meta name="keywords" content="일본IDC 일본서버 일본 서버 일본호스팅 서버호스팅 디도스 공격 해외 호스팅 DDOS 방어 ddos 의뢰 디도스 보안 일본 단독서버">
<meta property="og:type" content="website">
<meta property="og:title" content="IT Solution">
<meta property="og:description" content="일본IDC 일본서버 일본 서버 일본호스팅 서버호스팅 디도스 공격 해외 호스팅 DDOS 방어 ddos 의뢰 디도스 보안 일본 단독서버">
<?php foreach ($viewDatas['layout']['stylesheets'] as $stylesheet) : ?>
<?= $stylesheet ?>
<?php endforeach; ?>
<?php foreach ($viewDatas['layout']['javascripts'] as $javascript) : ?>
<?= $javascript ?>
<?php endforeach; ?>
<link href="/css/main.css" media="screen" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="/js/main.js"></script>
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<title><?= $viewDatas['title'] ?></title>
</head>
<body>
<div id="head">
<?= $this->include($viewDatas['layout']['path'] . '/top_navigator'); ?>
<?= $this->include($viewDatas['layout']['path'] . '/top_menu'); ?>
</div>
<div id="carouselExampleAutoplaying" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="/images/main/visual1.jpg" class="d-block w-100" alt="...">
</div>
<div class="carousel-item">
<img src="/images/main/visual2.jpg" class="d-block w-100" alt="...">
</div>
<div class="carousel-item">
<img src="/images/main/visual3.jpg" class="d-block w-100" alt="...">
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleAutoplaying" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleAutoplaying" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
<div class="container-fluid">
<nav class="nav"></nav>
<nav class="nav justify-content-center">
<?= $this->renderSection('content') ?>
</nav>
<nav class="nav justify-content-end"></nav>
</div>
<nav id="tail" class="navbar navbar-expand-lg" style="background-color:white">
<?= $this->include($viewDatas['layout']['path'] . '/copyright'); ?>
</nav>
</body>
</html>

View File

@ -0,0 +1,12 @@
<!-- Copyright 시작-->
<link href="/css/front/copyright.css" media="screen" rel="stylesheet" type="text/css" />
<div id="copyright" class="container-fluid">
<nav class="nav"><a class="navbar-brand" href="/">LOGO</a></nav>
<nav class="nav justify-content-center">
<div class="address">
社名 : 株式会社 DUNAMIS | 代表者 : | 住所 : 東京都江東区亀戸5丁-1-2 | 事業者登録番号 : 0400-01-082327 | Tel : 1661-0577 <br>
</div>
</nav>
<nav class="nav justify-content-end">Copyright by 2018 ()ITSolution. All Right Reserved.</nav>
</div>
<!-- Copyright -->

View File

@ -0,0 +1,51 @@
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name="viewport" id="viewport" content="width=1280">
<meta name="subject" content="IT Solution">
<meta name="description" content="일본IDC 일본서버 일본 서버 일본호스팅 서버호스팅 디도스 공격 해외 호스팅 DDOS 방어 ddos 의뢰 디도스 보안 일본 단독서버">
<meta name="keywords" content="일본IDC 일본서버 일본 서버 일본호스팅 서버호스팅 디도스 공격 해외 호스팅 DDOS 방어 ddos 의뢰 디도스 보안 일본 단독서버">
<meta property="og:type" content="website">
<meta property="og:title" content="IT Solution">
<meta property="og:description" content="일본IDC 일본서버 일본 서버 일본호스팅 서버호스팅 디도스 공격 해외 호스팅 DDOS 방어 ddos 의뢰 디도스 보안 일본 단독서버">
<?php foreach ($viewDatas['layout']['stylesheets'] as $stylesheet) : ?>
<?= $stylesheet ?>
<?php endforeach; ?>
<?php foreach ($viewDatas['layout']['javascripts'] as $javascript) : ?>
<?= $javascript ?>
<?php endforeach; ?>
<link href="/css/front.css" media="screen" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="/js/front.js"></script>
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<title><?= $viewDatas['title'] ?></title>
</head>
<body>
<div id="head">
<?= $this->include($viewDatas['layout']['path'] . '/top_navigator'); ?>
<?= $this->include($viewDatas['layout']['path'] . '/top_menu'); ?>
<?= CLASS_TOP_BANNER[strtoupper($viewDatas['className'])] ?>
</div>
<div class="container-fluid">
<nav class="nav"></nav>
<nav class="nav justify-content-center">
<?= $this->include('templates/front/header'); ?>
<?= $this->renderSection('content') ?>
<?= $this->include('templates/front/footer'); ?>
<nav class="nav justify-content-end"></nav>
</div>
<nav id="tail" class="navbar navbar-expand-lg" style="background-color:white">
<?= $this->include($viewDatas['layout']['path'] . '/copyright'); ?>
</nav>
</body>
</html>

View File

@ -0,0 +1,40 @@
<link href="/css/front/top_menu.css" media="screen" rel="stylesheet" type="text/css" />
<nav class="navbar navbar-expand-lg">
<div class="container-fluid">
<nav class="nav"></nav>
<nav class="nav justify-content-center">
<nav id="top_menu" class="navbar navbar-expand-lg">
<div class="container-fluid">
<nav class="nav"><a class="navbar-brand" href="/">TOP Menu</a></nav>
<nav class="nav justify-content-center"></nav>
<ul class="nav justify-content-end">
<li class="nav-item">
<?= $this->include($viewDatas['layout']['path'] . '/top_menu/top_menu_aboutus'); ?>
</li>
<li class="nav-item" style="padding-top:10px;">|</li>
<li class=" nav-item">
<?= $this->include($viewDatas['layout']['path'] . '/top_menu/top_menu_hosting'); ?>
</li>
<li class="nav-item" style="padding-top:10px;">|</li>
<li class=" nav-item">
<?= $this->include($viewDatas['layout']['path'] . '/top_menu/top_menu_server'); ?>
</li>
<li class="nav-item" style="padding-top:10px;">|</li>
<li class="nav-item">
<?= $this->include($viewDatas['layout']['path'] . '/top_menu/top_menu_network'); ?>
</li>
<li class="nav-item" style="padding-top:10px;">|</li>
<li class="nav-item">
<?= $this->include($viewDatas['layout']['path'] . '/top_menu/top_menu_service'); ?>
</li>
<li class="nav-item" style="padding-top:10px;">|</li>
<li class="nav-item">
<?= $this->include($viewDatas['layout']['path'] . '/top_menu/top_menu_support'); ?>
</li>
</ul>
</div>
</nav>
</nav>
<nav class="nav justify-content-end"></nav>
</div>
</nav>

View File

@ -0,0 +1,13 @@
<div class="dropdown-center">
<ul class="navbar-nav">
<li class="nav-item dropdown">
<a class="nav-link" href="#" id="navbarDarkDropdownMenuLink" role="button" data-bs-toggle="dropdown" aria-expanded="false">
About US
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDarkDropdownMenuLink">
<li><a class="dropdown-item <?= $viewDatas['category']->getPrimaryKey() == 14 ? "active" : "" ?>" href=" /front/sitepage?category=14">인사말</a></li>
<li><a class="dropdown-item <?= $viewDatas['category']->getPrimaryKey() == 15 ? "active" : "" ?>" href="/front/sitepage?category=15">회사소개</a></li>
</ul>
</li>
</ul>
</div>

View File

@ -0,0 +1,13 @@
<div class="dropdown-center">
<ul class="navbar-nav">
<li class="nav-item dropdown">
<a class="nav-link" href="#" id="navbarDarkDropdownMenuLink" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Hosting
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDarkDropdownMenuLink">
<li><a class="dropdown-item <?= $viewDatas['category']->getPrimaryKey() == 17 ? "active" : "" ?>" href=" /front/sitepage?category=17">제품안내</a></li>
<li><a class="dropdown-item <?= $viewDatas['category']->getPrimaryKey() == 18 ? "active" : "" ?>" href="/front/sitepage?category=18">신청절차</a></li>
</ul>
</li>
</ul>
</div>

View File

@ -0,0 +1,13 @@
<div class="dropdown-center">
<ul class="navbar-nav">
<li class="nav-item dropdown">
<a class="nav-link" href="#" id="navbarDarkDropdownMenuLink" role="button" data-bs-toggle="dropdown" aria-expanded="false">
네트워크
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDarkDropdownMenuLink">
<li><a class="dropdown-item <?= $viewDatas['category']->getPrimaryKey() == 5 ? "active" : "" ?>" href="/front/product?category=5">월이용권</a></li>
<li><a class="dropdown-item <?= $viewDatas['category']->getPrimaryKey() == 6 ? "active" : "" ?>" href="/front/product?category=6">판매</a></li>
</ul>
</li>
</ul>
</div>

View File

@ -0,0 +1,13 @@
<div class="dropdown-center">
<ul class="navbar-nav">
<li class="nav-item dropdown">
<a class="nav-link" href="#" id="navbarDarkDropdownMenuLink" role="button" data-bs-toggle="dropdown" aria-expanded="false">
서버
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDarkDropdownMenuLink">
<li><a class="dropdown-item <?= $viewDatas['category']->getPrimaryKey() == 8 ? "active" : "" ?>" href="/front/product?category=8">월이용권</a></li>
<li><a class="dropdown-item <?= $viewDatas['category']->getPrimaryKey() == 9 ? "active" : "" ?>" href="/front/product?category=9">판매</a></li>
</ul>
</li>
</ul>
</div>

View File

@ -0,0 +1,13 @@
<div class="dropdown-center">
<ul class="navbar-nav">
<li class="nav-item dropdown">
<a class="nav-link" href="#" id="navbarDarkDropdownMenuLink" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Service
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDarkDropdownMenuLink">
<li><a class="dropdown-item <?= $viewDatas['category']->getPrimaryKey() == 20 ? "active" : "" ?>" href="/front/sitepage?category=20">기타서비스</a></li>
<li><a class="dropdown-item <?= $viewDatas['category']->getPrimaryKey() == 21 ? "active" : "" ?>" href=" /front/sitepage?category=21">회선서비스</a></li>
</ul>
</li>
</ul>
</div>

View File

@ -0,0 +1,13 @@
<div class="dropdown-center">
<ul class="navbar-nav">
<li class="nav-item dropdown">
<a class="nav-link" href="#" id="navbarDarkDropdownMenuLink" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Support
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDarkDropdownMenuLink">
<li><a class="dropdown-item <?= $viewDatas['category']->getPrimaryKey() == 3 ? "active" : "" ?>" href="/front/board?category=3">공지사항</a></li>
<li><a class="dropdown-item <?= $viewDatas['category']->getPrimaryKey() == 4 ? "active" : "" ?>" href="/front/board?category=4">자료실</a></li>
</ul>
</li>
</ul>
</div>

View File

@ -0,0 +1,21 @@
<link href="/css/front/top_navigator.css" media="screen" rel="stylesheet" type="text/css" />
<nav id="top_navigator" class="navbar navbar-expand-lg">
<div class="container-fluid">
<nav class="nav">
<a class="navbar-brand" href="#">Logo</a>
</nav>
<ul class="nav justify-content-center">
<li class="nav-item">
<?= $this->include($viewDatas['layout']['path'] . '/top_navigator/top_center'); ?>
</li>
</ul>
<ul class="nav justify-content-end">
<li class="cart nav-item">
<?= anchor('/front/order', ICONS['CART'], ["target" => "_self"]); ?>
</li>
<li class="nav-item">
<?= $this->include($viewDatas['layout']['path'] . '/top_navigator/member_link'); ?>
</li>
</ul>
</div>
</nav>

View File

@ -0,0 +1,14 @@
<li class="nav-item dropdown">
<?php if ($viewDatas[SESSION_NAMES['ISLOGIN']]) : ?>
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
<?= ICONS['LOGIN'] ?><?= $viewDatas['session']->get(SESSION_NAMES['AUTH'])[AUTH_FIELDS['TITLE']] ?>
</a>
<ul class="dropdown-menu dropdown-menu-end">
<li><a class="dropdown-item" href="/front/user/update/<?= $viewDatas['session']->get(SESSION_NAMES['AUTH'])[AUTH_FIELDS['ID']] . '?category=12' ?>"><?= ICONS['SETUP'] ?>수정</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li><a class="dropdown-item" href="/front/user/logout"><?= ICONS['LOGOUT'] ?>Logout</a></li>
</ul>
<?php else : ?><a class="nav-link dropdown-toggle" href="/front/user/login" role="button"><?= ICONS['LOGIN'] ?>Login</a><?php endif ?>
</li>

View File

@ -0,0 +1,4 @@
<form class="d-flex me-20" role="search">
<input class="form-control" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success" type="submit">Search</button>
</form>

View File

@ -0,0 +1,5 @@
<div class="navigator_center">
<span><strong>고객센터</strong> 1661-0577 (365 24시간)</span>
<span>|</span>
<span><img src="/images/common/top_skype.png" alt="스카이프"> itsolution-idc@outlook.kr</span>
</div>

File diff suppressed because one or more lines are too long

196
public/css/main.css Normal file
View File

@ -0,0 +1,196 @@
/* ------------------------------------------------------------
* Name : admin.css
* Desc : Admin StyleSheet
* Created : 2016/9/11 Tri-aBility by Junheum,Choi
* Updated :
------------------------------------------------------------ */
* {
margin:0px;
padding:0px;
border:0px;
font-size:14px;
font: Arial;
}
/* #head{
border:1px solid blue;
} */
#tail{
text-align:center;
/* border:1px solid green; */
}
#layout {
width:1280px;
/* border:1px solid blue; */
}
#layout #body{
padding-left:10px;
/* border:1px solid red; */
}
#layout #body nav.header{
/*content 상단라인*/
padding-top:40px;
margin-left:30px;
border-bottom:1px solid silver;
}
#layout #body nav.header nav h4.title{
font-size:26px;
font-weight:bold;
}
#layout #body nav.header nav span.flow{
color: gray;
}
#layout #body div.footer
/*content 하단라인*/{
height:20px;
/* border-top:0px;
border-left:1px solid silver;
border-bottom:1px solid silver;
border-right:1px solid silver;
border-radius: 0px 0px 10px 10px;
background-color:white; */
}
/* reset */
html {overflow-y:scroll;}
body,p,h1,h2,h3,h4,h5,h6,ul,ol,li,dl,dt,dd,table,th,td,form,fieldset,legend,input,textarea,button,select,figure,figcaption{margin:0;padding:0}
body,input,textarea,select,button,table{font-family:'Noto Sans KR', helvetica,sans-serif;font-size:16px;letter-spacing:-0.2px;line-height:1.7em;color:#505050;word-break:keep-all; -webkit-text-size-adjust:none;}
img{border:0}
ul,ol{list-style:none}
fieldset{border:none}
fieldset legend {position:absolute;visibility:hidden;overflow:hidden;width:0;height:0;margin:0;padding:0;font:0/0 Arial;}
button{cursor:pointer}
header,hgroup,article,nav,footer,figure,figcaption,canvas,section,time{display:block}
hr {clear:both;display:none;}
li img, dd img {vertical-align:top;}
*html body img {margin:none; padding:none;} /*for IE 6*/
* {max-height: 1000000px;}
a{
color:#5d5d5d;
text-decoration:none;
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
-ms-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
}
a:hover,
a:active{
color:#000;
text-decoration:none;
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
-ms-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
}
::-webkit-input-placeholder {color:#999;}
:-moz-placeholder {color:#999;}
::-moz-placeholder {color:#999;}
:-ms-input-placeholder {color:#999;}
:placeholder-shown {color:#999;}
table caption {visibility:hidden; overflow:hidden; width:0; height:0; margin:0; padding:0; font:0/0 Arial;}
input[type="radio"], input[type="checkbox"] {vertical-align:middle !important; margin:-2px 3px 0 0 !important; background:transparent;}
input,select {vertical-align:middle; background:#fff;}
/* user class */
h1,h2,h3,h4,h5,h6,strong,th,.bold{font-weight:500;}
.clear{clear:both;}
.clearfix:after {content:" "; display:block; clear:both;}
.hide {position:absolute;visibility:hidden;overflow:hidden;width:0;height:0;margin:0;padding:0;font:0/0 Arial;}
.pointer {cursor:pointer;}
.input {height:35px; padding:0 0 0 10px; font-size:15px; line-height:33px; border:1px solid #ddd; box-sizing:border-box;}
.textarea {padding:10px; font-size:15px; line-height:33px; border:1px solid #ddd; resize:none; overflow:auto; box-sizing:border-box;}
.select {height:35px; padding:0 0 0 10px; font-size:15px; border:1px solid #ddd; box-sizing:border-box;}
.mgb2 {margin-bottom:2px !important;}
.mgb3 {margin-bottom:3px !important;}
.mgb4 {margin-bottom:4px !important;}
.mgb5 {margin-bottom:5px !important;}
.mgb6 {margin-bottom:6px !important;}
.mgb7 {margin-bottom:7px !important;}
.mgb8 {margin-bottom:8px !important;}
.mgb9 {margin-bottom:9px !important;}
.mgb10 {margin-bottom:10px !important;}
.mgb15 {margin-bottom:15px !important;}
.mgb20 {margin-bottom:20px !important;}
.mgb25 {margin-bottom:25px !important;}
.mgb30 {margin-bottom:30px !important;}
.mgb35 {margin-bottom:35px !important;}
.mgb40 {margin-bottom:40px !important;}
.mgb45 {margin-bottom:45px !important;}
.mgb50 {margin-bottom:50px !important;}
.mgb60 {margin-bottom:60px !important;}
.mgb70 {margin-bottom:70px !important;}
.mgb75 {margin-bottom:75px !important;}
.mgb90 {margin-bottom:90px !important;}
.fl {float:left;}
.fr {float:right;}
.space-center {text-align:center !important;}
.space-right {text-align:right !important;}
.space-left {text-align:left !important;}
.text-blue {color:#284685}
.text-red {color:#b4260b}
.text-gray {color:#999}
.text-black {color:#000}
.line-through {text-decoration:line-through;}
.main-bnr {width:1200px; position:relative; margin:-120px auto 60px; z-index:12}
.main-bnr ul:after {content:" "; display:block; clear:both;}
.main-bnr ul li {float:left; width:33.333%; height:180px; background-repeat:no-repeat; background-position:40px 50%;}
.main-bnr ul li.bg1 {background-color:#41adde; background-image:url('/images/main/icon1.png');}
.main-bnr ul li.bg2 {background-color:#0280c9; background-image:url('/images/main/icon2.png');}
.main-bnr ul li.bg3 {background-color:#30539f; background-image:url('/images/main/icon3.png');}
.main-bnr ul li .info {padding-left:180px; display:table; height:180px; color:#fff}
.main-bnr ul li .info dl {width:100%; display:table-cell; vertical-align:middle;}
.main-bnr ul li .info dl dt {font-size:18px; line-height:1.7em; font-weight:500; margin-bottom:10px;}
.main-bnr ul li .info dl dd {font-size:15px; line-height:1.7em;}
.main-title {text-align:center; margin-bottom:40px;}
.main-title h2 {font-size:28px; line-height:1.6em; font-weight:700; color:#333;}
.main-title p {color:#656565; font-size:17px;line-height:1.6em;}
.main-price {margin:0 -10px 80px; overflow:hidden;}
.main-price:after{content:"";display:block;clear:both;}
.main-price .col {float:left; width:50%; padding:0 10px; box-sizing:border-box; margin-bottom:20px;}
.main-price .col:nth-child(2n+1) {clear:left;}
.main-table.type2 table thead th {background:#0280c9}
.main-table table {width:100%; border-collapse:collapse; border-spacing:0px;}
.main-table table thead th {padding:9px 10px; height:35px; font-size:22px; font-weight:500; line-height:22px; color:#fff; background:#30539f}
.main-table table tbody th {padding:9px 10px; height:35px; font-size:16px; font-weight:500; line-height:22px; color:#333; border-bottom:1px solid #d6d6d6; background:#eaeef4;}
.main-table table tbody td {padding:9px 20px; color:#2c2c2c; font-size:16px; line-height:22px; border-bottom:1px solid #d6d6d6; background:#f8f8f8}
.main-table table tbody th.none,.main-table table tbody td.none {border-bottom:0}
.main-table .f-back {background-color:#e62b2b; color:#fff; }
.main-table strong {font-weight:500}
.main-service {background:url('/images/main/bg_bnr.jpg') 50% 0 no-repeat; width:100%; height:330px;}
.main-service .col {float:left; width:50%; height:330px; display:table; text-align:center;}
.main-service .col .link {width:600px; height:330px; display:table-cell; vertical-align:middle; color:#fff;}
.main-service .col .link dl dt {font-size:30px; line-height:1.4em; font-weight:500; margin-bottom:5px;}
.main-service .col .link dl dd {font-size:17px; line-height:1.4em; margin-bottom:20px;}
.main-service .col .link .more {font-size:15px; line-height:1.4em; opacity:.8}
.main-service .col .link .more .arrow {margin:0 3px;position:relative;border: solid #ddd;border-width: 0 2px 2px 0;transform: rotate(-45deg);display: inline-block;padding: 3px;}
.main-service .col a {display:block;}
.main-notice {background:#f5f5f5; padding:60px 0;}
.main-notice .title {float:left; width:511px; height:276px; color:#fff; background:url('/images/main/bg_notice.gif') 0 0 no-repeat;}
.main-notice .title dl {padding:50px}
.main-notice .title dl dt {font-size:32px; line-height:1.4em; font-weight:500; margin-bottom:5px;}
.main-notice .title dl dd {font-size:16px; line-height:1.4em; color:#cbcfd9;}
.main-notice .list {float:left; width:688px; height:276px; background:#fff; border:1px solid #ddd; border-left:0; box-sizing:border-box;}
.main-notice .list ul {padding:15px 40px 0;}
.main-notice .list ul li {font-size:16px; line-height:49px; height:49px; border-bottom:1px solid #ddd; position:relative;}
.main-notice .list ul li:last-child {border-bottom:0}
.main-notice .list ul li a {display:inline-block; width:500px; height:49px; white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.main-notice .list span {position:absolute; top:0; right:0; font-size:14px; color:#959595;}

View File

@ -0,0 +1,96 @@
div#content{
color:black;
padding-top:20px;
padding-left:30px;
margin-bottom:40px;
/* border-left:1px solid silver;
border-right:1px solid silver; */
}
/* div#content div.top{
border:1px solid red;
} */
/*페이지정보*/
div#content div.top nav span.pageinfo{
font-weight:bold;
}
/*검색*/
div#content div.top nav input[type=text]{
width:200px;
height:40px;
border-radius:0px !important;
/* border:1px solid red; */
}
/*검색submit*/
div#content div.top nav input[type=submit]{
font-size:12px;
font-weight:bold;
width:80px;
height:40px;
color:white;
border-radius:0px !important;
background-color:#555555;
/* border:1px solid red; */
}
/*Excel Icon*/
div#content div.top nav a{
border-radius:0px !important;
/* border:1px solid red; */
}
/* Table 부분 */
div#content table {
width:100%;
/* overflow-x: auto;
padding-top:5px;
padding-bottom:5px; */
}
/* insert,update,reply,view Form Page 관련 전용*/
div#content table.form tbody tr td.label{
width:10%;
text-align:right;
padding-right:20px;
background-color:#e8ebe9;
}
div#content table.form tbody tr td.column{
height:27px;
text-align:left;
padding-left:20px;
}
/* insert,update,reply,view Form Page 관련 전용*/
/* 상품 리스트 전용 */
div#content table.product tr:first-child {
border-top:2px solid black;
border-bottom:1px solid silver;
}
/* 상품 리스트 전용 */
div#content table thead th{
white-space: nowrap;
padding-top:15px;
padding-bottom:15px;
font-size: 16px;
font-weight:bold;
border-top:2px solid black;
border-bottom:1px solid silver;
background-color:#F5F5F5;
/* border:1px solid silver; */
}
div#content div.bottom {
padding-top:15px;
text-align:center;
}
div#content div.bottom ul.pagination {
margin-top:20px;
}
div#content div.bottom ul.pagination li.page-item a{
border:0px;
border-radius:0px !important;
background-color:#e8ebe9;
}
div#content div.bottom ul.pagination li.active a{
background-color:gray;
}

View File

@ -0,0 +1,8 @@
div#copyright{
width:100%;
height:100px;
padding-top:30px;
padding-bottom:30px;
background-color:#2d2e2e;
color:white;
}

View File

@ -0,0 +1,57 @@
div#left_menu{
position:fixed;
z-index:100;
width:200px;
background-color:white;
}
div#left_menu div.parent {
font-size:24px;
font-weight:bold;
height:170px;
padding-top:30px;
background-color: #eeeeee;
border:1px solid silver;
text-align:center;
}
div#left_menu div.parent div.title{
color:#26417D;
}
div#left_menu div.parent div{
font-size:24px;
}
/* leftmenu bar */
div#left_menu div.sibling {
padding-top:15px;
text-align:left;
padding-left:20px;
height:60px;
border-bottom:1px solid silver;
}
div#left_menu div.sibling a{
text-decoration: none;
color:black;
font-size:18px;
}
div#left_menu div.sibling span.play{
float:right;
color:white;
padding-top:5px;
padding-right:15px;
}
div#left_menu div.active {
background-color:#26417D;
}
div#left_menu div.active a{
color:white;
}
div#left_menu div.sibling:hover {
background-color:#26417D;
}
div#left_menu div.sibling:hover a,div.active{
color:white;
}
div#left_menu div.sibling:hover span.play{
color:white;
}

46
public/css/main/login.css Normal file
View File

@ -0,0 +1,46 @@
/* ------------------------------------------------------------
* Name : admin.css
* Desc : Admin StyleSheet
* Created : 2016/9/11 Tri-aBility by Junheum,Choi
* Updated :
------------------------------------------------------------ */
div.login{
width: 799px;
height: 283px;
margin-top:30px;
margin-left:120px;
padding-top:155px;
background-image: url('/images/common/adminbg.png');
}
div.login form{
margin-left:300px;
/* border: 1px solid red; */
}
div.login form table {
width:300px;
/* border: 1px solid red; */
}
div.login form table td {
text-align: center;
color:white;
padding-right:5px;
/* border: 1px solid blue; */
}
div.login form table td.column {
height: 27px;
}
div.login form table td.login_bottom{
padding-top:20px;
}
div.login form table td.login_bottom a{
color:white;
}
/* div.login form table input[type=submit]{
width: 57px;
height: 60px;
background: url('/images/common/btn_login.png');
} */

View File

@ -0,0 +1,50 @@
/* ------------------------------------------------------------
* Name : admin.css
* Desc : Admin StyleSheet
* Created : 2016/9/11 Tri-aBility by Junheum,Choi
* Updated :
------------------------------------------------------------ */
div#content a {
color:black;
}
div#content div.login{
width: 509px;
margin-top:30px;
}
div#content div.login form {
padding-top:20px;
border:1px solid silver;
}
div#content div.login form div.label_column{
text-align:right;
/* border:1px solid red; */
}
div#content div.login form label.col-form-label{
font-size:18px;
font-weight:bold;
/* border:1px solid red; */
}
div#content div.login form input[type=text],input[type=password]{
text-align:left;
height:35px;
width:250px;
border:1px solid silver;
}
div#content div.login_bottom{
padding-top:20px;
padding-bottom:20px;
text-align:center;
}
/* div#content div.login form table input[type=submit]{
width: 57px;
height: 60px;
background: url('/images/common/btn_login.png');
} */

View File

@ -0,0 +1,69 @@
@charset "utf-8";
/* doc.css는 디자인페이지 스타일을 정의합니다. */
.greeting {margin:0 -25px;}
.greeting:after {content:"";display:block;clear:both;}
.greeting .col {float:left; width:50%; padding:0 25px; box-sizing:border-box; text-align:justify; letter-spacing:-.40px;}
.company {position:relative; text-align:center; font-size:22px; line-height:1.4em; color:#2c2c2c; font-weight:300; padding-bottom:75px; margin-bottom:10px;}
.company strong {color:#30539f; font-weight:500}
.company:after {content:"";position:absolute; bottom:10px; left:50%; width:1px; height:46px; background:#ddd;}
.com-cnt {border:1px solid #ededed;}
.com-cnt:after {content:" "; display:block; clear:both;}
.com-cnt .col {float:left; width:33.333%; height:278px; position:relative;}
.com-cnt .col.bg1 {background:url('../images/sub/com_icon1.png') 50% 41px no-repeat;}
.com-cnt .col.bg2 {background:#f8f9fb url('../images/sub/com_icon2.png') 50% 31px no-repeat;}
.com-cnt .col.bg3 {background:url('../images/sub/com_icon3.png') 50% 33px no-repeat;}
.com-cnt .col:first-child:after {display:none;}
.com-cnt .col:after {content:"";position:absolute; top:0; left:0; width:1px; height:100%; background:#ededed;}
.com-cnt .col dl {padding-top:145px; text-align:center;}
.com-cnt .col dl dt {color:#284685; font-size:18px; line-height:1.4em; font-weight:500; margin-bottom:10px;}
.com-cnt .col dl dd {font-size:15px; line-height:1.4em; text-align:left; padding-left:76px;}
.app-cnt:after {content:" "; display:block; clear:both;}
.app-cnt .col {float:left; width:275px; height:130px; position:relative; box-sizing:border-box;}
.app-cnt .col.inquiry {width:345px}
.app-cnt .col:first-child:after {display:none;}
.app-cnt .col:after {content:"";position:absolute; top:0; left:0; width:1px; height:100%; background:#ededed;}
.app-cnt .col .box {width:100%; height:130px;position:relative; display:table;}
.app-cnt .col .icon {position:absolute; top:0; left:0; width:107px; height:107px; background:url('../images/sub/sub2_1_icon.gif') 0 50% no-repeat;}
.app-cnt .col .info {padding-left:130px; font-size:15px; line-height:1.6em; height:130px;position:relative; vertical-align:middle; display:table-cell; letter-spacing:-.30px;}
.app-cnt .col.type2 .info {padding-left:48px; font-size:16px;}
.app-cnt .col.type2 dl dt {color:#284685; font-size:18px; line-height:1.4em; font-weight:500; margin-bottom:5px;}
.app-cnt .col.type2 dl dt img {vertical-align:middle; padding-left:5px;}
.product-cnt {margin-bottom:70px; text-align:center;}
.product-cnt:last-child {margin-bottom:0}
.product-cnt p {line-height:0}
.product-cnt .col {position:relative; vertical-align:top; display:inline-block; width:420px; margin:-61px 10px 0 10px;}
.pro-title.type1 {background-color:#41adde}
.pro-title.type2 {background-color:#0280c9}
.pro-title.type3 {background-color:#284685}
.pro-title {font-size:20px; line-height:61px;color:#fff; font-weight:500; text-align:center;background-image:url('../images/sub/sub2_2_tit.png'); background-repeat:no-repeat; background-position:100% 0;}
.table01 table {width:100%; border-collapse:collapse; border-spacing:0px;}
.table01 table tbody th {padding:12px 10px; height:35px; font-size:16px; font-weight:500; line-height:22px; color:#4d4d4d; border-bottom:1px dotted #d6d6d6; background:#f6fafc;}
.table01 table tbody td {padding:12px 20px; color:#2c2c2c; font-size:16px; line-height:22px; border-bottom:1px dotted #d6d6d6;}
.table01 strong {font-weight:500}
.box-cnt {border:1px solid #e0e0e0; border-radius:10px; padding:38px 27px; margin-bottom:50px;}
.box-cnt:last-child {margin-bottom:0}
.box-cnt .title {background:#f6f6f6; font-size:20px; line-height:1.4em; color:#2c2c2c; padding:5px 0 5px 18px; font-weight:500; margin-bottom:15px;}
.box-cnt .cnt {padding-left:18px; font-size:17px; line-height:1.6em; font-weight:200}
.box-cnt .cnt dl dt {position:relative; color:#2e3192; font-size:18px; line-height:1.4em; font-weight:500; padding-left:18px;}
.box-cnt .cnt dl dt:after {content:"";position:absolute;top:50%; margin-top:-2px; left:0; width:10px; height:5px; background:#2e3192; border-radius:2px;}
.box-cnt .cnt dl dd {text-indent:-10px; padding-left:10px; letter-spacing:-.30px;}
/*
.sitemap:after {content:" "; display:block; clear:both;}
.sitemap dl {float:left; display:inline; width:225px; margin:0 0 30px 80px;}
.sitemap dl.first {margin-left:0}
.sitemap dl dt {padding:10px 0; text-align:center; font-size:16px; font-weight:500; color:#fff; margin:0 0 5px 0; background:#737373;border-top-left-radius:20px; border-bottom-right-radius:20px;}
.sitemap dl dd {line-height:40px; border-bottom:1px solid #eee; font-weight:300; text-indent:-12px; padding-left:13px;}
.sitemap dl dd a {display:block; padding:8px 0 8px 15px; font-size:15px; line-height:20px;}
.sitemap dl dd a:hover {color:#f1592a}
.sitemap dl dd ul {padding:2px 0 20px;}
.sitemap dl dd ul li a {background:none; color:#f1592a; font-size:12px; line-height:20px; padding:0 0 0 20px;}
*/

View File

@ -0,0 +1,72 @@
#top_menu{
width:1280px;
/* border:1px solid red; */
}
#top_menu a:hover{
text-decoration:none;
}
/* #top_menu nav.nav,ul.nav{
border:1px solid red;
} */
#top_menu a.navbar-brand{
font-size:24px;
font-weight:bold;
}
/* 메뉴바그룹 상단글자*/
#top_menu div.dropdown-center ul.navbar-nav a#navbarDarkDropdownMenuLink{
font-size:18px;
font-weight:bold;
/* border:1px solid silver; */
}
/* 메뉴바그룹 */
#top_menu div.dropdown-center ul.navbar-nav li.dropdown {
width:180px;
text-align:center;
/* border:1px solid red; */
}
/* 메뉴바그룹 hover했을시 */
#top_menu div.dropdown-center ul.navbar-nav li.dropdown:hover a#navbarDarkDropdownMenuLink{
color:#26417D;
}
#top_menu div.dropdown-center ul.navbar-nav li.dropdown:hover ul.dropdown-menu{
/* margin-top:15px; */
display: block;
/* 라운드없애기 */
border-radius:0px !important;
padding-bottom:0px;
border:0px;
/* border:1px solid silver; */
}
/* 메뉴바 */
#top_menu div.dropdown-center ul.navbar-nav li.dropdown ul.dropdown-menu li{
width:180px;
height:60px;
padding-top:15px;
/* border:1px solid red; */
}
#top_menu div.dropdown-center ul.navbar-nav li.dropdown ul.dropdown-menu li a{
font-size:16px;
font-weight:bold;
text-align:center;
text-decoration:none;
width:180px;
}
#top_menu div.dropdown-center ul.navbar-nav li.dropdown ul.dropdown-menu li a.active{
color:#efefef;
background-color:#26417D;
/* border:1px solid red; */
}
/* 메뉴바 over했을시*/
#top_menu div.dropdown-center ul.navbar-nav li.dropdown ul.dropdown-menu li:hover{
width:180px;
background-color:#26417D;
/* border:1px solid red; */
}
#top_menu div.dropdown-center ul.navbar-nav li.dropdown ul.dropdown-menu li:hover a{
color:white;
background-color:#26417D;
}

View File

@ -0,0 +1,24 @@
#top_navigator{
padding-top:20px;
padding-bottom:20px;
background-color:#eeeeee
}
#top_navigator ul.justify-content-center div.navigator_center span{
padding-left:5px;
padding-right:5px;
}
#top_navigator ul.justify-content-center div.navigator_center span strong{
color:#26417D;
font-weight: bold;
}
#top_navigator ul.justify-content-center div.navigator_center span strong{
color:#26417D;
font-weight: bold;
}
#top_navigator ul.justify-content-end li.cart a{
font-size:18px;
font-weight: 500;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 420 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 KiB

93
public/js/main.js Normal file
View File

@ -0,0 +1,93 @@
/* ------------------------------------------------------------
* Name : front.js
* Desc : Front Javascrip
* Created : 2016/9/11 Tri-aBility by Junheum,Choi
* Updated :
------------------------------------------------------------ */
function trim(str){
return this.replace(/(^\s*)|(\s*$)/gi, "");
}//
function bookmarksite(title,url) {
if (window.sidebar) // firefox
window.sidebar.addPanel(title, url, "");
else if(window.opera && window.print){ // opera
var elem = document.createElement('a');
elem.setAttribute('href',url);
elem.setAttribute('title',title);
elem.setAttribute('rel','sidebar');
elem.click();
}
else if(document.all) // ie
window.external.AddFavorite(url, title);
}//
function captcha_refresh(refresh_url) {
$.ajax({
type: 'POST',
url: refresh_url,
success: function(data, status, xhr){
if(data)
$('#captcha_span').html(data);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(jqXHR.responseText);
console.log(textStatus+'=>'+errorThrown);
}
});//ajax
}//
function is_NumericKey(evt,obj){
var charCode = (evt.which) ? evt.which : event.keyCode;
switch(charCode){
case 48://0
case 49://1
case 50://2
case 51://3
case 52://4
case 53://5
case 54://6
case 55://7
case 56://8
case 57://9
case 96://KeyPad:0
case 97://KeyPad:1
case 98://KeyPad:2
case 99://KeyPad:3
case 100://KeyPad:4
case 101://KeyPad:5
case 102://KeyPad:6
case 103://KeyPad:7
case 104://KeyPad:8
case 105://KeyPad:9
break;
default:
alert('숫자만 가능합니다['+charCode+']');
obj.value = obj.value.substring(0,obj.value.length-1);
break;
}
}
function is_NumericType(data){
if(!data.match(/^[0-9]+$/)){
throw (new Error('숫자가 아닌값['+data+']이 있습니다'));
}
return true;
}//
function change_CurrencyFormat(obj,currencies){
//var currencies = document.getElementsByClassName("currency");
var total_currency = 0;
for(i=0; i<currencies.length; i+2){
try {
is_NumericType(currencies[i].value)//값이 숫자형식인지 판단
} catch(err) {
alert(err.message);
currencies[i].focus();
return false;
}
total_currency += parseInt(currencies[i].value);
currencies[i].parentElement.innerHTML=currencies[i].value.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,")+'원';
}
obj.parentElement.innerHTML=total_currency.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,")+'원'
return true;
}