diff --git a/app/Config/Constants.php b/app/Config/Constants.php
index 1839d88..dd69076 100644
--- a/app/Config/Constants.php
+++ b/app/Config/Constants.php
@@ -224,7 +224,7 @@ define('LAYOUTS', [
'stylesheets' => [
'',
'',
- '',
+ '',
],
'javascripts' => [
'',
@@ -253,7 +253,7 @@ define('LAYOUTS', [
'',
'',
'',
- '',
+ '',
],
'javascripts' => [
'',
@@ -284,7 +284,7 @@ define('LAYOUTS', [
'',
'',
'',
- '',
+ '',
],
'javascripts' => [
'',
diff --git a/app/Controllers/Admin/AdminController.php b/app/Controllers/Admin/AdminController.php
index 326f7c4..fa5c91a 100644
--- a/app/Controllers/Admin/AdminController.php
+++ b/app/Controllers/Admin/AdminController.php
@@ -13,7 +13,8 @@ abstract class AdminController extends MVController
{
parent::initController($request, $response, $logger);
$this->layout = "admin";
- $this->view_root .= "admin/";
- $this->action_form = FORMS['IFRAME'];
+ $this->uri_path = "admin/";
+ $this->view_path = "admin/";
+ $this->action_form = FORMS['MODAL'];
}
}
diff --git a/app/Controllers/Admin/Cloudflare/AccountController.php b/app/Controllers/Admin/Cloudflare/AccountController.php
index f304c6c..f3e9664 100644
--- a/app/Controllers/Admin/Cloudflare/AccountController.php
+++ b/app/Controllers/Admin/Cloudflare/AccountController.php
@@ -2,13 +2,14 @@
namespace App\Controllers\Admin\Cloudflare;
-use Psr\Log\LoggerInterface;
-use CodeIgniter\HTTP\ResponseInterface;
-use CodeIgniter\HTTP\RequestInterface;
-use CodeIgniter\HTTP\RedirectResponse;
-use CodeIgniter\HTTP\DownloadResponse;
-use App\Models\Cloudflare\AccountModel;
+use App\Helpers\Cloudflare\AccountHelper;
use App\Libraries\Cloudflare\Account;
+use App\Models\Cloudflare\AccountModel;
+use CodeIgniter\HTTP\DownloadResponse;
+use CodeIgniter\HTTP\RedirectResponse;
+use CodeIgniter\HTTP\RequestInterface;
+use CodeIgniter\HTTP\ResponseInterface;
+use Psr\Log\LoggerInterface;
class AccountController extends CloudflareController
{
@@ -20,9 +21,8 @@ class AccountController extends CloudflareController
parent::initController($request, $response, $logger);
$this->class_name = "Account";
$this->class_path .= $this->class_name;
- $this->view_path = strtolower($this->view_root . $this->class_name);
$this->title = lang("{$this->class_path}.title");
- helper($this->class_path);
+ $this->helper = new AccountHelper();
}
final protected function getModel(): AccountModel
{
diff --git a/app/Controllers/Admin/Cloudflare/AuthController.php b/app/Controllers/Admin/Cloudflare/AuthController.php
index 3cd327e..f07bbf5 100644
--- a/app/Controllers/Admin/Cloudflare/AuthController.php
+++ b/app/Controllers/Admin/Cloudflare/AuthController.php
@@ -2,12 +2,13 @@
namespace App\Controllers\Admin\Cloudflare;
-use Psr\Log\LoggerInterface;
-use CodeIgniter\HTTP\ResponseInterface;
-use CodeIgniter\HTTP\RequestInterface;
-use CodeIgniter\HTTP\RedirectResponse;
-use CodeIgniter\HTTP\DownloadResponse;
+use App\Helpers\Cloudflare\AuthHelper;
use App\Models\Cloudflare\AuthModel;
+use CodeIgniter\HTTP\DownloadResponse;
+use CodeIgniter\HTTP\RedirectResponse;
+use CodeIgniter\HTTP\RequestInterface;
+use CodeIgniter\HTTP\ResponseInterface;
+use Psr\Log\LoggerInterface;
class AuthController extends CloudflareController
{
@@ -17,9 +18,8 @@ class AuthController extends CloudflareController
parent::initController($request, $response, $logger);
$this->class_name .= "Auth";
$this->class_path .= $this->class_name;
- $this->view_path = strtolower($this->view_root . $this->class_name);
$this->title = lang("{$this->class_path}.title");
- helper($this->class_path);
+ $this->helper = new AuthHelper();
}
final protected function getModel(): AuthModel
{
diff --git a/app/Controllers/Admin/Cloudflare/CloudflareController.php b/app/Controllers/Admin/Cloudflare/CloudflareController.php
index 61f0f4a..3b7c747 100644
--- a/app/Controllers/Admin/Cloudflare/CloudflareController.php
+++ b/app/Controllers/Admin/Cloudflare/CloudflareController.php
@@ -2,15 +2,15 @@
namespace App\Controllers\Admin\Cloudflare;
-use Psr\Log\LoggerInterface;
-use CodeIgniter\HTTP\ResponseInterface;
-use CodeIgniter\HTTP\RequestInterface;
-use CodeIgniter\HTTP\RedirectResponse;
-use App\Models\Cloudflare\ZoneModel;
-use App\Models\Cloudflare\RecordModel;
-use App\Models\Cloudflare\AuthModel;
-use App\Models\Cloudflare\AccountModel;
use App\Controllers\Admin\AdminController;
+use App\Models\Cloudflare\AccountModel;
+use App\Models\Cloudflare\AuthModel;
+use App\Models\Cloudflare\RecordModel;
+use App\Models\Cloudflare\ZoneModel;
+use CodeIgniter\HTTP\RedirectResponse;
+use CodeIgniter\HTTP\RequestInterface;
+use CodeIgniter\HTTP\ResponseInterface;
+use Psr\Log\LoggerInterface;
abstract class CloudflareController extends AdminController
{
@@ -21,8 +21,8 @@ abstract class CloudflareController extends AdminController
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{
parent::initController($request, $response, $logger);
- $this->class_path .= "Cloudflare/";
- $this->view_root .= strtolower($this->class_path);
+ $this->class_path = "Cloudflare/";
+ $this->uri_path .= strtolower($this->class_path);
}
final protected function getAuthModel(): AuthModel
{
@@ -59,6 +59,7 @@ abstract class CloudflareController extends AdminController
$this->getModel()->transStart();
try {
$this->sync_process($uid);
+ $this->message = "{$this->class_name}: 동기화작업을 완료하였습니다.";
$this->getModel()->transCommit();
log_message("notice", $this->message);
$this->session->setFlashdata(SESSION_NAMES['RETURN_MSG'], $this->message);
@@ -79,6 +80,7 @@ abstract class CloudflareController extends AdminController
$this->getModel()->transStart();
try {
$this->reload_process($uid);
+ $this->message = "{$this->class_name}: Reload 작업이 완료되었습니다.";
$this->getModel()->transCommit();
log_message("notice", $this->message);
$this->session->setFlashdata(SESSION_NAMES['RETURN_MSG'], $this->message);
diff --git a/app/Controllers/Admin/Cloudflare/RecordController.php b/app/Controllers/Admin/Cloudflare/RecordController.php
index 2ebcee6..438523e 100644
--- a/app/Controllers/Admin/Cloudflare/RecordController.php
+++ b/app/Controllers/Admin/Cloudflare/RecordController.php
@@ -2,13 +2,14 @@
namespace App\Controllers\Admin\Cloudflare;
-use Psr\Log\LoggerInterface;
-use CodeIgniter\HTTP\ResponseInterface;
-use CodeIgniter\HTTP\RequestInterface;
-use CodeIgniter\HTTP\RedirectResponse;
-use CodeIgniter\HTTP\DownloadResponse;
-use App\Models\Cloudflare\RecordModel;
+use App\Helpers\Cloudflare\RecordHelper;
use App\Libraries\Cloudflare\Record;
+use App\Models\Cloudflare\RecordModel;
+use CodeIgniter\HTTP\DownloadResponse;
+use CodeIgniter\HTTP\RedirectResponse;
+use CodeIgniter\HTTP\RequestInterface;
+use CodeIgniter\HTTP\ResponseInterface;
+use Psr\Log\LoggerInterface;
class RecordController extends CloudflareController
{
@@ -19,9 +20,8 @@ class RecordController extends CloudflareController
parent::initController($request, $response, $logger);
$this->class_name .= "Record";
$this->class_path .= $this->class_name;
- $this->view_path = strtolower($this->view_root . $this->class_name);
$this->title = lang("{$this->class_path}.title");
- helper($this->class_path);
+ $this->helper = new RecordHelper();
}
final protected function getModel(): RecordModel
{
@@ -100,7 +100,7 @@ class RecordController extends CloudflareController
$cnt = 1;
foreach ($this->formDatas['hosts'] as $host) {
//호스트명 형식확인
- if (!isHost_CommonHelper($host)) {
+ if (!$this->helper->isHost($host)) {
throw new \Exception("{$this->_zone_entity->getTitle()}의 {$cnt}번째 {$host} 호스트명 형식 오류");
}
$cnt++;
@@ -110,7 +110,6 @@ class RecordController extends CloudflareController
$entity = $this->getMyLibrary()->create($host, $this->formDatas['type'], $this->formDatas['content'], $this->formDatas['proxied']);
log_message("debug", "Record:{$entity->getTitle()} 생성 작업을 완료하였습니다.");
}
- $this->message = "Record {$this->action} 작업을 완료하였습니다.";
}
public function create(mixed $zone_uid = false): RedirectResponse|string
{
@@ -137,7 +136,6 @@ class RecordController extends CloudflareController
//Socket처리
$entity = $this->getMyLibrary()->modify($this->entity, $this->formDatas);
}
- $this->message = "Record:{$entity->getTitle()} {$this->action} 작업을 완료하였습니다.";
}
//일괄처리작업
public function batcjob(): RedirectResponse
@@ -159,7 +157,6 @@ class RecordController extends CloudflareController
$this->_zone_entity = $this->getZoneModel()->getEntityByPK($this->entity->getParent());
//Socket처리
$this->getMyLibrary()->sync($this->entity);
- $this->message = "Record:{$this->entity->getTitle()} {$this->action} 작업을 완료하였습니다.";
}
public function sync(string $uid): RedirectResponse
{
@@ -178,7 +175,6 @@ class RecordController extends CloudflareController
$this->_zone_entity = $this->getZoneModel()->getEntityByPK($this->formDatas[$this->getModel()::PARENT]);
//Cloudflare 삭제
$this->getMyLibrary()->delete($this->entity);
- $this->message = "Record:{$this->entity->getTitle()} {$this->action} 작업을 완료하였습니다.";
}
// 리스트
public function index(): string
diff --git a/app/Controllers/Admin/Cloudflare/ZoneController.php b/app/Controllers/Admin/Cloudflare/ZoneController.php
index e17aa5b..4affec4 100644
--- a/app/Controllers/Admin/Cloudflare/ZoneController.php
+++ b/app/Controllers/Admin/Cloudflare/ZoneController.php
@@ -2,14 +2,15 @@
namespace App\Controllers\Admin\Cloudflare;
-use Psr\Log\LoggerInterface;
-use CodeIgniter\HTTP\ResponseInterface;
-use CodeIgniter\HTTP\RequestInterface;
-use CodeIgniter\HTTP\RedirectResponse;
-use CodeIgniter\HTTP\DownloadResponse;
-use App\Models\Cloudflare\ZoneModel;
-use App\Libraries\Cloudflare\Zone;
+use App\Helpers\Cloudflare\ZoneHelper;
use App\Libraries\Cloudflare\Record;
+use App\Libraries\Cloudflare\Zone;
+use App\Models\Cloudflare\ZoneModel;
+use CodeIgniter\HTTP\DownloadResponse;
+use CodeIgniter\HTTP\RedirectResponse;
+use CodeIgniter\HTTP\RequestInterface;
+use CodeIgniter\HTTP\ResponseInterface;
+use Psr\Log\LoggerInterface;
class ZoneController extends CloudflareController
{
@@ -21,9 +22,8 @@ class ZoneController extends CloudflareController
parent::initController($request, $response, $logger);
$this->class_name .= "Zone";
$this->class_path .= $this->class_name;
- $this->view_path = strtolower($this->view_root . $this->class_name);
- $this->title = lang("{$this->class_path}.title");
- helper($this->class_path);
+ $this->title = lang("{$this->class_path}.title");
+ $this->helper = new ZoneHelper();
}
final protected function getModel(): ZoneModel
{
@@ -35,7 +35,6 @@ class ZoneController extends CloudflareController
final protected function getMyLibrary(): Zone
{
if ($this->_myLibrary === null) {
-
$this->_myLibrary = new Zone($this->_account_entity);
}
return $this->_myLibrary;
@@ -111,14 +110,14 @@ class ZoneController extends CloudflareController
//데이터검증
//Type이 A형식일경우 IP형태인지 확인
if ($this->formDatas['type'] === 'A') {
- if (!isIPAddress_CommonHelper($this->formDatas['content'], $this->formDatas['type'])) {
+ if (!$this->helper->isIPAddress($this->formDatas['content'], $this->formDatas['type'])) {
throw new \Exception("{$this->_account_entity->getTitle()}의 {$this->formDatas['type']}, {$this->formDatas['content']} 형식 오류[사설IP 않됨]");
}
}
$cnt = 1;
foreach ($this->formDatas['domains'] as $domain) {
//도메인명 형식확인
- if (!isDomain_CommonHelper($domain)) {
+ if (!$this->helper->isDomain($domain)) {
throw new \Exception("{$this->_account_entity->getTitle()}의 {$cnt}번째 {$domain} 형식 오류");
}
//도메인명이 해당계정의 유일한 도메인인지 확인
@@ -130,7 +129,7 @@ class ZoneController extends CloudflareController
$cnt = 1;
foreach ($this->formDatas['hosts'] as $host) {
//호스트명 형식확인
- if (!isHost_CommonHelper($host)) {
+ if (!$this->helper->isHost($host)) {
throw new \Exception("{$this->_account_entity->getTitle()}의 {$cnt}번째 {$host} 호스트명 형식 오류");
}
$cnt++;
@@ -153,7 +152,6 @@ class ZoneController extends CloudflareController
log_message("debug", "Record:{$entity->getTitle()} 작업을 완료하였습니다.");
}
}
- $this->message = "Zone {$this->action} 작업을 완료하였습니다.";
}
public function create(): RedirectResponse|string
{
@@ -175,7 +173,6 @@ class ZoneController extends CloudflareController
$this->_account_entity = $this->getAccountModel()->getEntityByPK($this->entity->getParent());
//Socket처리
$entity = $this->getMyLibrary()->modify($this->entity, $this->formDatas);
- $this->message = "Zone:{$entity->getTitle()} {$this->action} 작업을 완료하였습니다.";
}
//일괄처리작업
public function batcjob(): RedirectResponse
@@ -197,7 +194,6 @@ class ZoneController extends CloudflareController
$this->_account_entity = $this->getAccountModel()->getEntityByPK($this->entity->getParent());
//Socket처리
$this->getMyLibrary()->sync($this->entity);
- $this->message = "Zone:{$this->entity->getTitle()} {$this->action} 작업을 완료하였습니다.";
}
public function sync(string $uid): RedirectResponse
{
@@ -216,7 +212,6 @@ class ZoneController extends CloudflareController
$this->_account_entity = $this->getAccountModel()->getEntityByPK($this->formDatas[$this->getModel()::PARENT]);
//Cloudflare 삭제
$this->getMyLibrary()->delete($this->entity);
- $this->message = "Zone:{$this->entity->getTitle()} {$this->action} 작업을 완료하였습니다.";
}
// 리스트
public function index(): string
diff --git a/app/Controllers/Admin/MapurlController.php b/app/Controllers/Admin/MapurlController.php
index 204ac88..87f8294 100644
--- a/app/Controllers/Admin/MapurlController.php
+++ b/app/Controllers/Admin/MapurlController.php
@@ -2,9 +2,10 @@
namespace App\Controllers\Admin;
+use App\Helpers\MapurlHelper;
use App\Models\MapurlModel;
-use CodeIgniter\HTTP\DownloadResponse;
+use CodeIgniter\HTTP\DownloadResponse;
use CodeIgniter\HTTP\RedirectResponse;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
@@ -18,9 +19,8 @@ class MapurlController extends AdminController
parent::initController($request, $response, $logger);
$this->class_name .= "Mapurl";
$this->class_path .= $this->class_name;
- $this->view_path = strtolower($this->view_root . $this->class_name);
$this->title = lang("{$this->class_path}.title");
- helper($this->class_path);
+ $this->helper = new MapurlHelper();
}
protected function getModel(): MapurlModel
{
diff --git a/app/Controllers/Admin/UserController.php b/app/Controllers/Admin/UserController.php
index 4a7df82..e109900 100644
--- a/app/Controllers/Admin/UserController.php
+++ b/app/Controllers/Admin/UserController.php
@@ -2,9 +2,10 @@
namespace App\Controllers\Admin;
+use App\Helpers\UserHelper;
use App\Models\UserModel;
-use CodeIgniter\HTTP\DownloadResponse;
+use CodeIgniter\HTTP\DownloadResponse;
use CodeIgniter\HTTP\RedirectResponse;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
@@ -19,9 +20,8 @@ class UserController extends AdminController
parent::initController($request, $response, $logger);
$this->class_name = "User";
$this->class_path .= $this->class_name;
- $this->view_path = strtolower($this->view_root . $this->class_name);
$this->title = lang("{$this->class_path}.title");
- helper($this->class_path);
+ $this->helper = new UserHelper();
}
protected function getModel(): UserModel
{
diff --git a/app/Controllers/CommonController.php b/app/Controllers/CommonController.php
index dfe1cd2..154f852 100644
--- a/app/Controllers/CommonController.php
+++ b/app/Controllers/CommonController.php
@@ -14,7 +14,6 @@ abstract class CommonController extends BaseController
{
parent::initController($request, $response, $logger);
$this->session = service('session');
- helper("common");
}
final public function __get($name)
{
diff --git a/app/Controllers/FrontController.php b/app/Controllers/FrontController.php
index d73bc7a..480c8d6 100644
--- a/app/Controllers/FrontController.php
+++ b/app/Controllers/FrontController.php
@@ -13,7 +13,8 @@ abstract class FrontController extends MVController
{
parent::initController($request, $response, $logger);
$this->layout = "front";
- $this->view_root .= "front/";
+ $this->uri_path = "front/";
+ $this->view_path = "front/";
$this->action_form = FORMS['MODAL'];
}
}
diff --git a/app/Controllers/MVController.php b/app/Controllers/MVController.php
index 5799f52..43b2e8a 100644
--- a/app/Controllers/MVController.php
+++ b/app/Controllers/MVController.php
@@ -17,7 +17,6 @@ abstract class MVController extends CommonController
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{
parent::initController($request, $response, $logger);
- helper('common');
$this->session = service('session');
}
abstract protected function getModel(): mixed;
@@ -89,9 +88,7 @@ abstract class MVController extends CommonController
));
}
}
- protected function create_form_process(): void
- {
- }
+ protected function create_form_process(): void {}
final protected function create_form_procedure(): RedirectResponse|string
{
try {
@@ -100,7 +97,7 @@ abstract class MVController extends CommonController
$this->session->keepFlashdata(SESSION_NAMES['RETURN_URL']);
$this->forms = ['attributes' => ['method' => "post",], 'hiddens' => []];
return view(
- $this->view_path . "/create",
+ $this->view_path . "create",
data: ['viewDatas' => $this->getViewDatas()]
);
} catch (\Exception $e) {
@@ -113,7 +110,6 @@ abstract class MVController extends CommonController
$this->create_validate($this->action, $this->fields);
$this->formDatas = $this->getFormDatas();
$this->entity = $this->getModel()->create(formDatas: $this->formDatas);
- $this->message = "{$this->action} 작업이 완료되었습니다.";
}
final protected function create_procedure(): RedirectResponse|string
{
@@ -121,6 +117,7 @@ abstract class MVController extends CommonController
$this->getModel()->transStart();
try {
$this->create_process();
+ $this->message = "{$this->class_name} : 생성작업이 완료되었습니다.";
$this->getModel()->transCommit();
log_message("notice", __FUNCTION__ . $this->message);
switch ($this->action_form) {
@@ -172,7 +169,7 @@ abstract class MVController extends CommonController
$this->session->keepFlashdata(SESSION_NAMES['RETURN_URL']);
$this->forms = ['attributes' => ['method' => "post",], 'hiddens' => []];
return view(
- $this->view_path . "/modify",
+ $this->view_path . "modify",
data: ['viewDatas' => $this->getViewDatas()]
);
} catch (\Exception $e) {
@@ -190,7 +187,6 @@ abstract class MVController extends CommonController
throw new \Exception(__FUNCTION__, " => {$uid} 정보를 찾을수 없습니다.");
}
$this->entity = $this->getModel()->modify($this->entity, $this->formDatas);
- $this->message = "{$this->action} 작업이 완료되었습니다.";
}
final protected function modify_procedure(string $uid): RedirectResponse|string
{
@@ -198,6 +194,7 @@ abstract class MVController extends CommonController
$this->getModel()->transStart();
try {
$this->modify_process($uid);
+ $this->message = "{$this->class_name} : 수정작업이 완료되었습니다.";
$this->getModel()->transCommit();
log_message("notice", __FUNCTION__ . $this->message);
switch ($this->action_form) {
@@ -236,6 +233,7 @@ abstract class MVController extends CommonController
foreach ($uids as $uid) {
$this->modify_process($uid);
}
+ $this->message = "{$this->class_name} : 일괄처리작업이 완료되었습니다.";
$this->getModel()->transCommit();
log_message("notice", $this->message);
$this->session->setFlashdata(SESSION_NAMES['RETURN_MSG'], $this->message);
@@ -258,6 +256,7 @@ abstract class MVController extends CommonController
$this->getModel()->transStart();
try {
$this->modify_process($uid);
+ $this->message = "{$this->class_name} : Toggle 수정작업이 완료되었습니다.";
$this->getModel()->transCommit();
log_message("notice", $this->message);
$this->session->setFlashdata(SESSION_NAMES['RETURN_MSG'], $this->message);
@@ -279,7 +278,6 @@ abstract class MVController extends CommonController
throw new \Exception("{$uid} 정보를 찾을수 없습니다.");
}
$this->entity = $this->getModel()->delete($this->entity->getPK());
- $this->message = "삭제작업을 완료하였습니다.";
}
final public function delete(string $uid): RedirectResponse
{
@@ -287,6 +285,7 @@ abstract class MVController extends CommonController
$this->getModel()->transStart();
try {
$this->delete_process($uid);
+ $this->message = "{$this->class_name} : 삭제작업이 완료되었습니다.";
$this->getModel()->transCommit();
log_message("notice", $this->message);
$this->session->setFlashdata(SESSION_NAMES['RETURN_MSG'], $this->message);
@@ -365,7 +364,7 @@ abstract class MVController extends CommonController
$this->order_value = $this->request->getVar('order_value') ?: DEFAULTS['EMPTY'];
$this->getModel()->setList_OrderBy(
$this->order_field !== DEFAULTS['EMPTY'] &&
- $this->order_value !== DEFAULTS['EMPTY'] ? "{$this->order_field} {$this->order_value}" : ""
+ $this->order_value !== DEFAULTS['EMPTY'] ? "{$this->order_field} {$this->order_value}" : ""
);
if ($this->page) {
$this->getModel()->limit(
@@ -395,12 +394,12 @@ abstract class MVController extends CommonController
$this->session->setFlashdata(SESSION_NAMES['RETURN_URL'], current_url() . ($this->uri->getQuery() ? "?" . $this->uri->getQuery() : ""));
return view(
- $this->view_path . "/index",
+ $this->view_path . "index",
['viewDatas' => $this->getViewDatas()]
);
} catch (\Exception $e) {
log_message("error", $e->getMessage());
- return alert_CommonHelper($e->getMessage(), "back");
+ return $this->helper->alert($e->getMessage(), "back");
// return redirect()->back()->with(SESSION_NAMES['RETURN_MSG'], $e->getMessage());
}
}
@@ -431,7 +430,7 @@ abstract class MVController extends CommonController
// header("Cache-Control: must-revalidate");
// header("Pragma: public");
// header("Content-Length:" . filesize($full_path));
- // return $writer->save('php://output');
+ // return $writer->save('php://output');
break;
}
return array($full_path, $file_name);
@@ -473,7 +472,7 @@ abstract class MVController extends CommonController
return $this->response->download($full_path, null)->setFileName($file_name);
} catch (\Exception $e) {
log_message("error", $e->getMessage());
- return alert_CommonHelper($e->getMessage(), "back");
+ return $this->helper->alert($e->getMessage(), "back");
}
}
}
diff --git a/app/Helpers/Cloudflare/AccountHelper.php b/app/Helpers/Cloudflare/AccountHelper.php
new file mode 100644
index 0000000..cb66d86
--- /dev/null
+++ b/app/Helpers/Cloudflare/AccountHelper.php
@@ -0,0 +1,112 @@
+ lang($viewDatas['class_path'] . '.label.' . $field) . ' 선택',
+ ...$viewDatas['field_options'][$field],
+ ], isset($viewDatas[AccountModel::PARENT]) ? $viewDatas[AccountModel::PARENT] : $value, [...$extras, 'class' => "select-field"]);
+ // // return form_multiselect($field, $field_options[$field], is_array($value) ? [...$value] : [$value], [$extras]);
+ // foreach ($viewDatas['field_options'][$field] as $key => $label) {
+ // $checkboxs[] = form_checkbox("{$field}[]", $key, in_array($key, explode(DEFAULTS["DELIMITER_ROLE"], $value))) . $label;
+ // }
+ // return implode(" ", $checkboxs);
+ break;
+ case AccountModel::TITLE:
+ $form = form_input($field, $value, [
+ "placeholder" => "예)test@exmaple.com",
+ "style" =>
+ "width:100%; ::placeholder{color:silver; opacity: 1;}",
+ "class" => "form-control",
+ (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? "required" : ""
+ ]);
+ break;
+ case 'type':
+ $form = form_dropdown($field, [
+ "" => lang($viewDatas['class_path'] . '.label.' . $field) . ' 선택',
+ ...$viewDatas['field_options'][$field],
+ ], $value, $extras);
+ break;
+ default:
+ $form = parent::getFieldForm($field, $value, $viewDatas, $extras);
+ break;
+ }
+ return $form;
+ } //
+ public function getFieldView(string $field, array $viewDatas, array $extras = []): string
+ {
+ $value = $viewDatas['entity']->$field ?: DEFAULTS['EMPTY'];
+ switch ($field) {
+ case AccountModel::PARENT:
+ if ($this->old_parent === $viewDatas['entity']->getParent()) {
+ $value = "";
+ } else {
+ // dd($viewDatas['field_options']);
+ $value = anchor(
+ current_url() . "/reload/" . $viewDatas['entity']->getParent(),
+ ICONS["RELOAD"],
+ [
+ "class" => "btn btn-sm btn-primary btn-circle",
+ "target" => "_self",
+ ]
+ ) . " " .
+ preg_replace("/(\w+)@(.+)/", "$1", $viewDatas['field_options'][$field][$value])
+ . "";
+ }
+ $this->old_parent = $viewDatas['entity']->getParent();
+ break;
+ case AccountModel::TITLE:
+ $value = anchor(
+ base_url() . $viewDatas['uri_path'] . 'zone/reload/' . $viewDatas['entity']->getPK(),
+ ICONS["RELOAD"],
+ [
+ "class" => "btn btn-sm btn-primary btn-circle",
+ "target" => "_self",
+ ]
+ ) . " " .
+ anchor(
+ base_url() . $viewDatas['uri_path'] . "zone?account_uid=" . $viewDatas['entity']->getPK(),
+ ICONS["FLAG"],
+ [
+ "class" => "btn btn-sm btn-primary btn-circle",
+ "target" => "_self",
+ ]
+ ) . " {$value}";
+ break;
+ default:
+ $value = parent::getFieldView($field, $viewDatas, $extras);
+ break;
+ }
+ return $value;
+ } //
+ public function getListButton(string $action, array $viewDatas, array $extras = []): string
+ {
+ switch ($action) {
+ case 'create':
+ $action = "";
+ break;
+ case 'modify':
+ $action = $viewDatas['cnt'];
+ break;
+ case 'delete':
+ $action = "";
+ break;
+ }
+ return $action;
+ }
+}
diff --git a/app/Helpers/Cloudflare/Account_helper.php b/app/Helpers/Cloudflare/Account_helper.php
deleted file mode 100644
index c56e2b8..0000000
--- a/app/Helpers/Cloudflare/Account_helper.php
+++ /dev/null
@@ -1,163 +0,0 @@
- 'text-danger'];
- break;
- default:
- if (strpos($viewDatas['field_rules'][$field], 'required') !== false) {
- $extras = [...$extras, "class" => 'text-danger'];
- }
- break;
- }
- return form_label(lang("{$viewDatas['class_path']}.label.{$field}"), $field, $extras);
-}
-//header.php에서 getFieldForm_Helper사용
-function getFieldForm_AccountHelper(string $field, mixed $value, array $viewDatas, array $extras = []): string
-{
- $value = $value ?: DEFAULTS['EMPTY'];
- switch ($field) {
- case AccountModel::PARENT:
- $form = form_dropdown($field, [
- "" => lang($viewDatas['class_path'] . '.label.' . $field) . ' 선택',
- ...$viewDatas['field_options'][$field]
- ], isset($viewDatas[AccountModel::PARENT]) ? $viewDatas[AccountModel::PARENT] : $value, [...$extras, 'class' => "select-field"]);
- // // return form_multiselect($field, $field_options[$field], is_array($value) ? [...$value] : [$value], [$extras]);
- // foreach ($viewDatas['field_options'][$field] as $key => $label) {
- // $checkboxs[] = form_checkbox("{$field}[]", $key, in_array($key, explode(DEFAULTS["DELIMITER_ROLE"], $value))) . $label;
- // }
- // return implode(" ", $checkboxs);
- break;
- case AccountModel::TITLE:
- $form = form_input($field, $value, [
- "placeholder" => "예)test@exmaple.com",
- "style" =>
- "width:100%; ::placeholder{color:silver; opacity: 1;}",
- "class" => "form-control",
- (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? "required" : ""
- ]);
- break;
- case 'type':
- case 'status':
- $form = form_dropdown($field, [
- "" => lang($viewDatas['class_path'] . '.label.' . $field) . ' 선택',
- ...$viewDatas['field_options'][$field]
- ], $value, $extras);
- break;
- case 'updated_at':
- case 'created_at':
- $form = form_input($field, $value, [
- "class" => "calener form-control",
- (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? "required" : ""
- ]);
- break;
- default:
- $form = form_input($field, $value, [
- "style" => "width:100%;",
- "class" => "form-control",
- (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? "required" : ""
- ]);
- break;
- }
- return $form;
-} //
-function getFieldView_AccountHelper(string $field, array $viewDatas, array $extras = [])
-{
- $value = $viewDatas['entity']->$field ?: DEFAULTS['EMPTY'];
- switch ($field) {
- case AccountModel::PARENT:
- if ($viewDatas['old_auth'] === $viewDatas['entity']->getParent()) {
- $value = "";
- } else {
- // dd($viewDatas['field_options']);
- $value = anchor(
- current_url() . "/reload/" . $viewDatas['entity']->getParent(),
- ICONS["RELOAD"],
- [
- "class" => "btn btn-sm btn-primary btn-circle",
- "target" => "_self"
- ]
- ) . " " .
- preg_replace("/(\w+)@(.+)/", "$1", $viewDatas['field_options'][$field][$value])
- . "";
- }
- break;
- case AccountModel::TITLE:
- $value = anchor(
- base_url() . $viewDatas['view_root'] . 'zone/reload/' . $viewDatas['entity']->getPK(),
- ICONS["RELOAD"],
- [
- "class" => "btn btn-sm btn-primary btn-circle",
- "target" => "_self"
- ]
- ) . " " .
- anchor(
- base_url() . $viewDatas['view_root'] . "zone?account_uid=" . $viewDatas['entity']->getPK(),
- ICONS["FLAG"],
- [
- "class" => "btn btn-sm btn-primary btn-circle",
- "target" => "_self"
- ]
- ) . " {$value}";
- break;
- case 'category_uid':
- foreach (array_values($viewDatas['field_options'][$field]) as $category_2depths) {
- foreach ($category_2depths as $key => $depth) {
- if ($key == $depth) {
- $value = $depth;
- }
- }
- }
- break;
- case 'updated_at':
- case 'created_at':
- // $value = $value ? date("Y-m-d", strtotime($value)) : "";
- break;
- default:
- // if (in_array($field, $viewDatas['filter_fields']) && $value) {
- // $extras["onChange"] = sprintf(
- // 'location.href="%s/toggle/%s/%s?%s="+this.options[this.selectedIndex].value',
- // current_url(),
- // $viewDatas['entity']->getPK(),
- // $field,
- // $field
- // );
- // $value = getFieldForm_AccountHelper($field, $viewDatas['entity']->$field, $viewDatas, $extras);
- // }
- break;
- }
- return $value;
-} //
-function getListLabel_AccountHelper(string $field, array $viewDatas, array $extras = []): string
-{
- $label = getFieldLabel_AccountHelper($field, $viewDatas, $extras);
- if (isset($viewDatas['order_field']) && $field == $viewDatas['order_field']) {
- $label .= $viewDatas['order_value'] == 'ASC' ? ICONS["UP"] : ICONS["DOWN"];
- $order_value = $viewDatas['order_value'] == 'DESC' ? "ASC" : "DESC";
- $viewDatas['uri']->addQuery('order_field', $field);
- $viewDatas['uri']->addQuery('order_value', $order_value);
- $label = anchor((string)$viewDatas['uri'], $label);
- }
- return sprintf("
%s | ", implode(" ", $extras), $label);
-}
-function getListButton_AccountHelper(string $action, array $viewDatas, array $extras = []): string
-{
- switch ($action) {
- case 'create':
- $viewDatas['list_action_url'] = current_url() . '/' . $action . '?' . $viewDatas['uri']->getQuery(['only' => AccountModel::PARENT]);
- $extras = ["class" => "btn btn-outline btn-primary btn-circle", "target" => "_self", ...$extras];
- $action = getListButtonLabel_CommonHelper($action, '입력', $viewDatas, $extras);
- break;
- case 'sync':
- $action = $viewDatas['cnt'];
- break;
- case 'delete':
- $action = "";
- break;
- }
- return $action;
-}
diff --git a/app/Helpers/Cloudflare/AuthHelper.php b/app/Helpers/Cloudflare/AuthHelper.php
new file mode 100644
index 0000000..dc13521
--- /dev/null
+++ b/app/Helpers/Cloudflare/AuthHelper.php
@@ -0,0 +1,60 @@
+ "예)test@example.com",
+ "style" => "width:100%; ::placeholder{color:silver; opacity: 1;}",
+ "class" => "form-control",
+ (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? "required" : ""
+ ]);
+ break;
+ default:
+ $form = parent::getFieldForm($field, $value, $viewDatas, $extras);
+ break;
+ }
+ return $form;
+ } //
+ public function getFieldView(string $field, array $viewDatas, array $extras = []): string
+ {
+ $value = $viewDatas['entity']->$field ?: DEFAULTS['EMPTY'];
+ switch ($field) {
+ case AuthModel::TITLE:
+ $value = anchor(
+ base_url() . $viewDatas['uri_path'] . 'account/reload/' . $viewDatas['entity']->getPK(),
+ ICONS["RELOAD"],
+ [
+ "class" => "btn btn-sm btn-primary btn-circle",
+ "target" => "_self"
+ ]
+ ) . " " .
+ anchor(
+ base_url() . $viewDatas['uri_path'] . "account?auth_uid=" . $viewDatas['entity']->getPK(),
+ ICONS["FLAG"],
+ [
+ "class" => "btn btn-sm btn-primary btn-circle",
+ "target" => "_self"
+ ]
+ ) . " {$value}";
+ break;
+ default:
+ $value = parent::getFieldView($field, $viewDatas, $extras);
+ break;
+ }
+ return $value;
+ } //
+}
diff --git a/app/Helpers/Cloudflare/Auth_helper.php b/app/Helpers/Cloudflare/Auth_helper.php
deleted file mode 100644
index f80874b..0000000
--- a/app/Helpers/Cloudflare/Auth_helper.php
+++ /dev/null
@@ -1,141 +0,0 @@
- 'text-danger'];
- }
- break;
- }
- return form_label(lang("{$viewDatas['class_path']}.label.{$field}"), $field, $extras);
-}
-//header.php에서 getFieldForm_Helper사용
-function getFieldForm_AuthHelper(string $field, mixed $value, array $viewDatas, array $extras = []): string
-{
- $value = $value ?: DEFAULTS['EMPTY'];
- switch ($field) {
- case AuthModel::TITLE:
- $form = form_input($field, $value, [
- "placeholder" => "예)test@example.com",
- "style" => "width:100%; ::placeholder{color:silver; opacity: 1;}",
- "class" => "form-control",
- (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? "required" : ""
- ]);
- break;
- case 'status':
- $form = form_dropdown($field, [
- "" => lang($viewDatas['class_path'] . '.label.' . $field) . ' 선택',
- ...$viewDatas['field_options'][$field]
- ], $value, $extras);
- break;
- case 'updated_at':
- case 'created_at':
- $form = form_input($field, $value, [
- "class" => "calender form-control",
- (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? "required" : ""
- ]);
- break;
- default:
- $form = form_input($field, $value, [
- "style" => "width:100%;",
- "class" => "form-control",
- (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? "required" : ""
- ]);
- break;
- }
- return $form;
-} //
-function getFieldView_AuthHelper(string $field, array $viewDatas, array $extras = [])
-{
- $value = $viewDatas['entity']->$field ?: DEFAULTS['EMPTY'];
- switch ($field) {
- case AuthModel::TITLE:
- $value = anchor(
- base_url() . $viewDatas['view_root'] . 'account/reload/' . $viewDatas['entity']->getPK(),
- ICONS["RELOAD"],
- [
- "class" => "btn btn-sm btn-primary btn-circle",
- "target" => "_self"
- ]
- ) . " " .
- anchor(
- base_url() . $viewDatas['view_root'] . "account?auth_uid=" . $viewDatas['entity']->getPK(),
- ICONS["FLAG"],
- [
- "class" => "btn btn-sm btn-primary btn-circle",
- "target" => "_self"
- ]
- ) . " {$value}";
- break;
- case 'category_uid':
- foreach (array_values($viewDatas['field_options'][$field]) as $category_2depths) {
- foreach ($category_2depths as $key => $depth) {
- if ($key == $depth) {
- $value = $depth;
- }
- }
- }
- break;
- case 'updated_at':
- case 'created_at':
- $value = $value ? date("Y-m-d", strtotime($value)) : "";
- break;
- default:
- if (in_array($field, $viewDatas['filter_fields']) && $value) {
- $extras["onChange"] = sprintf(
- 'location.href="%s/toggle/%s/%s?%s="+this.options[this.selectedIndex].value',
- current_url(),
- $viewDatas['entity']->getPK(),
- $field,
- $field
- );
- $value = getFieldForm_AuthHelper($field, $viewDatas['entity']->$field, $viewDatas, $extras);
- }
- break;
- }
- return $value;
-} //
-function getListLabel_AuthHelper(string $field, array $viewDatas, array $extras = []): string
-{
- $label = getFieldLabel_AuthHelper($field, $viewDatas, $extras);
- if (isset($viewDatas['order_field']) && $field == $viewDatas['order_field']) {
- $label .= $viewDatas['order_value'] == 'ASC' ? ICONS["UP"] : ICONS["DOWN"];
- $order_value = $viewDatas['order_value'] == 'DESC' ? "ASC" : "DESC";
- $viewDatas['uri']->addQuery('order_field', $field);
- $viewDatas['uri']->addQuery('order_value', $order_value);
- $label = anchor((string) $viewDatas['uri'], $label);
- }
- return sprintf("%s | ", implode(" ", $extras), $label);
-}
-function getListButton_AuthHelper(string $action, array $viewDatas, array $extras = []): string
-{
- switch ($action) {
- case 'create':
- $viewDatas['list_action_url'] = current_url() . '/' . $action;
- $extras = ["class" => "btn btn-outline btn-primary btn-circle", "target" => "_self", ...$extras];
- $action = getListButtonLabel_CommonHelper($action, '입력', $viewDatas, $extras);
- break;
- case 'modify':
- $pk = $viewDatas['entity']->getPK();
- $checkbox = form_checkbox([
- "id" => "checkbox_uid_{$pk}",
- "name" => "batchjob_uids[]",
- "value" => $pk,
- "class" => "batchjobuids_checkboxs",
- "checked" => in_array($pk, old("batchjob_uids", []))
- ]);
- $viewDatas['list_action_url'] = current_url() . '/' . $action . '/' . $viewDatas['entity']->getPK();
- $action = $checkbox . getListButtonLabel_CommonHelper($action, $viewDatas['cnt'], $viewDatas, $extras);
- break;
- case 'delete':
- $viewDatas['list_action_url'] = current_url() . '/' . $action . '/' . $viewDatas['entity']->getPK();
- $extras = ["class" => "btn btn-sm btn-danger btn-circle", "target" => "_self", ...$extras];
- $action = anchor($viewDatas['list_action_url'], ICONS['DELETE'], $extras);
- break;
- }
- return $action;
-}
diff --git a/app/Helpers/Cloudflare/CloudflareHelper.php b/app/Helpers/Cloudflare/CloudflareHelper.php
new file mode 100644
index 0000000..fe7680a
--- /dev/null
+++ b/app/Helpers/Cloudflare/CloudflareHelper.php
@@ -0,0 +1,13 @@
+ lang($viewDatas['class_path'] . '.label.' . $field) . ' 선택',
+ ...$viewDatas['field_options'][$field],
+ ],
+ isset($viewDatas[RecordModel::PARENT]) ? $viewDatas[RecordModel::PARENT] : $value,
+ [...$extras, 'class' => "select-field"]
+ );
+ // // return form_multiselect($field, $field_options[$field], is_array($value) ? [...$value] : [$value], [$extras]);
+ // foreach ($viewDatas['field_options'][$field] as $key => $label) {
+ // $checkboxs[] = form_checkbox("{$field}[]", $key, in_array($key, explode(DEFAULTS["DELIMITER_ROLE"], $value))) . $label;
+ // }
+ // return implode(" ", $checkboxs);
+ break;
+ case RecordModel::TITLE: //host
+ $form = form_input($field, $value, [
+ "placeholder" => "예)www.example.com",
+ "style" =>
+ "width:200px; ::placeholder{color:silver; opacity: 1;}",
+ "class" => "form-control",
+ (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? "required" : ""
+ ]);
+ break;
+ case 'hosts':
+ $form = form_textarea($field, html_entity_decode($value), [
+ 'rows' => '5',
+ "class" => "form-control",
+ (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? "required" : ""
+ ]);
+ break;
+ case 'content':
+ $form = form_input($field, $value, [
+ "placeholder" => "예)123.123.123.123",
+ "style" =>
+ "width:200px; ::placeholder{color:silver; opacity: 1;}",
+ "class" => "form-control",
+ (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? "required" : ""
+ ]);
+ break;
+ case "type":
+ case "fixed":
+ case "locked":
+ case "proxied":
+ case "proxiable":
+ $form = form_dropdown($field, [
+ "" => lang($viewDatas['class_path'] . '.label.' . $field) . ' 선택',
+ ...$viewDatas['field_options'][$field],
+ ], $value, $extras);
+ break;
+ default:
+ $form = parent::getFieldForm($field, $value, $viewDatas, $extras);
+ break;
+ }
+ return $form;
+ } //
+ public function getFieldView(string $field, array $viewDatas, array $extras = []): string
+ {
+ $value = $viewDatas['entity']->$field ?: DEFAULTS['EMPTY'];
+ switch ($field) {
+ case RecordModel::PARENT:
+ if ($this->old_parent === $viewDatas['entity']->getParent()) {
+ $value = "";
+ } else {
+ $value = anchor(
+ current_url() . "/reload/" . $viewDatas['entity']->getParent(),
+ ICONS["RELOAD"],
+ [
+ "class" => "btn btn-sm btn-primary btn-circle",
+ "target" => "_self",
+ ]
+ ) . " " . "{$viewDatas['field_options'][$field][$value]}";
+ }
+ $this->old_parent = $viewDatas['entity']->getParent();
+ break;
+ case RecordModel::TITLE:
+ $url = sprintf("%s/toggle/%s/fixed?fixed=%s", current_url(), $viewDatas['entity']->getPK(), $viewDatas['entity']->fixed == 'on' ? "off" : "on");
+ $value = sprintf("%s%s", $viewDatas['entity']->fixed == 'on' ? "" . ICONS['LOCK'] . "" : "", $value);
+ $value = anchor($url, $value, ["target" => "_self"]);
+ break;
+ default:
+ $value = parent::getFieldView($field, $viewDatas, $extras);
+ break;
+ }
+ return $value;
+ } //
+
+ public function getListRowColor($entity): string
+ {
+ return $entity->locked != 'on' ? 'class="table-danger"' : "";
+ }
+ public function getListLabel(string $field, array $viewDatas, array $extras = []): string
+ {
+ $label = parent::getListLabel($field, $viewDatas, $extras);
+ switch ($field) {
+ case RecordModel::PARENT:
+ $label .= "