diff --git a/app/Config/Constants.php b/app/Config/Constants.php index e7031ab..c063e50 100644 --- a/app/Config/Constants.php +++ b/app/Config/Constants.php @@ -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,16 +67,16 @@ 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 /** * @deprecated Use \CodeIgniter\Events\Events::PRIORITY_LOW instead. @@ -95,16 +95,16 @@ define('EVENT_PRIORITY_HIGH', 10); //Default값 정의 define('DEFAULTS', [ - 'ROLE' => "guest", - 'STATUS' => "use", - 'EMPTY' => "", - 'PERPAGE' => 20, + 'ROLE' => "guest", + 'STATUS' => "use", + 'EMPTY' => "", + 'PERPAGE' => 20, 'DELIMITER_FILE' => "||", 'DELIMITER_ROLE' => ",", ]); //URL define('URLS', [ - 'LOGIN' => '/user/login', + 'LOGIN' => '/user/login', 'SIGNUP' => '/user/signup', 'LOGOUT' => '/user/logout', ]); @@ -122,14 +122,14 @@ define('ROLES', [ define('SESSION_NAMES', [ 'RETURN_URL' => "return_url", 'RETURN_MSG' => "return_message", - 'ISLOGIN' => "islogined", - 'AUTH' => 'auth', + 'ISLOGIN' => "islogined", + 'AUTH' => 'auth', ]); //인증 관련 define('AUTH_FIELDS', [ - 'ID' => 'id', + 'ID' => 'id', 'TITLE' => 'title', - 'ROLE' => 'role' + 'ROLE' => 'role', ]); //DBAction define('DB_ACTION', [ @@ -138,63 +138,66 @@ define('DB_ACTION', [ ]); define("MESSENGERS", [ - "skype" => [ - "url" => "https://join.skype.com/invite/uKUgXfZThSQC", + "skype" => [ + "url" => "https://join.skype.com/invite/uKUgXfZThSQC", "icon" => '스카이프', - "id" => '' + "id" => '', ], - "discord" => [ - "url" => "https://discord.gg/k6nQg84N", + "discord" => [ + "url" => "https://discord.gg/k6nQg84N", "icon" => '디스코드', - "id" => '' + "id" => '', ], - "telegram" => [ - "url" => "https://t.me/daemonidc", + "telegram" => [ + "url" => "https://t.me/daemonidc", "icon" => '텔레그램', - "id" => '@daemonidc' + "id" => '@daemonidc', ], "kakaotalk" => [ - "url" => "https://t.me/daemonidc", + "url" => "https://t.me/daemonidc", "icon" => '카카오톡', - "id" => '' - ] + "id" => '', + ], ]); //아이콘 및 Sound관련 define('ICONS', [ - 'LOGO' => '', - 'LOGIN' => '', - 'LOGOUT' => '', - 'LOCK' => '', - 'NEW' => '', - 'REPLY' => '', - 'DELETE' => '', - 'RELOAD' => '', - 'SETUP' => '', - 'FLAG' => '', - 'SEARCH' => '', - 'EXCEL' => '', - 'HOME' => '', - 'PLAY' => '', - 'CART' => '', - 'CARD' => '', - 'DEPOSIT' => '', - 'UP' => '', - 'DOWN' => '', - 'LEFT' => '', - 'RIGHT' => '', - 'IMAGE_FILE' => '', - 'GOOGLE' => '', + 'LOGO' => '', + 'LOGIN' => '', + 'LOGOUT' => '', + 'HOME' => '', + 'MENU' => '', + 'LOCK' => '', + 'NEW' => '', + 'REPLY' => '', + 'DELETE' => '', + 'RELOAD' => '', + 'SETUP' => '', + 'FLAG' => '', + 'SEARCH' => '', + 'EXCEL' => '', + 'HOME' => '', + 'PLAY' => '', + 'CART' => '', + 'CARD' => '', + 'DEPOSIT' => '', + 'DESKTOP' => '', + 'UP' => '', + 'DOWN' => '', + 'LEFT' => '', + 'RIGHT' => '', + 'IMAGE_FILE' => '', + 'GOOGLE' => '', ]); define('TOP_BANNER', [ - 'default' => '', - 'aboutus' => '', - 'member' => '', - 'hosting' => '', + 'default' => '', + 'aboutus' => '', + 'member' => '', + 'hosting' => '', 'serverdevice' => '', - 'service' => '', - 'support' => '', + 'service' => '', + 'support' => '', ]); define('AUDIOS', [ @@ -204,7 +207,7 @@ define('AUDIOS', [ define('KEYWORD', '일본IDC 일본서버 일본 서버 일본호스팅 서버호스팅 디도스 공격 해외 호스팅 DDOS 방어 ddos 의뢰 디도스 보안 일본 단독서버 가상서버'); define('LAYOUTS', [ 'empty' => [ - 'path' => 'layouts' . DIRECTORY_SEPARATOR . 'empty', + 'path' => 'layouts' . DIRECTORY_SEPARATOR . 'empty', 'stylesheets' => [ '', '', @@ -212,14 +215,14 @@ define('LAYOUTS', [ ], 'javascripts' => [ '', - ] + ], ], 'front' => [ - 'title' => KEYWORD, - 'path' => 'layouts' . DIRECTORY_SEPARATOR . 'front', + 'title' => KEYWORD, + 'path' => 'layouts' . DIRECTORY_SEPARATOR . 'front', //'topmenus' => ['aboutus', 'hosting', 'serverdevice', 'service', 'support'], - 'topmenus' => ['aboutus', 'hosting', 'service', 'support'], - 'metas' => [ + 'topmenus' => ['aboutus', 'hosting', 'service', 'support'], + 'metas' => [ '', '', '', @@ -250,8 +253,8 @@ define('LAYOUTS', [ ], ], 'admin' => [ - 'title' => '관리자화면', - 'path' => 'layouts' . DIRECTORY_SEPARATOR . 'admin', + 'title' => '관리자화면', + 'path' => 'layouts' . DIRECTORY_SEPARATOR . 'admin', 'stylesheets' => [ '', '', @@ -268,6 +271,6 @@ define('LAYOUTS', [ '', '', '', - ] + ], ], ]); diff --git a/app/Controllers/BaseController.php b/app/Controllers/BaseController.php index 76e2ec8..8b435da 100644 --- a/app/Controllers/BaseController.php +++ b/app/Controllers/BaseController.php @@ -41,7 +41,7 @@ abstract class BaseController extends Controller * Be sure to declare properties for any property fetch you initialized. * The creation of dynamic property is deprecated in PHP 8.2. */ - protected $session; + // protected $session; /** * @return void diff --git a/app/Controllers/Cloudflare/AccountController.php b/app/Controllers/Cloudflare/AccountController.php index af44095..cfc9148 100644 --- a/app/Controllers/Cloudflare/AccountController.php +++ b/app/Controllers/Cloudflare/AccountController.php @@ -3,12 +3,12 @@ namespace App\Controllers\Cloudflare; use App\Controllers\MVController; -use App\Libraries\MyCloudflare\Account; use Psr\Log\LoggerInterface; use CodeIgniter\HTTP\ResponseInterface; use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\RedirectResponse; +use App\Libraries\MyCloudflare\Account; use App\Traits\AuthTrait; use App\Models\Cloudflare\AccountModel; use App\Entities\Cloudflare\AccountEntity; @@ -20,9 +20,10 @@ class AccountController extends MVController public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) { parent::initController($request, $response, $logger); - $this->session = $this->session_AuthTrait(); - $this->class_name = 'Account'; - $this->view_path = 'cloudflare'; + $this->class_name = "Cloudflare/Account"; + $this->layout = LAYOUTS['admin']; + $this->title = lang("{$this->class_name}.title"); + $this->session = $this->session_AuthTrait(); helper($this->class_name); } final protected function getModel(): AccountModel @@ -34,9 +35,9 @@ class AccountController extends MVController } protected function create_init(): void { - $this->fields = [$this->getModel()::TITLE, 'apikey', 'status']; + $this->fields = [$this->getModel()::TITLE, 'apikey', 'status']; $this->filter_fields = ['status']; - $this->action = DB_ACTION["CREATE"]; + $this->action = DB_ACTION["CREATE"]; $this->getModel()->setAction($this->action); } public function create_form(): RedirectResponse|string diff --git a/app/Controllers/Cloudflare/ZoneController.php b/app/Controllers/Cloudflare/ZoneController.php index 92fc2eb..7063c57 100644 --- a/app/Controllers/Cloudflare/ZoneController.php +++ b/app/Controllers/Cloudflare/ZoneController.php @@ -9,9 +9,9 @@ use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\RedirectResponse; use App\Traits\AuthTrait; +use App\Libraries\MyCloudflare\Zone; use App\Models\Cloudflare\ZoneModel; use App\Models\Cloudflare\AccountModel; -use App\Libraries\MyCloudflare\Zone; use App\Entities\Cloudflare\ZoneEntity; class ZoneController extends MVController @@ -23,7 +23,7 @@ class ZoneController extends MVController { parent::initController($request, $response, $logger); $this->session = $this->session_AuthTrait(); - $this->class_name = 'Zone'; + $this->class_name = "Zone"; helper($this->class_name); } final protected function getModel(): ZoneModel diff --git a/app/Controllers/MVController.php b/app/Controllers/MVController.php index 8d82918..2813bb5 100644 --- a/app/Controllers/MVController.php +++ b/app/Controllers/MVController.php @@ -12,6 +12,7 @@ abstract class MVController extends CommonController public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) { parent::initController($request, $response, $logger); + helper('common'); } abstract protected function create_init(): void; abstract protected function getModel(): mixed; @@ -26,7 +27,7 @@ abstract class MVController extends CommonController } $options = [ ["" => lang($this->class_name . '.label.' . $field) . ' 선택'], - lang($this->class_name . '.' . strtoupper($field)) + lang($this->class_name . '.' . strtoupper($field)), ]; break; } @@ -69,7 +70,8 @@ abstract class MVController extends CommonController } switch ($field) { default: - $rules[$field] = $this->_model->getFieldRule($field, $rules);; + $rules[$field] = $this->_model->getFieldRule($field, $rules); + ; break; } return $rules; @@ -116,8 +118,9 @@ abstract class MVController extends CommonController $this->create_init(); $this->forminputs = $this->getFormFieldInputs(); $this->session->keepFlashdata(SESSION_NAMES['RETURN_URL']); + $this->forms = ['attributes' => ['method' => "post",], 'hiddens' => []]; return view( - $this->view_path . "/" . strtolower($this->class_name) . "/create", + strtolower($this->class_name) . "/create", ['viewDatas' => $this->getAttributes()] ); } catch (\Exception $e) { @@ -140,12 +143,12 @@ abstract class MVController extends CommonController } $entity = $this->create_process_submit(); log_message("notice", __FUNCTION__ . "=>{$entity->getTitle()} 작업을 완료하였습니다."); - return redirect()->to($this->_session->getFlashdata(SESSION_NAMES['RETURN_URL']) ?: "/"); + return redirect()->to($this->session->getFlashdata(SESSION_NAMES['RETURN_URL']) ?: "/"); } catch (\Exception $e) { //Transaction Rollback $this->getModel()->transRollback(); log_message("error", $e->getMessage()); - $this->session->setFlashdata(SESSION_NAMES['RETURN_MSG'], __FUNCTION__ . " 실패하였습니다.\n" . $e->getMessage()); + $this->session->setFlashdata(SESSION_NAMES['RETURN_MSG'], __FUNCTION__ . " 실패하였습니다.\n" . $e->getMessage()); $this->session->keepFlashdata(SESSION_NAMES['RETURN_URL']); return redirect()->back()->withInput(); } diff --git a/app/Helpers/Cloudflare/Account_helper.php b/app/Helpers/Cloudflare/Account_helper.php new file mode 100644 index 0000000..b3d9bbc --- /dev/null +++ b/app/Helpers/Cloudflare/Account_helper.php @@ -0,0 +1 @@ +getRole($roleField), $userRoles); +} + +function getValueByKey_CommonHelper($key, array $attributes) +{ + $options = array(); + $replace_attributes = array(); + foreach ($attributes as $idx => $value) { + if ($idx == $key) { + $replace_attributes[$idx] = $value; + } else { + array_push($options, $value); + } + } + return array($replace_attributes, $options); +} + +function getRandomString_CommonHelper($length = 10, $characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789") +{ + return substr(str_shuffle($characters), 0, $length); +} +function getPasswordString_CommonHelper($length = 8) +{ + return getRandomString_CommonHelper($length, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_-=+;:,.?"); +} // + +//byte값을 알아보기 쉽게 변환 +function getSizeForHuman_CommonHelper($bytes) +{ + $ext = array('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'); + $unitCount = 0; + for (; $bytes > 1024; $unitCount++) { + $bytes /= 1024; + } + return floor($bytes) . $ext[$unitCount]; +} // + +//Proxy등을 통하여 Client_IP가 알수없는경우 실제사용자의 IP를 가져오기 위한것 +function getClientIP_CommonHelper($clientIP = false) +{ + if (isset($_SERVER['HTTP_CLIENT_IP'])) { + $clientIP = $_SERVER['HTTP_CLIENT_IP']; + } else if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { + $clientIP = $_SERVER['HTTP_X_FORWARDED_FOR']; + } else if (isset($_SERVER['HTTP_X_FORWARDED'])) { + $clientIP = $_SERVER['HTTP_X_FORWARDED']; + } else if (isset($_SERVER['HTTP_FORWARDED_FOR'])) { + $clientIP = $_SERVER['HTTP_FORWARDED_FOR']; + } else if (isset($_SERVER['HTTP_FORWARDED'])) { + $clientIP = $_SERVER['HTTP_FORWARDED']; + } else if (isset($_SERVER['REMOTE_ADDR'])) { + $clientIP = $_SERVER['REMOTE_ADDR']; + } + return $clientIP; +} // + +function isDomain_CommonHelper(string $domain): bool +{ + $parttern_validation = '/((http|https)\:\/\/)?[a-zA-Z0-9\.\/\?\:@\-_=#]+\.([a-zA-Z0-9\&\.\/\?\:@\-_=#])*/'; + return preg_match("$parttern_validation", $domain); +} + +function isIPAddress_CommonHelper(string $ip, $type = false): bool +{ + switch ($type) { + case 'ipv4': + return filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4); + break; + case 'ipv6': + return filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6); + break; + case 'all': + return filter_var($ip, FILTER_VALIDATE_IP); + break; + default: + return filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE); + break; + } +} + +function isHost_CommonHelper(string $host): bool +{ + $parttern_validation = '/[a-zA-Z0-9\.\/\?\:@\*\-_=#]/'; + return preg_match($parttern_validation, $host); +} +//(EX:192.168.1.0 -> 192.168.001.000) +function convertIPV4toCIDR_CommonHelper($cidr) +{ + $temps = explode(".", $cidr); + return sprintf("%03d.%03d.%03d.%03d", $temps[0], $temps[1], $temps[2], $temps[3]); +} // +//(EX:192.168.001.0000 -> 192.168.1.0) +function convertCIDRtoIPV4_CommonHelper($ipv4) +{ + $temps = explode(".", $ipv4); + return sprintf("%d.%d.%d.%d", $temps[0], $temps[1], $temps[2], $temps[3]); +} // +function isMobile_CommonHelper() +{ + // Check the server headers to see if they're mobile friendly + if (isset($_SERVER["HTTP_X_WAP_PROFILE"])) { + return true; + } + // If the http_accept header supports wap then it's a mobile too + if (preg_match("/wap\.|\.wap/i", $_SERVER["HTTP_ACCEPT"])) { + return true; + } + // Still no luck? Let's have a look at the user agent on the browser. If it contains + // any of the following, it's probably a mobile device. Kappow! + if (isset($_SERVER["HTTP_USER_AGENT"])) { + $user_agents = array("midp", "j2me", "avantg", "docomo", "novarra", "palmos", "palmsource", "240x320", "opwv", "chtml", "pda", "windows\ ce", "mmp\/", "blackberry", "mib\/", "symbian", "wireless", "nokia", "hand", "mobi", "phone", "cdm", "up\.b", "audio", "SIE\-", "SEC\-", "samsung", "HTC", "mot\-", "mitsu", "sagem", "sony", "alcatel", "lg", "erics", "vx", "NEC", "philips", "mmm", "xx", "panasonic", "sharp", "wap", "sch", "rover", "pocket", "benq", "java", "pt", "pg", "vox", "amoi", "bird", "compal", "kg", "voda", "sany", "kdd", "dbt", "sendo", "sgh", "gradi", "jb", "\d\d\di", "moto"); + foreach ($user_agents as $user_string) { + if (preg_match("/" . $user_string . "/i", $_SERVER["HTTP_USER_AGENT"])) { + return true; + } + } + } + // Let's NOT return "mobile" if it's an iPhone, because the iPhone can render normal pages quite well. + if (preg_match("/iphone/i", $_SERVER["HTTP_USER_AGENT"])) { + return false; + } + // None of the above? Then it's probably not a mobile device. + return false; +} // + +function alert_CommonHelper(string $msg, $url = null) +{ + $msg = preg_replace("/\r/", "\\r", $msg); + $msg = preg_replace("/\n/", "\\n", $msg); + $msg = preg_replace("/\'/", "\'", $msg); + $msg = preg_replace("/\"/", "\'", $msg); + $msg = "alert(\"{$msg}\");"; + switch ($url) { + case 'close': + $msg .= "window.close();"; + break; + case 'back': + $msg .= "history.back();"; + break; + default: + $msg .= $url ? "location.href=\"{$url}\";" : ""; + break; + } + return ""; +} // + +// STATUS가 use가 아닐때 option을 disabled되게 하기위함 (override form_dropdown) +function form_dropdown_test($data = '', $options = [], $selected = [], $extra = ''): string +{ + $defaults = []; + if (is_array($data)) { + if (isset($data['selected'])) { + $selected = $data['selected']; + unset($data['selected']); // select tags don't have a selected attribute + } + if (isset($data['options'])) { + $options = $data['options']; + unset($data['options']); // select tags don't use an options attribute + } + } else { + $defaults = ['name' => $data]; + } + + if (!is_array($selected)) { + $selected = [$selected]; + } + if (!is_array($options)) { + $options = [$options]; + } + + // If no selected state was submitted we will attempt to set it automatically + if (empty($selected)) { + if (is_array($data)) { + if (isset($data['name'], $_POST[$data['name']])) { + $selected = [$_POST[$data['name']]]; + } + } elseif (isset($_POST[$data])) { + $selected = [$_POST[$data]]; + } + } + + // Standardize selected as strings, like the option keys will be + foreach ($selected as $key => $item) { + $selected[$key] = (string) $item; + } + + $extra = stringify_attributes($extra); + $multiple = (count($selected) > 1 && stripos($extra, 'multiple') === false) ? ' multiple="multiple"' : ''; + $form = '\n"; +} diff --git a/app/Language/Cloudflare/API/Account.php b/app/Language/en/Cloudflare/Account.php similarity index 100% rename from app/Language/Cloudflare/API/Account.php rename to app/Language/en/Cloudflare/Account.php diff --git a/app/Language/Cloudflare/API/Record.php b/app/Language/en/Cloudflare/Record.php similarity index 100% rename from app/Language/Cloudflare/API/Record.php rename to app/Language/en/Cloudflare/Record.php diff --git a/app/Language/Cloudflare/API/Zone.php b/app/Language/en/Cloudflare/Zone.php similarity index 100% rename from app/Language/Cloudflare/API/Zone.php rename to app/Language/en/Cloudflare/Zone.php diff --git a/app/Language/Mapurl.php b/app/Language/en/Mapurl.php similarity index 100% rename from app/Language/Mapurl.php rename to app/Language/en/Mapurl.php diff --git a/app/Language/User.php b/app/Language/en/User.php similarity index 100% rename from app/Language/User.php rename to app/Language/en/User.php diff --git a/app/Views/cloudflare/account/create.php b/app/Views/cloudflare/account/create.php index fa9fd95..79e4ea5 100644 --- a/app/Views/cloudflare/account/create.php +++ b/app/Views/cloudflare/account/create.php @@ -1,24 +1,22 @@ extend('layouts/admin') ?> section('content') ?> -
- - - - - - - - - - - - - - -
class_name . '.label.' . $field) ?> - - -
"btn btn-outline btn-primary")); ?>
-
+ + + + + + + + + + + + +
+ + +
+ "btn btn-outline btn-primary")); ?> +
endSection() ?> \ No newline at end of file diff --git a/app/Views/layouts/admin.php b/app/Views/layouts/admin.php index 9b661e7..3634b16 100644 --- a/app/Views/layouts/admin.php +++ b/app/Views/layouts/admin.php @@ -1,49 +1,50 @@ - - - - - - - - - - - - - - - - + + - <?= $viewDatas['title'] ?> - + - - -
- -
- + +
+
+
+ include($viewDatas['layout']['path'] . '/head'); ?> +
+
+
+
+ include($viewDatas['layout']['path'] . '/left_menu'); ?> +
+
+
include('templates/admin/header'); ?>
+
renderSection('content') ?>
+ +
+
+
+
+ include($viewDatas['layout']['path'] . '/tail'); ?> +
+
+
+ \ No newline at end of file diff --git a/app/Views/layouts/admin/head.php b/app/Views/layouts/admin/head.php new file mode 100644 index 0000000..a2146e0 --- /dev/null +++ b/app/Views/layouts/admin/head.php @@ -0,0 +1,20 @@ + \ No newline at end of file diff --git a/app/Views/layouts/admin/top_navigator/make_password.php b/app/Views/layouts/admin/head/make_password.php similarity index 100% rename from app/Views/layouts/admin/top_navigator/make_password.php rename to app/Views/layouts/admin/head/make_password.php diff --git a/app/Views/layouts/admin/head/member_link.php b/app/Views/layouts/admin/head/member_link.php new file mode 100644 index 0000000..34d8638 --- /dev/null +++ b/app/Views/layouts/admin/head/member_link.php @@ -0,0 +1,17 @@ + \ No newline at end of file diff --git a/app/Views/layouts/admin/top_navigator/search.php b/app/Views/layouts/admin/head/search.php similarity index 100% rename from app/Views/layouts/admin/top_navigator/search.php rename to app/Views/layouts/admin/head/search.php diff --git a/app/Views/layouts/admin/left_menu.php b/app/Views/layouts/admin/left_menu.php index 38be6ad..259c7c5 100644 --- a/app/Views/layouts/admin/left_menu.php +++ b/app/Views/layouts/admin/left_menu.php @@ -1,10 +1,16 @@ -
-
- include($viewDatas['layout']['path'] . '/left_menu/base'); ?> - include($viewDatas['layout']['path'] . '/left_menu/site'); ?> - include($viewDatas['layout']['path'] . '/left_menu/shoppingmall'); ?> + \ No newline at end of file diff --git a/app/Views/layouts/admin/left_menu/base.php b/app/Views/layouts/admin/left_menu/base.php index 3b2b965..00929c2 100644 --- a/app/Views/layouts/admin/left_menu/base.php +++ b/app/Views/layouts/admin/left_menu/base.php @@ -1,12 +1,9 @@ -
-

