servermgrv2 init...
This commit is contained in:
parent
6f78a6bddd
commit
532b61c40f
@ -109,8 +109,8 @@ define('LAYOUTS', [
|
||||
'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 href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" media="screen" rel="stylesheet" type="text/css" />',
|
||||
],
|
||||
'javascripts' => [
|
||||
'<script src="//cdn.jsdelivr.net/npm/jquery@3.7.0/dist/jquery.min.js"></script>',
|
||||
@ -123,8 +123,8 @@ define('LAYOUTS', [
|
||||
'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 href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" media="screen" rel="stylesheet" type="text/css" />',
|
||||
],
|
||||
'javascripts' => [
|
||||
'<script src="//cdn.jsdelivr.net/npm/jquery@3.7.0/dist/jquery.min.js"></script>',
|
||||
@ -178,14 +178,29 @@ foreach (PATHS as $key => $path) {
|
||||
|
||||
//아이콘 및 Sound관련
|
||||
define('ICONS', [
|
||||
'NEW' => '<i class="fa fa-paper-plane" aria-hidden="true"></i>',
|
||||
'REPLY' => '<i class="fa fa-reply"></i>',
|
||||
'DELETE' => '<i class="fa fa-trash-o"></i>',
|
||||
'RELOAD' => '<i class="fa fa-refresh" aria-hidden="true"></i>',
|
||||
'SETTING' => '<i class="fa fa-cogs" aria-hidden="true"></i>',
|
||||
'FLAG' => '<i class="fa fa-flag" aria-hidden="true"></i>',
|
||||
'EXCEL' => '<i class="fa fa-file-excel-o" style="font-size:24px"></i>',
|
||||
'IMAGE_FILE' => '<i class="fa fa-file-image-o" aria-hidden="true"></i>',
|
||||
'LOGIN' => '<i class="bi bi-shield-check"></i>',
|
||||
'LOGOUT' => '<i class="bi bi-sign-stop-fill"></i>',
|
||||
'LOCK' => '<i class="bi bi-shield-lock"></i>',
|
||||
'NEW' => '<i class="bi bi-database-add"></i>',
|
||||
'REPLY' => '<i class="bi bi-arrow-return-right"></i>',
|
||||
'DELETE' => '<i class="bi bi-trash"></i>',
|
||||
'RELOAD' => '<i class="bi bi-repeat"></i>',
|
||||
'SETUP' => '<i class="bi bi-gear"></i>',
|
||||
'FLAG' => '<i class="bi bi-send"></i>',
|
||||
'SEARCH' => '<i class="bi bi-search"></i>',
|
||||
'EXCEL' => '<i class="bi bi-file-excel"></i>',
|
||||
'IMAGE_FILE' => '<i class="bi bi-file-earmark-image"></i>',
|
||||
]);
|
||||
define('CLASS_ICONS', [
|
||||
'USER' => '<i class="bi bi-person-vcard"></i>',
|
||||
'USERSNS' => '<i class="bi bi-globe"></i>',
|
||||
'BOARD_CONFIG' => '<i class="bi bi-gear"></i>',
|
||||
'BOARD' => '<i class="bi bi-pencil-square"></i>',
|
||||
'CATEGORY' => '<i class="bi bi-boxes"></i>',
|
||||
'PRODUCT' => '<i class="bi bi-box2"></i>',
|
||||
'CART' => '<i class="bi bi-cart4"></i>',
|
||||
'ORDER' => '<i class="bi bi-clipboard-check"></i>',
|
||||
'BILLING' => '<i class="bi bi-cash-coin"></i>',
|
||||
]);
|
||||
define('AUDIOS', [
|
||||
'Alram_GetEmail' => '<object width=0 height=0 data="/sound/jarvis_email.mp3" type="audio/mpeg"></object>',
|
||||
|
||||
@ -41,9 +41,6 @@ $routes->get('/signup/(:alpha)', 'AuthController::signup/$1');
|
||||
$routes->get('/logout', 'AuthController::logout');
|
||||
$routes->group('cli', ['namespace' => 'App\Controllers\CLI'], function ($routes) {
|
||||
});
|
||||
$routes->group('front', ['namespace' => 'App\Controllers\Front'], function ($routes) {
|
||||
$routes->get('/', 'FrontController::index');
|
||||
});
|
||||
// authGuard는 App\Config\Filters.php의 $aliases에 선언한 이름이어야 함
|
||||
$routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'authFilter:master,director,cloudflare,manager'], static function ($routes) {
|
||||
$routes->get('/', 'Home::index');
|
||||
@ -109,6 +106,34 @@ $routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'au
|
||||
$routes->get('reload/(:num)', 'HPILOController::reload/$1');
|
||||
});
|
||||
});
|
||||
$routes->group('front', ['namespace' => 'App\Controllers\Front'], function ($routes) {
|
||||
$routes->get('/', 'Home::index');
|
||||
$routes->group('user', static function ($routes) {
|
||||
$routes->get('', 'UserController::index');
|
||||
$routes->get('excel', 'UserController::excel');
|
||||
$routes->get('insert', 'UserController::insert_form');
|
||||
$routes->post('insert', 'UserController::insert');
|
||||
$routes->get('update/(:uuid)', 'UserController::update_form/$1');
|
||||
$routes->post('update/(:uuid)', 'UserController::update/$1');
|
||||
$routes->get('view/(:uuid)', 'UserController::view/$1');
|
||||
$routes->get('delete/(:uuid)', 'UserController::delete/$1', ['filter' => 'authFilter:master']);
|
||||
$routes->get('toggle/(:uuid)/(:hash)', 'UserController::toggle/$1/$2');
|
||||
$routes->post('batchjob', 'UserController::batchjob');
|
||||
});
|
||||
$routes->group('board', static function ($routes) {
|
||||
$routes->get('', 'BoardController::index');
|
||||
$routes->get('excel', 'BoardController::excel/$1');
|
||||
$routes->get('insert', 'BoardController::insert_form');
|
||||
$routes->post('insert', 'BoardController::insert');
|
||||
$routes->get('update/(:num)', 'BoardController::update_form/$1');
|
||||
$routes->post('update/(:num)', 'BoardController::update/$1');
|
||||
$routes->get('view/(:num)', 'BoardController::view/$1');
|
||||
$routes->get('reply/(:num)', 'BoardController::reply_form/$1');
|
||||
$routes->post('reply/(:num)', 'BoardController::reply/$1');
|
||||
$routes->get('delete/(:num)', 'BoardController::delete/$1', ['filter' => 'authFilter:master']);
|
||||
$routes->get('download/(:alpha)/(:num)', 'BoardController::download/$1/$2');
|
||||
});
|
||||
});
|
||||
/*
|
||||
* --------------------------------------------------------------------
|
||||
* Additional Routing
|
||||
|
||||
@ -12,7 +12,7 @@ class AdminController extends BASEController
|
||||
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
|
||||
{
|
||||
parent::initController($request, $response, $logger);
|
||||
$this->_viewPath = strtolower('Admin/');
|
||||
$this->_viewPath .= strtolower('Admin/');
|
||||
$this->_viewDatas['layout'] = LAYOUTS['admin'];
|
||||
$this->_viewDatas['title'] = "관리자페이지";
|
||||
}
|
||||
|
||||
@ -5,6 +5,7 @@ namespace App\Controllers\Admin;
|
||||
use CodeIgniter\HTTP\RequestInterface;
|
||||
use CodeIgniter\HTTP\ResponseInterface;
|
||||
use Psr\Log\LoggerInterface;
|
||||
use App\Libraries\Log\Log;
|
||||
|
||||
abstract class AdminHierarchyController extends AdminController
|
||||
{
|
||||
|
||||
74
app/Controllers/Front/BoardController.php
Normal file
74
app/Controllers/Front/BoardController.php
Normal file
@ -0,0 +1,74 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers\Front;
|
||||
|
||||
use App\Models\BoardConfigModel;
|
||||
use App\Models\BoardModel;
|
||||
use CodeIgniter\HTTP\RequestInterface;
|
||||
use CodeIgniter\HTTP\ResponseInterface;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
class BoardController extends FrontHierarchyController
|
||||
{
|
||||
private $_boardConfigModel = null;
|
||||
private $_board_config_uids = null;
|
||||
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
|
||||
{
|
||||
parent::initController($request, $response, $logger);
|
||||
$this->_className .= 'Board';
|
||||
$this->_model = new BoardModel();
|
||||
helper($this->_className);
|
||||
$this->_viewPath .= strtolower($this->_className);
|
||||
$this->_viewDatas['title'] = lang($this->_className . '.title');
|
||||
$this->_viewDatas['className'] = $this->_className;
|
||||
}
|
||||
|
||||
//BoardConfig모델
|
||||
final protected function getBoardConfigModel(): BoardConfigModel
|
||||
{
|
||||
return is_null($this->_boardConfigModel) ? new BoardConfigModel() : $this->_boardConfigModel;
|
||||
}
|
||||
|
||||
//Field별 Form Option용
|
||||
protected function getFieldFormOption(string $field): array
|
||||
{
|
||||
switch ($field) {
|
||||
case 'board_config_uid':
|
||||
$options = $this->_board_config_uids = $this->_board_config_uids ?: $this->getBoardConfigModel()->getFieldFormOptions(['status' => 'use']);
|
||||
break;
|
||||
default:
|
||||
return parent::getFieldFormOption($field);
|
||||
break;
|
||||
}
|
||||
if (!is_array($options)) {
|
||||
throw new \Exception(__FUNCTION__ . "에서 {$this->_className}의 Field:{$field}의 FormOptionData가 array가 아닙니다.\n" . var_export($options, true));
|
||||
}
|
||||
return $options;
|
||||
}
|
||||
|
||||
//Field별 Form Datas 처리용
|
||||
protected function getFieldFormData(string $field, $entity = null): array
|
||||
{
|
||||
switch ($field) {
|
||||
case 'passwd':
|
||||
$this->_viewDatas['fieldDatas'][$field] = $this->request->getVar($field);
|
||||
$this->_viewDatas['fieldDatas']['confirmpassword'] = $this->request->getVar('confirmpassword');
|
||||
break;
|
||||
case 'board_file':
|
||||
$this->_viewDatas['fieldDatas'][$field] = $this->single_upload_procedure($field, $entity);
|
||||
break;
|
||||
default:
|
||||
return parent::getFieldFormData($field, $entity);
|
||||
break;
|
||||
}
|
||||
return $this->_viewDatas['fieldDatas'];
|
||||
}
|
||||
|
||||
//View 관련
|
||||
protected function view_process($entity)
|
||||
{
|
||||
// view_cnt에 추가하기위함
|
||||
$this->_model->increaseViewCount($entity->getPrimaryKey());
|
||||
return parent::view_process($entity);
|
||||
}
|
||||
}
|
||||
@ -12,7 +12,7 @@ class FrontController extends BASEController
|
||||
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
|
||||
{
|
||||
parent::initController($request, $response, $logger);
|
||||
$this->_viewPath = strtolower('Front/');
|
||||
$this->_viewPath .= strtolower('Front/');
|
||||
$this->_viewDatas['layout'] = LAYOUTS['front'];
|
||||
$this->_viewDatas['title'] = "사용자페이지";
|
||||
}
|
||||
|
||||
63
app/Controllers/Front/FrontHierarchyController.php
Normal file
63
app/Controllers/Front/FrontHierarchyController.php
Normal file
@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers\Front;
|
||||
|
||||
use CodeIgniter\HTTP\RequestInterface;
|
||||
use CodeIgniter\HTTP\ResponseInterface;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
abstract class FrontHierarchyController extends FrontController
|
||||
{
|
||||
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
|
||||
{
|
||||
parent::initController($request, $response, $logger);
|
||||
}
|
||||
|
||||
//Reply관련
|
||||
protected function reply_form_process($entity)
|
||||
{
|
||||
return $this->update_form_process($entity);
|
||||
}
|
||||
final public function reply_form($uid)
|
||||
{
|
||||
try {
|
||||
$entity = $entity = $this->_model->getEntity([$this->_model->getPrimaryKey() => $uid]);
|
||||
$this->_viewDatas['fields'] = $this->_model->getFields('reply');
|
||||
$this->_viewDatas['fieldRules'] = $this->_model->getFieldRules($this->_viewDatas['fields'], 'reply');
|
||||
$this->_viewDatas['fieldFilters'] = $this->_model->getFieldFilters();
|
||||
$this->_viewDatas['entity'] = $this->reply_form_process($entity);
|
||||
return view($this->_viewPath . '/reply', $this->_viewDatas);
|
||||
} catch (\Exception $e) {
|
||||
return alert_CommonHelper($e->getMessage(), 'back');
|
||||
}
|
||||
}
|
||||
protected function reply_validate($entity)
|
||||
{
|
||||
return $this->update_validate($entity);
|
||||
}
|
||||
protected function reply_process($entity)
|
||||
{
|
||||
return $this->_model->reply($entity, $this->_viewDatas['fieldDatas']);
|
||||
}
|
||||
public function reply($uid)
|
||||
{
|
||||
$message = "";
|
||||
try {
|
||||
$entity = $entity = $this->_model->getEntity([$this->_model->getPrimaryKey() => $uid]);
|
||||
$this->_viewDatas['fields'] = $this->_model->getFields('reply');
|
||||
$this->_viewDatas['fieldRules'] = $this->_model->getFieldRules($this->_viewDatas['fields'], 'reply');
|
||||
$this->_viewDatas['fieldFilters'] = $this->_model->getFieldFilters();
|
||||
$entity = $this->reply_validate($entity);
|
||||
$entity = $this->reply_process($entity);
|
||||
$message = "{$entity->getTitle()} " . __FUNCTION__ . " 완료하였습니다.";
|
||||
log_message("info", "{$this->_viewDatas['title']} {$message}");
|
||||
return alert_CommonHelper($message, $this->_session->get(SESSION_NAMES['RETURN_URL']));
|
||||
} catch (\Exception $e) {
|
||||
$message = __FUNCTION__ . " 실패하였습니다.";
|
||||
log_message("warning", $e->getMessage());
|
||||
log_message("warning", var_export($this->_viewDatas['fieldDatas'], true));
|
||||
log_message("info", "{$this->_viewDatas['title']} {$message}",);
|
||||
return redirect()->back()->withInput()->with("error", $message . "<br>\n{$e->getMessage()}");
|
||||
}
|
||||
}
|
||||
}
|
||||
37
app/Controllers/Front/UserController.php
Normal file
37
app/Controllers/Front/UserController.php
Normal file
@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers\Front;
|
||||
|
||||
use App\Models\UserModel;
|
||||
use CodeIgniter\HTTP\RequestInterface;
|
||||
use CodeIgniter\HTTP\ResponseInterface;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
class UserController extends FrontController
|
||||
{
|
||||
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
|
||||
{
|
||||
parent::initController($request, $response, $logger);
|
||||
$this->_className .= 'User';
|
||||
$this->_model = new UserModel();
|
||||
helper($this->_className);
|
||||
$this->_viewPath .= strtolower($this->_className);
|
||||
$this->_viewDatas['title'] = lang($this->_className . '.title');
|
||||
$this->_viewDatas['className'] = $this->_className;
|
||||
}
|
||||
|
||||
//Field별 Form Datas 처리용
|
||||
protected function getFieldFormData(string $field, $entity = null): array
|
||||
{
|
||||
switch ($field) {
|
||||
case 'passwd':
|
||||
$this->_viewDatas['fieldDatas'][$field] = $this->request->getVar($field);
|
||||
$this->_viewDatas['fieldDatas']['confirmpassword'] = $this->request->getVar('confirmpassword');
|
||||
break;
|
||||
default:
|
||||
return parent::getFieldFormData($field, $entity);
|
||||
break;
|
||||
}
|
||||
return $this->_viewDatas['fieldDatas'];
|
||||
}
|
||||
}
|
||||
@ -79,7 +79,8 @@ CREATE TABLE servermgr.tw_board (
|
||||
uid int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
grpno int(10) UNSIGNED NOT NULL DEFAULT 1 COMMENT 'Group번호: 상위가없을시 기본 uid와 같음,항상 숫자여야함',
|
||||
grporder int(5) UNSIGNED NOT NULL DEFAULT 1 COMMENT 'Group순서: 상위가없을시 1부터시작',
|
||||
grpdepth int(3) UNSIGNED NOT NULL DEFAULT 1 COMMENT 'Group깊이: 상위가없을시 1부터시작 , 상위 grpdepth+1씩 추가필요', board_config_uid varchar(36) NOT NULL COMMENT '게시판구분',
|
||||
grpdepth int(3) UNSIGNED NOT NULL DEFAULT 1 COMMENT 'Group깊이: 상위가없을시 1부터시작 , 상위 grpdepth+1씩 추가필요',
|
||||
board_config_uid varchar(36) NOT NULL COMMENT '게시판구분',
|
||||
user_uid varchar(36) NULL COMMENT '작성자 정보',
|
||||
title varchar(255) NOT NULL COMMENT '제목',
|
||||
content text NOT NULL COMMENT '내용',
|
||||
|
||||
@ -110,7 +110,7 @@ function getFieldIndex_Row_BoardHelper($field, $entity, array $fieldFilters, $fi
|
||||
),
|
||||
anchor(
|
||||
current_url() . '/reply/' . $entity->getPrimaryKey(),
|
||||
ICONS["REPLY"],
|
||||
ICONS['REPLY'],
|
||||
["target" => "_self"]
|
||||
)
|
||||
);
|
||||
|
||||
@ -143,4 +143,4 @@ function alert_CommonHelper($msg, $url = false)
|
||||
break;
|
||||
}
|
||||
return '<script type="text/javascript">' . $msg . '</script>';
|
||||
}//
|
||||
} //
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
return [
|
||||
'title' => "게시판 정보",
|
||||
'title' => "게시판 정보",
|
||||
'label' => [
|
||||
'uid' => "번호",
|
||||
'grpno' => "그룹번호",
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
return [
|
||||
'title' => "게시판설정 정보",
|
||||
'title' => "게시판설정 정보",
|
||||
'label' => [
|
||||
'uid' => "번호",
|
||||
'name' => "게시판제목",
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
<?= form_open_multipart(current_url(), $forms['attributes'], $forms['hiddens']) ?>
|
||||
<table class="table table-bordered table-hover table-striped indexTable ">
|
||||
<?php foreach ($fields as $field) : ?>
|
||||
<?= csrf_field() ?>
|
||||
<tr>
|
||||
<td nowrap style="background-color:#e8ebe9; width:10%; text-align:right; padding-right:20px;">
|
||||
<?= getFieldLabel_BoardHelper($field, $fieldRules) ?>
|
||||
|
||||
@ -6,10 +6,10 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<?php foreach ($layout['stylesheets'] as $stylesheet) : ?>
|
||||
<?php echo $stylesheet ?>
|
||||
<?= $stylesheet ?>
|
||||
<?php endforeach; ?>
|
||||
<?php foreach ($layout['javascripts'] as $javascript) : ?>
|
||||
<?php echo $javascript ?>
|
||||
<?= $javascript ?>
|
||||
<?php endforeach; ?>
|
||||
|
||||
<link href="/css/admin.css" media="screen" rel="stylesheet" type="text/css" />
|
||||
@ -20,25 +20,32 @@
|
||||
<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><?php echo $title ?></title>
|
||||
<title><?= $title ?></title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- Body Header Start -->
|
||||
<?php echo $this->include($layout['path'] . '/top_menu'); ?>
|
||||
<?= $this->include($layout['path'] . '/top_menu'); ?>
|
||||
<!-- Body Header End -->
|
||||
<div id="main" class="row g-3">
|
||||
<div id="left_menu" class="col-1">
|
||||
<!-- Body Left menu Start -->
|
||||
<?php echo $this->include($layout['path'] . '/left_menu'); ?>
|
||||
<!-- Body Left menu End -->
|
||||
</div>
|
||||
<div id="content" class="col-11">
|
||||
<!-- Body Content Start -->
|
||||
<?php echo $this->renderSection('content') ?>
|
||||
<!-- Body Content End -->
|
||||
</div>
|
||||
</div>
|
||||
<table id="main">
|
||||
<tr>
|
||||
<td width="160" valign="top">
|
||||
<!-- Body Left menu Start -->
|
||||
<?= $this->include($layout['path'] . '/left_menu'); ?>
|
||||
<!-- Body Left menu End -->
|
||||
</td>
|
||||
<td width="*" valign="top" style="background-color:white">
|
||||
<!-- Body Content Start -->
|
||||
<?= $this->renderSection('content') ?>
|
||||
<!-- Body Content End -->
|
||||
</td>
|
||||
<td width="50" valign="top">
|
||||
<!-- Body Right menu Start -->
|
||||
<?= $this->include($layout['path'] . '/right_menu'); ?>
|
||||
<!-- Body Right menu End -->
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@ -1,11 +1,10 @@
|
||||
<!-- left menu start -->
|
||||
<link href="/css/admin/left_menu.css" media="screen" rel="stylesheet" type="text/css" />
|
||||
<script type="text/javascript" src="/js/admin/left_menu.js"></script>
|
||||
<div id="menu" onMouseOver="sideMenuToggle(this);" onMouseOut="sideMenuToggle(this);">
|
||||
<div id="menu_button">메뉴열기</div>
|
||||
<div class="accordion">
|
||||
<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($layout['path'] . '/left_menu/base'); ?>
|
||||
<?= $this->include($layout['path'] . '/left_menu/hpilo'); ?>
|
||||
<?= $this->include($layout['path'] . '/left_menu/board'); ?>
|
||||
<?= $this->include($layout['path'] . '/left_menu/shoppingmall'); ?>
|
||||
</div>
|
||||
</div>
|
||||
@ -2,8 +2,8 @@
|
||||
<h2><a href=" /admin"><i class="fa fa-home"></i>Main</a></h2>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<h2><a href="/admin/user"><i class="fa fa-users"></i>계정 관리</a></h2>
|
||||
<h2><a href="/admin/user"><?= CLASS_ICONS['USER'] ?></i>계정 관리</a></h2>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<h2><a href="/admin/usersns"><i class="fa fa-users"></i>SNS 계정 관리</a></h2>
|
||||
<h2><a href="/admin/usersns"><?= CLASS_ICONS['USERSNS'] ?></i>SNS 계정 관리</a></h2>
|
||||
</div>
|
||||
@ -1,13 +1,13 @@
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" id="panelsStayOpen-heading-Board">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#panelsStayOpen-collapse-Board" aria-expanded="false" aria-controls="panelsStayOpen-collapse-Board"><b>게시판관리</b></button>
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#flush-heading-Board" aria-expanded="false" aria-controls="flush-heading-Board"><b>게시판관리</b></button>
|
||||
</h2>
|
||||
<div id="panelsStayOpen-collapse-Board" class="accordion-collapse collapse show" aria-labelledby="panelsStayOpen-heading-Board">
|
||||
<div id="flush-heading-Board" class="accordion-collapse collapse show" aria-labelledby="flush-heading-Board">
|
||||
<div class="accordion-item">
|
||||
<h2><a href="/admin/boardconfig"><i class="fa fa-share-alt"></i>설정 관리</a></h2>
|
||||
<h2><a href="/admin/boardconfig"><?= CLASS_ICONS['BOARD_CONFIG'] ?>설정 관리</a></h2>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<h2><a href="/admin/board"><i class="fa fa-share-alt"></i>게시글 관리</a></h2>
|
||||
<h2><a href="/admin/board"><?= CLASS_ICONS['BOARD'] ?>게시글 관리</a></h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
22
app/Views/layouts/admin/left_menu/shoppingmall.php
Normal file
22
app/Views/layouts/admin/left_menu/shoppingmall.php
Normal file
@ -0,0 +1,22 @@
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#flush-heading-Shoppingmall" aria-expanded="false" aria-controls="flush-heading-Shoppingmall"><b>상점관리</b></button>
|
||||
</h2>
|
||||
<div id="flush-heading-Shoppingmall" class="accordion-collapse collapse show" aria-labelledby="panelsStayOpen-heading-Shoppingmall">
|
||||
<div class="accordion-item">
|
||||
<h2><a href="/admin/category"><?= CLASS_ICONS['CATEGORY'] ?>상품분류관리</a></h2>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<h2><a href="/admin/product"><?= CLASS_ICONS['PRODUCT'] ?>상품 관리</a></h2>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<h2><a href="/admin/cart"><?= CLASS_ICONS['CART'] ?>장바구니 관리</a></h2>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<h2><a href="/admin/order"><?= CLASS_ICONS['ORDER'] ?></i>주문 관리</a></h2>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<h2><a href="/admin/billing"><?= CLASS_ICONS['BILLING'] ?></i>결제 관리</a></h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
7
app/Views/layouts/admin/right_menu.php
Normal file
7
app/Views/layouts/admin/right_menu.php
Normal file
@ -0,0 +1,7 @@
|
||||
<!-- right menu start -->
|
||||
<link href="/css/admin/right_menu.css" media="screen" rel="stylesheet" type="text/css" />
|
||||
<script type="text/javascript" src="/js/side_menu.js"></script>
|
||||
<div id="right_menu" class="shadow-lg rounded">
|
||||
<div class="accordion accordion-flush">
|
||||
</div>
|
||||
</div>
|
||||
@ -1,14 +1,14 @@
|
||||
<link href="/css/admin/top_menu.css" media="screen" rel="stylesheet" type="text/css" />
|
||||
<nav class="top_menu navbar navbar-expand-lg bg-light">
|
||||
<nav class="navbar navbar-expand-lg bg-light" style="border-bottom:1px solid silver;">
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand col-xs-12" href="/admin">BaseProject 관리 Site</a>
|
||||
<div> </div>
|
||||
<div> </div>
|
||||
<div> </div>
|
||||
<div> </div>
|
||||
<div> </div>
|
||||
<div> </div>
|
||||
<div class="make_password"><?= $this->include($layout['path'] . '/make_password'); ?></div>
|
||||
<div class="member_link"><?= $this->include($layout['path'] . '/member_link'); ?></div>
|
||||
<a href="/admin" class="navbar-brand">BaseProject 관리 Site</a>
|
||||
<div class="input-group custom-search-form" style="width:270px;">
|
||||
<?= $this->include($layout['path'] . '/top_menu/search'); ?>
|
||||
</div>
|
||||
<div class="input-group custom-search-form" style="width:270px;">
|
||||
<?= $this->include($layout['path'] . '/top_menu/make_password'); ?>
|
||||
</div>
|
||||
<div style="float: right;">
|
||||
<?= $this->include($layout['path'] . '/top_menu/member_link'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
3
app/Views/layouts/admin/top_menu/make_password.php
Normal file
3
app/Views/layouts/admin/top_menu/make_password.php
Normal file
@ -0,0 +1,3 @@
|
||||
<span><?= ICONS['LOCK'] ?></span>
|
||||
<input type="text" class="form-control" value="<?= getPasswordString_CommonHelper() ?>" id="makePassword">
|
||||
<span class="input-group-btn" id="mkbutton"><button class="btn btn-default border border-dark" type="button" id="totSearchBtn" onClick="window.location.reload();"><?= ICONS['SEARCH'] ?></button></span>
|
||||
16
app/Views/layouts/admin/top_menu/member_link.php
Normal file
16
app/Views/layouts/admin/top_menu/member_link.php
Normal file
@ -0,0 +1,16 @@
|
||||
<ul class="navbar-nav me-auto my-2 my-lg-0 navbar-nav-scroll" style="--bs-scroll-height: 100px;">
|
||||
<li class="nav-item dropdown">
|
||||
<?php if ($session->get(SESSION_NAMES['ISLOGIN'])) : ?>
|
||||
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
<?= ICONS['LOGIN'] ?><?= $session->get(SESSION_NAMES['AUTH'])[AUTH_FIELDS['TITLE']] ?>
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-menu-end">
|
||||
<li><a class="dropdown-item" href="/admin/user/update/<?= $session->get(SESSION_NAMES['AUTH'])[AUTH_FIELDS['ID']] ?>"><?= ICONS['SETUP'] ?>수정</a></li>
|
||||
<li>
|
||||
<hr class="dropdown-divider">
|
||||
</li>
|
||||
<li><a class="dropdown-item" href="/logout"><?= ICONS['LOGOUT'] ?>Logout</a></li>
|
||||
</ul>
|
||||
<?php else : ?><a class="nav-link dropdown-toggle" href="/login" role="button"><?= ICONS['LOGIN'] ?>Login</a><?php endif ?>
|
||||
</li>
|
||||
</ul>
|
||||
4
app/Views/layouts/admin/top_menu/search.php
Normal file
4
app/Views/layouts/admin/top_menu/search.php
Normal 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>
|
||||
19
app/Views/layouts/front/copyright.php
Normal file
19
app/Views/layouts/front/copyright.php
Normal file
@ -0,0 +1,19 @@
|
||||
<!-- Copyright 시작-->
|
||||
<div style="magin-top:5px; margin-bottom:5px; border:1px solid silver;"></div>
|
||||
<div id="footer">
|
||||
<img src="logo_gray.png">
|
||||
<span style="color:#999; font-size: 11px;">
|
||||
<a href="/sitecontent/?sitecategory=39">会社紹介 </a> |
|
||||
<a href="/sitecontent/?sitecategory=40">利用約款</a> |
|
||||
<a href="/sitecontent/?sitecategory=41">個人情報保護政策</a> |
|
||||
<a href="mailto:idc@idcjp.jp">eメール</a>
|
||||
</span>
|
||||
<div style="font-size: 11px; margin-top: 5px; line-height: 160%;">
|
||||
社名 : <span class="cpy">TRi-aBility(株)</span> 代表者 : <span class="cpy">笹 生 勝</span>
|
||||
住所 : <span class="cpy">東京都 大田区平和島6-5</span><br/>
|
||||
TEL: <span class="cpy">043-307-5390</span> EMAIL : <span class="cpy"><a href="mailto:idc@idcjp.jp" style="color:darkblue;">idc@idcjp.jp</a></span><br/>
|
||||
<!-- 事業者登録番号 : <span class="cpy">887-81-00973</span><br/> -->
|
||||
<!-- Copyright © 2012, YYY, All rights Reserved -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- Copyright 끝-->
|
||||
5
app/Views/layouts/front/header.php
Normal file
5
app/Views/layouts/front/header.php
Normal file
@ -0,0 +1,5 @@
|
||||
<div style="text-align:right; margin-top:10px; margin-bottom:5px;">
|
||||
<i class="fa fa-plus text-danger" style="padding-left:5px; padding-right:5px;"></i><a href="/">HOME</a>
|
||||
<i class="fa fa-angle-right" style="padding-left:5px; padding-right:5px;"></i><a href="<?php echo $parentCategory->url ?>"><?php echo $language == LANGUAGE_JAPAN ? $parentCategory->title_japanese:$parentCategory->title ?></a>
|
||||
<i class="fa fa-angle-right" style="padding-left:5px; padding-right:5px;"></i><span style="font-weight:bold;"><?php echo $language == LANGUAGE_JAPAN ? $currentCategory->title_japanese:$currentCategory->title ?></span>
|
||||
</div>
|
||||
8
app/Views/layouts/front/siteboard_left_banner.php
Normal file
8
app/Views/layouts/front/siteboard_left_banner.php
Normal file
@ -0,0 +1,8 @@
|
||||
<!-- SITEBOARD LEFT BANNER 시작 -->
|
||||
<script src="/js/ScrollToFixed-master/jquery-scrolltofixed-min.js" type="text/javascript"></script>
|
||||
<script src="/js/front/subpage_fixed_left_banner.js" type="text/javascript"></script>
|
||||
<div id="subpage_fixed_left_banner">
|
||||
<div style="margin-top:30px;"><a href="/sitecontent/?sitecategory=44"><img src="left_banner_1.png"></a></div>
|
||||
<div style="margin-top:20px;"><a href="javascript://" onclick="window.open('<?php echo CHATTING_URL?>','chat','width=500, height=500')" onfocus="this.blur()"><img src="left_banner_2.png"></a></div>
|
||||
</div>
|
||||
<!-- SITEBOARD LEFT BANNER 끝 -->
|
||||
8
app/Views/layouts/front/sitecontent_left_banner.php
Normal file
8
app/Views/layouts/front/sitecontent_left_banner.php
Normal file
@ -0,0 +1,8 @@
|
||||
<!-- SITECMS LEFT BANNER 시작 -->
|
||||
<script src="/js/ScrollToFixed-master/jquery-scrolltofixed-min.js" type="text/javascript"></script>
|
||||
<script src="/js/front/subpage_fixed_left_banner.js" type="text/javascript"></script>
|
||||
<div id="subpage_fixed_left_banner">
|
||||
<div style="margin-top:30px;"><a href="/sitecontent/?sitecategory=44"><img src="left_banner_1.png"></a></div>
|
||||
<div style="margin-top:20px;"><a href="javascript://" onclick="window.open('<?php echo CHATTING_URL?>','chat','width=500, height=500')" onfocus="this.blur()"><img src="left_banner_2.png"></a></div>
|
||||
</div>
|
||||
<!-- SITECMS LEFT BANNER 끝 -->
|
||||
13
app/Views/layouts/front/top_logo.php
Normal file
13
app/Views/layouts/front/top_logo.php
Normal file
@ -0,0 +1,13 @@
|
||||
<!-- layout_content Top Logo 시작 -->
|
||||
<div style="position:relative;">
|
||||
<a href="/"><img src="logo.png"/></a>
|
||||
<img src="logo_side.png"/>
|
||||
<div style="position:absolute; with:700px; top:50px; left:620px;">
|
||||
<a href="/"><img src="main_link_home.png"/></a>
|
||||
<a href="mailto:idc@idcjp.jp"><img src="main_link_contact.png"/></a>
|
||||
<a href="javascript:bookmarksite('IDC-JP', 'http://www.idcjp.jp')"><img src="main_link_bookmark.png"/></a>
|
||||
<a href="/common/language/locale/korean"><img src="main_link_korea.png"/></a>
|
||||
<a href="/common/language/locale/japanese"><img src="main_link_japan.png"/></a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- layout_content Top Logo 끝-->
|
||||
5
app/Views/layouts/front/welcome_left_banner.php
Normal file
5
app/Views/layouts/front/welcome_left_banner.php
Normal file
@ -0,0 +1,5 @@
|
||||
<div id='welcome_left_banner' style="position:absolute; top:150px; left:-215px; text-align:right;">
|
||||
<img src="side_left_title.png">
|
||||
<div style="padding-top:15px;"><a href="/sitecontent/?sitecategory=44"><img src="main_banner_1.png"></a></div>
|
||||
<div style="padding-top:15px;"><a href="javascript://" onclick="window.open('<?php echo CHATTING_URL?>','chat','width=<?php echo SITECHAT_WINDOW_WIDTH ?>, height=<?php echo SITECHAT_WINDOW_HEIGHT?>')" onfocus="this.blur()"><img src="main_banner_2.png"></a></div>
|
||||
</div>
|
||||
16
app/Views/layouts/front/welcome_partner_banner.php
Normal file
16
app/Views/layouts/front/welcome_partner_banner.php
Normal file
@ -0,0 +1,16 @@
|
||||
<div id='partner' style="margin-bottom:5px; padding-top:5px; padding-bottom:5px; border-top:1px solid silver; border-bottom:1px solid silver;">
|
||||
<img src='main_icon_partner.png'>
|
||||
<img src='main_icon_softbank.png'>
|
||||
<img src='main_icon_cisco.png'>
|
||||
<img src='main_icon_lg.png'>
|
||||
<img src='main_icon_hp.png'>
|
||||
<img src='main_icon_dell.png'>
|
||||
<img src='main_icon_ibm.png'>
|
||||
<img src='main_icon_slim.png'>
|
||||
<img src='main_icon_ntt.png'>
|
||||
<img src='main_icon_jstream.png'>
|
||||
<img src='main_icon_corel.png'>
|
||||
<img src='main_icon_kddi.png'>
|
||||
<img src='main_icon_red.png'>
|
||||
<img src='main_icon_yahoobb.png'>
|
||||
</div>
|
||||
14
app/Views/layouts/front/welcome_right_banner.php
Normal file
14
app/Views/layouts/front/welcome_right_banner.php
Normal file
@ -0,0 +1,14 @@
|
||||
<div id='welcome_right_banner' style="position:absolute; top:150px; left:10px;">
|
||||
<img src="side_right_title.gif">
|
||||
<div style='padding-top:15px; text-align:center;'>
|
||||
<div style='width: 190px;'>
|
||||
<div style='float: left; width: 90px; height: 73px;'><a href='/sitecontent/?sitecategory=50'><img src='main_icon_1.png' border=0></a></div>
|
||||
<div style='float: left; width: 100; height: 73px;'><a href='#'><img src='main_icon_2.png' border=0></a></div>
|
||||
<div style='clear: left;'></div>
|
||||
<div style='float: left; width: 90px; height: 83px;'><a href='/sitecontent/?sitecategory=52'><img src='main_icon_3.png' border=0></a></div>
|
||||
<div style='float: left; width: 10px; height:0 83px;'><a href='/sitecontent/?sitecategory=54'><img src='main_icon_4.png' border=0></a></div>
|
||||
<div style='clear: left;'></div>
|
||||
<div style='paddint-top:15px;'><img src='main_icon_ns.png' border=0></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -1,41 +1,39 @@
|
||||
</div>
|
||||
<!-- panel-body -->
|
||||
</div>
|
||||
<!-- panel panel-default -->
|
||||
<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" />
|
||||
<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>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
//class가 calender인 inputbox용,날짜field용
|
||||
$(".calender").datepicker({
|
||||
changeYear: true,
|
||||
changeMonth: true,
|
||||
yearRange: "-10:+0",
|
||||
dateFormat: "yy-mm-dd"
|
||||
});
|
||||
//id가 batchjobuids_checkbox인 버튼을 클릭시 class가 batchjobuids_checkboxs인 checkbox용
|
||||
$('#batchjobuids_checkbox').click(function(event) {
|
||||
if (this.checked) {
|
||||
$('.batchjobuids_checkboxs').each(function() { //loop checkbox
|
||||
$(this).prop('checked', true); //check
|
||||
});
|
||||
} else {
|
||||
$('.batchjobuids_checkboxs').each(function() { //loop checkbox
|
||||
$(this).prop('checked', false); //uncheck
|
||||
});
|
||||
}
|
||||
});
|
||||
//class가 select-field인 SelectBox용
|
||||
$(".select-field").select2({
|
||||
theme: "bootstrap-5",
|
||||
});
|
||||
//class가 editor인 textarea용
|
||||
tinymce.init({
|
||||
selector: '.editor',
|
||||
theme: 'silver',
|
||||
height: 500
|
||||
});
|
||||
<div class="footer"> </div>
|
||||
<!-- panel panel-default -->
|
||||
<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" />
|
||||
<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>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
//class가 calender인 inputbox용,날짜field용
|
||||
$(".calender").datepicker({
|
||||
changeYear: true,
|
||||
changeMonth: true,
|
||||
yearRange: "-10:+0",
|
||||
dateFormat: "yy-mm-dd"
|
||||
});
|
||||
</script>
|
||||
//id가 batchjobuids_checkbox인 버튼을 클릭시 class가 batchjobuids_checkboxs인 checkbox용
|
||||
$('#batchjobuids_checkbox').click(function(event) {
|
||||
if (this.checked) {
|
||||
$('.batchjobuids_checkboxs').each(function() { //loop checkbox
|
||||
$(this).prop('checked', true); //check
|
||||
});
|
||||
} else {
|
||||
$('.batchjobuids_checkboxs').each(function() { //loop checkbox
|
||||
$(this).prop('checked', false); //uncheck
|
||||
});
|
||||
}
|
||||
});
|
||||
//class가 select-field인 SelectBox용
|
||||
$(".select-field").select2({
|
||||
theme: "bootstrap-5",
|
||||
});
|
||||
//class가 editor인 textarea용
|
||||
tinymce.init({
|
||||
selector: '.editor',
|
||||
theme: 'silver',
|
||||
height: 500
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@ -1,4 +1,3 @@
|
||||
<link href="/css/admin/header.css" media="screen" rel="stylesheet" type="text/css" />
|
||||
<div class="header">
|
||||
<div class="header-head"><h4><i class="fa fa-desktop"></i><?= $title ?></h4></div>
|
||||
<div class="header-body">
|
||||
<div class="head">
|
||||
<h4><i class="bi bi-cast"></i><?= $title ?></h4>
|
||||
</div>
|
||||
@ -1,6 +1,6 @@
|
||||
<li class="nav-item">검색어:<?= form_input('word', $word) ?></li>
|
||||
<li class="nav-item">검색일:
|
||||
<?= form_input('start', $start, array("class" => "calender")) ?><?= form_input('end', $end, array("class" => "calender")) ?>
|
||||
<?= form_submit('', '검색', array("class" => "btn btn-outline btn-primary")); ?><?= anchor(current_url() . '/excel?' . $uri->getQuery(), ICONS['EXCEL'], ["class" => "btn btn-sm btn-danger btn-circle", "target" => "_self"]) ?>
|
||||
<?= form_submit('', '검색', array("class" => "btn btn-outline btn-primary")); ?><?= anchor(current_url() . '/excel?' . $uri->getQuery(), '<i class="bi bi-file-excel"></i>', ["class" => "btn btn-sm btn-danger btn-circle", "target" => "_self"]) ?>
|
||||
</li>
|
||||
<li class="nav-item">page:<?= $page ?> / total:<?= $total_page ?> <?= form_dropdown('per_page', $pageOptions, $per_page, array('onChange' => 'this.form.submit()')) ?> / 총:<?= $total_count ?></li>
|
||||
@ -47,24 +47,35 @@ a:visited { text-decoration: none; }
|
||||
a:hover { text-decoration: underline; }
|
||||
a:active { text-decoration: underline; }
|
||||
|
||||
div#main{
|
||||
padding-top:10px;
|
||||
padding-bottom:10px;
|
||||
#main{
|
||||
/* border:1px solid blue; */
|
||||
margin-top:20px;
|
||||
width:100%;
|
||||
}
|
||||
|
||||
div#main div#content{
|
||||
padding-top:10px;
|
||||
padding-left:30px;
|
||||
/* border:1px solid red; */
|
||||
width:100%;
|
||||
#main div.head{
|
||||
padding:15px;
|
||||
border-left:1px solid silver;
|
||||
border-top:1px solid silver;
|
||||
border-right:1px solid silver;
|
||||
border-radius: 10px 10px 0px 0px;
|
||||
background-color:#efefef;
|
||||
}
|
||||
#main div.footer{
|
||||
border-left:1px solid silver;
|
||||
border-bottom:1px solid silver;
|
||||
border-right:1px solid silver;
|
||||
border-radius: 0px 0px 10px 10px;
|
||||
}
|
||||
|
||||
div.indexTable_wrapper{
|
||||
padding:10px;
|
||||
border-left:1px solid silver;
|
||||
border-right:1px solid silver;
|
||||
width: 100%;
|
||||
}
|
||||
div.indexTable_wrapper div.indexTable_head {
|
||||
/* border:1px solid red; */
|
||||
padding:5px 0;
|
||||
}
|
||||
div.indexTable_wrapper div.indexTable_head ul.nav li.nav-item{
|
||||
@ -93,7 +104,6 @@ div.indexTable_wrapper div.indexTable_body ul.nav li.nav-item{
|
||||
margin-left:15px;
|
||||
}
|
||||
|
||||
|
||||
div.indexTable_wrapper div.indexTable_tail {
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
@ -1,32 +1,24 @@
|
||||
div#main div#left_menu{
|
||||
div#left_menu{
|
||||
position:fixed;
|
||||
margin-top:139px;
|
||||
/* margin-top:139px;
|
||||
z-index:100;
|
||||
width:28px;
|
||||
border:1px solid #e7e7e7;
|
||||
padding:0px;
|
||||
padding:0px; */
|
||||
width: 160px;
|
||||
border:1px solid silver;
|
||||
}
|
||||
|
||||
div#main div#left_menu div#menu div#menu_button{
|
||||
float:right;
|
||||
height: 100px;
|
||||
width: 20px;
|
||||
cursor: ew-resize;
|
||||
border-radius: 0px 5px 5px 0px;
|
||||
border: 1px solid silver;
|
||||
background-color: #eaeaea;
|
||||
padding:0px;
|
||||
}
|
||||
div#main div#left_menu div#menu div.accordion {
|
||||
display:none;
|
||||
div#left_menu div.accordion {
|
||||
/* display:none; */
|
||||
background-color: white;
|
||||
}
|
||||
div#main div#left_menu div#menu div.accordion div.accordion-item:hover {
|
||||
div#left_menu div.accordion div.accordion-item:hover {
|
||||
background-color: #e7e7e7;
|
||||
}
|
||||
div#main div#left_menu div#menu div.accordion div.accordion-item a{
|
||||
padding-left:20px;
|
||||
div#left_menu div.accordion div.accordion-item a{
|
||||
padding-left:10px;
|
||||
}
|
||||
div#main div#left_menu div#menu div.accordion div.accordion-collapse a{
|
||||
padding-left:40px;
|
||||
div#left_menu div.accordion div.accordion-collapse a{
|
||||
padding-left:30px;
|
||||
}
|
||||
24
public/css/admin/right_menu.css
Normal file
24
public/css/admin/right_menu.css
Normal file
@ -0,0 +1,24 @@
|
||||
div#right_menu{
|
||||
position:fixed;
|
||||
/* margin-top:139px;
|
||||
z-index:100;
|
||||
width:28px;
|
||||
border:1px solid #e7e7e7;
|
||||
padding:0px; */
|
||||
width: 100px;
|
||||
border:1px solid silver;
|
||||
}
|
||||
|
||||
div#right_menu div.accordion {
|
||||
/* display:none; */
|
||||
background-color: white;
|
||||
}
|
||||
div#right_menu div.accordion div.accordion-item:hover {
|
||||
background-color: #e7e7e7;
|
||||
}
|
||||
div#right_menu div.accordion div.accordion-item a{
|
||||
padding-left:10px;
|
||||
}
|
||||
div#right_menu div.accordion div.accordion-collapse a{
|
||||
padding-left:30px;
|
||||
}
|
||||
@ -1,43 +1,48 @@
|
||||
/* ------------------------------------------------------------
|
||||
* Name : default.css
|
||||
* Desc : GIGSNS Layout
|
||||
* Created : 2012/07 GIGAKOREA by Donghee,kim
|
||||
* Updated :
|
||||
* Name : admin.css
|
||||
* Desc : Admin StyleSheet
|
||||
* Created : 2016/9/11 Tri-aBility by Junheum,Choi
|
||||
* Updated :
|
||||
------------------------------------------------------------ */
|
||||
|
||||
@charset "utf-8";
|
||||
/*###########################################################################################
|
||||
#############################공통 레이아웃###################################################
|
||||
#############################################################################################*/
|
||||
/* CSS Document */
|
||||
|
||||
* {
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
border:0px;
|
||||
/*
|
||||
* * Start Bootstrap - SB Admin 2 Bootstrap Admin Theme (http://startbootstrap.com)
|
||||
* * Code licensed under the Apache License v2.0.
|
||||
* * For details, see http://www.apache.org/licenses/LICENSE-2.0.
|
||||
*/
|
||||
|
||||
* {
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
border:0px;
|
||||
font-size:14px;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: white;
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
input[type=text],input[type=password]{
|
||||
display: inline-block;
|
||||
width:300px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 4px;
|
||||
box-sizing: border-box;
|
||||
white-space: nowrap;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
select,textarea,button {
|
||||
display: inline-block;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 4px;
|
||||
box-sizing: border-box;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
div.pagination {
|
||||
text-align:center;
|
||||
padding-top:5px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
a:link { text-decoration: none; }
|
||||
a:visited { text-decoration: none; }
|
||||
a:hover { text-decoration: underline; }
|
||||
a:active { text-decoration: underline; }
|
||||
@ -1,5 +1,5 @@
|
||||
/* ------------------------------------------------------------
|
||||
* Name : front.css
|
||||
* Name : admin.css
|
||||
* Desc : Admin StyleSheet
|
||||
* Created : 2016/9/11 Tri-aBility by Junheum,Choi
|
||||
* Updated :
|
||||
@ -17,47 +17,97 @@
|
||||
* * For details, see http://www.apache.org/licenses/LICENSE-2.0.
|
||||
*/
|
||||
|
||||
* {
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
border:0px;
|
||||
* {
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
border:0px;
|
||||
font-size:14px;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: white;
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
input[type=text],input[type=password]{
|
||||
display: inline-block;
|
||||
width:100px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 4px;
|
||||
box-sizing: border-box;
|
||||
white-space: nowrap;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
select,textarea,button {
|
||||
display: inline-block;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 4px;
|
||||
box-sizing: border-box;
|
||||
white-space: nowrap;
|
||||
white-space: nowrap;
|
||||
}
|
||||
a:link { text-decoration: none; }
|
||||
a:visited { text-decoration: none; }
|
||||
a:hover { text-decoration: underline; }
|
||||
a:active { text-decoration: underline; }
|
||||
|
||||
#main{
|
||||
/* border:1px solid blue; */
|
||||
margin-top:20px;
|
||||
width:100%;
|
||||
}
|
||||
|
||||
a:hover, a:visited, a:link, a:active {
|
||||
text-decoration: none !important;
|
||||
#main div.head{
|
||||
padding:15px;
|
||||
border-left:1px solid silver;
|
||||
border-top:1px solid silver;
|
||||
border-right:1px solid silver;
|
||||
border-radius: 10px 10px 0px 0px;
|
||||
background-color:#efefef;
|
||||
}
|
||||
#main div.footer{
|
||||
border-left:1px solid silver;
|
||||
border-bottom:1px solid silver;
|
||||
border-right:1px solid silver;
|
||||
border-radius: 0px 0px 10px 10px;
|
||||
}
|
||||
|
||||
div.mainContent{
|
||||
border:1px solid red;
|
||||
padding-top:20px;
|
||||
padding-left:30px;
|
||||
padding-right:10px;
|
||||
div.indexTable_wrapper{
|
||||
padding:10px;
|
||||
border-left:1px solid silver;
|
||||
border-right:1px solid silver;
|
||||
width: 100%;
|
||||
}
|
||||
div.indexTable_wrapper div.indexTable_head {
|
||||
/* border:1px solid red; */
|
||||
padding:5px 0;
|
||||
}
|
||||
div.indexTable_wrapper div.indexTable_head ul.nav li.nav-item{
|
||||
/* border:1px solid red; */
|
||||
margin-left:15px;
|
||||
}
|
||||
div.indexTable_wrapper div.indexTable_body {
|
||||
width:100%;
|
||||
overflow-x: auto;
|
||||
padding-top:5px;
|
||||
padding-bottom:5px;
|
||||
}
|
||||
div.indexTable_wrapper div.indexTable_body table.indexTable{
|
||||
white-space: nowrap;
|
||||
}
|
||||
div.indexTable_wrapper div.indexTable_body table.indexTable th{
|
||||
text-align:center;
|
||||
font-size: 16px;
|
||||
}
|
||||
div.indexTable_wrapper div.indexTable_body table.indexTable td{
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
div.pagination {
|
||||
border: 1px solid blue;
|
||||
text-align:center;
|
||||
padding-top:5px;
|
||||
div.indexTable_wrapper div.indexTable_body ul.nav li.nav-item{
|
||||
/* border:1px solid red; */
|
||||
margin-left:15px;
|
||||
}
|
||||
|
||||
div.indexTable_wrapper div.indexTable_tail {
|
||||
text-align:center;
|
||||
}
|
||||
div.indexTable_wrapper div.indexTable_tail ul.justify-content-center {
|
||||
/* border:1px solid red; */
|
||||
margin-top:20px;
|
||||
}
|
||||
|
||||
14
public/js/side_menu.js
Normal file
14
public/js/side_menu.js
Normal file
@ -0,0 +1,14 @@
|
||||
function sideMenuToggle (menu_id){
|
||||
var accordion = $(".accordion")[0];
|
||||
alert(accordion.clientWidth);
|
||||
if (accordion.clientWidth == 0){
|
||||
accordion.style.display = "block";
|
||||
$("#"+menu_id).css({ "width": '200px' })
|
||||
$("#button"+menu_id).html("메뉴닫기");
|
||||
}
|
||||
else {
|
||||
accordion.style.display = "none";
|
||||
$("#"+menu_id).css({"width":'28px'})
|
||||
$("#button"+menu_id).html("메뉴열기");
|
||||
}
|
||||
}//toggleMenu
|
||||
Loading…
Reference in New Issue
Block a user