shoppingmallv2 init...

This commit is contained in:
최준흠 2023-08-09 12:41:15 +09:00
parent 9a920055d5
commit 4453dccacb
35 changed files with 259 additions and 117 deletions

19
.gitignore vendored
View File

@ -70,6 +70,16 @@ writable/HPILO/*
writable/Excel/* writable/Excel/*
!writable/Excel/index.html !writable/Excel/index.html
#mapurl 결과물
public/mapurl/index.html
#upload 파일
public/uploads/*
public/upload_images/*
#leftmenu 파일
layouts/front/left_menu/*
#------------------------- #-------------------------
# User Guide Temp Files # User Guide Temp Files
#------------------------- #-------------------------
@ -129,11 +139,4 @@ nb-configuration.xml
/results/ /results/
/phpunit*.xml /phpunit*.xml
/.phpunit.*.cache /.phpunit.*.cache
#mapurl 결과물
public/mapurl/index.html
#upload 파일
public/uploads/*
public/upload_images/*

View File

@ -219,7 +219,7 @@ define('CLASS_ICONS', [
'PRODUCT' => '<i class="bi bi-box2"></i>', 'PRODUCT' => '<i class="bi bi-box2"></i>',
'CART' => '<i class="bi bi-cart4"></i>', 'CART' => '<i class="bi bi-cart4"></i>',
'ORDER' => '<i class="bi bi-clipboard-check"></i>', 'ORDER' => '<i class="bi bi-clipboard-check"></i>',
'BILLING' => '<i class="bi bi-cash-coin"></i>', 'PAYMENT' => '<i class="bi bi-cash-coin"></i>',
]); ]);
define('AUDIOS', [ define('AUDIOS', [
'Alram_GetEmail' => '<object width=0 height=0 data="/sound/jarvis_email.mp3" type="audio/mpeg"></object>', 'Alram_GetEmail' => '<object width=0 height=0 data="/sound/jarvis_email.mp3" type="audio/mpeg"></object>',

View File

@ -132,9 +132,9 @@ $routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'au
}); });
$routes->group('front', ['namespace' => 'App\Controllers\Front'], function ($routes) { $routes->group('front', ['namespace' => 'App\Controllers\Front'], function ($routes) {
$routes->group('user', ['namespace' => 'App\Controllers\Front', 'filter' => 'authFilter:user'], static function ($routes) { $routes->group('user', ['namespace' => 'App\Controllers\Front', 'filter' => 'authFilter:user'], static function ($routes) {
$routes->get('update/(:uuid)', 'UserController::update_form/$1'); $routes->get('', 'UserController::index');
$routes->post('update/(:uuid)', 'UserController::update/R1'); $routes->get('update', 'UserController::update_form');
$routes->get('view/(:uuid)', 'UserController::view/$1'); $routes->post('update', 'UserController::update');
}); });
$routes->group('board', static function ($routes) { $routes->group('board', static function ($routes) {
$routes->get('', 'BoardController::index'); $routes->get('', 'BoardController::index');

View File

@ -67,7 +67,7 @@ class CategoryController extends AdminController
private function build_leftmenu() private function build_leftmenu()
{ {
foreach ($this->_model->getEntitys(['grpdepth' => 1, 'status' => DEFAULTS['STATUS']]) as $entity) { foreach ($this->_model->getEntitys(['grpdepth' => 2, 'status' => DEFAULTS['STATUS']]) as $entity) {
$categorys = $this->_model->getSiblingEntitys($entity); $categorys = $this->_model->getSiblingEntitys($entity);
$viewDatas = [ $viewDatas = [
'className' => $this->_model->getClassName(), 'className' => $this->_model->getClassName(),

View File

@ -17,14 +17,14 @@ class UserController extends AdminController
} }
public function getFields(string $action = ""): array public function getFields(string $action = ""): array
{ {
$fields = ["id", "passwd", 'name', "email", "role", "status"]; $fields = ["id", "passwd", 'name', "email", "email", "phone", "role", "status"];
switch ($action) { switch ($action) {
case "index": case "index":
case "excel": case "excel":
return ["id", 'name', "email", "role", "status", 'created_at']; return ["id", 'name', "email", "email", "phone", "role", "status", 'created_at'];
break; break;
case "view": case "view":
return ["id", 'name', "email", "role", "status", 'updated_at', 'created_at']; return ["id", 'name', "email", "email", "phone", "role", "status", 'updated_at', 'created_at'];
break; break;
default: default:
return $fields; return $fields;

View File

@ -526,6 +526,7 @@ abstract class BaseController extends Controller
//모델 처리 //모델 처리
$this->_viewDatas['entitys'] = $this->index_getEntitys(); $this->_viewDatas['entitys'] = $this->index_getEntitys();
// echo $this->_model->getLastQuery(); // echo $this->_model->getLastQuery();
// exit;
// log_message("debug", __METHOD__ . "에서 findAll 호출:" . $this->_model->getLastQuery()); // log_message("debug", __METHOD__ . "에서 findAll 호출:" . $this->_model->getLastQuery());
//setting return_url to session flashdata //setting return_url to session flashdata
helper(['form']); helper(['form']);

View File

@ -39,6 +39,7 @@ class BoardController extends FrontController
{ {
return parent::getFieldBatchFilters(); return parent::getFieldBatchFilters();
} }
//Insert관련 //Insert관련
protected function insert_form_process() protected function insert_form_process()
{ {
@ -60,25 +61,36 @@ class BoardController extends FrontController
protected function update_form_process($entity) protected function update_form_process($entity)
{ {
//본인이 작성한글인지 최종확인용 정상접속이 아닌 위회해서 수정을 시도방지용 //본인이 작성한글인지 최종확인용 정상접속이 아닌 위회해서 수정을 시도방지용
if (!$this->_viewDatas[SESSION_NAMES['ISLOGIN']] || $entity->user_uid == $this->_viewDatas['auth'][AUTH_FIELDS['ID']]) { if (!$this->_viewDatas[SESSION_NAMES['ISLOGIN']] || $entity->user_uid != $this->_viewDatas['auth'][AUTH_FIELDS['ID']]) {
throw new \Exception("작성자 본인글인지 여부가 확인되지 않습니다."); throw new \Exception("작성자 본인글인지 여부가 확인되지 않습니다.");
} }
return parent::update_form_process($entity); //권한체크
$this->isRole('update');
$entity = parent::update_form_process($entity);
$this->_viewDatas['forms'] = ['attributes' => ['method' => "post",], 'hiddens' => [
'category' => $this->_category
]];
return $entity;
} }
protected function update_process($entity) protected function update_process($entity)
{ {
//본인이 작성한글인지 최종확인용 정상접속이 아닌 위회해서 수정을 시도방지용 //본인이 작성한글인지 최종확인용 정상접속이 아닌 위회해서 수정을 시도방지용
if (!$this->_viewDatas[SESSION_NAMES['ISLOGIN']] || $entity->user_uid == $this->_viewDatas['auth'][AUTH_FIELDS['ID']]) { if (!$this->_viewDatas[SESSION_NAMES['ISLOGIN']] || $entity->user_uid != $this->_viewDatas['auth'][AUTH_FIELDS['ID']]) {
throw new \Exception("작성자 본인글인지 여부가 확인되지 않습니다."); throw new \Exception("작성자 본인글인지 여부가 확인되지 않습니다.");
} }
return parent::update_process($entity); return parent::update_process($entity);
} }
//Reply관련 //Reply관련($entity는 부모의것임을 주의)
protected function reply_form_process($entity) protected function reply_form_process($entity)
{ {
//권한체크 //권한체크
$this->isRole('reply', $entity); $this->isRole('reply');
return parent::reply_form_process($entity); $entity = parent::reply_form_process($entity);
$this->_viewDatas['forms'] = ['attributes' => ['method' => "post",], 'hiddens' => [
'category_uid' => $entity->category_uid,
'category' => $this->_category
]];
return $entity;
} }
//Delete 관련 //Delete 관련
protected function delete_process($entity) protected function delete_process($entity)
@ -93,17 +105,24 @@ class BoardController extends FrontController
protected function view_process($entity) protected function view_process($entity)
{ {
//권한체크 //권한체크
$this->isRole('view', $entity); $this->isRole('view');
//조회수 올리기 //조회수 올리기
$entity = $this->_model->addViewCount($entity); $entity = $this->_model->addViewCount($entity);
return parent::view_process($entity); $entity = parent::view_process($entity);
$this->_viewDatas['forms'] = ['attributes' => ['method' => "post",], 'hiddens' => [
'category' => $this->_category
]];
return $entity;
} }
//Index관련 //Index관련
protected function index_process() protected function index_process()
{ {
//권한체크 //권한체크
$this->isRole('index'); $this->isRole('index');
return parent::index_process(); parent::index_process();
$this->_viewDatas['forms'] = ['attributes' => ['method' => "post",], 'hiddens' => [
'category' => $this->_category
]];
} }
//Category 및 Status 조건추가 //Category 및 Status 조건추가
protected function index_setCondition() protected function index_setCondition()

View File

@ -26,12 +26,9 @@ abstract class FrontController extends BaseController
} }
//권한체크 //권한체크
final protected function isRole($action, $entity = null) protected function isRole($action)
{ {
$this->_category = $this->request->getVar('category'); $this->_category = $this->request->getVar('category') ?: throw new \Exception("분류를 지정하지 않으셨습니다.");
if (is_null($this->_category)) {
$this->_category = !is_null($entity) ? $entity->category_uid : throw new \Exception("분류를 지정하지 않으셨습니다.");
}
$this->_viewDatas['category'] = $this->getCategoryModel()->getEntity([$this->getCategoryModel()->getPrimaryKey() => $this->_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()]); $this->_viewDatas['parent_category'] = $this->getCategoryModel()->getEntity([$this->getCategoryModel()->getPrimaryKey() => $this->_viewDatas['category']->getHierarchy_ParentUID()]);
switch ($action) { switch ($action) {

View File

@ -33,14 +33,14 @@ class UserController extends FrontController
public function getFields(string $action = ""): array public function getFields(string $action = ""): array
{ {
$fields = ["id", "passwd", 'name', "email", "role", "status"]; $fields = ["id", "passwd", 'name', "email", "phone", "mobile",];
switch ($action) { switch ($action) {
case "index": case "index":
case "excel": case "excel":
return ["id", 'name', "email", "role", "status", 'created_at']; return ["id", 'name', "email", "phone", "mobile", 'created_at'];
break; break;
case "view": case "view":
return ["id", 'name', "email", "role", "status", 'updated_at', 'created_at']; return ["id", 'name', "email", "phone", "mobile", 'updated_at', 'created_at'];
break; break;
default: default:
return $fields; return $fields;
@ -49,34 +49,43 @@ class UserController extends FrontController
} }
public function getFieldFilters(): array public function getFieldFilters(): array
{ {
return ["role", "status"]; return [];
} }
public function getFieldBatchFilters(): array public function getFieldBatchFilters(): array
{ {
return parent::getFieldBatchFilters(); return parent::getFieldBatchFilters();
} }
//권한체크
protected function insert_validate() protected function isRole($action, $entity = null)
{ {
$rules = []; $this->_category = $this->request->getVar('category') ?: $entity->category_uid;
foreach ($this->_viewDatas['fieldRules'] as $field => $rule) { parent::isRole($action, $entity);
switch ($field) { }
case 'role': //Update관련
$rules[$field . '.*'] = $rule; protected function update_form_process($entity)
break; {
default: //권한체크
$rules[$field] = $rule; $this->isRole('update');
break; $entity = parent::update_form_process($entity);
} $this->_viewDatas['forms'] = ['attributes' => ['method' => "post",], 'hiddens' => [
} 'category' => $this->_category
//fieldData Rule 검사 ]];
if (!$this->validate($rules)) { return $entity;
throw new \Exception("{$this->_viewDatas['title']}의 검증 오류발생\n" . implode("\n", $this->validator->getErrors())); }
} //Index관련
//fieldData 적용 protected function index_process()
$this->_viewDatas['fieldDatas'] = array(); {
foreach ($this->_viewDatas['fields'] as $field) { //권한체크
$this->_viewDatas['fieldDatas'] = $this->getFieldFormData($field); $this->isRole('index');
} parent::index_process();
$this->_viewDatas['forms'] = ['attributes' => ['method' => "post",], 'hiddens' => [
'category' => $this->_category
]];
}
//사용자 UID 조건추가
protected function index_setCondition()
{
$this->_model->where("uid", $this->_viewDatas['auth'][AUTH_FIELDS['ID']]);
parent::index_setCondition();
} }
} }

View File

@ -7,6 +7,8 @@ CREATE TABLE baseproject.tw_user (
passwd varchar(100) NOT NULL, passwd varchar(100) NOT NULL,
name varchar(20) NOT NULL COMMENT "사용자명", name varchar(20) NOT NULL COMMENT "사용자명",
email varchar(50) NOT NULL, email varchar(50) NOT NULL,
phone varchar(20) NULL COMMENT '연락처',
mobile varchar(20) NULL COMMENT '핸드폰',
role varchar(255) NOT NULL DEFAULT 'user' COMMENT '사용자등급', role varchar(255) NOT NULL DEFAULT 'user' COMMENT '사용자등급',
status varchar(10) NOT NULL DEFAULT 'use' COMMENT 'use: 사용,unuse: 사용않함', status varchar(10) NOT NULL DEFAULT 'use' COMMENT 'use: 사용,unuse: 사용않함',
updated_at timestamp NULL DEFAULT NULL, updated_at timestamp NULL DEFAULT NULL,

View File

@ -6,6 +6,8 @@ CREATE TABLE shoppingmall.tw_user (
passwd varchar(100) NOT NULL, passwd varchar(100) NOT NULL,
name varchar(20) NOT NULL COMMENT "사용자명", name varchar(20) NOT NULL COMMENT "사용자명",
email varchar(50) NOT NULL, email varchar(50) NOT NULL,
phone varchar(20) NULL COMMENT '연락처',
mobile varchar(20) NULL COMMENT '핸드폰',
role varchar(255) NOT NULL DEFAULT 'user' COMMENT '사용자등급', role varchar(255) NOT NULL DEFAULT 'user' COMMENT '사용자등급',
status varchar(10) NOT NULL DEFAULT 'use' COMMENT 'use: 사용,unuse: 사용않함', status varchar(10) NOT NULL DEFAULT 'use' COMMENT 'use: 사용,unuse: 사용않함',
updated_at timestamp NULL DEFAULT NULL, updated_at timestamp NULL DEFAULT NULL,

View File

@ -118,12 +118,12 @@ function getFieldIndex_Row_BoardHelper($field, $entity, array $viewDatas): strin
case 'title': case 'title':
case 'name': case 'name':
$reply = anchor( $reply = anchor(
current_url() . '/reply/' . $entity->getPrimaryKey(), current_url() . '/reply/' . $entity->getPrimaryKey() . '?category=' . $viewDatas['category']->getPrimaryKey(),
ICONS['REPLY'], ICONS['REPLY'],
["target" => "_self"] ["target" => "_self"]
); );
$view = anchor( $view = anchor(
current_url() . '/view/' . $entity->getPrimaryKey(), current_url() . '/view/' . $entity->getPrimaryKey() . '?category=' . $viewDatas['category']->getPrimaryKey(),
$value, $value,
["target" => "_self"] ["target" => "_self"]
); );

View File

@ -122,7 +122,7 @@ function getFieldIndex_Row_UserHelper($field, $entity, array $viewDatas): string
case 'title': case 'title':
case 'name': case 'name':
return anchor( return anchor(
current_url() . '/view/' . $entity->getPrimaryKey(), current_url() . '/view/' . $entity->getPrimaryKey() . '?category=' . $viewDatas['category']->getPrimaryKey(),
$value, $value,
["target" => "_self"] ["target" => "_self"]
); );

View File

@ -13,5 +13,5 @@ return [
'updated_at' => "수정일", 'updated_at' => "수정일",
'created_at' => "작성일" 'created_at' => "작성일"
], ],
"STATUS" => ["use" => "장바구니", "unuse" => "주문취소", "confirm" => "주문완료",] "STATUS" => ["use" => "장바구니", "unuse" => "주문취소", "confirm" => "주문완료", "paid" => "결제완료"]
]; ];

View File

@ -11,6 +11,8 @@ return [
'passwd' => '암호', 'passwd' => '암호',
'confirmpassword' => '암호확인', 'confirmpassword' => '암호확인',
'email' => '메일', 'email' => '메일',
'phone' => '연락처',
'mobile' => '핸드폰',
'role' => '권한', 'role' => '권한',
'name' => '이름', 'name' => '이름',
'status' => '상태', 'status' => '상태',

View File

@ -92,8 +92,10 @@ class UserModel extends BaseModel
//Index관련 //Index관련
public function setIndexWordFilter(string $word) public function setIndexWordFilter(string $word)
{ {
parent::setIndexWordFilter($word); if ($word !== DEFAULTS['EMPTY']) {
$this->orLike($this->getTitleField(), $word, "both"); //befor , after , both parent::setIndexWordFilter($word);
$this->orLike("id", $word, "both"); $this->orLike($this->getTitleField(), $word, "both"); //befor , after , both
$this->orLike("id", $word, "both");
}
} }
} }

View File

@ -20,7 +20,7 @@
<td> <td>
<!-- 사용자가 자신의 작성한것인지 확인되면 update 가능--> <!-- 사용자가 자신의 작성한것인지 확인되면 update 가능-->
<?php if ($viewDatas[SESSION_NAMES['ISLOGIN']] && $entity->user_uid == $viewDatas['auth'][AUTH_FIELDS['ID']]) : ?> <?php if ($viewDatas[SESSION_NAMES['ISLOGIN']] && $entity->user_uid == $viewDatas['auth'][AUTH_FIELDS['ID']]) : ?>
<?= anchor(current_url() . '/update/' . $entity->getPrimaryKey(), $viewDatas['total_count'] - (($viewDatas['page'] - 1) * $viewDatas['per_page'] + $cnt), ["target" => "_self"]) ?> <?= anchor(current_url() . '/update/' . $entity->getPrimaryKey() . '?category=' . $viewDatas['category']->getPrimaryKey(), $viewDatas['total_count'] - (($viewDatas['page'] - 1) * $viewDatas['per_page'] + $cnt), ["target" => "_self"]) ?>
<?php else : ?> <?php else : ?>
<?= $viewDatas['total_count'] - (($viewDatas['page'] - 1) * $viewDatas['per_page'] + $cnt) ?> <?= $viewDatas['total_count'] - (($viewDatas['page'] - 1) * $viewDatas['per_page'] + $cnt) ?>
<?php endif ?> <?php endif ?>
@ -29,9 +29,13 @@
<td nowrap><?= getFieldIndex_Row_BoardHelper($field, $entity, $viewDatas) ?></td> <td nowrap><?= getFieldIndex_Row_BoardHelper($field, $entity, $viewDatas) ?></td>
<?php endforeach ?> <?php endforeach ?>
<td> <td>
<!-- 사용자가 쓰기권한이 있는지 확인-->
<?php if (isRole_CommonHelper($viewDatas['currentRoles'], $viewDatas['category'], CATEGORY_ROLE_FIELDS['WRITE'])) : ?>
<?= anchor(current_url() . '/insert?category=' . $viewDatas['category']->getPrimaryKey(), '입력', ["class" => "btn btn-sm btn-primary btn-circle", "target" => "_self"]) ?>
<?php endif ?>
<!-- 사용자가 자신의 작성한것인지 확인되면 delete 가능--> <!-- 사용자가 자신의 작성한것인지 확인되면 delete 가능-->
<?php if ($viewDatas[SESSION_NAMES['ISLOGIN']] && $entity->user_uid == $viewDatas['auth'][AUTH_FIELDS['ID']]) : ?> <?php if ($viewDatas[SESSION_NAMES['ISLOGIN']] && $entity->user_uid == $viewDatas['auth'][AUTH_FIELDS['ID']]) : ?>
<?= anchor(current_url() . '/delete/' . $entity->getPrimaryKey(), ICONS['DELETE'], ["class" => "btn btn-sm btn-danger btn-circle", "target" => "_self"]) ?> <?= anchor(current_url() . '/delete/' . $entity->getPrimaryKey() . '?category=' . $viewDatas['category']->getPrimaryKey(), ICONS['DELETE'], ["class" => "btn btn-sm btn-danger btn-circle", "target" => "_self"]) ?>
<?php endif ?> <?php endif ?>
</td> </td>
</tr> </tr>
@ -40,12 +44,6 @@
</tbody> </tbody>
</table> </table>
<div class="bottom"> <div class="bottom">
<ul class="nav justify-content-center">
<!-- 사용자가 쓰기권한이 있는지 확인-->
<?php if (isRole_CommonHelper($viewDatas['currentRoles'], $viewDatas['category'], CATEGORY_ROLE_FIELDS['WRITE'])) : ?>
<li class="nav-item"><?= anchor(current_url() . '/insert', '입력', ["class" => "btn btn-sm btn-primary btn-circle", "target" => "_self"]) ?></li>
<?php endif ?>
</ul>
<?= $viewDatas['pagination'] ?> <?= $viewDatas['pagination'] ?>
</div> </div>
<?= form_close() ?> <?= form_close() ?>

View File

@ -1,7 +1,6 @@
<?= $this->extend('layouts/front') ?> <?= $this->extend('layouts/front') ?>
<?= $this->section('content') ?> <?= $this->section('content') ?>
<link href="/css/front/content.css" media="screen" rel="stylesheet" ype="text/css" /> <link href="/css/front/content.css" media="screen" rel="stylesheet" ype="text/css" />
<div id="content"> <div id="content">
<div><?= html_entity_decode($viewDatas['category']->head) ?></div> <div><?= html_entity_decode($viewDatas['category']->head) ?></div>
<table class="form table table-bordered table-striped"> <table class="form table table-bordered table-striped">

View File

@ -0,0 +1,41 @@
<?= $this->extend('layouts/front') ?>
<?= $this->section('content') ?>
<link href="/css/front/content.css" media="screen" rel="stylesheet" type="text/css" />
<div id="content">
<div><?= html_entity_decode($viewDatas['category']->head) ?></div>
<div class="top"><?= $this->include('templates/front/index_head') ?></div>
<?= form_open(current_url() . '/batchjob', $viewDatas['forms']['attributes'], $viewDatas['forms']['hiddens']) ?>
<table class="table table-hover">
<thead>
<tr>
<th>번호</th>
<?php foreach ($viewDatas['fields'] as $field) : ?><th><?= getFieldIndex_Column_UserHelper($field, $viewDatas) ?></th><?php endforeach ?>
</tr>
</thead>
<tbody>
<?php $cnt = 0 ?>
<?php foreach ($viewDatas['entitys'] as $entity) : ?>
<tr id="<?= $entity->getPrimaryKey() ?>" <?= $entity->status != DEFAULTS['STATUS'] ? 'class="table-danger" rowcolor="red"' : 'rowcolor="red"' ?> onClick="indexRowCheckBoxToggle(this)">
<td>
<!-- 사용자가 자신의 작성한것인지 확인되면 update 가능-->
<?php if ($viewDatas[SESSION_NAMES['ISLOGIN']] && $entity->getPrimaryKey() == $viewDatas['auth'][AUTH_FIELDS['ID']]) : ?>
<?= anchor(current_url() . '/update/' . $entity->getPrimaryKey(), $viewDatas['total_count'] - (($viewDatas['page'] - 1) * $viewDatas['per_page'] + $cnt), ["target" => "_self"]) ?>
<?php else : ?>
<?= $viewDatas['total_count'] - (($viewDatas['page'] - 1) * $viewDatas['per_page'] + $cnt) ?>
<?php endif ?>
</td>
<?php foreach ($viewDatas['fields'] as $field) : ?>
<td nowrap><?= getFieldIndex_Row_UserHelper($field, $entity, $viewDatas) ?></td>
<?php endforeach ?>
</tr>
<?php $cnt++ ?>
<?php endforeach ?>
</tbody>
</table>
<div class="bottom">
<?= $viewDatas['pagination'] ?>
</div>
<?= form_close() ?>
<div><?= html_entity_decode($viewDatas['category']->tail) ?></div>
</div>
<?= $this->endSection() ?>

View File

@ -14,9 +14,6 @@
</td> </td>
</tr> </tr>
<?php endforeach; ?> <?php endforeach; ?>
<tr>
<td valign="bottom" colspan="2"><?= form_submit('', '입력', array("class" => "btn btn-outline btn-primary")); ?></td>
</tr>
</table> </table>
<?= form_close(); ?> <?= form_close(); ?>
<div><?= html_entity_decode($viewDatas['category']->head) ?></div> <div><?= html_entity_decode($viewDatas['category']->head) ?></div>

View File

@ -10,7 +10,7 @@
<h2><a href="/admin/order"><?= CLASS_ICONS['ORDER'] ?></i>주문 관리</a></h2> <h2><a href="/admin/order"><?= CLASS_ICONS['ORDER'] ?></i>주문 관리</a></h2>
</div> </div>
<div class="accordion-item"> <div class="accordion-item">
<h2><a href="/admin/billing"><?= CLASS_ICONS['BILLING'] ?></i>결제 관리</a></h2> <h2><a href="/admin/payment"><?= CLASS_ICONS['PAYMENT'] ?></i>결제 관리</a></h2>
</div> </div>
</div> </div>
</div> </div>

View File

@ -1,6 +1,6 @@
<!-- left menu start --> <!-- left menu start -->
<link href="/css/front/left_menu.css" media="screen" rel="stylesheet" type="text/css" /> <link href="/css/front/left_menu.css" media="screen" rel="stylesheet" type="text/css" />
<div id="left_menu"> <div id="left_menu">
<?= $this->include($viewDatas['layout']['path'] . "/left_menu/leftmenu_{$viewDatas['category']->getHierarchy_ParentUID()}"); ?> <?= $this->include($viewDatas['layout']['path'] . "/left_menu/leftmenu_{$viewDatas['category']->getPrimaryKey()}"); ?>
</div> </div>
<!-- left menu end --> <!-- left menu end -->

View File

@ -0,0 +1,13 @@
<!-- DEBUG-VIEW START 3 APPPATH\Views\admin\category\leftmenu_template.php -->
<div class="parent">
<div>-</div>
<div class="title">개인정보</div>
</div>
<div class="sibling active">
<a href="http://localhost:8080/front/order?category=11" target="_self">주문정보</a> <span class="play"><i class="bi bi-play-fill"></i></span>
</div>
<div class="sibling ">
<a href="http://localhost:8080/front/user?category=12" target="_self">사용자정보</a> <span class="play"><i class="bi bi-play-fill"></i></span>
</div>
<!-- DEBUG-VIEW ENDED 3 APPPATH\Views\admin\category\leftmenu_template.php -->

View File

@ -0,0 +1,13 @@
<!-- DEBUG-VIEW START 4 APPPATH\Views\admin\category\leftmenu_template.php -->
<div class="parent">
<div>-</div>
<div class="title">개인정보</div>
</div>
<div class="sibling ">
<a href="http://localhost:8080/front/order?category=11" target="_self">주문정보</a> <span class="play"><i class="bi bi-play-fill"></i></span>
</div>
<div class="sibling active">
<a href="http://localhost:8080/front/user?category=12" target="_self">사용자정보</a> <span class="play"><i class="bi bi-play-fill"></i></span>
</div>
<!-- DEBUG-VIEW ENDED 4 APPPATH\Views\admin\category\leftmenu_template.php -->

View File

@ -1,13 +1,13 @@
<!-- DEBUG-VIEW START 1 APPPATH\Views\admin\category\leftmenu_template.php --> <!-- DEBUG-VIEW START 1 APPPATH\Views\admin\category\leftmenu_template.php -->
<div class="parent"> <div class="parent">
<div>-</div> <div>-</div>
<div class="title">AboutUS</div> <div class="title">사이트페이지</div>
</div> </div>
<div class="sibling "> <div class="sibling active">
<a href="http://localhost:8080/front/sitepage?category=11" target="_self">회사소개</a> <span class="play"><i class="bi bi-play-fill"></i></span> <a href="http://localhost:8080/front/sitepage?category=14" target="_self">인사말</a> <span class="play"><i class="bi bi-play-fill"></i></span>
</div> </div>
<div class="sibling "> <div class="sibling ">
<a href="http://localhost:8080/front/sitepage?category=12" target="_self">인사말</a> <span class="play"><i class="bi bi-play-fill"></i></span> <a href="http://localhost:8080/front/sitepage?category=15" target="_self">회사소개</a> <span class="play"><i class="bi bi-play-fill"></i></span>
</div> </div>
<!-- DEBUG-VIEW ENDED 1 APPPATH\Views\admin\category\leftmenu_template.php --> <!-- DEBUG-VIEW ENDED 1 APPPATH\Views\admin\category\leftmenu_template.php -->

View File

@ -0,0 +1,13 @@
<!-- DEBUG-VIEW START 2 APPPATH\Views\admin\category\leftmenu_template.php -->
<div class="parent">
<div>-</div>
<div class="title">사이트페이지</div>
</div>
<div class="sibling ">
<a href="http://localhost:8080/front/sitepage?category=14" target="_self">인사말</a> <span class="play"><i class="bi bi-play-fill"></i></span>
</div>
<div class="sibling active">
<a href="http://localhost:8080/front/sitepage?category=15" target="_self">회사소개</a> <span class="play"><i class="bi bi-play-fill"></i></span>
</div>
<!-- DEBUG-VIEW ENDED 2 APPPATH\Views\admin\category\leftmenu_template.php -->

View File

@ -1,13 +1,13 @@
<!-- DEBUG-VIEW START 4 APPPATH\Views\admin\category\leftmenu_template.php --> <!-- DEBUG-VIEW START 9 APPPATH\Views\admin\category\leftmenu_template.php -->
<div class="parent"> <div class="parent">
<div>-</div> <div>-</div>
<div class="title">게시판</div> <div class="title">Support</div>
</div> </div>
<div class="sibling "> <div class="sibling active">
<a href="http://localhost:8080/front/board?category=2" target="_self">공지사항</a> <span class="play"><i class="bi bi-play-fill"></i></span> <a href="http://localhost:8080/front/board?category=3" target="_self">공지사항</a> <span class="play"><i class="bi bi-play-fill"></i></span>
</div> </div>
<div class="sibling "> <div class="sibling ">
<a href="http://localhost:8080/front/board?category=3" target="_self">FAQ</a> <span class="play"><i class="bi bi-play-fill"></i></span> <a href="http://localhost:8080/front/board?category=4" target="_self">FAQ</a> <span class="play"><i class="bi bi-play-fill"></i></span>
</div> </div>
<!-- DEBUG-VIEW ENDED 4 APPPATH\Views\admin\category\leftmenu_template.php --> <!-- DEBUG-VIEW ENDED 9 APPPATH\Views\admin\category\leftmenu_template.php -->

View File

@ -1,13 +1,13 @@
<!-- DEBUG-VIEW START 3 APPPATH\Views\admin\category\leftmenu_template.php --> <!-- DEBUG-VIEW START 10 APPPATH\Views\admin\category\leftmenu_template.php -->
<div class="parent"> <div class="parent">
<div>-</div> <div>-</div>
<div class="title">네트워크</div> <div class="title">Support</div>
</div> </div>
<div class="sibling "> <div class="sibling ">
<a href="http://localhost:8080/front/product?category=5" target="_self">판매</a> <span class="play"><i class="bi bi-play-fill"></i></span> <a href="http://localhost:8080/front/board?category=3" target="_self">공지사항</a> <span class="play"><i class="bi bi-play-fill"></i></span>
</div> </div>
<div class="sibling "> <div class="sibling active">
<a href="http://localhost:8080/front/product?category=6" target="_self">월이용권</a> <span class="play"><i class="bi bi-play-fill"></i></span> <a href="http://localhost:8080/front/board?category=4" target="_self">FAQ</a> <span class="play"><i class="bi bi-play-fill"></i></span>
</div> </div>
<!-- DEBUG-VIEW ENDED 3 APPPATH\Views\admin\category\leftmenu_template.php --> <!-- DEBUG-VIEW ENDED 10 APPPATH\Views\admin\category\leftmenu_template.php -->

View File

@ -0,0 +1,13 @@
<!-- DEBUG-VIEW START 7 APPPATH\Views\admin\category\leftmenu_template.php -->
<div class="parent">
<div>-</div>
<div class="title">네트워크</div>
</div>
<div class="sibling active">
<a href="http://localhost:8080/front/product?category=5" target="_self">월이용권</a> <span class="play"><i class="bi bi-play-fill"></i></span>
</div>
<div class="sibling ">
<a href="http://localhost:8080/front/product?category=6" target="_self">판매</a> <span class="play"><i class="bi bi-play-fill"></i></span>
</div>
<!-- DEBUG-VIEW ENDED 7 APPPATH\Views\admin\category\leftmenu_template.php -->

View File

@ -0,0 +1,13 @@
<!-- DEBUG-VIEW START 8 APPPATH\Views\admin\category\leftmenu_template.php -->
<div class="parent">
<div>-</div>
<div class="title">네트워크</div>
</div>
<div class="sibling ">
<a href="http://localhost:8080/front/product?category=5" target="_self">월이용권</a> <span class="play"><i class="bi bi-play-fill"></i></span>
</div>
<div class="sibling active">
<a href="http://localhost:8080/front/product?category=6" target="_self">판매</a> <span class="play"><i class="bi bi-play-fill"></i></span>
</div>
<!-- DEBUG-VIEW ENDED 8 APPPATH\Views\admin\category\leftmenu_template.php -->

View File

@ -1,13 +1,13 @@
<!-- DEBUG-VIEW START 2 APPPATH\Views\admin\category\leftmenu_template.php --> <!-- DEBUG-VIEW START 5 APPPATH\Views\admin\category\leftmenu_template.php -->
<div class="parent"> <div class="parent">
<div>-</div> <div>-</div>
<div class="title">서버</div> <div class="title">서버</div>
</div> </div>
<div class="sibling "> <div class="sibling active">
<a href="http://localhost:8080/front/product?category=8" target="_self">판매</a> <span class="play"><i class="bi bi-play-fill"></i></span> <a href="http://localhost:8080/front/product?category=8" target="_self">월이용권</a> <span class="play"><i class="bi bi-play-fill"></i></span>
</div> </div>
<div class="sibling "> <div class="sibling ">
<a href="http://localhost:8080/front/product?category=9" target="_self">월이용권</a> <span class="play"><i class="bi bi-play-fill"></i></span> <a href="http://localhost:8080/front/product?category=9" target="_self">판매</a> <span class="play"><i class="bi bi-play-fill"></i></span>
</div> </div>
<!-- DEBUG-VIEW ENDED 2 APPPATH\Views\admin\category\leftmenu_template.php --> <!-- DEBUG-VIEW ENDED 5 APPPATH\Views\admin\category\leftmenu_template.php -->

View File

@ -0,0 +1,13 @@
<!-- DEBUG-VIEW START 6 APPPATH\Views\admin\category\leftmenu_template.php -->
<div class="parent">
<div>-</div>
<div class="title">서버</div>
</div>
<div class="sibling ">
<a href="http://localhost:8080/front/product?category=8" target="_self">월이용권</a> <span class="play"><i class="bi bi-play-fill"></i></span>
</div>
<div class="sibling active">
<a href="http://localhost:8080/front/product?category=9" target="_self">판매</a> <span class="play"><i class="bi bi-play-fill"></i></span>
</div>
<!-- DEBUG-VIEW ENDED 6 APPPATH\Views\admin\category\leftmenu_template.php -->

View File

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

View File

@ -4,9 +4,7 @@
* Created : 2016/9/11 Tri-aBility by Junheum,Choi * Created : 2016/9/11 Tri-aBility by Junheum,Choi
* Updated : * Updated :
------------------------------------------------------------ */ ------------------------------------------------------------ */
body {
background-color: white;;
}
/* #head{ /* #head{
border:1px solid blue; border:1px solid blue;
} */ } */
@ -30,12 +28,12 @@ body {
margin-left:30px; margin-left:30px;
border-bottom:1px solid silver; border-bottom:1px solid silver;
} }
#layout #body nav.header nav h4{ #layout #body nav.header nav h4.title{
font-size:26px; font-size:26px;
font-weight:bold; font-weight:bold;
} }
#layout #body nav.header ul li.nav-item{ #layout #body nav.header nav span.flow{
color: silver; color: gray;
} }
#layout #body div.footer #layout #body div.footer
/*content 하단라인*/{ /*content 하단라인*/{

View File

@ -61,19 +61,15 @@ div#content table thead th{
background-color:#F5F5F5; background-color:#F5F5F5;
/* border:1px solid silver; */ /* border:1px solid silver; */
} }
div#content table thead th a{ /* div#content table thead th a{
color:black; border:1px solid silver;
/* border:1px solid silver; */ } */
}
div#content table tbody td { div#content table tbody td {
color: black;
color:gray;
font-weight:bold; font-weight:bold;
/* border:1px solid silver; */ /* border:1px solid silver; */
text-align:center; text-align:center;
} }
div#content table tbody td a{ div#content table tbody td a{
color:gray;
text-decoration: none; text-decoration: none;
/* border:1px solid silver; */ /* border:1px solid silver; */
} }