shoppingmallv2 init...
This commit is contained in:
parent
04fa6b7822
commit
3ce028ef6e
@ -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', [
|
||||
|
||||
@ -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()
|
||||
// {
|
||||
|
||||
@ -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'];
|
||||
|
||||
@ -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 '쓰기권한',
|
||||
|
||||
@ -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]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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()
|
||||
{
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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':
|
||||
|
||||
@ -9,6 +9,7 @@ return [
|
||||
'label' => [
|
||||
'uid' => "번호",
|
||||
'name' => "범주제목",
|
||||
'photo' => "이미지",
|
||||
'isaccess' => "접속권한",
|
||||
'isread' => "읽기권한",
|
||||
'iswrite' => "쓰기권한",
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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":
|
||||
|
||||
@ -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':
|
||||
|
||||
@ -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"]) ?>
|
||||
|
||||
@ -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"]) ?>
|
||||
|
||||
@ -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>
|
||||
@ -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>
|
||||
@ -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 끝-->
|
||||
@ -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>
|
||||
@ -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>
|
||||
@ -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>
|
||||
@ -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>
|
||||
@ -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>
|
||||
13
app/Views/layouts/front/top_menu/top_menu_aboutus.php
Normal file
13
app/Views/layouts/front/top_menu/top_menu_aboutus.php
Normal 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>
|
||||
13
app/Views/layouts/front/top_menu/top_menu_computer.php
Normal file
13
app/Views/layouts/front/top_menu/top_menu_computer.php
Normal 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>
|
||||
13
app/Views/layouts/front/top_menu/top_menu_life.php
Normal file
13
app/Views/layouts/front/top_menu/top_menu_life.php
Normal 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>
|
||||
13
app/Views/layouts/front/top_menu/top_menu_support.php
Normal file
13
app/Views/layouts/front/top_menu/top_menu_support.php
Normal 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>
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
@ -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;
|
||||
|
||||
7
public/css/front/copyright.css
Normal file
7
public/css/front/copyright.css
Normal file
@ -0,0 +1,7 @@
|
||||
div#copyright{
|
||||
width:100%;
|
||||
background-color:#2d2e2e;
|
||||
}
|
||||
div#copyright nav div, a{
|
||||
color:white;
|
||||
}
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
} */
|
||||
4
public/css/front/top_navigator.css
Normal file
4
public/css/front/top_navigator.css
Normal file
@ -0,0 +1,4 @@
|
||||
#top_navigator{
|
||||
padding-top:10px;
|
||||
padding-bottom:10px;
|
||||
}
|
||||
BIN
public/images/common/hpdl360g6.jpg
Normal file
BIN
public/images/common/hpdl360g6.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 29 KiB |
BIN
public/images/sub/sub_visual1.jpg
Normal file
BIN
public/images/sub/sub_visual1.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 153 KiB |
BIN
public/images/sub/sub_visual2.jpg
Normal file
BIN
public/images/sub/sub_visual2.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 64 KiB |
BIN
public/images/sub/sub_visual3.jpg
Normal file
BIN
public/images/sub/sub_visual3.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 177 KiB |
BIN
public/images/sub/sub_visual4.jpg
Normal file
BIN
public/images/sub/sub_visual4.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 101 KiB |
Loading…
Reference in New Issue
Block a user