Main

-
- - - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/Views/layouts/admin/left_menu/shoppingmall.php b/app/Views/layouts/admin/left_menu/shoppingmall.php index b5c75e4..21bb42d 100644 --- a/app/Views/layouts/admin/left_menu/shoppingmall.php +++ b/app/Views/layouts/admin/left_menu/shoppingmall.php @@ -1,19 +1,20 @@ -
-

- -

- -
\ No newline at end of file +

+ +

+ \ No newline at end of file diff --git a/app/Views/layouts/admin/left_menu/site.php b/app/Views/layouts/admin/left_menu/site.php index 76c84c9..4601c4e 100644 --- a/app/Views/layouts/admin/left_menu/site.php +++ b/app/Views/layouts/admin/left_menu/site.php @@ -1,13 +1,13 @@ -
-

- -

- -
\ No newline at end of file +

+ +

+ \ No newline at end of file diff --git a/app/Views/layouts/admin/make_password.php b/app/Views/layouts/admin/make_password.php deleted file mode 100644 index 23f0cc2..0000000 --- a/app/Views/layouts/admin/make_password.php +++ /dev/null @@ -1,4 +0,0 @@ -
- - -
\ No newline at end of file diff --git a/app/Views/layouts/admin/tail.php b/app/Views/layouts/admin/tail.php new file mode 100644 index 0000000..e69de29 diff --git a/app/Views/layouts/admin/top_navigator.php b/app/Views/layouts/admin/top_navigator.php deleted file mode 100644 index 9a55593..0000000 --- a/app/Views/layouts/admin/top_navigator.php +++ /dev/null @@ -1,20 +0,0 @@ - \ No newline at end of file diff --git a/app/Views/layouts/admin/top_navigator/member_link.php b/app/Views/layouts/admin/top_navigator/member_link.php deleted file mode 100644 index 0750447..0000000 --- a/app/Views/layouts/admin/top_navigator/member_link.php +++ /dev/null @@ -1,14 +0,0 @@ - \ No newline at end of file diff --git a/app/Views/layouts/front/head.php b/app/Views/layouts/front/head.php new file mode 100644 index 0000000..b069fee --- /dev/null +++ b/app/Views/layouts/front/head.php @@ -0,0 +1,2 @@ +include($viewDatas['layout']['path'] . 'head/navigator'); ?> +include($viewDatas['layout']['path'] . 'head/top_menu'); ?> \ No newline at end of file diff --git a/app/Views/layouts/front/head/navigator.php b/app/Views/layouts/front/head/navigator.php new file mode 100644 index 0000000..0207edc --- /dev/null +++ b/app/Views/layouts/front/head/navigator.php @@ -0,0 +1,44 @@ + + \ No newline at end of file diff --git a/app/Views/layouts/front/top_menu.php b/app/Views/layouts/front/head/top_menu.php similarity index 100% rename from app/Views/layouts/front/top_menu.php rename to app/Views/layouts/front/head/top_menu.php diff --git a/app/Views/layouts/front/tail.php b/app/Views/layouts/front/tail.php new file mode 100644 index 0000000..dcd45ae --- /dev/null +++ b/app/Views/layouts/front/tail.php @@ -0,0 +1 @@ +include($viewDatas['layout']['path'] . 'tail/copyright'); ?> \ No newline at end of file diff --git a/app/Views/layouts/common/copyright.php b/app/Views/layouts/front/tail/copyright.php similarity index 76% rename from app/Views/layouts/common/copyright.php rename to app/Views/layouts/front/tail/copyright.php index 4291a7c..01bd6cd 100644 --- a/app/Views/layouts/common/copyright.php +++ b/app/Views/layouts/front/tail/copyright.php @@ -7,7 +7,9 @@
-
+
항상 빠르고 안전하고 저렴한 가격으로 고객님을 대신해서 구매대행을 진행할 수 있도록 하겠습니다.
언제나 믿고 신뢰할 수 있는 르호봇이 되도록 노력하겠습니다.
감사합니다.
-
+
이용약관
-
+
개인정보취급방침
-
- Copyright(c) All Right Reserved. + Copyright(c) All Right Reserved.
diff --git a/app/Views/layouts/front/top_navigator.php b/app/Views/layouts/front/top_navigator.php deleted file mode 100644 index 7b3fdd1..0000000 --- a/app/Views/layouts/front/top_navigator.php +++ /dev/null @@ -1,42 +0,0 @@ - - \ No newline at end of file diff --git a/app/Views/templates/admin/footer.php b/app/Views/templates/admin/footer.php index fd78f27..01e7c45 100644 --- a/app/Views/templates/admin/footer.php +++ b/app/Views/templates/admin/footer.php @@ -1,7 +1,8 @@ - -getFlashdata('return_message') ? alert_CommonHelper($viewDatas['session']->getFlashdata('return_message')) : "" ?> +