shoppingmallv2 init...

This commit is contained in:
최준흠 2023-08-07 15:33:02 +09:00
parent 04fa6b7822
commit 3ce028ef6e
38 changed files with 318 additions and 182 deletions

View File

@ -206,6 +206,7 @@ define('ICONS', [
'FLAG' => '<i class="bi bi-send"></i>',
'SEARCH' => '<i class="bi bi-search"></i>',
'EXCEL' => '<i class="bi bi-file-excel"></i>',
'HOME' => '<i class="bi bi-house"></i>',
'IMAGE_FILE' => '<i class="bi bi-file-earmark-image"></i>',
]);
define('CLASS_ICONS', [

View File

@ -2,6 +2,7 @@
namespace App\Controllers\Admin;
use App\Controllers\Trait\UpDownloadTrait;
use App\Models\CategoryModel;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
@ -9,6 +10,7 @@ use Psr\Log\LoggerInterface;
class CategoryController extends AdminController
{
use UpDownloadTrait;
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{
$this->_model = new CategoryModel();
@ -19,14 +21,14 @@ class CategoryController extends AdminController
public function getFields(string $action = ""): array
{
$fields = [
'name', "isaccess", "isread", "iswrite", "isreply", "isupload", "isdownload",
'name', "photo", "isaccess", "isread", "iswrite", "isreply", "isupload", "isdownload",
"status", "head", "tail",
];
switch ($action) {
case "index":
case "excel":
return [
'name', "isaccess", "isread", "iswrite", "isreply", "isupload", "isdownload",
'name', 'photo', "isaccess", "isread", "iswrite", "isreply", "isupload", "isdownload",
"status", "created_at"
];
break;
@ -46,6 +48,19 @@ class CategoryController extends AdminController
{
return parent::getFieldBatchFilters();
}
//Field별 Form Datas 처리용
protected function getFieldFormData(string $field, $entity = null): array
{
switch ($field) {
case 'photo':
$this->_viewDatas['fieldDatas'][$field] = $this->upload_image_procedure($field);
break;
default:
return parent::getFieldFormData($field, $entity);
break;
}
return $this->_viewDatas['fieldDatas'];
}
// private function build_leftmenu()
// {

View File

@ -3,10 +3,10 @@
namespace App\Controllers\Front;
use App\Controllers\BaseController;
use App\Models\CategoryModel;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;
use App\Models\CategoryModel;
abstract class FrontController extends BaseController
{
@ -29,6 +29,9 @@ abstract class FrontController extends BaseController
{
$this->_category = !is_null($entity) ? $entity->getCategory_Uid() : ($this->request->getVar('category') ?: throw new \Exception("범주를 지정하지 않으셨습니다."));
$this->_viewDatas['category'] = $this->getCategoryModel()->getEntity([$this->getCategoryModel()->getPrimaryKey() => $this->_category]);
$categorys = $this->getCategoryModel()->getSiblingEntitys($this->_viewDatas['category']);
$this->_viewDatas['parent_category'] = array_shift($categorys);
$this->_viewDatas['sibling_categorys'] = $categorys;
switch ($action) {
case 'insert':
$category_field = CATEGORY_ROLE_FIELDS['WRITE'];

View File

@ -50,6 +50,7 @@ CREATE TABLE shoppingmall.tw_category (
grporder int(5) UNSIGNED NOT NULL DEFAULT 1 COMMENT 'Group순서: 상위가없을시 1부터시작',
grpdepth int(3) UNSIGNED NOT NULL DEFAULT 1 COMMENT 'Group깊이: 상위가없을시 1부터시작 , 상위 grpdepth+1씩 추가필요',
name varchar(255) NOT NULL COMMENT '범주명',
photo varchar(255) NULL COMMENT '이미지',
isaccess varchar(30) NOT NULL DEFAULT 'guest' COMMENT '접근권한',
isread varchar(30) NOT NULL DEFAULT 'guest' COMMENT '읽기권한',
iswrite varchar(30) NOT NULL DEFAULT 'guest' COMMENT '쓰기권한',

View File

@ -2,8 +2,6 @@
namespace App\Entities;
use App\Entities\Trait\HierarchyTrait;
class CategoryEntity extends BaseHierarchyEntity
{
protected $datamap = [];
@ -40,4 +38,20 @@ class CategoryEntity extends BaseHierarchyEntity
$this->attributes
) ? $this->attributes[$field] : DEFAULTS['ROLE'];
}
public function getPhoto()
{
return $this->attributes['photo'];
}
public function getPhotoFileName($size = false)
{
$photo = $this->getPhoto();
if (is_null($photo)) {
return "";
}
return sprintf(
"<img src=\"/upload_images/%s%s\">",
$size ? $size . '_' : '',
explode(DEFAULTS['DELIMITER_FILE'], $this->getPhoto())[1]
);
}
}

View File

@ -47,9 +47,17 @@ class ProductEntity extends BaseEntity
{
return $this->attributes['photo'];
}
public function getPhotoFileName($size = 'small')
public function getPhotoFileName($size = false)
{
return $size . '_' . explode(DEFAULTS['DELIMITER_FILE'], $this->getPhoto())[1];
$photo = $this->getPhoto();
if (is_null($photo)) {
return "";
}
return sprintf(
"<img src=\"/upload_images/%s%s\">",
$size ? $size . '_' : '',
explode(DEFAULTS['DELIMITER_FILE'], $this->getPhoto())[1]
);
}
public function getContent()
{

View File

@ -44,6 +44,7 @@ function getFieldForm_CategoryHelper($field, $value, array $viewDatas, array $at
break;
case 'upload_file':
case 'board_file':
case 'photo':
return form_upload($field);
break;
case 'view_cnt':
@ -90,6 +91,10 @@ function getFieldView_CategoryHelper($field, $entity, array $viewDatas)
case 'upload_file':
return $value == DEFAULTS['EMPTY'] ? DEFAULTS['EMPTY'] : anchor(current_url() . "/download/{$field}/{$entity->getPrimaryKey()}", ICONS['IMAGE_FILE'] . explode(DEFAULTS['DELIMITER_FILE'], $value)[0], ["target" => "_self"]);
break;
case 'photo':
// return $entity->getPhotoFileName();
return $entity->getPhotoFileName('middle');
break;
case 'view_cnt':
return number_format(!$value ? 0 : $value);
break;

View File

@ -93,7 +93,7 @@ function getFieldView_ProductHelper($field, $entity, array $viewDatas)
break;
case 'photo':
// return $entity->getPhotoFileName();
return "<img src=\"/upload_images/" . $entity->getPhotoFileName() . "\">";
return $entity->getPhotoFileName('middle');
break;
case 'cost':
case 'price':

View File

@ -9,6 +9,7 @@ return [
'label' => [
'uid' => "번호",
'name' => "범주제목",
'photo' => "이미지",
'isaccess' => "접속권한",
'isread' => "읽기권한",
'iswrite' => "쓰기권한",

View File

@ -15,6 +15,10 @@ abstract class BaseHierarchyModel extends BaseModel
}
abstract public function getContentField();
abstract public function reply($parent_entity, array $formDatas): BaseEntity;
public function getSiblingEntitys($entity)
{
return $this->getEntitys(['grpno' => $entity->getHierarchy_No()]);
}
protected function getFieldRule(string $field, array $rules, string $action = ""): array
{
switch ($field) {

View File

@ -13,7 +13,7 @@ class CategoryModel extends BaseHierarchyModel
parent::__construct('Category');
$this->allowedFields = [
...$this->allowedFields,
'name', "isaccess", "isread", "iswrite", "isreply", "isupload", "isdownload",
'name', "photo", "isaccess", "isread", "iswrite", "isreply", "isupload", "isdownload",
"head", "tail", "status"
];
$this->validationRules = [...$this->validationRules, ...$this->getFieldRules($this->allowedFields),];
@ -33,6 +33,9 @@ class CategoryModel extends BaseHierarchyModel
$rules[$field] = "required|trim|string";
$rules[$field] .= $action == "insert" ? "|is_unique[{$this->table}.{$field}]" : "";
break;
case 'photo':
$rules[$field] = !$action ? "if_exist|string" : "is_image[{$field}]|mime_in[{$field},image/jpg,image/jpeg,image/gif,image/png,image/webp]|max_size[{$field},300]|max_dims[{$field},2048,768]";
break;
case "isaccess":
case "isread":
case "iswrite":

View File

@ -41,7 +41,7 @@ class ProductModel extends BaseModel
$rules[$field] = "required|trim|string";
break;
case 'photo':
$rules[$field] = !$action ? "if_exist|string" : "uploaded[$field]|is_image[{$field}]|mime_in[{$field},image/jpg,image/jpeg,image/gif,image/png,image/webp]|max_size[{$field},100]|max_dims[{$field},1024,768]";
$rules[$field] = !$action ? "if_exist|string" : "uploaded[$field]|is_image[{$field}]|mime_in[{$field},image/jpg,image/jpeg,image/gif,image/png,image/webp]|max_size[{$field},300]|max_dims[{$field},2048,768]";
break;
case 'cost':
case 'price':

View File

@ -2,7 +2,7 @@
<?= $this->section('content') ?>
<div class="content">
<div><?= html_entity_decode($viewDatas['category']->getHead()) ?></div>
<table class="table" style="margin:0px; padding:0px;">
<table class="table">
<tr>
<td width="10%">
<?= anchor(current_url() . '?category=' . $viewDatas['category']->getPrimaryKey() . 'order_field=price,order_value=ASC', '판매가순', ["class" => "btn btn-sm btn-info btn-circle", "target" => "_self"]) ?>

View File

@ -2,7 +2,7 @@
<?= $this->section('content') ?>
<div class="content">
<div><?= html_entity_decode($viewDatas['category']->getHead()) ?></div>
<table class="table" style="margin:0px; padding:0px;">
<table class="table">
<tr>
<td width="10%">
<?= anchor(current_url() . '?category=' . $viewDatas['category']->getPrimaryKey() . 'order_field=price,order_value=ASC', '판매가순', ["class" => "btn btn-sm btn-info btn-circle", "target" => "_self"]) ?>

View File

@ -1,20 +0,0 @@
<nav class="navbar navbar-expand-lg navbar-light" style="background-color: #e3f2fd;">
<div id="head" class="container-fluid">
<nav class="nav">
<a class="navbar-brand" href="#">관리페이지</a>
</nav>
<ul class="nav justify-content-center">
<li class="nav-item">
<?= $this->include($viewDatas['layout']['path'] . '/top_navigator/make_password'); ?>
</li>
<li class="nav-item">
<?= $this->include($viewDatas['layout']['path'] . '/top_navigator/search'); ?>
</li>
</ul>
<ul class="nav justify-content-end">
<li class="nav-item">
<?= $this->include($viewDatas['layout']['path'] . '/top_navigator/member_link'); ?>
</li>
</ul>
</div>
</nav>

View File

@ -30,23 +30,33 @@
</head>
<body>
<?= $this->include($viewDatas['layout']['path'] . '/top_navigator'); ?>
<?= $this->include($viewDatas['layout']['path'] . '/top_menu'); ?>
<table id="layout">
<tr>
<td id="left" valign="top" width="160">
<?= $this->include($viewDatas['layout']['path'] . '/left_menu'); ?>
</td>
<td id="body" valign="top" width="*">
<?= $this->include('templates/admin/header'); ?>
<?= $this->renderSection('content') ?>
<?= $this->include('templates/admin/footer'); ?>
</td>
</tr>
</table>
<div style="text-align:center;">
<?= $this->include($viewDatas['layout']['path'] . '/copyright'); ?> </li>
<div id="head">
<?= $this->include($viewDatas['layout']['path'] . '/top_navigator'); ?>
<?= $this->include($viewDatas['layout']['path'] . '/top_menu'); ?>
<?php if (array_key_exists('parent_category', $viewDatas) && !is_null($viewDatas['parent_category'])) : ?>
<?= $viewDatas['parent_category']->getPhotoFileName() ?>
<?php endif ?>
</div>
<div class="container-fluid">
<nav class="nav"></nav>
<nav class="nav justify-content-center">
<table id="layout">
<tr>
<td id="left" valign="top" width="160">
<?= $this->include($viewDatas['layout']['path'] . '/left_menu'); ?>
</td>
<td id="body" valign="top" width="*">
<?= $this->include('templates/front/header'); ?>
<?= $this->renderSection('content') ?>
<?= $this->include('templates/front/footer'); ?>
</td>
</tr>
</table>
<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

@ -1,11 +1,15 @@
<!-- Copyright 시작-->
<div id="tail">
<div class="foot-logo"><img src="../images/common/foot_logo.png" alt="IT Solution"></div>
<div class="foot-info">
<address>
社名 : 株式会社 DUNAMIS <span class="bar"></span> 代表者 : <span class="bar"></span> 住所 : 東京都江東区亀戸5丁-1-2 <span class="bar"></span> 事業者登録番号 : 0400-01-082327 <span class="bar"></span> Tel : 1661-0577 <br>
<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>
<div class="copright">
Copyright by 2018 ()ITSolution. All Right Reserved.
</address>
</div>
</div>
</nav>
<nav class="nav justify-content-end"></nav>
</div>
<!-- Copyright -->

View File

@ -1,10 +1,13 @@
<!-- left menu start -->
<link href="/css/front/left_menu.css" media="screen" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="/js/side_menu.js"></script>
<div id="left_menu" class="shadow-lg rounded">
<div class="accordion accordion-flush">
<?= $this->include($viewDatas['layout']['path'] . '/left_menu/base'); ?>
<?= $this->include($viewDatas['layout']['path'] . '/left_menu/board'); ?>
<?= $this->include($viewDatas['layout']['path'] . '/left_menu/shoppingmall'); ?>
<div id="left_menu">
<div class="parent">
<div>-</div>
<div><?= $viewDatas['parent_category']->getTitle() ?></div>
</div>
<?php foreach ($viewDatas['sibling_categorys'] as $category) : ?>
<div class="sibling <?php if ($viewDatas['category']->getPrimaryKey() == $category->getPrimaryKey()) : ?>active<?php endif ?>">
<a href=" <? current_url() . '?category=' . $category->getCategory_Uid() ?>"><?= $category->getTitle() ?></a>
</div>
<?php endforeach ?>
</div>

View File

@ -1,6 +0,0 @@
<div class="accordion-item" style="background-color: #eaeaea;">
<h2><a href=" /front"><i class="fa fa-home"></i>Main</a></h2>
</div>
<div class="accordion-item">
<h2><a href="/front/user/view"><?= CLASS_ICONS['USER'] ?></i>계정 관리</a></h2>
</div>

View File

@ -1,6 +0,0 @@
<div class="accordion-item">
<h2><a href="/front/board?category=2"><?= CLASS_ICONS['BOARD'] ?>공지사항</a></h2>
</div>
<div class="accordion-item">
<h2><a href="/front/board?category=3"><?= CLASS_ICONS['BOARD'] ?>FAQ</a></h2>
</div>

View File

@ -1,32 +0,0 @@
<div class="accordion-item">
<h2><a href="/front/order"><?= CLASS_ICONS['ORDER'] ?></i>내주문 보기</a></h2>
</div>
<div class="accordion-item">
<h2><a href="/front/billing"><?= CLASS_ICONS['BILLING'] ?></i>내결제 보기</a></h2>
</div>
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#flush-heading-Life" aria-expanded="false" aria-controls="flush-heading-Life"><b>생활*건강</b></button>
</h2>
<div id="flush-heading-Life" class="accordion-collapse collapse show" aria-labelledby="panelsStayOpen-heading-Life">
<div class="accordion-item">
<h2><a href="/front/product?category=5"><?= CLASS_ICONS['PRODUCT'] ?>가구</a></h2>
</div>
<div class="accordion-item">
<h2><a href="/front/product?category=6"><?= CLASS_ICONS['PRODUCT'] ?>애완동물</a></h2>
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#flush-heading-Electronic" aria-expanded="false" aria-controls="flush-heading-Electronic"><b>컴퓨터*가전</b></button>
</h2>
<div id="flush-heading-Electronic" class="accordion-collapse collapse show" aria-labelledby="panelsStayOpen-heading-Electronic">
<div class="accordion-item">
<h2><a href="/front/product?category=8"><?= CLASS_ICONS['PRODUCT'] ?>서버장비</a></h2>
</div>
<div class="accordion-item">
<h2><a href="/front/product?category=9"><?= CLASS_ICONS['PRODUCT'] ?>네트워크</a></h2>
</div>
</div>
</div>

View File

@ -1,59 +1,32 @@
<link href="/css/front/top_menu.css" media="screen" rel="stylesheet" type="text/css" />
<div id="top_menu" class="container-fluid">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNavDarkDropdown" aria-controls="navbarNavDarkDropdown" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavDarkDropdown">
<ul class="navbar-nav">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDarkDropdownMenuLink" role="button" data-bs-toggle="dropdown" aria-expanded="false">
About US
</a>
<ul class="dropdown-menu dropdown-menu-dark" aria-labelledby="navbarDarkDropdownMenuLink">
<li><a class="dropdown-item" href="#">인사말</a></li>
<li><a class="dropdown-item" href="#">회사소개</a></li>
</ul>
</li>
</ul>
<nav class="navbar navbar-expand-lg" style="background-color:white">
<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_life'); ?>
</li>
<li class="nav-item" style="padding-top:10px;">|</li>
<li class="nav-item">
<?= $this->include($viewDatas['layout']['path'] . '/top_menu/top_menu_computer'); ?>
</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>
<div class="collapse navbar-collapse" id="navbarNavDarkDropdown">
<ul class="navbar-nav">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDarkDropdownMenuLink" role="button" data-bs-toggle="dropdown" aria-expanded="false">
생활*건강
</a>
<ul class="dropdown-menu dropdown-menu-dark" aria-labelledby="navbarDarkDropdownMenuLink">
<li><a class="dropdown-item" href="front/product?category=5">가구</a></li>
<li><a class="dropdown-item" href="front/product?category=6">애완동물</a></li>
</ul>
</li>
</ul>
</div>
<div class="collapse navbar-collapse" id="navbarNavDarkDropdown">
<ul class="navbar-nav">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDarkDropdownMenuLink" role="button" data-bs-toggle="dropdown" aria-expanded="false">
컴퓨터*가전
</a>
<ul class="dropdown-menu dropdown-menu-dark" aria-labelledby="navbarDarkDropdownMenuLink">
<li><a class="dropdown-item" href="front/product?category=8">서버장비</a></li>
<li><a class="dropdown-item" href="front/product?category=9">네트워크장비</a></li>
</ul>
</li>
</ul>
</div>
<div class="collapse navbar-collapse" id="navbarNavDarkDropdown">
<ul class="navbar-nav">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDarkDropdownMenuLink" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Support
</a>
<ul class="dropdown-menu dropdown-menu-dark" aria-labelledby="navbarDarkDropdownMenuLink">
<li><a class="dropdown-item" href="front/board?category=2">공지사항</a></li>
<li><a class="dropdown-item" href="front/board?category=3">FAQ</a></li>
</ul>
</li>
</ul>
</div>
</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 dropdown-toggle" 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" href="#">인사말</a></li>
<li><a class="dropdown-item" href="#">회사소개</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 dropdown-toggle" 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" href="/front/product?category=8">서버장비</a></li>
<li><a class="dropdown-item" 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 dropdown-toggle" 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" href="/front/product?category=5">가구</a></li>
<li><a class="dropdown-item" 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 dropdown-toggle" 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" href="/front/board?category=3">공지사항</a></li>
<li><a class="dropdown-item" href="/front/board?category=4">FAQ</a></li>
</ul>
</li>
</ul>
</div>

View File

@ -1,5 +1,6 @@
<nav class="navbar navbar-expand-lg navbar-light" style="background-color: #e3f2fd;">
<div id="head" class="container-fluid">
<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>

View File

@ -1,3 +1,11 @@
<div class="header">
<h4><?= $viewDatas['class_icon'] ?></i><?= $viewDatas['title'] ?></h4>
<div class="header container-fluid">
<nav class="nav">
<h4><?= $viewDatas['class_icon'] ?><?= $viewDatas['category']->getTitle() ?></h4>
</nav>
<nav class="nav justify-content-center"></nav>
<ul class="nav justify-content-end">
<li class="nav-item">
<a href="/"><?= ICONS['HOME'] ?></a> > <?= $viewDatas['parent_category']->getTitle() ?> > <?= $viewDatas['category']->getTitle() ?>
</li>
</ul>
</div>

View File

@ -4,18 +4,20 @@
* Created : 2016/9/11 Tri-aBility by Junheum,Choi
* Updated :
------------------------------------------------------------ */
body {
background-color: white;;
}
/* #head{
border:1px solid blue;
} */
/* #tail{
border:1px solid green;
} */
#layout{
width:100%;
background-color:#efefef
#tail{
text-align:center;
/* border:1px solid green; */
}
#layout {
width:1280px;
/* border:1px solid blue; */
}
/* #layout #left {
} */
#layout #body{
padding-left:10px;
padding-right:10px;

View File

@ -0,0 +1,7 @@
div#copyright{
width:100%;
background-color:#2d2e2e;
}
div#copyright nav div, a{
color:white;
}

View File

@ -2,15 +2,42 @@ div#left_menu{
position:fixed;
z-index:100;
width:160px;
border:1px solid silver;
background-color:white;
}
div#left_menu div.accordion {
/* display:none; */
background-color: white;
div#left_menu div.parent {
font-size:24px;
height:160px;
padding-top:30px;
background-color: #d5dfed;
border:1px solid silver;
text-align:center;
}
div#left_menu div.accordion div.accordion-item:hover {
background-color: #e7e7e7;
div#left_menu div.parent div{
font-size:24px;
}
div#left_menu div.sibling {
padding-top:10px;
text-align:center;
height:50px;
border-bottom:1px solid silver;
}
div#left_menu div.sibling a{
text-decoration: none;
color:black;
font-size:18px;
}
div#left_menu div.active {
background-color:#0d4491;
}
div#left_menu div.active a{
color:white;
}
div#left_menu div.sibling:hover {
background-color:#0d4491;
}
div#left_menu div.sibling:hover a,div.active{
color:white;
}
div#left_menu div.accordion div.accordion-item a{
padding-left:10px;

