dbmsv4 init...4
This commit is contained in:
parent
7083471fbb
commit
daf9e0a894
@ -35,11 +35,11 @@ defined('COMPOSER_PATH') || define('COMPOSER_PATH', ROOTPATH . 'vendor/autoload.
|
||||
*/
|
||||
defined('SECOND') || define('SECOND', 1);
|
||||
defined('MINUTE') || define('MINUTE', 60);
|
||||
defined('HOUR') || define('HOUR', 3600);
|
||||
defined('DAY') || define('DAY', 86400);
|
||||
defined('WEEK') || define('WEEK', 604800);
|
||||
defined('MONTH') || define('MONTH', 2_592_000);
|
||||
defined('YEAR') || define('YEAR', 31_536_000);
|
||||
defined('HOUR') || define('HOUR', 3600);
|
||||
defined('DAY') || define('DAY', 86400);
|
||||
defined('WEEK') || define('WEEK', 604800);
|
||||
defined('MONTH') || define('MONTH', 2_592_000);
|
||||
defined('YEAR') || define('YEAR', 31_536_000);
|
||||
defined('DECADE') || define('DECADE', 315_360_000);
|
||||
|
||||
/*
|
||||
@ -67,25 +67,25 @@ defined('DECADE') || define('DECADE', 315_360_000);
|
||||
| http://tldp.org/LDP/abs/html/exitcodes.html
|
||||
|
|
||||
*/
|
||||
defined('EXIT_SUCCESS') || define('EXIT_SUCCESS', 0); // no errors
|
||||
defined('EXIT_ERROR') || define('EXIT_ERROR', 1); // generic error
|
||||
defined('EXIT_CONFIG') || define('EXIT_CONFIG', 3); // configuration error
|
||||
defined('EXIT_UNKNOWN_FILE') || define('EXIT_UNKNOWN_FILE', 4); // file not found
|
||||
defined('EXIT_UNKNOWN_CLASS') || define('EXIT_UNKNOWN_CLASS', 5); // unknown class
|
||||
defined('EXIT_SUCCESS') || define('EXIT_SUCCESS', 0); // no errors
|
||||
defined('EXIT_ERROR') || define('EXIT_ERROR', 1); // generic error
|
||||
defined('EXIT_CONFIG') || define('EXIT_CONFIG', 3); // configuration error
|
||||
defined('EXIT_UNKNOWN_FILE') || define('EXIT_UNKNOWN_FILE', 4); // file not found
|
||||
defined('EXIT_UNKNOWN_CLASS') || define('EXIT_UNKNOWN_CLASS', 5); // unknown class
|
||||
defined('EXIT_UNKNOWN_METHOD') || define('EXIT_UNKNOWN_METHOD', 6); // unknown class member
|
||||
defined('EXIT_USER_INPUT') || define('EXIT_USER_INPUT', 7); // invalid user input
|
||||
defined('EXIT_DATABASE') || define('EXIT_DATABASE', 8); // database error
|
||||
defined('EXIT__AUTO_MIN') || define('EXIT__AUTO_MIN', 9); // lowest automatically-assigned error code
|
||||
defined('EXIT__AUTO_MAX') || define('EXIT__AUTO_MAX', 125); // highest automatically-assigned error code
|
||||
defined('EXIT_USER_INPUT') || define('EXIT_USER_INPUT', 7); // invalid user input
|
||||
defined('EXIT_DATABASE') || define('EXIT_DATABASE', 8); // database error
|
||||
defined('EXIT__AUTO_MIN') || define('EXIT__AUTO_MIN', 9); // lowest automatically-assigned error code
|
||||
defined('EXIT__AUTO_MAX') || define('EXIT__AUTO_MAX', 125); // highest automatically-assigned error code
|
||||
|
||||
define('MESSAGES', [
|
||||
'CREATED' => '생성되었습니다.',
|
||||
'UPDATED' => '수정되였습니다.',
|
||||
'DELETED' => '삭제되였습니다.',
|
||||
'SUCCESS' => '작업이 성공적으로 완료되었습니다.',
|
||||
'FAILED' => '작업이 실패하였습니다.',
|
||||
'SUCCESS' => '작업이 성공적으로 완료되었습니다.',
|
||||
'FAILED' => '작업이 실패하였습니다.',
|
||||
'NOT_FOUND' => '데이터가 존재하지 않습니다.',
|
||||
'NOT_AUTH' => '권한이 없습니다.',
|
||||
'NOT_AUTH' => '권한이 없습니다.',
|
||||
'NOT_LOGIN' => '로그인이 필요합니다.',
|
||||
'NOT_MATCH' => '데이터가 일치하지 않습니다.',
|
||||
'NOT_EMPTY' => '데이터가 비어있습니다.',
|
||||
@ -121,258 +121,161 @@ define('SESSION_NAMES', [
|
||||
define("MESSENGERS", [
|
||||
"skype" => [
|
||||
"url" => "//join.skype.com/invite/uKUgXfZThSQC",
|
||||
"icon" => '<img src="/images/common/top_skype.png" alt="스카이프">',
|
||||
"icon" => 'SKYPE',
|
||||
"id" => '',
|
||||
],
|
||||
"discord" => [
|
||||
"url" => "//discord.gg/k6nQg84N",
|
||||
"icon" => '<img src="/images/common/discord.png" alt="디스코드">',
|
||||
"icon" => 'DISCORD',
|
||||
"id" => '',
|
||||
],
|
||||
"telegram" => [
|
||||
"url" => "//t.me/daemonidc",
|
||||
"icon" => '<img src="/images/common/telegram.png" alt="텔레그램">',
|
||||
"icon" => 'TELEGRAM',
|
||||
"id" => '@daemonidc',
|
||||
],
|
||||
"kakaotalk" => [
|
||||
"url" => "//t.me/daemonidc",
|
||||
"icon" => '<img src="/images/common/kakaotalk.png" alt="카카오톡">',
|
||||
"icon" => 'KAKAO',
|
||||
"id" => '',
|
||||
],
|
||||
]);
|
||||
//아이콘 및 Sound관련
|
||||
define('ICONS', [
|
||||
'ADD' => '<i class="bi bi-plus-circle"></i>',
|
||||
'LOGO' => '<img src="/images/logo/android-icon-48x48.png">',
|
||||
'EXCEL' => '<img src="/images/common/excel.png"/>',
|
||||
'PDF' => '<img src="/images/common/pdf.png"/>',
|
||||
'GOOGLE' => '<img src="https://www.google.com/favicon.ico" alt="Google" width="20" height="20" class="me-2">',
|
||||
'MEMBER' => '<i class="bi bi-people"></i>',
|
||||
'LOGIN' => '<i class="bi bi-shield-check"></i>',
|
||||
'LOGOUT' => '<i class="bi bi-sign-stop-fill"></i>',
|
||||
'HOME' => '<i class="bi bi-house"></i>',
|
||||
'MENU' => '<i class="bi bi-menu-button"></i>',
|
||||
'NEW' => '<i class="bi bi-database-add"></i>',
|
||||
'REPLY' => '<i class="bi bi-arrow-return-right"></i>',
|
||||
'DATABASE' => '<i class="bi bi-database"></i>',
|
||||
'DISLIKE' => '<i class="bi bi-hand-thumbs-down"></i>',
|
||||
'LIKE' => '<i class="bi bi-hand-thumbs-up"></i>',
|
||||
'DOWNLOAD' => '<i class="bi bi-download"></i>',
|
||||
'UPLOAD' => '<i class="bi bi-upload"></i>',
|
||||
'COPY' => '<i class="bi bi-files"></i>',
|
||||
'PASTE' => '<i class="bi bi-clipboard"></i>',
|
||||
'EDIT' => '<i class="bi bi-pencil-square"></i>',
|
||||
'VIEW' => '<i class="bi bi-eye"></i>',
|
||||
'VIEW_OFF' => '<i class="bi bi-eye-slash"></i>',
|
||||
'PRINT' => '<i class="bi bi-printer"></i>',
|
||||
'SAVE' => '<i class="bi bi-save"></i>',
|
||||
'CANCEL' => '<i class="bi bi-x-circle"></i>',
|
||||
'CLOSE' => '<i class="bi bi-x-circle-fill"></i>',
|
||||
'CLIENT' => '<i class="bi bi-person-circle"></i>',
|
||||
'CHART' => '<i class="bi bi-bar-chart"></i>',
|
||||
'CHECK' => '<i class="bi bi-check-circle"></i>',
|
||||
'CHECK_OFF' => '<i class="bi bi-check-circle-fill"></i>',
|
||||
'CHECK_ON' => '<i class="bi bi-check2-circle"></i>',
|
||||
'CHECK_ALL' => '<i class="bi bi-check-all"></i>',
|
||||
'CHECK_NONE' => '<i class="bi bi-check2"></i>',
|
||||
'CHECK_SOME' => '<i class="bi bi-check2-square"></i>',
|
||||
'COUPON' => '<i class="bi bi-ticket-perforated"></i>',
|
||||
'HISTORY' => '<i class="bi bi-clock-history"></i>',
|
||||
'MODIFY' => '<i class="bi bi-pencil-square"></i>',
|
||||
'MODIFY_ALL' => '<i class="bi bi-pencil-square"></i>',
|
||||
'BATCHJOB' => '<i class="bi bi-clipboard-data"></i>',
|
||||
'DELETE' => '<i class="bi bi-trash"></i>',
|
||||
'REBOOT' => '🔄',
|
||||
'RELOAD' => '<i class="bi bi-bootstrap-reboot"></i>',
|
||||
'SETUP' => '<i class="bi bi-gear"></i>',
|
||||
'FLAG' => '<i class="bi bi-send"></i>',
|
||||
'SEARCH' => '<i class="bi bi-search"></i>',
|
||||
'PLAY' => '<i class="bi bi-play-fill"></i>',
|
||||
'CART' => '<i class="bi bi-cart4"></i>',
|
||||
'CARD' => '<i class="bi bi-credit-card"></i>',
|
||||
'DEPOSIT' => '<i class="bi bi-cash-coin"></i>',
|
||||
'DESKTOP' => '<i class="bi bi-pc-display-horizontal"></i>',
|
||||
'DEVICE' => '<i class="bi bi-device-hdd"></i>',
|
||||
'UP' => '<i class="bi bi-arrow-up"></i>',
|
||||
'DOWN' => '<i class="bi bi-arrow-down"></i>',
|
||||
'LEFT' => '<i class="bi bi-arrow-left"></i>',
|
||||
'RIGHT' => '<i class="bi bi-arrow-right"></i>',
|
||||
'IMAGE_FILE' => '<i class="bi bi-file-earmark-image"></i>',
|
||||
'CLOUD' => '<i class="bi bi-cloud"></i>',
|
||||
'SIGNPOST' => '<i class="bi bi-signpost"></i>',
|
||||
'LOCK' => '<i class="bi bi-lock"></i>',
|
||||
'UNLOCK' => '<i class="bi bi-unlock"></i>',
|
||||
'BOX' => '<i class="bi bi-box"></i>',
|
||||
'BOXS' => '<i class="bi bi-boxes"></i>',
|
||||
'ONETIME' => '<i class="bi bi-1-circle-fill text-warning"></i>',
|
||||
'MONTH' => '<i class="bi bi-calendar-check text-warning"></i>',
|
||||
'EMAIL' => '<i class="bi bi-mailbox"></i>',
|
||||
'MAIL' => '<i class="bi bi-envelope"></i>',
|
||||
'PHONE' => '<i class="bi bi-phone"></i>',
|
||||
'POINT' => '<i class="bi bi-coin"></i>',
|
||||
'ALRAM' => '<i class="bi bi-bell"></i>',
|
||||
'PAYMENT' => '<i class="bi bi-credit-card-2-back"></i>',
|
||||
'LINK' => '<i class="bi bi-link-45deg"></i>',
|
||||
'SALE_UP' => '<i class="bi bi-graph-up-arrow"></i>',
|
||||
'SALE_DOWN' => '<i class="bi bi-graph-down-arrow"></i>',
|
||||
'SERVICE' => '<i class="bi bi-gear-wide-connected"></i>',
|
||||
'SERVICE_ITEM' => '<i class="bi bi-gear-wide-connected"></i>',
|
||||
'SERVICE_ITEM_LINE' => '<i class="bi bi-chat-left-text"></i>',
|
||||
'SERVICE_ITEM_IP' => '<i class="bi bi-globe"></i>',
|
||||
'SERVICE_ITEM_SERVER' => '<i class="bi bi-server"></i>',
|
||||
'SERVICE_ITEM_CPU' => '<i class="bi bi-cpu"></i>',
|
||||
'SERVICE_ITEM_RAM' => '<i class="bi bi-memory"></i>',
|
||||
'SERVICE_ITEM_STORAGE' => '<i class="bi bi-hdd-stack"></i>',
|
||||
'SERVICE_ITEM_SOFTWARE' => '<i class="bi bi-box-seam"></i>',
|
||||
'SERVICE_ITEM_DEFENCE' => '<i class="bi bi-shield-lock"></i>',
|
||||
'SERVICE_ITEM_DOMAIN' => '<i class="bi bi-globe2"></i>',
|
||||
'SERVICE_ITEM_OTHER' => '<i class="bi bi-gear-wide-connected"></i>',
|
||||
'SERVER_ITEM_CPU' => '<i class="bi bi-cpu"></i>',
|
||||
'SERVER_ITEM_RAM' => '<i class="bi bi-memory"></i>',
|
||||
'SERVER_ITEM_DISK' => '<i class="bi bi-device-hdd"></i>',
|
||||
'SERVER_ITEM_SWITCH' => '<i class="bi bi-diagram-3"></i>',
|
||||
'SERVER_ITEM_OS' => '<i class="bi bi-microsoft"></i>',
|
||||
'SERVER_ITEM_DB' => '<i class="bi bi-database"></i>',
|
||||
'SERVER_ITEM_SOFTWARE' => '<i class="bi bi-window-sidebar"></i>',
|
||||
'SERVER_ITEM_IP' => '<i class="bi bi-globe2"></i>',
|
||||
'SERVER_ITEM_CS' => '<i class="bi bi-shield-check"></i>',
|
||||
'SERVER_ITEM_ETC' => '<i class="bi bi-patch-question"></i>',
|
||||
'ADD' => 'ADD',
|
||||
'LOGO' => 'LOGO',
|
||||
'EXCEL' => 'EXCEL',
|
||||
'PDF' => 'PDF',
|
||||
'GOOGLE' => 'GOOGLE',
|
||||
'MEMBER' => 'MEMBER',
|
||||
'LOGIN' => 'LOGIN',
|
||||
'LOGOUT' => 'LOGOUT',
|
||||
'HOME' => 'HOME',
|
||||
'MENU' => 'MENU',
|
||||
'NEW' => 'NEW',
|
||||
'REPLY' => 'REPLY',
|
||||
'DATABASE' => 'DATABASE',
|
||||
'DISLIKE' => 'DISLIKE',
|
||||
'LIKE' => 'LIKE',
|
||||
'DOWNLOAD' => 'DOWNLOAD',
|
||||
'UPLOAD' => 'UPLOAD',
|
||||
'COPY' => 'COPY',
|
||||
'PASTE' => 'PASTE',
|
||||
'EDIT' => 'EDIT',
|
||||
'VIEW' => 'VIEW',
|
||||
'VIEW_OFF' => 'VIEW_OFF',
|
||||
'PRINT' => 'PRINT',
|
||||
'SAVE' => 'SAVE',
|
||||
'CANCEL' => 'CANCEL',
|
||||
'CLOSE' => 'CLOSE',
|
||||
'CLIENT' => 'CLIENT',
|
||||
'CHART' => 'CHART',
|
||||
'CHECK' => 'CHECK',
|
||||
'CHECK_OFF' => 'CHECK_OFF',
|
||||
'CHECK_ON' => 'CHECK_ON',
|
||||
'CHECK_ALL' => 'CHECK_ALL',
|
||||
'CHECK_NONE' => 'CHECK_NONE',
|
||||
'CHECK_SOME' => 'CHECK_SOME',
|
||||
'COUPON' => 'COUPON',
|
||||
'HISTORY' => 'HISTORY',
|
||||
'MODIFY' => 'MODIFY',
|
||||
'MODIFY_ALL' => 'MODIFY_ALL',
|
||||
'BATCHJOB' => 'BATCHJOB',
|
||||
'DELETE' => 'DELETE',
|
||||
'REBOOT' => 'REBOOT',
|
||||
'RELOAD' => 'RELOAD',
|
||||
'SETUP' => 'SETUP',
|
||||
'FLAG' => 'FLAG',
|
||||
'SEARCH' => 'SEARCH',
|
||||
'PLAY' => 'PLAY',
|
||||
'CART' => 'CART',
|
||||
'CARD' => 'CARD',
|
||||
'DEPOSIT' => 'DEPOSIT',
|
||||
'DESKTOP' => 'DESKTOP',
|
||||
'DEVICE' => 'DEVICE',
|
||||
'UP' => 'UP',
|
||||
'DOWN' => 'DOWN',
|
||||
'LEFT' => 'LEFT',
|
||||
'RIGHT' => 'RIGHT',
|
||||
'IMAGE_FILE' => 'IMAGE_FILE',
|
||||
'CLOUD' => 'CLOUD',
|
||||
'SIGNPOST' => 'SIGNPOST',
|
||||
'LOCK' => 'LOCK',
|
||||
'UNLOCK' => 'UNLOCK',
|
||||
'BOX' => 'BOX',
|
||||
'BOXS' => 'BOXS',
|
||||
'ONETIME' => 'ONETIME',
|
||||
'MONTH' => 'MONTH',
|
||||
'EMAIL' => 'EMAIL',
|
||||
'MAIL' => 'MAIL',
|
||||
'PHONE' => 'PHONE',
|
||||
'POINT' => 'POINT',
|
||||
'ALRAM' => 'ALRAM',
|
||||
'PAYMENT' => 'PAYMENT',
|
||||
'LINK' => 'LINK',
|
||||
'SALE_UP' => 'SALE_UP',
|
||||
'SALE_DOWN' => 'SALE_DOWN',
|
||||
'SERVICE' => 'SERVICE',
|
||||
'SERVICE_ITEM' => 'SERVICE_ITEM',
|
||||
'SERVICE_ITEM_LINE' => 'SERVICE_ITEM_LINE',
|
||||
'SERVICE_ITEM_IP' => 'SERVICE_ITEM_IP',
|
||||
'SERVICE_ITEM_SERVER' => 'SERVICE_ITEM_SERVER',
|
||||
'SERVICE_ITEM_CPU' => 'SERVICE_ITEM_CPU',
|
||||
'SERVICE_ITEM_RAM' => 'SERVICE_ITEM_RAM',
|
||||
'SERVICE_ITEM_STORAGE' => 'SERVICE_ITEM_STORAGE',
|
||||
'SERVICE_ITEM_SOFTWARE' => 'SERVICE_ITEM_SOFTWARE',
|
||||
'SERVICE_ITEM_DEFENCE' => 'SERVICE_ITEM_DEFENCE',
|
||||
'SERVICE_ITEM_DOMAIN' => 'SERVICE_ITEM_DOMAIN',
|
||||
'SERVICE_ITEM_OTHER' => 'SERVICE_ITEM_OTHER',
|
||||
'SERVER_ITEM_CPU' => 'SERVER_ITEM_CPU',
|
||||
'SERVER_ITEM_RAM' => 'SERVER_ITEM_RAM',
|
||||
'SERVER_ITEM_DISK' => 'SERVER_ITEM_DISK',
|
||||
'SERVER_ITEM_SWITCH' => 'SERVER_ITEM_SWITCH',
|
||||
'SERVER_ITEM_OS' => 'SERVER_ITEM_OS',
|
||||
'SERVER_ITEM_DB' => 'SERVER_ITEM_DB',
|
||||
'SERVER_ITEM_SOFTWARE' => 'SERVER_ITEM_SOFTWARE',
|
||||
'SERVER_ITEM_IP' => 'SERVER_ITEM_IP',
|
||||
'SERVER_ITEM_CS' => 'SERVER_ITEM_CS',
|
||||
'SERVER_ITEM_ETC' => 'SERVER_ITEM_ETC',
|
||||
]);
|
||||
//메신저 아이콘
|
||||
define('MESSENGER_ICONS', [
|
||||
'WHATSAPP' => '<i class="bi bi-whatsapp"></i>',
|
||||
'VIBER' => '<i class="bi bi-viber"></i>',
|
||||
'LINE' => '<i class="bi bi-chat-left-text"></i>',
|
||||
'KAKAO' => '<i class="bi bi-chat-left-text"></i>',
|
||||
'DISCORD' => '<i class="bi bi-discord"></i>',
|
||||
'TELEGRAM' => '<i class="bi bi-telegram"></i>',
|
||||
'SKYPE' => '<i class="bi bi-skype"></i>',
|
||||
'YOUTUBE' => '<i class="bi bi-youtube"></i>',
|
||||
'FACEBOOK' => '<i class="bi bi-facebook"></i>',
|
||||
'TWITTER' => '<i class="bi bi-twitter"></i>',
|
||||
'INSTAGRAM' => '<i class="bi bi-instagram"></i>',
|
||||
'LINKEDIN' => '<i class="bi bi-linkedin"></i>',
|
||||
'GITHUB' => '<i class="bi bi-github"></i>',
|
||||
'GITLAB' => '<i class="bi bi-gitlab"></i>',
|
||||
'BITBUCKET' => '<i class="bi bi-bitbucket"></i>',
|
||||
'REDDIT' => '<i class="bi bi-reddit"></i>',
|
||||
'TIKTOK' => '<i class="bi bi-tiktok"></i>',
|
||||
'PINTEREST' => '<i class="bi bi-pinterest"></i>',
|
||||
'TUMBLR' => '<i class="bi bi-tumblr"></i>',
|
||||
'SNAPCHAT' => '<i class="bi bi-snapchat"></i>',
|
||||
'WHATSAPP' => 'WHATSAPP',
|
||||
'VIBER' => 'VIBER',
|
||||
'LINE' => 'LINE',
|
||||
'KAKAO' => 'KAKAO',
|
||||
'DISCORD' => 'DISCORD',
|
||||
'TELEGRAM' => 'TELEGRAM',
|
||||
'SKYPE' => 'SKYPE',
|
||||
'YOUTUBE' => 'YOUTUBE',
|
||||
'FACEBOOK' => 'FACEBOOK',
|
||||
'TWITTER' => 'TWITTER',
|
||||
'INSTAGRAM' => 'INSTAGRAM',
|
||||
'LINKEDIN' => 'LINKEDIN',
|
||||
'GITHUB' => 'GITHUB',
|
||||
'GITLAB' => 'GITLAB',
|
||||
'BITBUCKET' => 'BITBUCKET',
|
||||
'REDDIT' => 'REDDIT',
|
||||
'TIKTOK' => 'TIKTOK',
|
||||
'PINTEREST' => 'PINTEREST',
|
||||
'TUMBLR' => 'TUMBLR',
|
||||
'SNAPCHAT' => 'SNAPCHAT',
|
||||
]);
|
||||
//배너관련
|
||||
//배너관련 (경로만 유지)
|
||||
define('TOP_BANNER', [
|
||||
'default' => '<img src="/images/banner/sub_visual1.jpg"/>',
|
||||
'aboutus' => '<img src="/images/banner/sub_visual1.jpg"/>',
|
||||
'member' => '<img src="/images/banner/sub_visual1.jpg"/>',
|
||||
'hosting' => '<img src="/images/banner/sub_visual2.jpg"/>',
|
||||
'serverdevice' => '<img src="/images/banner/sub_visual3.jpg"/>',
|
||||
'service' => '<img src="/images/banner/sub_visual3.jpg"/>',
|
||||
'support' => '<img src="/images/banner/sub_visual4.jpg"/>',
|
||||
'default' => '/images/banner/sub_visual1.jpg',
|
||||
'aboutus' => '/images/banner/sub_visual1.jpg',
|
||||
'member' => '/images/banner/sub_visual1.jpg',
|
||||
'hosting' => '/images/banner/sub_visual2.jpg',
|
||||
'serverdevice' => '/images/banner/sub_visual3.jpg',
|
||||
'service' => '/images/banner/sub_visual3.jpg',
|
||||
'support' => '/images/banner/sub_visual4.jpg',
|
||||
]);
|
||||
//소리관련
|
||||
define('AUDIOS', [
|
||||
'Alram_GetEmail' => '<object width=0 height=0 data="/sound/jarvis_email.mp3" type="audio/mpeg"></object>',
|
||||
]);
|
||||
//Layout관련
|
||||
define('KEYWORD', '일본IDC 일본서버 일본 서버 일본호스팅 서버호스팅 디도스 공격 해외 호스팅 DDOS 방어 ddos 의뢰 디도스 보안 일본 단독서버 가상서버');
|
||||
define('LAYOUTS', [
|
||||
'auth' => [
|
||||
'title' => KEYWORD,
|
||||
'path' => 'auth',
|
||||
'layout' => 'layouts' . DIRECTORY_SEPARATOR . 'auth',
|
||||
'template' => 'templates' . DIRECTORY_SEPARATOR . 'auth',
|
||||
'metas' => [
|
||||
'<meta charset="UTF-8">',
|
||||
'<meta name="viewport" content="width=device-width, initial-scale=1.0">',
|
||||
'<meta http-equiv="X-UA-Compatible" content="IE=Edge">',
|
||||
'<meta name="subject" content="Daemon IDC">',
|
||||
'<meta name="description" content="' . KEYWORD . '">',
|
||||
'<meta name="keywords" content="' . KEYWORD . '">',
|
||||
'<meta property="og:type" content="website">',
|
||||
'<meta property="og:title" content="Daemon IDC">',
|
||||
'<meta property="og:description" content="' . KEYWORD . '">',
|
||||
],
|
||||
'stylesheets' => [
|
||||
'<link rel="icon" href="/favicon.ico">',
|
||||
'<link href="//cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">',
|
||||
'<link rel="stylesheet" href="/css/common/style.css" />',
|
||||
],
|
||||
'javascripts' => [
|
||||
'<script src="//cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>',
|
||||
],
|
||||
'footerScripts' => []
|
||||
],
|
||||
'front' => [
|
||||
'title' => KEYWORD,
|
||||
'path' => 'front',
|
||||
'layout' => 'layouts' . DIRECTORY_SEPARATOR . 'front',
|
||||
'template' => 'templates' . DIRECTORY_SEPARATOR . 'front',
|
||||
'topmenus' => ['aboutus', 'hosting', 'service', 'support'],
|
||||
'metas' => [
|
||||
'<meta charset="UTF-8">',
|
||||
'<meta name="viewport" content="width=device-width, initial-scale=1.0">',
|
||||
'<meta http-equiv="X-UA-Compatible" content="IE=Edge">',
|
||||
'<meta name="subject" content="Daemon IDC">',
|
||||
'<meta name="description" content="' . KEYWORD . '">',
|
||||
'<meta name="keywords" content="' . KEYWORD . '">',
|
||||
'<meta property="og:type" content="website">',
|
||||
'<meta property="og:title" content="Daemon IDC">',
|
||||
'<meta property="og:description" content="' . KEYWORD . '">',
|
||||
],
|
||||
'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 rel="stylesheet" href="//cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css">',
|
||||
'<link rel="stylesheet" href="/css/common/style.css" />',
|
||||
],
|
||||
'javascripts' => [
|
||||
'<script src="//cdn.jsdelivr.net/npm/jquery@3.7.0/dist/jquery.min.js"></script>',
|
||||
'<script src="//code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>',
|
||||
'<script src="//cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>',
|
||||
'<script src="//cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>',
|
||||
],
|
||||
'footerScripts' => []
|
||||
],
|
||||
'admin' => [
|
||||
'title' => '관리자화면',
|
||||
'path' => 'admin',
|
||||
'layout' => 'layouts' . DIRECTORY_SEPARATOR . 'admin',
|
||||
'template' => 'templates' . DIRECTORY_SEPARATOR . 'admin',
|
||||
'metas' => [
|
||||
'<meta charset="UTF-8">',
|
||||
'<meta name="viewport" content="width=device-width, initial-scale=1.0">',
|
||||
'<meta http-equiv="X-UA-Compatible" content="IE=Edge">',
|
||||
'<meta name="subject" content="Daemon IDC">',
|
||||
'<meta name="description" content="' . KEYWORD . '">',
|
||||
'<meta name="keywords" content="' . KEYWORD . '">',
|
||||
'<meta property="og:type" content="website">',
|
||||
'<meta property="og:title" content="Daemon IDC">',
|
||||
'<meta property="og:description" content="' . KEYWORD . '">',
|
||||
],
|
||||
'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 rel="stylesheet" href="//cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css">',
|
||||
'<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css">',
|
||||
'<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/select2-bootstrap-5-theme@1.3.0/dist/select2-bootstrap-5-theme.min.css" />',
|
||||
'<link rel="stylesheet" href="/assets/tagify/dist/tagify.css">',
|
||||
'<link rel="stylesheet" href="/css/common/style.css" />',
|
||||
],
|
||||
'javascripts' => [
|
||||
'<script src="//cdn.jsdelivr.net/npm/jquery@3.7.0/dist/jquery.min.js"></script>',
|
||||
'<script src="//code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>',
|
||||
'<script src="//cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>',
|
||||
'<script src="//cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>',
|
||||
'<script src="/assets/tinymce/tinymce.min.js" referrerpolicy="origin"></script>',
|
||||
'<script src="/assets/tagify/dist/tagify.js"></script>'
|
||||
],
|
||||
'footerScripts' => []
|
||||
],
|
||||
]);
|
||||
// Layout은 Config\Layout 클래스에서 관리됩니다.
|
||||
|
||||
//STATUS
|
||||
define("STATUS", [
|
||||
|
||||
107
app/Config/Layout.php
Normal file
107
app/Config/Layout.php
Normal file
@ -0,0 +1,107 @@
|
||||
<?php
|
||||
|
||||
namespace Config;
|
||||
|
||||
use CodeIgniter\Config\BaseConfig;
|
||||
|
||||
class Layout extends BaseConfig
|
||||
{
|
||||
public const KEYWORD = '일본IDC 일본서버 일본 서버 일본호스팅 서버호스팅 디도스 공격 해외 호스팅 DDOS 방어 ddos 의뢰 디도스 보안 일본 단독서버 가상서버';
|
||||
|
||||
public array $layouts = [
|
||||
'auth' => [
|
||||
'title' => self::KEYWORD,
|
||||
'path' => 'auth',
|
||||
'layout' => 'layouts' . DIRECTORY_SEPARATOR . 'auth',
|
||||
'template' => 'templates' . DIRECTORY_SEPARATOR . 'auth',
|
||||
'metas' => [
|
||||
'<meta charset="UTF-8">',
|
||||
'<meta name="viewport" content="width=device-width, initial-scale=1.0">',
|
||||
'<meta http-equiv="X-UA-Compatible" content="IE=Edge">',
|
||||
'<meta name="subject" content="Daemon IDC">',
|
||||
'<meta name="description" content="' . self::KEYWORD . '">',
|
||||
'<meta name="keywords" content="' . self::KEYWORD . '">',
|
||||
'<meta property="og:type" content="website">',
|
||||
'<meta property="og:title" content="Daemon IDC">',
|
||||
'<meta property="og:description" content="' . self::KEYWORD . '">',
|
||||
],
|
||||
'stylesheets' => [
|
||||
'<link rel="icon" href="/favicon.ico">',
|
||||
'<link href="//cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">',
|
||||
'<link rel="stylesheet" href="/css/common/style.css" />',
|
||||
],
|
||||
'javascripts' => [
|
||||
'<script src="//cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>',
|
||||
],
|
||||
'footerScripts' => []
|
||||
],
|
||||
'front' => [
|
||||
'title' => self::KEYWORD,
|
||||
'path' => 'front',
|
||||
'layout' => 'layouts' . DIRECTORY_SEPARATOR . 'front',
|
||||
'template' => 'templates' . DIRECTORY_SEPARATOR . 'front',
|
||||
'topmenus' => ['aboutus', 'hosting', 'service', 'support'],
|
||||
'metas' => [
|
||||
'<meta charset="UTF-8">',
|
||||
'<meta name="viewport" content="width=device-width, initial-scale=1.0">',
|
||||
'<meta http-equiv="X-UA-Compatible" content="IE=Edge">',
|
||||
'<meta name="subject" content="Daemon IDC">',
|
||||
'<meta name="description" content="' . self::KEYWORD . '">',
|
||||
'<meta name="keywords" content="' . self::KEYWORD . '">',
|
||||
'<meta property="og:type" content="website">',
|
||||
'<meta property="og:title" content="Daemon IDC">',
|
||||
'<meta property="og:description" content="' . self::KEYWORD . '">',
|
||||
],
|
||||
'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 rel="stylesheet" href="//cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css">',
|
||||
'<link rel="stylesheet" href="/css/common/style.css" />',
|
||||
],
|
||||
'javascripts' => [
|
||||
'<script src="//cdn.jsdelivr.net/npm/jquery@3.7.0/dist/jquery.min.js"></script>',
|
||||
'<script src="//code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>',
|
||||
'<script src="//cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>',
|
||||
'<script src="//cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>',
|
||||
],
|
||||
'footerScripts' => []
|
||||
],
|
||||
'admin' => [
|
||||
'title' => '관리자화면',
|
||||
'path' => 'admin',
|
||||
'layout' => 'layouts' . DIRECTORY_SEPARATOR . 'admin',
|
||||
'template' => 'templates' . DIRECTORY_SEPARATOR . 'admin',
|
||||
'metas' => [
|
||||
'<meta charset="UTF-8">',
|
||||
'<meta name="viewport" content="width=device-width, initial-scale=1.0">',
|
||||
'<meta http-equiv="X-UA-Compatible" content="IE=Edge">',
|
||||
'<meta name="subject" content="Daemon IDC">',
|
||||
'<meta name="description" content="' . self::KEYWORD . '">',
|
||||
'<meta name="keywords" content="' . self::KEYWORD . '">',
|
||||
'<meta property="og:type" content="website">',
|
||||
'<meta property="og:title" content="Daemon IDC">',
|
||||
'<meta property="og:description" content="' . self::KEYWORD . '">',
|
||||
],
|
||||
'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 rel="stylesheet" href="//cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css">',
|
||||
'<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css">',
|
||||
'<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/select2-bootstrap-5-theme@1.3.0/dist/select2-bootstrap-5-theme.min.css" />',
|
||||
'<link rel="stylesheet" href="/assets/tagify/dist/tagify.css">',
|
||||
'<link rel="stylesheet" href="/css/common/style.css" />',
|
||||
],
|
||||
'javascripts' => [
|
||||
'<script src="//cdn.jsdelivr.net/npm/jquery@3.7.0/dist/jquery.min.js"></script>',
|
||||
'<script src="//code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>',
|
||||
'<script src="//cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>',
|
||||
'<script src="//cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>',
|
||||
'<script src="/assets/tinymce/tinymce.min.js" referrerpolicy="origin"></script>',
|
||||
'<script src="/assets/tagify/dist/tagify.js"></script>'
|
||||
],
|
||||
'footerScripts' => []
|
||||
],
|
||||
];
|
||||
}
|
||||
@ -71,7 +71,7 @@ abstract class AbstractWebController extends Controller
|
||||
return $this->_viewDatas[$key] ?? null;
|
||||
}
|
||||
|
||||
// --- 공통 처리 로직 (Override 가능) ---
|
||||
// --- 공통 처리 로직 (Override 가능) ---
|
||||
|
||||
/**
|
||||
* 모든 액션 실행 전 공통 초기화 작업
|
||||
@ -114,18 +114,20 @@ abstract class AbstractWebController extends Controller
|
||||
*/
|
||||
protected function action_render_process(string $view_file, array $viewDatas, ?string $template_path = null): string
|
||||
{
|
||||
// dd($viewDatas);
|
||||
$view_path = $viewDatas['layout']['path'];
|
||||
helper(['form', 'IconHelper', 'utility']);
|
||||
$config = config('Layout');
|
||||
$layoutConfig = $config->layouts[$viewDatas['layout']['path']] ?? [];
|
||||
|
||||
$viewDatas['layout'] = array_merge($layoutConfig, $viewDatas['layout']);
|
||||
$view_path = $viewDatas['layout']['path'];
|
||||
|
||||
if ($template_path) {
|
||||
$view_path .= '/' . $template_path;
|
||||
$view_path .= '/' . $template_path;
|
||||
}
|
||||
//최종 ViewPath
|
||||
$viewDatas['view_path'] = $view_path;
|
||||
$full_path = $view_path . '/' . $view_file;
|
||||
// echo $full_path;
|
||||
// exit;
|
||||
helper(['form', __FUNCTION__]);
|
||||
return view($full_path, [
|
||||
helper([__FUNCTION__]);
|
||||
return view($view_path . '/' . $view_file, [
|
||||
'viewDatas' => [
|
||||
...$viewDatas,
|
||||
'forms' => ['attributes' => ['method' => "post",], 'hiddens' => []],
|
||||
|
||||
@ -15,7 +15,7 @@ abstract class AdminController extends CommonController
|
||||
{
|
||||
parent::initController($request, $response, $logger);
|
||||
$this->addActionPaths($this->_layout);
|
||||
$this->layouts = LAYOUTS[$this->_layout];
|
||||
$this->layouts = config('Layout')->layouts[$this->_layout] ?? [];
|
||||
}
|
||||
protected function action_init_process(string $action, array $formDatas = []): void
|
||||
{
|
||||
@ -24,7 +24,7 @@ abstract class AdminController extends CommonController
|
||||
$this->addViewDatas('title', $this->getTitle());
|
||||
$this->addViewDatas('helper', $this->service->getHelper());
|
||||
$this->service->getFormService()->action_init_process($action, $formDatas);
|
||||
$this->addViewDatas('formFields', $this->service->getFormService()->getFormFields());
|
||||
$this->addViewDatas('formFields', $this->service->getFormService()->getFormFields());
|
||||
$this->addViewDatas('formRules', $this->service->getFormService()->getFormRules());
|
||||
$this->addViewDatas('formFilters', $this->service->getFormService()->getFormFilters());
|
||||
$this->addViewDatas('formOptions', $this->service->getFormService()->getFormOptions());
|
||||
|
||||
@ -18,7 +18,7 @@ class Home extends AbstractWebController
|
||||
$this->service = service('customer_serviceservice');
|
||||
}
|
||||
$this->addActionPaths($this->_layout);
|
||||
$this->layouts = LAYOUTS[$this->_layout];
|
||||
$this->layouts = config('Layout')->layouts[$this->_layout] ?? [];
|
||||
}
|
||||
protected function action_init_process(string $action, array $formDatas = []): void
|
||||
{
|
||||
@ -26,7 +26,7 @@ class Home extends AbstractWebController
|
||||
$this->addViewDatas('layout', $this->layouts);
|
||||
$this->addViewDatas('helper', $this->service->getHelper());
|
||||
$this->service->getFormService()->action_init_process($action, $formDatas);
|
||||
$this->addViewDatas('formFields', $this->service->getFormService()->getFormFields());
|
||||
$this->addViewDatas('formFields', $this->service->getFormService()->getFormFields());
|
||||
$this->addViewDatas('formRules', $this->service->getFormService()->getFormRules());
|
||||
$this->addViewDatas('formFilters', $this->service->getFormService()->getFormFilters());
|
||||
$this->addViewDatas('formOptions', $this->service->getFormService()->getFormOptions());
|
||||
|
||||
@ -17,7 +17,7 @@ abstract class AuthController extends AbstractWebController
|
||||
{
|
||||
parent::initController($request, $response, $logger);
|
||||
$this->addActionPaths($this->_layout);
|
||||
$this->layouts = LAYOUTS[$this->_layout];
|
||||
$this->layouts = config('Layout')->layouts[$this->_layout] ?? [];
|
||||
}
|
||||
protected function action_init_process(string $action, array $formDatas = []): void
|
||||
{
|
||||
@ -26,7 +26,7 @@ abstract class AuthController extends AbstractWebController
|
||||
$this->addViewDatas('helper', $this->service->getHelper());
|
||||
//Fields,Rules,Filters,Options등 초기화
|
||||
$this->service->getFormService()->action_init_process($action, $formDatas);
|
||||
$this->addViewDatas('formFields', $this->service->getFormService()->getFormFields());
|
||||
$this->addViewDatas('formFields', $this->service->getFormService()->getFormFields());
|
||||
$this->addViewDatas('formRules', $this->service->getFormService()->getFormRules());
|
||||
$this->addViewDatas('formFilters', $this->service->getFormService()->getFormFilters());
|
||||
$this->addViewDatas('formOptions', $this->service->getFormService()->getFormOptions());
|
||||
|
||||
178
app/Helpers/IconHelper.php
Normal file
178
app/Helpers/IconHelper.php
Normal file
@ -0,0 +1,178 @@
|
||||
<?php
|
||||
|
||||
namespace App\Helpers;
|
||||
|
||||
/**
|
||||
* IconHelper
|
||||
* 아이콘 및 소셜 미디어 아이콘의 HTML을 생성하는 헬퍼 클래스입니다.
|
||||
*/
|
||||
class IconHelper
|
||||
{
|
||||
/**
|
||||
* 입력을 기반으로 아이콘 HTML을 반환합니다.
|
||||
*
|
||||
* @param string $key ICONS 상수의 키
|
||||
* @param string $class 추가적인 CSS 클래스
|
||||
* @return string
|
||||
*/
|
||||
public static function icon(string $key, string $class = ''): string
|
||||
{
|
||||
$icons = self::getIcons();
|
||||
if (!isset($icons[$key])) {
|
||||
$icons = self::getMessengerIcons();
|
||||
}
|
||||
|
||||
if (!isset($icons[$key])) {
|
||||
return '';
|
||||
}
|
||||
|
||||
$icon = $icons[$key];
|
||||
if ($class && str_contains($icon, 'class="')) {
|
||||
return str_replace('class="', 'class="' . $class . ' ', $icon);
|
||||
}
|
||||
|
||||
return $icon;
|
||||
}
|
||||
|
||||
/**
|
||||
* 메신저 아이콘 HTML을 반환합니다.
|
||||
*
|
||||
* @param string $key MESSENGER_ICONS 상수의 키
|
||||
* @return string
|
||||
*/
|
||||
public static function messengerIcon(string $key): string
|
||||
{
|
||||
$icons = self::getMessengerIcons();
|
||||
return $icons[$key] ?? '';
|
||||
}
|
||||
|
||||
/**
|
||||
* 아이콘 데이터를 관리합니다. (Constants.php에서 분리된 데이터)
|
||||
*/
|
||||
private static function getIcons(): array
|
||||
{
|
||||
return [
|
||||
'ADD' => '<i class="bi bi-plus-circle"></i>',
|
||||
'LOGO' => '<img src="/images/logo/android-icon-48x48.png">',
|
||||
'EXCEL' => '<img src="/images/common/excel.png"/>',
|
||||
'PDF' => '<img src="/images/common/pdf.png"/>',
|
||||
'GOOGLE' => '<img src="https://www.google.com/favicon.ico" alt="Google" width="20" height="20" class="me-2">',
|
||||
'MEMBER' => '<i class="bi bi-people"></i>',
|
||||
'LOGIN' => '<i class="bi bi-shield-check"></i>',
|
||||
'LOGOUT' => '<i class="bi bi-sign-stop-fill"></i>',
|
||||
'HOME' => '<i class="bi bi-house"></i>',
|
||||
'MENU' => '<i class="bi bi-menu-button"></i>',
|
||||
'NEW' => '<i class="bi bi-database-add"></i>',
|
||||
'REPLY' => '<i class="bi bi-arrow-return-right"></i>',
|
||||
'DATABASE' => '<i class="bi bi-database"></i>',
|
||||
'DISLIKE' => '<i class="bi bi-hand-thumbs-down"></i>',
|
||||
'LIKE' => '<i class="bi bi-hand-thumbs-up"></i>',
|
||||
'DOWNLOAD' => '<i class="bi bi-download"></i>',
|
||||
'UPLOAD' => '<i class="bi bi-upload"></i>',
|
||||
'COPY' => '<i class="bi bi-files"></i>',
|
||||
'PASTE' => '<i class="bi bi-clipboard"></i>',
|
||||
'EDIT' => '<i class="bi bi-pencil-square"></i>',
|
||||
'VIEW' => '<i class="bi bi-eye"></i>',
|
||||
'VIEW_OFF' => '<i class="bi bi-eye-slash"></i>',
|
||||
'PRINT' => '<i class="bi bi-printer"></i>',
|
||||
'SAVE' => '<i class="bi bi-save"></i>',
|
||||
'CANCEL' => '<i class="bi bi-x-circle"></i>',
|
||||
'CLOSE' => '<i class="bi bi-x-circle-fill"></i>',
|
||||
'CLIENT' => '<i class="bi bi-person-circle"></i>',
|
||||
'CHART' => '<i class="bi bi-bar-chart"></i>',
|
||||
'CHECK' => '<i class="bi bi-check-circle"></i>',
|
||||
'CHECK_OFF' => '<i class="bi bi-check-circle-fill"></i>',
|
||||
'CHECK_ON' => '<i class="bi bi-check2-circle"></i>',
|
||||
'CHECK_ALL' => '<i class="bi bi-check-all"></i>',
|
||||
'CHECK_NONE' => '<i class="bi bi-check2"></i>',
|
||||
'CHECK_SOME' => '<i class="bi bi-check2-square"></i>',
|
||||
'COUPON' => '<i class="bi bi-ticket-perforated"></i>',
|
||||
'HISTORY' => '<i class="bi bi-clock-history"></i>',
|
||||
'MODIFY' => '<i class="bi bi-pencil-square"></i>',
|
||||
'MODIFY_ALL' => '<i class="bi bi-pencil-square"></i>',
|
||||
'BATCHJOB' => '<i class="bi bi-clipboard-data"></i>',
|
||||
'DELETE' => '<i class="bi bi-trash"></i>',
|
||||
'REBOOT' => '🔄',
|
||||
'RELOAD' => '<i class="bi bi-bootstrap-reboot"></i>',
|
||||
'SETUP' => '<i class="bi bi-gear"></i>',
|
||||
'FLAG' => '<i class="bi bi-send"></i>',
|
||||
'SEARCH' => '<i class="bi bi-search"></i>',
|
||||
'PLAY' => '<i class="bi bi-play-fill"></i>',
|
||||
'CART' => '<i class="bi bi-cart4"></i>',
|
||||
'CARD' => '<i class="bi bi-credit-card"></i>',
|
||||
'DEPOSIT' => '<i class="bi bi-cash-coin"></i>',
|
||||
'DESKTOP' => '<i class="bi bi-pc-display-horizontal"></i>',
|
||||
'DEVICE' => '<i class="bi bi-device-hdd"></i>',
|
||||
'UP' => '<i class="bi bi-arrow-up"></i>',
|
||||
'DOWN' => '<i class="bi bi-arrow-down"></i>',
|
||||
'LEFT' => '<i class="bi bi-arrow-left"></i>',
|
||||
'RIGHT' => '<i class="bi bi-arrow-right"></i>',
|
||||
'IMAGE_FILE' => '<i class="bi bi-file-earmark-image"></i>',
|
||||
'CLOUD' => '<i class="bi bi-cloud"></i>',
|
||||
'SIGNPOST' => '<i class="bi bi-signpost"></i>',
|
||||
'LOCK' => '<i class="bi bi-lock"></i>',
|
||||
'UNLOCK' => '<i class="bi bi-unlock"></i>',
|
||||
'BOX' => '<i class="bi bi-box"></i>',
|
||||
'BOXS' => '<i class="bi bi-boxes"></i>',
|
||||
'ONETIME' => '<i class="bi bi-1-circle-fill text-warning"></i>',
|
||||
'MONTH' => '<i class="bi bi-calendar-check text-warning"></i>',
|
||||
'EMAIL' => '<i class="bi bi-mailbox"></i>',
|
||||
'MAIL' => '<i class="bi bi-envelope"></i>',
|
||||
'PHONE' => '<i class="bi bi-phone"></i>',
|
||||
'POINT' => '<i class="bi bi-coin"></i>',
|
||||
'ALRAM' => '<i class="bi bi-bell"></i>',
|
||||
'PAYMENT' => '<i class="bi bi-credit-card-2-back"></i>',
|
||||
'LINK' => '<i class="bi bi-link-45deg"></i>',
|
||||
'SALE_UP' => '<i class="bi bi-graph-up-arrow"></i>',
|
||||
'SALE_DOWN' => '<i class="bi bi-graph-down-arrow"></i>',
|
||||
'SERVICE' => '<i class="bi bi-gear-wide-connected"></i>',
|
||||
'SERVICE_ITEM' => '<i class="bi bi-gear-wide-connected"></i>',
|
||||
'SERVICE_ITEM_LINE' => '<i class="bi bi-chat-left-text"></i>',
|
||||
'SERVICE_ITEM_IP' => '<i class="bi bi-globe"></i>',
|
||||
'SERVICE_ITEM_SERVER' => '<i class="bi bi-server"></i>',
|
||||
'SERVICE_ITEM_CPU' => '<i class="bi bi-cpu"></i>',
|
||||
'SERVICE_ITEM_RAM' => '<i class="bi bi-memory"></i>',
|
||||
'SERVICE_ITEM_STORAGE' => '<i class="bi bi-hdd-stack"></i>',
|
||||
'SERVICE_ITEM_SOFTWARE' => '<i class="bi bi-box-seam"></i>',
|
||||
'SERVICE_ITEM_DEFENCE' => '<i class="bi bi-shield-lock"></i>',
|
||||
'SERVICE_ITEM_DOMAIN' => '<i class="bi bi-globe2"></i>',
|
||||
'SERVICE_ITEM_OTHER' => '<i class="bi bi-gear-wide-connected"></i>',
|
||||
'SERVER_ITEM_CPU' => '<i class="bi bi-cpu"></i>',
|
||||
'SERVER_ITEM_RAM' => '<i class="bi bi-memory"></i>',
|
||||
'SERVER_ITEM_DISK' => '<i class="bi bi-device-hdd"></i>',
|
||||
'SERVER_ITEM_SWITCH' => '<i class="bi bi-diagram-3"></i>',
|
||||
'SERVER_ITEM_OS' => '<i class="bi bi-microsoft"></i>',
|
||||
'SERVER_ITEM_DB' => '<i class="bi bi-database"></i>',
|
||||
'SERVER_ITEM_SOFTWARE' => '<i class="bi bi-window-sidebar"></i>',
|
||||
'SERVER_ITEM_IP' => '<i class="bi bi-globe2"></i>',
|
||||
'SERVER_ITEM_CS' => '<i class="bi bi-shield-check"></i>',
|
||||
'SERVER_ITEM_ETC' => '<i class="bi bi-patch-question"></i>',
|
||||
];
|
||||
}
|
||||
|
||||
private static function getMessengerIcons(): array
|
||||
{
|
||||
return [
|
||||
'WHATSAPP' => '<i class="bi bi-whatsapp"></i>',
|
||||
'VIBER' => '<i class="bi bi-viber"></i>',
|
||||
'LINE' => '<i class="bi bi-chat-left-text"></i>',
|
||||
'KAKAO' => '<i class="bi bi-chat-left-text"></i>',
|
||||
'DISCORD' => '<i class="bi bi-discord"></i>',
|
||||
'TELEGRAM' => '<i class="bi bi-telegram"></i>',
|
||||
'SKYPE' => '<i class="bi bi-skype"></i>',
|
||||
'YOUTUBE' => '<i class="bi bi-youtube"></i>',
|
||||
'FACEBOOK' => '<i class="bi bi-facebook"></i>',
|
||||
'TWITTER' => '<i class="bi bi-twitter"></i>',
|
||||
'INSTAGRAM' => '<i class="bi bi-instagram"></i>',
|
||||
'LINKEDIN' => '<i class="bi bi-linkedin"></i>',
|
||||
'GITHUB' => '<i class="bi bi-github"></i>',
|
||||
'GITLAB' => '<i class="bi bi-gitlab"></i>',
|
||||
'BITBUCKET' => '<i class="bi bi-bitbucket"></i>',
|
||||
'REDDIT' => '<i class="bi bi-reddit"></i>',
|
||||
'TIKTOK' => '<i class="bi bi-tiktok"></i>',
|
||||
'PINTEREST' => '<i class="bi bi-pinterest"></i>',
|
||||
'TUMBLR' => '<i class="bi bi-tumblr"></i>',
|
||||
'SNAPCHAT' => '<i class="bi bi-snapchat"></i>',
|
||||
];
|
||||
}
|
||||
}
|
||||
17
app/Helpers/utility_helper.php
Normal file
17
app/Helpers/utility_helper.php
Normal file
@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
use App\Helpers\IconHelper;
|
||||
|
||||
/**
|
||||
* 아이콘 HTML을 반환합니다.
|
||||
*
|
||||
* @param string $key ICONS 키
|
||||
* @param string $class 추가 클래스
|
||||
* @return string
|
||||
*/
|
||||
if (!function_exists('icon')) {
|
||||
function icon(string $key, string $class = ''): string
|
||||
{
|
||||
return IconHelper::icon($key, $class);
|
||||
}
|
||||
}
|
||||
@ -34,9 +34,9 @@ class BoardService extends CommonService
|
||||
if ($this->_form === null) {
|
||||
$this->_form = new BoardForm();
|
||||
$this->_form->setAttributes([
|
||||
'pk_field' => $this->getPKField(),
|
||||
'title_field' => $this->getTitleField(),
|
||||
'table' => $this->model->getTable(),
|
||||
'pk_field' => $this->getPKField(),
|
||||
'title_field' => $this->getTitleField(),
|
||||
'table' => $this->model->getTable(),
|
||||
'useAutoIncrement' => $this->model->useAutoIncrement(),
|
||||
'class_path' => $this->getClassPaths(false)
|
||||
]);
|
||||
@ -48,9 +48,9 @@ class BoardService extends CommonService
|
||||
if ($this->_helper === null) {
|
||||
$this->_helper = new BoardHelper();
|
||||
$this->_helper->setAttributes([
|
||||
'pk_field' => $this->getPKField(),
|
||||
'title_field' => $this->getTitleField(),
|
||||
'table' => $this->model->getTable(),
|
||||
'pk_field' => $this->getPKField(),
|
||||
'title_field' => $this->getTitleField(),
|
||||
'table' => $this->model->getTable(),
|
||||
'useAutoIncrement' => $this->model->useAutoIncrement(),
|
||||
'class_path' => $this->getClassPaths(false)
|
||||
]);
|
||||
@ -80,11 +80,13 @@ class BoardService extends CommonService
|
||||
{
|
||||
//관리자정보
|
||||
$userEntities = service('userservice')->getEntities();
|
||||
$datas = [];
|
||||
$datas = [];
|
||||
foreach ($this->getEntities(['category' => $category, 'status' => STATUS['AVAILABLE']]) as $entity) {
|
||||
$datas[] = [
|
||||
'title' => "<label for=\"view\" data-src=\"/admin/board/view/{$entity->getPK()}\" data-bs-toggle=\"modal\" data-bs-target=\" #modal_action_form\" class=\"text-primary form-label-sm\">{$entity->getTitle()}</label>",
|
||||
'created_at' => date('Y-m-d H:m', strtotime($entity->getCreatedAT())),
|
||||
'uid' => $entity->getPK(),
|
||||
'title' => $entity->getTitle(),
|
||||
'url' => "/admin/board/view/{$entity->getPK()}",
|
||||
'created_at' => date('Y-m-d H:i', strtotime($entity->getCreatedAT())),
|
||||
'user' => $userEntities[$entity->getUserUid()]->getTitle(),
|
||||
];
|
||||
}
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
<div class="layout_header">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="nav-item">
|
||||
<span class="nav-item navbar-brand" aria-current="page">
|
||||
<h4> <?= ICONS['SETUP'] ?>작업내역 </h4>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div style="border-left: 1px solid black; border-right: 1px solid black; padding:20px;">
|
||||
<?= view_cell("\App\Cells\MylogCell::dashboard") ?>
|
||||
</div>
|
||||
<div class="layout_footer"></div>
|
||||
<div class="layout_header">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="nav-item">
|
||||
<span class="nav-item navbar-brand" aria-current="page">
|
||||
<h4> <?= icon('SETUP') ?>작업내역 </h4>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div style="border-left: 1px solid black; border-right: 1px solid black; padding:20px;">
|
||||
<?= view_cell("\App\Cells\MylogCell::dashboard") ?>
|
||||
</div>
|
||||
<div class="layout_footer"></div>
|
||||
@ -1,36 +1,39 @@
|
||||
<div class="layout_header mt-3">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="nav-item">
|
||||
<span class="nav-item navbar-brand" aria-current="page">
|
||||
<h4> <?= ICONS['CHART'] ?> 최신 신규 서비스 현황 </h4>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div style="border-left: 1px solid black; border-right: 1px solid black; padding:20px;">
|
||||
<table class="table table-bordered table-hover align-middle">
|
||||
<thead class="table-light">
|
||||
<div class="layout_header mt-3">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="nav-item">
|
||||
<span class="nav-item navbar-brand" aria-current="page">
|
||||
<h4> <?= icon('CHART') ?> 최신 신규 서비스 현황 </h4>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div style="border-left: 1px solid black; border-right: 1px solid black; padding:20px;">
|
||||
<table class="table table-bordered table-hover align-middle">
|
||||
<thead class="table-light">
|
||||
<tr class="text-center">
|
||||
<th>사이트</th>
|
||||
<th>업체명</th>
|
||||
<th>
|
||||
<span class="float-start rounded border border-primary" style="cursor:pointer;"
|
||||
onclick="copyServerPartsToClipboard()">ALL 📋</span> 장비번호 / 스위치정보 / IP정보 / CS정보
|
||||
</th>
|
||||
<th>등록자</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($viewDatas['newServiceEntities'] as $entity): ?>
|
||||
<?php $viewDatas['entity'] = $entity ?>
|
||||
<tr class="text-center">
|
||||
<th>사이트</th>
|
||||
<th>업체명</th>
|
||||
<th>
|
||||
<span class="float-start rounded border border-primary" style="cursor:pointer;" onclick="copyServerPartsToClipboard()">ALL 📋</span> 장비번호 / 스위치정보 / IP정보 / CS정보
|
||||
</th>
|
||||
<th>등록자</th>
|
||||
<td><?= SITES[$entity->getSite()] ?></td>
|
||||
<td nowrap><?= $viewDatas['helper']->getFieldView('clientinfo_uid', $entity->getClientInfoUid(), $viewDatas) ?>
|
||||
</td>
|
||||
<td class="text-start">
|
||||
<?= $viewDatas['helper']->getFieldView('serverinfo_uid', $entity->getServerInfoUid(), $viewDatas) ?></td>
|
||||
<td nowrap><?= $viewDatas['helper']->getFieldView('user_uid', $entity->getUserUid(), $viewDatas) ?></td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($viewDatas['newServiceEntities'] as $entity): ?>
|
||||
<?php $viewDatas['entity'] = $entity ?>
|
||||
<tr class="text-center">
|
||||
<td><?= SITES[$entity->getSite()] ?></td>
|
||||
<td nowrap><?= $viewDatas['helper']->getFieldView('clientinfo_uid', $entity->getClientInfoUid(), $viewDatas) ?></td>
|
||||
<td class="text-start"><?= $viewDatas['helper']->getFieldView('serverinfo_uid', $entity->getServerInfoUid(), $viewDatas) ?></td>
|
||||
<td nowrap><?= $viewDatas['helper']->getFieldView('user_uid', $entity->getUserUid(), $viewDatas) ?></td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="layout_footer"></div>
|
||||
<script src="/js/admin/clipboard.js"></script>
|
||||
<?php endforeach ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="layout_footer"></div>
|
||||
<script src="/js/admin/clipboard.js"></script>
|
||||
@ -1,24 +1,24 @@
|
||||
<div class="layout_header" style="margin-top:20px;">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="nav-item">
|
||||
<span class="nav-item navbar-brand" aria-current="page">
|
||||
<h4> <?= ICONS['SETUP'] ?>재고현황 </h4>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div style="border-left: 1px solid black; border-right: 1px solid black; padding:20px;">
|
||||
<table class="table table-bordered table-striped">
|
||||
<tr>
|
||||
<th class="text-center" width="33%">사용 서버</th>
|
||||
<th class="text-center" width="33%">메모리 재고</th>
|
||||
<th class="text-center">저장장치 재고</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?= view_cell("\App\Cells\Equipment\CHASSISCell::stock") ?></td>
|
||||
<td><?= view_cell("\App\Cells\Part\RAMCell::stock") ?></td>
|
||||
<td><?= view_cell("\App\Cells\Part\DISKCell::stock") ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="layout_footer"></div>
|
||||
<div class="layout_header" style="margin-top:20px;">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="nav-item">
|
||||
<span class="nav-item navbar-brand" aria-current="page">
|
||||
<h4> <?= icon('SETUP') ?>재고현황 </h4>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div style="border-left: 1px solid black; border-right: 1px solid black; padding:20px;">
|
||||
<table class="table table-bordered table-striped">
|
||||
<tr>
|
||||
<th class="text-center" width="33%">사용 서버</th>
|
||||
<th class="text-center" width="33%">메모리 재고</th>
|
||||
<th class="text-center">저장장치 재고</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?= view_cell("\App\Cells\Equipment\CHASSISCell::stock") ?></td>
|
||||
<td><?= view_cell("\App\Cells\Part\RAMCell::stock") ?></td>
|
||||
<td><?= view_cell("\App\Cells\Part\DISKCell::stock") ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="layout_footer"></div>
|
||||
@ -1,45 +1,45 @@
|
||||
<div class="layout_header">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="nav-item">
|
||||
<span class="nav-item navbar-brand" aria-current="page">
|
||||
<h4> <?= ICONS['CHART'] ?> 전체 서비스 현황 </h4>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div style="border-left: 1px solid black; border-right: 1px solid black; padding:20px;">
|
||||
<table class="table table-bordered table-hover table-align-middle">
|
||||
<tr class="text-center">
|
||||
<th rowspan="2" class="bg-light">사이트</th>
|
||||
<th colspan="2" class="bg-light">일반</th>
|
||||
<th colspan="2" class="bg-light">방어</th>
|
||||
<th colspan="2" class="bg-light">전용</th>
|
||||
<th colspan="2" class="bg-light">대체</th>
|
||||
<th colspan="2" class="bg-light">VPN</th>
|
||||
<th colspan="2" class="bg-light">이벤트</th>
|
||||
<th colspan="2" class="bg-light">테스트</th>
|
||||
<th colspan="3" class="bg-light">합계</th>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<th class="bg-light">도쿄</th>
|
||||
<th class="bg-light">치바</th>
|
||||
<th class="bg-light">도쿄</th>
|
||||
<th class="bg-light">치바</th>
|
||||
<th class="bg-light">도쿄</th>
|
||||
<th class="bg-light">치바</th>
|
||||
<th class="bg-light">도쿄</th>
|
||||
<th class="bg-light">치바</th>
|
||||
<th class="bg-light">도쿄</th>
|
||||
<th class="bg-light">치바</th>
|
||||
<th class="bg-light">도쿄</th>
|
||||
<th class="bg-light">치바</th>
|
||||
<th class="bg-light">도쿄</th>
|
||||
<th class="bg-light">치바</th>
|
||||
<th class="bg-light">도쿄</th>
|
||||
<th class="bg-light">치바</th>
|
||||
<th class="bg-light">합계</th>
|
||||
</tr>
|
||||
<?= view_cell("\App\Cells\Equipment\ServerCell::totalCountDashboard") ?>
|
||||
</table>
|
||||
</div>
|
||||
<div class="layout_footer"></div>
|
||||
<div class="layout_header">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="nav-item">
|
||||
<span class="nav-item navbar-brand" aria-current="page">
|
||||
<h4> <?= icon('CHART') ?> 전체 서비스 현황 </h4>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div style="border-left: 1px solid black; border-right: 1px solid black; padding:20px;">
|
||||
<table class="table table-bordered table-hover table-align-middle">
|
||||
<tr class="text-center">
|
||||
<th rowspan="2" class="bg-light">사이트</th>
|
||||
<th colspan="2" class="bg-light">일반</th>
|
||||
<th colspan="2" class="bg-light">방어</th>
|
||||
<th colspan="2" class="bg-light">전용</th>
|
||||
<th colspan="2" class="bg-light">대체</th>
|
||||
<th colspan="2" class="bg-light">VPN</th>
|
||||
<th colspan="2" class="bg-light">이벤트</th>
|
||||
<th colspan="2" class="bg-light">테스트</th>
|
||||
<th colspan="3" class="bg-light">합계</th>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<th class="bg-light">도쿄</th>
|
||||
<th class="bg-light">치바</th>
|
||||
<th class="bg-light">도쿄</th>
|
||||
<th class="bg-light">치바</th>
|
||||
<th class="bg-light">도쿄</th>
|
||||
<th class="bg-light">치바</th>
|
||||
<th class="bg-light">도쿄</th>
|
||||
<th class="bg-light">치바</th>
|
||||
<th class="bg-light">도쿄</th>
|
||||
<th class="bg-light">치바</th>
|
||||
<th class="bg-light">도쿄</th>
|
||||
<th class="bg-light">치바</th>
|
||||
<th class="bg-light">도쿄</th>
|
||||
<th class="bg-light">치바</th>
|
||||
<th class="bg-light">도쿄</th>
|
||||
<th class="bg-light">치바</th>
|
||||
<th class="bg-light">합계</th>
|
||||
</tr>
|
||||
<?= view_cell("\App\Cells\Equipment\ServerCell::totalCountDashboard") ?>
|
||||
</table>
|
||||
</div>
|
||||
<div class="layout_footer"></div>
|
||||
@ -4,7 +4,7 @@
|
||||
<div id="left_menu" onMouseOver="sideMenuToggle(this);" onMouseOut="sideMenuToggle(this);">
|
||||
<div id="accordion" class="accordion accordion-flush">
|
||||
<div class="main">
|
||||
<a href="/admin"><?= ICONS["HOME"] ?> Main</a>
|
||||
<a href="/admin"><?= icon("HOME") ?> Main</a>
|
||||
</div>
|
||||
<?= $this->include($viewDatas['layout']['layout'] . '/left_menu/base'); ?>
|
||||
<?= $this->include($viewDatas['layout']['layout'] . '/left_menu/board'); ?>
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<div class="accordion-item">
|
||||
<a href="/admin/user"><?= ICONS['MEMBER'] ?> 계정 관리</a>
|
||||
<a href="/admin/user"><?= icon('MEMBER') ?> 계정 관리</a>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<a href="/admin/payment?status=<?= STATUS['UNPAID'] ?>"><?= ICONS['PAYMENT'] ?> 결제내역</a>
|
||||
<a href="/admin/payment?status=<?= STATUS['UNPAID'] ?>"><?= icon('PAYMENT') ?> 결제내역</a>
|
||||
</div>
|
||||
@ -1,14 +1,13 @@
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
|
||||
data-bs-target="#flush-board" aria-expanded="true"
|
||||
aria-controls="flush-board"><b><?= ICONS['DEVICE'] ?>게시판관리 </b>
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#flush-board"
|
||||
aria-expanded="true" aria-controls="flush-board"><b><?= icon('DEVICE') ?>게시판관리 </b>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="flush-board" class="accordion-collapse collapse" aria-labelledby="flush-board">
|
||||
<div class="accordion-item">
|
||||
<a href="/admin/board?category=<?= BOARD['CATEGORY']['NOTICE'] ?>"><?= ICONS['SERVICE_ITEM_LINE'] ?>공지사항</a>
|
||||
<a href="/admin/board?category=<?= BOARD['CATEGORY']['NOTICE'] ?>"><?= icon('SERVICE_ITEM_LINE') ?>공지사항</a>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<a href="/admin/board?category=<?= BOARD['CATEGORY']['REQUESTTASK'] ?>"><?= ICONS['SERVICE_ITEM_SERVER'] ?>요청업무</a>
|
||||
<a href="/admin/board?category=<?= BOARD['CATEGORY']['REQUESTTASK'] ?>"><?= icon('SERVICE_ITEM_SERVER') ?>요청업무</a>
|
||||
</div>
|
||||
</div>
|
||||
@ -1,14 +1,13 @@
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
|
||||
data-bs-target="#flush-client" aria-expanded="false"
|
||||
aria-controls="flush-client"><b><?= ICONS['CLOUD'] ?> 고객관리 </b>
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#flush-client"
|
||||
aria-expanded="false" aria-controls="flush-client"><b><?= icon('CLOUD') ?> 고객관리 </b>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="flush-client" class="accordion-collapse collapse" aria-labelledby="flush-client">
|
||||
<div class="accordion-item">
|
||||
<a href="/admin/customer/client"><?= ICONS['SIGNPOST'] ?>고객정보</a>
|
||||
<a href="/admin/customer/client"><?= icon('SIGNPOST') ?>고객정보</a>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<a href="/admin/customer/service"><?= ICONS['SERVICE'] ?> 서비스내역</a>
|
||||
<a href="/admin/customer/service"><?= icon('SERVICE') ?> 서비스내역</a>
|
||||
</div>
|
||||
</div>
|
||||
@ -1,18 +1,17 @@
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
|
||||
data-bs-target="#flush-equipment" aria-expanded="true"
|
||||
aria-controls="flush-equipment"><b><?= ICONS['DEVICE'] ?> 장비관리 </b>
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#flush-equipment"
|
||||
aria-expanded="true" aria-controls="flush-equipment"><b><?= icon('DEVICE') ?> 장비관리 </b>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="flush-equipment" class="accordion-collapse collapse" aria-labelledby="flush-equipment">
|
||||
<div class="accordion-item">
|
||||
<a href="/admin/equipment/line"><?= ICONS['SERVICE_ITEM_LINE'] ?>회선정보</a>
|
||||
<a href="/admin/equipment/line"><?= icon('SERVICE_ITEM_LINE') ?>회선정보</a>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<a href="/admin/equipment/server"><?= ICONS['SERVICE_ITEM_SERVER'] ?>Server정보</a>
|
||||
<a href="/admin/equipment/server"><?= icon('SERVICE_ITEM_SERVER') ?>Server정보</a>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<a href="/admin/equipment/chassis"><?= ICONS['SETUP'] ?>서버샷시정보</a>
|
||||
<a href="/admin/equipment/chassis"><?= icon('SETUP') ?>서버샷시정보</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@ -1,29 +1,28 @@
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
|
||||
data-bs-target="#flush-part" aria-expanded="true"
|
||||
aria-controls="flush-part"><b><?= ICONS['DEVICE'] ?> 파트관리 </b>
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#flush-part"
|
||||
aria-expanded="true" aria-controls="flush-part"><b><?= icon('DEVICE') ?> 파트관리 </b>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="flush-part" class="accordion-collapse collapse" aria-labelledby="flush-part">
|
||||
<div class="accordion-item">
|
||||
<a href="/admin/part/switch"><?= ICONS['SETUP'] ?>SWITCH정보</a>
|
||||
<a href="/admin/part/switch"><?= icon('SETUP') ?>SWITCH정보</a>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<a href="/admin/part/ip"><?= ICONS['SERVICE_ITEM_IP'] ?>IP정보</a>
|
||||
<a href="/admin/part/ip"><?= icon('SERVICE_ITEM_IP') ?>IP정보</a>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<a href="/admin/part/cs"><?= ICONS['SERVICE_ITEM_DEFENCE'] ?>CS정보</a>
|
||||
<a href="/admin/part/cs"><?= icon('SERVICE_ITEM_DEFENCE') ?>CS정보</a>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<a href="/admin/part/cpu"><?= ICONS['SERVER_ITEM_CPU'] ?>CPU정보</a>
|
||||
<a href="/admin/part/cpu"><?= icon('SERVER_ITEM_CPU') ?>CPU정보</a>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<a href="/admin/part/ram"><?= ICONS['SERVER_ITEM_RAM'] ?>RAM정보</a>
|
||||
<a href="/admin/part/ram"><?= icon('SERVER_ITEM_RAM') ?>RAM정보</a>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<a href="/admin/part/disk"><?= ICONS['SERVER_ITEM_DISK'] ?>DISK정보</a>
|
||||
<a href="/admin/part/disk"><?= icon('SERVER_ITEM_DISK') ?>DISK정보</a>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<a href="/admin/part/software"><?= ICONS['SERVER_ITEM_SOFTWARE'] ?>Software정보</a>
|
||||
<a href="/admin/part/software"><?= icon('SERVER_ITEM_SOFTWARE') ?>Software정보</a>
|
||||
</div>
|
||||
</div>
|
||||
@ -6,7 +6,8 @@
|
||||
overflow-y: auto;
|
||||
}
|
||||
</style>
|
||||
<nav class="navbar navbar-expand-lg fixed-top" style="background-color:#E7E7E7; border-top:1px solid darkgray; border-bottom:1px solid darkgray;">
|
||||
<nav class="navbar navbar-expand-lg fixed-top"
|
||||
style="background-color:#E7E7E7; border-top:1px solid darkgray; border-bottom:1px solid darkgray;">
|
||||
<div class="container-fluid">
|
||||
<nav class="nav"><a class="navbar-brand" href="/admin">DBMS 관리</a></nav>
|
||||
<ul class="nav justify-content-center">
|
||||
@ -14,14 +15,15 @@
|
||||
<li class="nav-item">
|
||||
<?= form_open("/admin/search", ['method' => 'GET', 'class' => 'd-flex gap-2']) ?>
|
||||
<input type="text" name="keyword" placeholder="고객명/IP/서버명/기타 검색" id="search_keyword" class="form-control" />
|
||||
<button type="submit" class="btn btn-default border border-dark"><?= ICONS['SEARCH'] ?></button>
|
||||
<button type="submit" class="btn btn-default border border-dark"><?= icon('SEARCH') ?></button>
|
||||
<?= form_close(); ?>
|
||||
</li>
|
||||
<li class="nav-item" style="background-color:white; margin-left:20px; font-size:12px;">
|
||||
<!-- 🔔 공지 영역 -->
|
||||
<ul class="navbar-nav ms-auto">
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="noticeDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="noticeDropdown" role="button" data-bs-toggle="dropdown"
|
||||
aria-expanded="false">
|
||||
🔔 공지사항 <span id="notice-count" class="badge bg-danger">0</span>
|
||||
</a>
|
||||
<ol class="dropdown-menu dropdown-menu-end" aria-labelledby="noticeDropdown" id="noticeList">
|
||||
@ -35,7 +37,8 @@
|
||||
<!-- 🔔 업무요청 영역 -->
|
||||
<ul class="navbar-nav ms-auto">
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="requesttaskDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="requesttaskDropdown" role="button"
|
||||
data-bs-toggle="dropdown" aria-expanded="false">
|
||||
🔔 업무요청 <span id="requesttask-count" class="badge bg-danger">0</span>
|
||||
</a>
|
||||
<ol class="dropdown-menu dropdown-menu-end" aria-labelledby="requesttaskDropdown" id="requesttaskList">
|
||||
@ -46,37 +49,40 @@
|
||||
<!-- 🔔 업무요청 영역 -->
|
||||
</li>
|
||||
<li class="nav-item" style="background-color:white; margin-left:20px; font-size:12px;">
|
||||
📋:클립보드COPY , 📌:실서비스서버 , ✔️:대체서버->실서비스서버 교체 , 🔄:대체서버등록 , <?= ICONS['MONTH'] ?>:월비용 , <?= ICONS['ONETIME'] ?>:일회성<BR>
|
||||
<?= ICONS['SERVER_ITEM_SWITCH'] ?>:스위치 , <?= ICONS['SERVER_ITEM_IP'] ?>:IP , <?= ICONS['SERVER_ITEM_OS'] ?>:OS , <?= ICONS['SERVER_ITEM_SOFTWARE'] ?>:소프트웨어 , <?= ICONS['SERVER_ITEM_CS'] ?>:CS ,
|
||||
<?= ICONS['SERVER_ITEM_CPU'] ?>:CPU , <?= ICONS['SERVER_ITEM_RAM'] ?>:RAM , <?= ICONS['SERVER_ITEM_DISK'] ?>:DISK
|
||||
📋:클립보드COPY , 📌:실서비스서버 , ✔️:대체서버->실서비스서버 교체 , 🔄:대체서버등록 , <?= icon('MONTH') ?>:월비용 ,
|
||||
<?= icon('ONETIME') ?>:일회성<BR>
|
||||
<?= icon('SERVER_ITEM_SWITCH') ?>:스위치 , <?= icon('SERVER_ITEM_IP') ?>:IP , <?= icon('SERVER_ITEM_OS') ?>:OS ,
|
||||
<?= icon('SERVER_ITEM_SOFTWARE') ?>:소프트웨어 , <?= icon('SERVER_ITEM_CS') ?>:CS ,
|
||||
<?= icon('SERVER_ITEM_CPU') ?>:CPU , <?= icon('SERVER_ITEM_RAM') ?>:RAM , <?= icon('SERVER_ITEM_DISK') ?>:DISK
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="nav justify-content-end">
|
||||
<li class="nav-item">
|
||||
<?php if ($viewDatas['authContext']->isLoggedIn()): ?>
|
||||
<div class="btn-group">
|
||||
<button type="button" class="btn btn-outline-primary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
<b><?= ICONS['LOGIN'] . $viewDatas['authContext']->getName() ?></b>
|
||||
<button type="button" class="btn btn-outline-primary dropdown-toggle" data-bs-toggle="dropdown"
|
||||
aria-expanded="false">
|
||||
<b><?= icon('LOGIN') . $viewDatas['authContext']->getName() ?></b>
|
||||
</button>
|
||||
<ul class="dropdown-menu dropdown-menu-end">
|
||||
<li><?= form_label(
|
||||
ICONS['SETUP'] . "정보수정",
|
||||
"modify",
|
||||
[
|
||||
"class" => "dropdown-item form-label-sm",
|
||||
"data-src" => "/admin/user/modify/" . $viewDatas['authContext']->getUID(),
|
||||
"data-bs-toggle" => "modal",
|
||||
"data-bs-target" => "#modal_action_form"
|
||||
]
|
||||
) ?></li>
|
||||
icon('SETUP') . "정보수정",
|
||||
"modify",
|
||||
[
|
||||
"class" => "dropdown-item form-label-sm",
|
||||
"data-src" => "/admin/user/modify/" . $viewDatas['authContext']->getUID(),
|
||||
"data-bs-toggle" => "modal",
|
||||
"data-bs-target" => "#modal_action_form"
|
||||
]
|
||||
) ?></li>
|
||||
<li>
|
||||
<hr class="dropdown-divider">
|
||||
</li>
|
||||
<li><a class="dropdown-item" href="<?= URLS['LOGOUT'] ?>"><?= ICONS['LOGOUT'] ?>Logout</a></li>
|
||||
<li><a class="dropdown-item" href="<?= URLS['LOGOUT'] ?>"><?= icon('LOGOUT') ?>Logout</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<a class="nav-link dropdown-toggle" href="<?= URLS['LOGIN'] ?>" role="button"><?= ICONS['LOGIN'] ?>Login</a>
|
||||
<a class="nav-link dropdown-toggle" href="<?= URLS['LOGIN'] ?>" role="button"><?= icon('LOGIN') ?>Login</a>
|
||||
<?php endif ?>
|
||||
</li>
|
||||
</ul>
|
||||
@ -91,7 +97,7 @@
|
||||
document.querySelector('input[name="keyword"]').value = keyword;
|
||||
});
|
||||
//공지사항용
|
||||
document.addEventListener("DOMContentLoaded", function() {
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
async function loadNotices() {
|
||||
try {
|
||||
const res = await fetch("/admin/board/latest/<?= BOARD['CATEGORY']['NOTICE'] ?>");
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
<nav class="nav"><a class="navbar-brand" href="#">사용자페이지</a></nav>
|
||||
<ul class="nav justify-content-center">
|
||||
<li class="nav-item">
|
||||
<?= ICONS['LOCK'] ?>
|
||||
<?= icon('LOCK') ?>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
@ -12,28 +12,29 @@
|
||||
<li class="nav-item">
|
||||
<?php if ($viewDatas['authContext']->isLoggedIn()): ?>
|
||||
<div class="btn-group">
|
||||
<button type="button" class="btn btn-outline-primary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
<b><?= ICONS['LOGIN'] . $viewDatas['authContext']->getName() ?></b>
|
||||
<button type="button" class="btn btn-outline-primary dropdown-toggle" data-bs-toggle="dropdown"
|
||||
aria-expanded="false">
|
||||
<b><?= icon('LOGIN') . $viewDatas['authContext']->getName() ?></b>
|
||||
</button>
|
||||
<ul class="dropdown-menu dropdown-menu-end">
|
||||
<li><?= form_label(
|
||||
ICONS['SETUP'] . "정보수정",
|
||||
"modify",
|
||||
[
|
||||
"class" => "dropdown-item form-label-sm",
|
||||
"data-src" => "/admin/user/profile/" . $viewDatas['authContext']->getUID(),
|
||||
"data-bs-toggle" => "modal",
|
||||
"data-bs-target" => "#modal_action_form"
|
||||
]
|
||||
) ?></li>
|
||||
icon('SETUP') . "정보수정",
|
||||
"modify",
|
||||
[
|
||||
"class" => "dropdown-item form-label-sm",
|
||||
"data-src" => "/admin/user/profile/" . $viewDatas['authContext']->getUID(),
|
||||
"data-bs-toggle" => "modal",
|
||||
"data-bs-target" => "#modal_action_form"
|
||||
]
|
||||
) ?></li>
|
||||
<li>
|
||||
<hr class="dropdown-divider">
|
||||
</li>
|
||||
<li><a class="dropdown-item" href="<?= URLS['LOGOUT'] ?>"><?= ICONS['LOGOUT'] ?>Logout</a></li>
|
||||
<li><a class="dropdown-item" href="<?= URLS['LOGOUT'] ?>"><?= icon('LOGOUT') ?>Logout</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<a class="nav-link dropdown-toggle" href="<?= URLS['LOGIN'] ?>" role="button"><?= ICONS['LOGIN'] ?>Login</a>
|
||||
<a class="nav-link dropdown-toggle" href="<?= URLS['LOGIN'] ?>" role="button"><?= icon('LOGIN') ?>Login</a>
|
||||
<?php endif ?>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
검색일:<?= form_input('index_start', $viewDatas['index_start'] ?? "", ["class" => "calender"]) ?>~<?= form_input('index_end', $viewDatas['index_end'] ?? "", ["class" => "calender"]) ?>
|
||||
<button class="btn btn-outline-primary" type="submit">검색</button>
|
||||
<?php $queryString = $_SERVER['QUERY_STRING'] ?? ''; ?>
|
||||
<?= anchor(current_url() . '/download/excel' . ($queryString ? '?' . $queryString : ''), ICONS['EXCEL'], ["target" => "_self", "class" => "excel"]) ?>
|
||||
<?= anchor(current_url() . '/download/excel' . ($queryString ? '?' . $queryString : ''), icon('EXCEL'), ["target" => "_self", "class" => "excel"]) ?>
|
||||
</nav>
|
||||
<nav class="pageinfo nav justify-content-end">
|
||||
Page:<?= $viewDatas['page'] ?? 1 ?>/<?= $viewDatas['index_totalpage'] ?>
|
||||
|
||||
@ -8,44 +8,54 @@
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="nav-item">
|
||||
<span class="nav-item navbar-brand" aria-current="page">
|
||||
<h4> <?= ICONS['DESKTOP'] ?> <?= $viewDatas['title'] ?? "" ?> </h4>
|
||||
<h4> <?= \App\Helpers\IconHelper::icon('DESKTOP') ?> <?= $viewDatas['title'] ?? "" ?> </h4>
|
||||
</span>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a href="/admin/customer/client">고객정보</a></span>
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a
|
||||
href="/admin/customer/client">고객정보</a></span>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a href="/admin/customer/wallet/account">예치금정보</a></span>
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a
|
||||
href="/admin/customer/wallet/account">예치금정보</a></span>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a href="/admin/customer/wallet/coupon">쿠폰정보</a></span>
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a
|
||||
href="/admin/customer/wallet/coupon">쿠폰정보</a></span>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a href="/admin/customer/wallet/point">포인트정보</a></span>
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a
|
||||
href="/admin/customer/wallet/point">포인트정보</a></span>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a href="/admin/customer/service">서비스정보</a></span>
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a
|
||||
href="/admin/customer/service">서비스정보</a></span>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a href="/admin/payment?status=<?= STATUS['UNPAID'] ?>">결제정보</a></span>
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a
|
||||
href="/admin/payment?status=<?= STATUS['UNPAID'] ?>">결제정보</a></span>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a href="/admin/equipment/server">서버정보</a></span>
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a
|
||||
href="/admin/equipment/server">서버정보</a></span>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a href="/admin/equipment/line">회선정보</a></span>
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a
|
||||
href="/admin/equipment/line">회선정보</a></span>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a href="/admin/part/ip">IP정보</a></span>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a href="/admin/part/switch">SWITCH정보</a></span>
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a
|
||||
href="/admin/part/switch">SWITCH정보</a></span>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a href="/admin/part/cs">CS정보</a></span>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a href="/admin/equipment/chassis">서버샷시정보</a></span>
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a
|
||||
href="/admin/equipment/chassis">서버샷시정보</a></span>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a href="/admin/part/cpu">CPU정보</a></span>
|
||||
@ -54,9 +64,11 @@
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a href="/admin/part/ram">RAM정보</a></span>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a href="/admin/part/disk">DISK정보</a></span>
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a
|
||||
href="/admin/part/disk">DISK정보</a></span>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a href="/admin/part/software">SOFTWARE정보</a></span>
|
||||
<span class="nav-link active" aria-current="page" style="cursor:pointer;"><a
|
||||
href="/admin/part/software">SOFTWARE정보</a></span>
|
||||
</li>
|
||||
</ul>
|
||||
@ -1,10 +1,11 @@
|
||||
<!-- 모달 HTML -->
|
||||
<div id="modal_action_form" class="modal_action_form modal fade" tabindex="-1" aria-labelledby="modal_label" aria-hidden="true">
|
||||
<div id="modal_action_form" class="modal_action_form modal fade" tabindex="-1" aria-labelledby="modal_label"
|
||||
aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg modal-dialog-centered modal-dialog-scrollable">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="modal_label">
|
||||
<?= ICONS['DESKTOP'] ?> <?= $viewDatas['content_title'] ?>
|
||||
<?= icon('DESKTOP') ?> <?= $viewDatas['content_title'] ?>
|
||||
</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="modal_label">
|
||||
<?= ICONS['DESKTOP'] ?> <?= $viewDatas['content_title'] ?>
|
||||
<?= icon('DESKTOP') ?> <?= $viewDatas['content_title'] ?>
|
||||
</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
|
||||
@ -10,9 +10,10 @@
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="iframe_modal_label">
|
||||
<?= ICONS['DESKTOP'] ?> <?= $viewDatas['title'] ?? "" ?>
|
||||
<?= icon('DESKTOP') ?> <?= $viewDatas['title'] ?? "" ?>
|
||||
</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close" onClick="window.location.reload()"></button>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"
|
||||
onClick="window.location.reload()"></button>
|
||||
</div>
|
||||
<div class="modal-body" style="max-height: 80vh; overflow-y: auto;">
|
||||
<iframe id="form-container" src="about:blank" width="100%" frameborder="0" allowfullscreen></iframe>
|
||||
@ -53,12 +54,12 @@
|
||||
}
|
||||
|
||||
var modal_action_form = document.getElementById('modal_action_form');
|
||||
modal_action_form.addEventListener('show.bs.modal', function(event) {
|
||||
modal_action_form.addEventListener('show.bs.modal', function (event) {
|
||||
var button = event.relatedTarget;
|
||||
var iframe = document.getElementById('form-container');
|
||||
iframe.src = button.getAttribute('data-src');
|
||||
// iframe이 로드된 후 높이를 조정하는 이벤트 리스너 추가
|
||||
iframe.onload = function() {
|
||||
iframe.onload = function () {
|
||||
resizeIframe();
|
||||
var iframeContent = iframe.contentDocument || iframe.contentWindow.document;
|
||||
// 컨텐츠 변경 시 높이 재조정을 위한 MutationObserver 설정
|
||||
@ -72,7 +73,7 @@
|
||||
});
|
||||
|
||||
// 모달이 닫힐 때 iframe src를 초기화하여 종료 처리
|
||||
modal_action_form.addEventListener('hidden.bs.modal', function() {
|
||||
modal_action_form.addEventListener('hidden.bs.modal', function () {
|
||||
var iframe = document.getElementById('form-container');
|
||||
iframe.src = "about:blank"; // 모달 닫힐 때 iframe 초기화
|
||||
});
|
||||
|
||||
@ -1,11 +1,12 @@
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="nav-item">
|
||||
<span class="nav-item navbar-brand" aria-current="page">
|
||||
<h4> <?= ICONS['DESKTOP'] ?> <?= $viewDatas['content_title'] ?> </h4>
|
||||
<h4> <?= icon('DESKTOP') ?> <?= $viewDatas['content_title'] ?> </h4>
|
||||
</span>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<span class="nav-link active" aria-current="page" data-bs-toggle="modal" data-bs-target="#DNSModal" style="cursor:pointer;">Cloudflare DNS</span>
|
||||
<span class="nav-link active" aria-current="page" data-bs-toggle="modal" data-bs-target="#DNSModal"
|
||||
style="cursor:pointer;">Cloudflare DNS</span>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="modal fade" id="DNSModal" tabindex="-1" aria-labelledby="CloudflareDNSModal" aria-hidden="true">
|
||||
@ -49,7 +50,8 @@
|
||||
<table class="cloudflare">
|
||||
<tr>
|
||||
<th>cloudprime001@idcjp.jp(영,숫자)</th>
|
||||
<td class="dnsname" onclick="copyToClipboard(this,'felicity.ns.cloudflare.com')">felicity.ns.cloudflare.com</td>
|
||||
<td class="dnsname" onclick="copyToClipboard(this,'felicity.ns.cloudflare.com')">felicity.ns.cloudflare.com
|
||||
</td>
|
||||
<td class="dnsname" onclick="copyToClipboard(this,'tara.ns.cloudflare.com')">tara.ns.cloudflare.com</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -59,7 +61,8 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<th>jpcf003@gmail.com(ㅇ~ㅎ)</th>
|
||||
<td class="dnsname" onclick="copyToClipboard(this,'natasha.ns.cloudflare.com');">natasha.ns.cloudflare.com</td>
|
||||
<td class="dnsname" onclick="copyToClipboard(this,'natasha.ns.cloudflare.com');">natasha.ns.cloudflare.com
|
||||
</td>
|
||||
<td class="dnsname" onclick="copyToClipboard(this,'plato.ns.cloudflare.com');">plato.ns.cloudflare.com</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user