View File

@ -1,3 +1,57 @@
#id li.dropdown:hover ul.dropdown-menu {
#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;
}
#top_menu ul.nav li.nav-item {
margin-left:15px;
margin-right:15px;
}
#top_menu ul.nav li.nav-item ul.navbar-nav a#navbarDarkDropdownMenuLink{
font-size:18px;
/* border:1px solid silver; */
}
/* 메뉴바 */
#top_menu ul.nav li.nav-item ul.navbar-nav{
width:200px;
/* border:1px solid red; */
}
/* 메뉴바 hover했을시 */
#top_menu ul.nav li.nav-item ul.navbar-nav li.dropdown:hover a#navbarDarkDropdownMenuLink{
color:#0d4491;
}
#top_menu ul.nav li.nav-item ul.navbar-nav li.dropdown:hover ul.dropdown-menu{
/* margin-top:15px; */
display: block;
}
/* border:1px solid silver; */
}
/* #top_menu ul.nav li.nav-item ul.navbar-nav li.dropdown ul.dropdown-menu li:hover{
border:1px solid red;
} */
#top_menu ul.nav li.nav-item ul.navbar-nav li.dropdown ul.dropdown-menu li a{
font-size:18px;
text-align:center;
text-decoration:none;
width:200px;
padding-top:10px;
padding-bottom:10px;
}
#top_menu ul.nav li.nav-item ul.navbar-nav li.dropdown ul.dropdown-menu li:hover a{
color:white;
background-color:#0d4491;
}
/* #top_menu ul.nav li.nav-item ul.navbar-nav a:hover{
border:1px solid silver;
} */

View File

@ -0,0 +1,4 @@
#top_navigator{
padding-top:10px;
padding-bottom:10px;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB