servermgrv2 init...
This commit is contained in:
parent
7b3a94390a
commit
a27e059e43
@ -111,11 +111,15 @@ define('LAYOUTS', [
|
||||
'<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">',
|
||||
'<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css">',
|
||||
'<link href="//cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">',
|
||||
'<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css">',
|
||||
'<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/select2-bootstrap-5-theme@1.3.0/dist/select2-bootstrap-5-theme.min.css" />',
|
||||
],
|
||||
'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" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>',
|
||||
'<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>',
|
||||
'<script src="/vendors/tinymce/tinymce/tinymce.min.js" referrerpolicy="origin"></script>',
|
||||
]
|
||||
],
|
||||
'admin' => [
|
||||
@ -125,15 +129,18 @@ define('LAYOUTS', [
|
||||
'<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">',
|
||||
'<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css">',
|
||||
'<link href="//cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">',
|
||||
'<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css">',
|
||||
'<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/select2-bootstrap-5-theme@1.3.0/dist/select2-bootstrap-5-theme.min.css" />',
|
||||
],
|
||||
'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" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>',
|
||||
'<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>',
|
||||
'<script src="/vendors/tinymce/tinymce/tinymce.min.js" referrerpolicy="origin"></script>',
|
||||
]
|
||||
]
|
||||
]);
|
||||
|
||||
//SESSION 관련
|
||||
define('SESSION_NAMES', [
|
||||
'RETURN_URL' => "return_url",
|
||||
|
||||
@ -62,6 +62,7 @@ $routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'au
|
||||
$routes->get('view/(:num)', 'UserSNSController::view/$1');
|
||||
$routes->get('delete/(:num)', 'UserSNSController::delete/$1');
|
||||
$routes->get('toggle/(:num)/(:hash)', 'UserSNSController::toggle/$1/$2');
|
||||
$routes->post('batchjob', 'UserSNSController::batchjob');
|
||||
});
|
||||
$routes->group('boardconfig', static function ($routes) {
|
||||
$routes->get('', 'BoardConfigController::index');
|
||||
@ -88,7 +89,7 @@ $routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'au
|
||||
$routes->get('delete/(:num)', 'BoardController::delete/$1', ['filter' => 'authFilter:master']);
|
||||
$routes->get('toggle/(:num)/(:hash)', 'BoardController::toggle/$1/$2');
|
||||
$routes->post('batchjob', 'BoardController::batchjob');
|
||||
$routes->get('download/(:alpha)/(:num)', 'BoardController::download/$1/$2');
|
||||
$routes->get('download/(:any)/(:num)', 'BoardController::download/$1/$2');
|
||||
});
|
||||
$routes->group('hpilo', static function ($routes) {
|
||||
$routes->get('', 'HPILOController::index');
|
||||
|
||||
@ -40,7 +40,7 @@ class Session extends BaseConfig
|
||||
* The number of SECONDS you want the session to last.
|
||||
* Setting to 0 (zero) means expire when the browser is closed.
|
||||
*/
|
||||
public int $expiration = 7200;
|
||||
public int $expiration = 0;
|
||||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
|
||||
@ -26,9 +26,10 @@ abstract class AdminHierarchyController extends AdminController
|
||||
$this->_viewDatas['fieldRules'] = $this->_model->getFieldRules($this->_viewDatas['fields'], 'reply');
|
||||
$this->_viewDatas['fieldFilters'] = $this->_model->getFieldFilters();
|
||||
$this->_viewDatas['entity'] = $this->reply_form_process($entity);
|
||||
return view($this->_viewPath . '/reply', $this->_viewDatas);
|
||||
$this->_session->keepFlashdata(SESSION_NAMES['RETURN_URL']);
|
||||
return view($this->_viewPath . '/update', $this->_viewDatas);
|
||||
} catch (\Exception $e) {
|
||||
return alert_CommonHelper($e->getMessage(), 'back');
|
||||
return redirect()->to($this->_session->getFlashdata(SESSION_NAMES['RETURN_URL']))->with('return_message', $e->getMessage());
|
||||
}
|
||||
}
|
||||
protected function reply_validate($entity)
|
||||
@ -41,7 +42,7 @@ abstract class AdminHierarchyController extends AdminController
|
||||
}
|
||||
public function reply($uid)
|
||||
{
|
||||
$message = "";
|
||||
$msg = "";
|
||||
try {
|
||||
$entity = $entity = $this->_model->getEntity([$this->_model->getPrimaryKey() => $uid]);
|
||||
$this->_viewDatas['fields'] = $this->_model->getFields('reply');
|
||||
@ -49,15 +50,15 @@ abstract class AdminHierarchyController extends AdminController
|
||||
$this->_viewDatas['fieldFilters'] = $this->_model->getFieldFilters();
|
||||
$entity = $this->reply_validate($entity);
|
||||
$entity = $this->reply_process($entity);
|
||||
$message = "{$entity->getTitle()} " . __FUNCTION__ . " 완료하였습니다.";
|
||||
log_message("info", "{$this->_viewDatas['title']} {$message}");
|
||||
return alert_CommonHelper($message, $this->_session->get(SESSION_NAMES['RETURN_URL']));
|
||||
$msg = "{$this->_viewDatas['title']}에서 " . __FUNCTION__ . " 완료하였습니다.";
|
||||
return redirect()->to($this->_session->getFlashdata(SESSION_NAMES['RETURN_URL']));
|
||||
} catch (\Exception $e) {
|
||||
$message = __FUNCTION__ . " 실패하였습니다.";
|
||||
log_message("warning", $e->getMessage());
|
||||
log_message("warning", var_export($this->_viewDatas['fieldDatas'], true));
|
||||
log_message("info", "{$this->_viewDatas['title']} {$message}",);
|
||||
return redirect()->back()->withInput()->with("error", $message . "<br>\n{$e->getMessage()}");
|
||||
$msg = "{$this->_viewDatas['title']}에서 " . __FUNCTION__ . " 실패하였습니다.\n" . $e->getMessage();
|
||||
log_message("error", $e->getMessage());
|
||||
log_message("error", var_export($this->_viewDatas['fieldDatas'], true));
|
||||
return redirect()->back()->withInput();
|
||||
} finally {
|
||||
$this->_session->setFlashdata("return_message", $msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -54,15 +54,13 @@ class HPILOController extends \App\Controllers\Admin\AdminController
|
||||
$this->_viewDatas['entity'] = $entity;
|
||||
return view($this->_viewPath . '/console_iframe', $this->_viewDatas);
|
||||
} catch (\Exception $e) {
|
||||
$message = "{$entity->getTitle()} " . __FUNCTION__ . " 실패하였습니다.";
|
||||
log_message("warning", $message . "<br>\n{$e->getMessage()}");
|
||||
log_message("info", "{$this->_viewDatas['title']} {$message}");
|
||||
return alert_CommonHelper($message, 'back');
|
||||
return redirect()->to($this->_session->getFlashdata(SESSION_NAMES['RETURN_URL']))->with('return_message', $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
final public function reset($uid, string $type)
|
||||
{
|
||||
$msg = "";
|
||||
try {
|
||||
$entity = $this->_model->getEntity([$this->_model->getPrimaryKey() => $uid]);
|
||||
if (!in_array($type, ["On", "Off", "Restart"])) {
|
||||
@ -70,20 +68,20 @@ class HPILOController extends \App\Controllers\Admin\AdminController
|
||||
}
|
||||
$ilo = new HPILO4($this->getAdapter($entity));
|
||||
$results = $ilo->reset($type);
|
||||
log_message("warning", var_export($results, true));
|
||||
$message = "{$entity->getTitle()} " . __FUNCTION__ . " 완료하였습니다.";
|
||||
log_message("info", "{$this->_viewDatas['title']} {$message}");
|
||||
return alert_CommonHelper($message, $this->_session->get(SESSION_NAMES['RETURN_URL']));
|
||||
$msg = "{$this->_viewDatas['title']}에서 " . __FUNCTION__ . " 완료하였습니다.";
|
||||
} catch (\Exception $e) {
|
||||
$message = "{$entity->getTitle()} " . __FUNCTION__ . " 실패하였습니다.";
|
||||
log_message("warning", $message . "<br>\n{$e->getMessage()}");
|
||||
log_message("info", "{$this->_viewDatas['title']} {$message}");
|
||||
return alert_CommonHelper($message, 'back');
|
||||
$msg = "{$this->_viewDatas['title']}에서 " . __FUNCTION__ . " 실패하였습니다.\n" . $e->getMessage();
|
||||
log_message("error", $e->getMessage());
|
||||
log_message("error", var_export($this->_viewDatas['fieldDatas'], true));
|
||||
} finally {
|
||||
$this->_session->setFlashdata("return_message", $msg);
|
||||
return redirect()->to($this->_session->getFlashdata(SESSION_NAMES['RETURN_URL']));
|
||||
}
|
||||
}
|
||||
|
||||
final public function reload($uid)
|
||||
{
|
||||
$msg = "";
|
||||
try {
|
||||
$entity = $this->_model->getEntity([$this->_model->getPrimaryKey() => $uid]);
|
||||
$ilo = new HPILO4($this->getAdapter($entity));
|
||||
@ -95,14 +93,14 @@ class HPILOController extends \App\Controllers\Admin\AdminController
|
||||
throw new \Exception(__FUNCTION__ . " 오류 발생.\n" . var_export($this->_model->errors()));
|
||||
}
|
||||
}
|
||||
$message = "{$entity->getTitle()} " . __FUNCTION__ . " 완료하였습니다.";
|
||||
log_message("info", "{$this->_viewDatas['title']} {$message}");
|
||||
return alert_CommonHelper($message, $this->_session->get(SESSION_NAMES['RETURN_URL']));
|
||||
$msg = "{$this->_viewDatas['title']}에서 " . __FUNCTION__ . " 완료하였습니다.";
|
||||
} catch (\Exception $e) {
|
||||
$message = __FUNCTION__ . " 실패하였습니다.\n" . $e->getMessage();
|
||||
log_message("warning", $message . "<br>\n{$e->getMessage()}");
|
||||
log_message("info", "{$this->_viewDatas['title']} {$message}");
|
||||
return alert_CommonHelper($message, 'back');
|
||||
$msg = "{$this->_viewDatas['title']}에서 " . __FUNCTION__ . " 실패하였습니다.\n" . $e->getMessage();
|
||||
log_message("error", $e->getMessage());
|
||||
log_message("error", var_export($this->_viewDatas['fieldDatas'], true));
|
||||
} finally {
|
||||
$this->_session->setFlashdata("return_message", $msg);
|
||||
return redirect()->to($this->_session->getFlashdata(SESSION_NAMES['RETURN_URL']));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -44,14 +44,11 @@ class AuthController extends BaseController
|
||||
'attributes' => ['method' => "post",],
|
||||
'hiddens' => [],
|
||||
];
|
||||
//RETURN_URL 존재하면 추가
|
||||
if ($this->_session->get(SESSION_NAMES['RETURN_URL'])) {
|
||||
$this->_viewDatas['forms']['hiddens'][SESSION_NAMES['RETURN_URL']] = $this->_session->get(SESSION_NAMES['RETURN_URL']);
|
||||
}
|
||||
$this->_viewDatas['login_buttons'] = array();
|
||||
foreach ($this->_adapters as $key => $adapter) {
|
||||
$this->_viewDatas['login_buttons'][$key] = $adapter->getAuthButton();
|
||||
}
|
||||
$this->_session->keepFlashdata(SESSION_NAMES['RETURN_URL']);
|
||||
return view('auth/login', $this->_viewDatas);
|
||||
}
|
||||
|
||||
@ -60,10 +57,9 @@ class AuthController extends BaseController
|
||||
try {
|
||||
//각 Adapter별 인층체크 후 Session에 인증정보 설정
|
||||
$this->getAdapter($site)->signup($this->request->getVar());
|
||||
$return_url = $this->_session->get(SESSION_NAMES['RETURN_URL']) ?: "/";
|
||||
return redirect()->to($this->request->getVar(SESSION_NAMES['RETURN_URL']) ?: $return_url);
|
||||
return redirect()->to($this->_session->getFlashdata(SESSION_NAMES['RETURN_URL']) ?: "/");
|
||||
} catch (\Exception $e) {
|
||||
$this->_session->setFlashdata('error', $e->getMessage());
|
||||
$this->_session->setFlashdata('return_message', $e->getMessage());
|
||||
return redirect()->back()->withInput();
|
||||
}
|
||||
}
|
||||
|
||||
@ -144,10 +144,7 @@ abstract class BaseController extends Controller
|
||||
foreach ($upfiles[$field] as $upfile) {
|
||||
if ($upfile->isValid() && !$upfile->hasMoved()) {
|
||||
$fileName = $this->upload_file_process($upfile);
|
||||
array_push(
|
||||
$this->_viewDatas['fieldDatas'][$field],
|
||||
$fileName
|
||||
);
|
||||
array_push($this->_viewDatas['fieldDatas'][$field], $fileName);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -164,9 +161,10 @@ abstract class BaseController extends Controller
|
||||
$this->_viewDatas['fieldFormOptions'] = $this->getFieldFormOptions($this->_viewDatas['fieldFilters']);
|
||||
$this->_viewDatas['forms'] = ['attributes' => ['method' => "post",], 'hiddens' => []];
|
||||
helper(['form']);
|
||||
$this->_session->keepFlashdata(SESSION_NAMES['RETURN_URL']);
|
||||
return view($this->_viewPath . '/insert', $this->_viewDatas);
|
||||
} catch (\Exception $e) {
|
||||
return alert_CommonHelper($e->getMessage(), 'back');
|
||||
return redirect()->to($this->_session->getFlashdata(SESSION_NAMES['RETURN_URL']))->with('return_message', $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@ -180,7 +178,6 @@ abstract class BaseController extends Controller
|
||||
//변경된 값 적용
|
||||
foreach ($this->_viewDatas['fields'] as $field) {
|
||||
$this->_viewDatas['fieldDatas'] = $this->getFieldFormData($field);
|
||||
log_message("info", "{$field} : " . var_export($this->_viewDatas['fieldDatas'][$field], true));
|
||||
}
|
||||
// echo var_export($this->_viewDatas['fields'], true);
|
||||
// echo "<HR>";
|
||||
@ -195,24 +192,22 @@ abstract class BaseController extends Controller
|
||||
}
|
||||
public function insert()
|
||||
{
|
||||
$message = "";
|
||||
$msg = "";
|
||||
try {
|
||||
$this->_viewDatas['fields'] = $this->_model->getFields('insert');
|
||||
$this->_viewDatas['fieldRules'] = $this->_model->getFieldRules($this->_viewDatas['fields'], 'insert');
|
||||
$this->_viewDatas['fieldFilters'] = $this->_model->getFieldFilters();
|
||||
$this->insert_validate();
|
||||
$this->insert_process();
|
||||
$message = __FUNCTION__ . " 완료하였습니다.";
|
||||
log_message("info", "{$this->_viewDatas['title']} {$message}");
|
||||
//session->setTempdata의 기능은 3초간 success에 message를 보관후 사라짐
|
||||
//$this->_session->setTempdata('success', 'Page updated successfully', 3);
|
||||
return alert_CommonHelper($message, $this->_session->get(SESSION_NAMES['RETURN_URL']));
|
||||
$msg = "{$this->_viewDatas['title']}에서 " . __FUNCTION__ . " 완료하였습니다.";
|
||||
return redirect()->to($this->_session->getFlashdata(SESSION_NAMES['RETURN_URL']));
|
||||
} catch (\Exception $e) {
|
||||
$message = "{$this->_viewDatas['title']}에서 " . __FUNCTION__ . " 실패하였습니다.";
|
||||
log_message("warning", $e->getMessage());
|
||||
log_message("warning", var_export($this->_viewDatas['fieldDatas'], true));
|
||||
log_message("info", "{$this->_viewDatas['title']} {$message}");
|
||||
return redirect()->back()->withInput()->with("error", $message . "<br>\n{$e->getMessage()}");
|
||||
$msg = "{$this->_viewDatas['title']}에서 " . __FUNCTION__ . " 실패하였습니다.\n" . $e->getMessage();
|
||||
log_message("error", $e->getMessage());
|
||||
log_message("error", var_export($this->_viewDatas['fieldDatas'], true));
|
||||
return redirect()->back()->withInput();
|
||||
} finally {
|
||||
$this->_session->setFlashdata("return_message", $msg);
|
||||
}
|
||||
}
|
||||
|
||||
@ -232,9 +227,10 @@ abstract class BaseController extends Controller
|
||||
$this->_viewDatas['fieldRules'] = $this->_model->getFieldRules($this->_viewDatas['fields'], 'update');
|
||||
$this->_viewDatas['fieldFilters'] = $this->_model->getFieldFilters();
|
||||
$this->_viewDatas['entity'] = $this->update_form_process($entity);
|
||||
$this->_session->keepFlashdata(SESSION_NAMES['RETURN_URL']);
|
||||
return view($this->_viewPath . '/update', $this->_viewDatas);
|
||||
} catch (\Exception $e) {
|
||||
return alert_CommonHelper($e->getMessage(), 'back');
|
||||
return redirect()->to($this->_session->getFlashdata(SESSION_NAMES['RETURN_URL']))->with('return_message', $e->getMessage());
|
||||
}
|
||||
}
|
||||
protected function update_validate($entity)
|
||||
@ -260,7 +256,7 @@ abstract class BaseController extends Controller
|
||||
}
|
||||
public function update($uid)
|
||||
{
|
||||
$message = "";
|
||||
$msg = "";
|
||||
try {
|
||||
$entity = $this->_model->getEntity([$this->_model->getPrimaryKey() => $uid]);
|
||||
$this->_viewDatas['fields'] = $this->_model->getFields('update');
|
||||
@ -268,15 +264,15 @@ abstract class BaseController extends Controller
|
||||
$this->_viewDatas['fieldFilters'] = $this->_model->getFieldFilters();
|
||||
$entity = $this->update_validate($entity);
|
||||
$entity = $this->update_process($entity);
|
||||
$message = "{$entity->getTitle()} " . __FUNCTION__ . " 완료하였습니다.";
|
||||
log_message("info", "{$this->_viewDatas['title']} {$message}");
|
||||
return alert_CommonHelper($message, $this->_session->get(SESSION_NAMES['RETURN_URL']));
|
||||
$msg = "{$this->_viewDatas['title']}에서 " . __FUNCTION__ . " 완료하였습니다.";
|
||||
return redirect()->to($this->_session->getFlashdata(SESSION_NAMES['RETURN_URL']));
|
||||
} catch (\Exception $e) {
|
||||
$message = "{$this->_viewDatas['title']}에서 " . __FUNCTION__ . " 실패하였습니다.";
|
||||
log_message("warning", $e->getMessage());
|
||||
log_message("warning", var_export($this->_viewDatas['fieldDatas'], true));
|
||||
log_message("info", "{$this->_viewDatas['title']} {$message}");
|
||||
return redirect()->back()->withInput()->with("error", $message . "<br>\n{$e->getMessage()}");
|
||||
$msg = "{$this->_viewDatas['title']}에서 " . __FUNCTION__ . " 실패하였습니다.\n" . $e->getMessage();
|
||||
log_message("error", $e->getMessage());
|
||||
log_message("error", var_export($this->_viewDatas['fieldDatas'], true));
|
||||
return redirect()->back()->withInput();
|
||||
} finally {
|
||||
$this->_session->setFlashdata("return_message", $msg);
|
||||
}
|
||||
}
|
||||
|
||||
@ -292,7 +288,7 @@ abstract class BaseController extends Controller
|
||||
}
|
||||
public function toggle($uid, string $field)
|
||||
{
|
||||
$message = "";
|
||||
$msg = "";
|
||||
try {
|
||||
$entity = $this->_model->getEntity([$this->_model->getPrimaryKey() => $uid]);
|
||||
$this->_viewDatas['fields'] = [$field];
|
||||
@ -300,15 +296,14 @@ abstract class BaseController extends Controller
|
||||
$this->_viewDatas['fieldFilters'] = $this->_model->getFieldFilters();
|
||||
$entity = $this->toggle_validate($entity);
|
||||
$entity = $this->toggle_process($entity);
|
||||
$message = "{$entity->getTitle()} " . __FUNCTION__ . " 완료하였습니다.";
|
||||
log_message("info", "{$this->_viewDatas['title']} {$message}");
|
||||
return alert_CommonHelper($message, $this->_session->get(SESSION_NAMES['RETURN_URL']));
|
||||
$msg = "{$this->_viewDatas['title']}에서 " . __FUNCTION__ . " 완료하였습니다.";
|
||||
} catch (\Exception $e) {
|
||||
$message = "{$this->_viewDatas['title']}에서 " . __FUNCTION__ . " 실패하였습니다.";
|
||||
log_message("warning", $e->getMessage());
|
||||
log_message("warning", var_export($this->_viewDatas['fieldDatas'], true));
|
||||
log_message("info", "{$this->_viewDatas['title']} {$message}");
|
||||
return alert_CommonHelper($message . "<br>\n{$e->getMessage()}", 'back');
|
||||
$msg = "{$this->_viewDatas['title']}에서 " . __FUNCTION__ . " 실패하였습니다.\n" . $e->getMessage();
|
||||
log_message("error", $e->getMessage());
|
||||
log_message("error", var_export($this->_viewDatas['fieldDatas'], true));
|
||||
} finally {
|
||||
$this->_session->setFlashdata("return_message", $msg);
|
||||
return redirect()->to($this->_session->getFlashdata(SESSION_NAMES['RETURN_URL']));
|
||||
}
|
||||
}
|
||||
//Batchjob 관련
|
||||
@ -322,13 +317,10 @@ abstract class BaseController extends Controller
|
||||
}
|
||||
public function batchjob()
|
||||
{
|
||||
$messages = array();
|
||||
$this->_model->transStart();
|
||||
$msg = "";
|
||||
$batchjobs = array();
|
||||
try {
|
||||
$uids = $this->request->getVar('batchjob_uids');
|
||||
if (is_null($uids) || !is_array($uids) || !count($uids)) {
|
||||
throw new \Exception($this->_viewDatas['title'] . '에서 변경할 항목(uid)이 선택되지 않았습니다.', 'back');
|
||||
}
|
||||
$uids = $this->request->getVar('batchjob_uids') ?: throw new \Exception($this->_viewDatas['title'] . '에서 변경할 항목(uid)이 선택되지 않았습니다.');
|
||||
//fields 해당하는 field중 선택된 값이 있는경우만 fields로 정의
|
||||
$fields = array();
|
||||
foreach ($this->_model->getFieldBatchFilters() as $field) {
|
||||
@ -339,31 +331,44 @@ abstract class BaseController extends Controller
|
||||
if (!is_array($fields) || count($fields) === 0) {
|
||||
throw new \Exception($this->_viewDatas['title'] . '에서 변경할 항목(field)이 선택되지 않았습니다.');
|
||||
}
|
||||
//Transaction manully 시작
|
||||
$this->_model->transBegin();
|
||||
//Fields,FielRules재정의
|
||||
$this->_viewDatas['fields'] = $fields;
|
||||
$this->_viewDatas['fieldRules'] = $this->_model->getFieldRules($this->_viewDatas['fields'], 'batchjob');
|
||||
$this->_viewDatas['fieldFilters'] = $this->_model->getFieldFilters();
|
||||
$cnt = 1;
|
||||
$entitys = array();
|
||||
foreach ($uids as $uid) {
|
||||
$entity = $this->_model->getEntity([$this->_model->getPrimaryKey() => $uid]);
|
||||
try {
|
||||
$entity = $this->_model->getEntity([$this->_model->getPrimaryKey() => $uid]);
|
||||
$entity = $this->batchjob_validate($entity);
|
||||
array_push($entitys, $this->batchjob_process($entity));
|
||||
array_push($messages, "{$entity->getTitle()}는 수정이 완료되었습니다.");
|
||||
array_push($batchjobs, "{$cnt}. {$entity->getTitle()}는 완료.");
|
||||
} catch (\Exception $e) {
|
||||
array_push($messages, "{$entity->getTitle()}는 다음과 같은 이유로 수정되지 않았습니다.\\n<br>" . $e->getMessage());
|
||||
throw new \Exception($e->getMessage());
|
||||
array_push($batchjobs, "{$cnt}. {$entity->getTitle()}는 실패\n" . $e->getMessage());
|
||||
}
|
||||
$cnt++;
|
||||
}
|
||||
$this->_model->transComplete();
|
||||
log_message("info", "{$this->_viewDatas['title']}에서 " . implode("\n" . $messages));
|
||||
return alert_CommonHelper(implode("\\n" . $messages), $this->_session->get(SESSION_NAMES['RETURN_URL']));
|
||||
//Transaction manully Commit
|
||||
$this->_model->transCommit();
|
||||
$msg = sprintf(
|
||||
"%s에서 총:%s중 %s개성공 , %s실패 %s 완료하였습니다.",
|
||||
$this->_viewDatas['title'],
|
||||
count($batchjobs),
|
||||
count($entitys),
|
||||
count($batchjobs) - count($entitys),
|
||||
__FUNCTION__
|
||||
);
|
||||
} catch (\Exception $e) {
|
||||
//Transaction manully Rollback
|
||||
$this->_model->transRollback();
|
||||
log_message("warning", $e->getMessage());
|
||||
log_message("info", implode("\n" . $messages));
|
||||
log_message("warning", var_export($this->_viewDatas['fieldDatas'], true));
|
||||
return alert_CommonHelper($e->getMessage() . "\\n" . implode("\\n" . $messages), 'back');
|
||||
$msg = "{$this->_viewDatas['title']}에서 " . __FUNCTION__ . " 실패하였습니다.\n" . $e->getMessage();
|
||||
log_message("error", $e->getMessage());
|
||||
log_message("error", var_export($this->_viewDatas['fieldDatas'], true));
|
||||
} finally {
|
||||
$this->_session->setFlashdata("return_message", $msg);
|
||||
return redirect()->to($this->_session->getFlashdata(SESSION_NAMES['RETURN_URL']));
|
||||
}
|
||||
}
|
||||
|
||||
@ -379,18 +384,18 @@ abstract class BaseController extends Controller
|
||||
}
|
||||
public function delete($uid)
|
||||
{
|
||||
$message = "";
|
||||
$msg = "";
|
||||
try {
|
||||
$entity = $this->_model->getEntity([$this->_model->getPrimaryKey() => $uid]);
|
||||
$this->delete_process($entity);
|
||||
$message = "{$entity->getTitle()} " . __FUNCTION__ . " 완료하였습니다.";
|
||||
log_message("info", "{$this->_viewDatas['title']} {$message}");
|
||||
return alert_CommonHelper($message, $this->_session->get(SESSION_NAMES['RETURN_URL']));
|
||||
$msg = "{$this->_viewDatas['title']}에서 " . __FUNCTION__ . " 완료하였습니다.";
|
||||
} catch (\Exception $e) {
|
||||
$message = "{$this->_viewDatas['title']}에서 " . __FUNCTION__ . " 실패하였습니다.";
|
||||
log_message("warning", $e->getMessage());
|
||||
log_message("info", "{$this->_viewDatas['title']} {$message}");
|
||||
return alert_CommonHelper($message . "<br>\n{$e->getMessage()}", 'back');
|
||||
$msg = "{$this->_viewDatas['title']}에서 " . __FUNCTION__ . " 실패하였습니다.\n" . $e->getMessage();
|
||||
log_message("error", $e->getMessage());
|
||||
log_message("error", var_export($this->_viewDatas['fieldDatas'], true));
|
||||
} finally {
|
||||
$this->_session->setFlashdata("return_message", $msg);
|
||||
return redirect()->to($this->_session->getFlashdata(SESSION_NAMES['RETURN_URL']));
|
||||
}
|
||||
}
|
||||
|
||||
@ -412,7 +417,7 @@ abstract class BaseController extends Controller
|
||||
$this->_viewDatas['entity'] = $this->view_process($entity);
|
||||
return view($this->_viewPath . '/view', $this->_viewDatas);
|
||||
} catch (\Exception $e) {
|
||||
return alert_CommonHelper($e->getMessage(), 'back');
|
||||
return redirect()->to($this->_session->getFlashdata(SESSION_NAMES['RETURN_URL']))->with('return_message', $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@ -491,7 +496,6 @@ abstract class BaseController extends Controller
|
||||
helper(['form']);
|
||||
$this->_viewDatas['fieldFormOptions'] = $this->getFieldFormOptions($this->_viewDatas['fieldFilters']);
|
||||
$this->_viewDatas['forms'] = ['attributes' => ['method' => "post",], 'hiddens' => []];
|
||||
$this->_session->set(SESSION_NAMES['RETURN_URL'], current_url() . '?' . $this->request->getUri()->getQuery());
|
||||
foreach ($this->_viewDatas['fieldFilters'] as $field) {
|
||||
$this->_viewDatas[$field] = $this->request->getVar($field) ?: DEFAULTS['EMPTY'];
|
||||
}
|
||||
@ -504,9 +508,11 @@ abstract class BaseController extends Controller
|
||||
$this->_viewDatas['per_page'] = $this->request->getVar('per_page') ?: DEFAULTS['PERPAGE'];
|
||||
$this->_viewDatas['uri'] = $this->request->getUri();
|
||||
$this->index_process();
|
||||
//setting return_url to session flashdata
|
||||
$this->_session->setFlashdata(SESSION_NAMES['RETURN_URL'], current_url() . '?' . $this->request->getUri()->getQuery() ?: "");
|
||||
return view($this->_viewPath . '/index', $this->_viewDatas);
|
||||
} catch (\Exception $e) {
|
||||
return alert_CommonHelper($e->getMessage(), 'back');
|
||||
return redirect()->back()->with('return_message', $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@ -561,7 +567,7 @@ abstract class BaseController extends Controller
|
||||
$this->_viewDatas['fieldFormOptions'] = $this->getFieldFormOptions($this->_viewDatas['fieldFilters']);
|
||||
return $this->excel_process();
|
||||
} catch (\Exception $e) {
|
||||
return alert_CommonHelper($e->getMessage(), 'back');
|
||||
return redirect()->to($this->_session->getFlashdata(SESSION_NAMES['RETURN_URL']))->with('return_message', $e->getMessage());
|
||||
}
|
||||
}
|
||||
//File Download관련
|
||||
@ -578,7 +584,7 @@ abstract class BaseController extends Controller
|
||||
}
|
||||
return $this->response->download(WRITEPATH . PATHS['UPLOAD'] . "/" . $filename, null)->setFileName(date("YmdHms") . '_' . $origin_filename);
|
||||
} catch (\Exception $e) {
|
||||
return alert_CommonHelper($e->getMessage(), 'back');
|
||||
return redirect()->to($this->_session->getFlashdata(SESSION_NAMES['RETURN_URL']))->with('return_message', $e->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -32,7 +32,7 @@ class AuthFilter implements FilterInterface
|
||||
// 회원 ROLE이 필요ROLE 목록에 존재하지 않으면(ACL)
|
||||
if (!in_array($auth[AUTH_FIELDS['ROLE']], $arguments)) {
|
||||
return redirect()->to('/login')->with(
|
||||
'error',
|
||||
'return_message',
|
||||
sprintf(
|
||||
"%s,%s회원님은 접속에 필요한 권한[%s]이 없습니다. ",
|
||||
$auth[AUTH_FIELDS['ROLE']],
|
||||
@ -42,8 +42,8 @@ class AuthFilter implements FilterInterface
|
||||
);
|
||||
}
|
||||
} else {
|
||||
session()->set(SESSION_NAMES['RETURN_URL'], $request->getUri()->getPath() . '?' . $request->getUri()->getQuery());
|
||||
return redirect()->to('/login')->with('error', session()->getFlashdata('error') ?: '먼저 로그인을하셔야합니다.');
|
||||
session()->setFlashdata(SESSION_NAMES['RETURN_URL'], $request->getUri()->getPath() . '?' . $request->getUri()->getQuery());
|
||||
return redirect()->to('/login')->with('return_message', '로그인을하셔야합니다.');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -66,9 +66,16 @@ function getFieldView_BoardConfigHelper($field, $entity, array $fieldFilters, ar
|
||||
{
|
||||
$value = $entity->$field ?: DEFAULTS['EMPTY'];
|
||||
switch ($field) {
|
||||
case 'name':
|
||||
return anchor(current_url() . '/view/' . $entity->getPrimaryKey(), $value, [...$attributes, "target" => "_self"]);
|
||||
break;
|
||||
case 'upload_file':
|
||||
return $value == DEFAULTS['EMPTY'] ? DEFAULTS['EMPTY'] : anchor(current_url() . '/download/' . $entity->getPrimaryKey(), ICONS['IMAGE_FILE'] . explode(DEFAULTS['FILE_DLIMITER'], $value)[0], [...$attributes, "target" => "_self"]);
|
||||
break;
|
||||
case 'updated_at':
|
||||
case 'created_at':
|
||||
return isset($value) ? str_split($value, 10)[0] : "";
|
||||
break;
|
||||
case 'head':
|
||||
case 'tail':
|
||||
return html_entity_decode($value);
|
||||
@ -99,24 +106,13 @@ function getFieldIndex_Column_BoardConfigHelper($field, $order_field, $order_val
|
||||
|
||||
function getFieldIndex_Row_BoardConfigHelper($field, $entity, array $fieldFilters, $fieldFormOptions, $attributes = array()): string
|
||||
{
|
||||
$value = $entity->$field ?: DEFAULTS['EMPTY'];
|
||||
switch ($field) {
|
||||
case 'name':
|
||||
return anchor(current_url() . '/view/' . $entity->getPrimaryKey(), $value, [...$attributes, "target" => "_self"]);
|
||||
break;
|
||||
case 'upload_file':
|
||||
return $value == DEFAULTS['EMPTY'] ? DEFAULTS['EMPTY'] : anchor(current_url() . '/download/' . $entity->getPrimaryKey(), ICONS['IMAGE_FILE'] . explode(DEFAULTS['FILE_DLIMITER'], $value)[0], [...$attributes, "target" => "_self"]);
|
||||
break;
|
||||
case 'updated_at':
|
||||
case 'created_at':
|
||||
return isset($value) ? str_split($value, 10)[0] : "";
|
||||
break;
|
||||
default:
|
||||
if (in_array($field, $fieldFilters)) {
|
||||
$attributes["onChange"] = sprintf('location.href="%s/toggle/%s/%s?%s="+this.options[this.selectedIndex].value', current_url(), $entity->getPrimaryKey(), $field, $field);
|
||||
return getFieldFilter_BoardConfigHelper($field, $value, $fieldFormOptions, [...$attributes]);
|
||||
return getFieldFilter_BoardConfigHelper($field, $entity->$field, $fieldFormOptions, $attributes);
|
||||
}
|
||||
return $value;
|
||||
return getFieldView_BoardConfigHelper($field, $entity, $fieldFormOptions, $attributes);
|
||||
break;
|
||||
}
|
||||
} //
|
||||
@ -51,6 +51,9 @@ function getFieldForm_BoardHelper($field, $value, array $fieldFormOptions, array
|
||||
case 'title':
|
||||
return form_input($field, $value, [...$attributes, "placeholder" => "예)", "style" => "width:60%; ::placeholder{ color:silver; opacity: 1; }"]);
|
||||
break;
|
||||
case 'view_cnt':
|
||||
return form_input($field, $value, [...$attributes, 'type' => 'number']);
|
||||
break;
|
||||
default:
|
||||
return form_input($field, $value, [...$attributes]);
|
||||
break;
|
||||
@ -61,13 +64,39 @@ function getFieldView_BoardHelper($field, $entity, array $fieldFilters, array $f
|
||||
{
|
||||
$value = $entity->$field ?: DEFAULTS['EMPTY'];
|
||||
switch ($field) {
|
||||
case 'title':
|
||||
return sprintf(
|
||||
"<div style=\"text-align:left;\">%s %s</div>",
|
||||
anchor(
|
||||
current_url() . '/reply/' . $entity->getPrimaryKey(),
|
||||
ICONS['REPLY'],
|
||||
[
|
||||
...$attributes,
|
||||
"style" => sprintf("padding-left:%spx", $entity->getHierarchy_Depth() * DEFAULTS['HIERARCHY_GRPDEPTH']),
|
||||
"target" => "_self"
|
||||
]
|
||||
),
|
||||
anchor(
|
||||
current_url() . '/view/' . $entity->getPrimaryKey(),
|
||||
$value,
|
||||
["target" => "_self"]
|
||||
)
|
||||
);
|
||||
break;
|
||||
case 'board_file':
|
||||
case 'upload_file':
|
||||
return $value == DEFAULTS['EMPTY'] ? DEFAULTS['EMPTY'] : anchor(current_url() . "/download/{$field}/{$entity->getPrimaryKey()}", ICONS['IMAGE_FILE'] . explode(DEFAULTS['FILE_DLIMITER'], $value)[0], [...$attributes, "target" => "_self"]);
|
||||
break;
|
||||
case 'view_cnt':
|
||||
return number_format(!$value ? 0 : $value);
|
||||
break;
|
||||
case 'content':
|
||||
return html_entity_decode($value);
|
||||
break;
|
||||
case 'updated_at':
|
||||
case 'created_at':
|
||||
return $value ? str_split($value, 10)[0] : "";
|
||||
break;
|
||||
default:
|
||||
return in_array($field, $fieldFilters) ? $fieldFormOptions[$field][$value] : $value;
|
||||
break;
|
||||
@ -94,42 +123,13 @@ function getFieldIndex_Column_BoardHelper($field, $order_field, $order_value, ar
|
||||
|
||||
function getFieldIndex_Row_BoardHelper($field, $entity, array $fieldFilters, $fieldFormOptions, $attributes = array()): string
|
||||
{
|
||||
$value = $entity->$field ?: DEFAULTS['EMPTY'];
|
||||
switch ($field) {
|
||||
case 'title':
|
||||
return sprintf(
|
||||
"<div style=\"text-align:left;\">%s%s</div>",
|
||||
anchor(
|
||||
current_url() . '/view/' . $entity->getPrimaryKey(),
|
||||
$value,
|
||||
[
|
||||
...$attributes,
|
||||
"style" => sprintf("padding-left:%spx", $entity->getHierarchy_Depth() * DEFAULTS['HIERARCHY_GRPDEPTH']),
|
||||
"target" => "_self"
|
||||
]
|
||||
),
|
||||
anchor(
|
||||
current_url() . '/reply/' . $entity->getPrimaryKey(),
|
||||
ICONS['REPLY'],
|
||||
["target" => "_self"]
|
||||
)
|
||||
);
|
||||
break;
|
||||
case 'board_file':
|
||||
case 'upload_file':
|
||||
return $value == DEFAULTS['EMPTY'] ? DEFAULTS['EMPTY'] : anchor(current_url() . "/download/{$field}/{$entity->getPrimaryKey()}", ICONS['IMAGE_FILE'] . explode(DEFAULTS['FILE_DLIMITER'], $value)[0], [...$attributes, "target" => "_self"]);
|
||||
break;
|
||||
case 'updated_at':
|
||||
case 'created_at':
|
||||
return isset($value) ? str_split($value, 10)[0] : "";
|
||||
break;
|
||||
|
||||
default:
|
||||
if (in_array($field, $fieldFilters)) {
|
||||
$attributes["onChange"] = sprintf('location.href="%s/toggle/%s/%s?%s="+this.options[this.selectedIndex].value', current_url(), $entity->getPrimaryKey(), $field, $field);
|
||||
return getFieldFilter_BoardHelper($field, $value, $fieldFormOptions, [...$attributes]);
|
||||
return getFieldFilter_BoardHelper($field, $entity->$field, $fieldFormOptions, $attributes);
|
||||
}
|
||||
return $value;
|
||||
return getFieldView_BoardHelper($field, $entity, $fieldFormOptions, $attributes);
|
||||
break;
|
||||
}
|
||||
} //
|
||||
@ -121,16 +121,13 @@ function isMobile_CommonHelper()
|
||||
return false;
|
||||
} //
|
||||
|
||||
function alert_CommonHelper($msg, $url = false)
|
||||
function alert_CommonHelper(string $msg, $url = null)
|
||||
{
|
||||
if (!$msg) {
|
||||
$msg = '오류가 발생하였습니다';
|
||||
}
|
||||
$msg = preg_replace("/\r/", "\\r", $msg);
|
||||
$msg = preg_replace("/\n/", "\\n", $msg);
|
||||
$msg = preg_replace("/\'/", "\'", $msg);
|
||||
$msg = preg_replace("/\"/", "\'", $msg);
|
||||
$msg = sprintf('alert("%s");', $msg);
|
||||
$msg = "alert(\"{$msg}\");";
|
||||
switch ($url) {
|
||||
case 'close':
|
||||
$msg .= "window.close();";
|
||||
@ -139,8 +136,8 @@ function alert_CommonHelper($msg, $url = false)
|
||||
$msg .= "history.back();";
|
||||
break;
|
||||
default:
|
||||
$msg .= !$url ? '' : 'window.location.href="' . $url . '";';
|
||||
$msg .= $url ? "location.href=\"{$url}\";" : "";
|
||||
break;
|
||||
}
|
||||
return '<script type="text/javascript">' . $msg . '</script>';
|
||||
return "<script type=\"text/javascript\">{$msg}</script>";
|
||||
} //
|
||||
|
||||
@ -57,6 +57,9 @@ function getFieldView_HPILOHelper($field, $entity, array $fieldFilters, array $f
|
||||
{
|
||||
$value = $entity->$field ?: DEFAULTS['EMPTY'];
|
||||
switch ($field) {
|
||||
case 'customer':
|
||||
return anchor(current_url() . '/view/' . $entity->getPrimaryKey(), $value, [...$attributes, "target" => "_self"]);
|
||||
break;
|
||||
case 'memory':
|
||||
return $value . "GB";
|
||||
break;
|
||||
@ -95,27 +98,13 @@ function getFieldIndex_Column_HPILOHelper($field, $order_field, $order_value, ar
|
||||
|
||||
function getFieldIndex_Row_HPILOHelper($field, $entity, array $fieldFilters, $fieldFormOptions, $attributes = array()): string
|
||||
{
|
||||
$value = $entity->$field ?: DEFAULTS['EMPTY'];
|
||||
switch ($field) {
|
||||
case 'memory':
|
||||
return $value . "GB";
|
||||
break;
|
||||
case 'customer':
|
||||
return anchor(current_url() . '/view/' . $entity->getPrimaryKey(), $value, [...$attributes, "target" => "_self"]);
|
||||
break;
|
||||
case 'upload_file':
|
||||
return $value == DEFAULTS['EMPTY'] ? DEFAULTS['EMPTY'] : anchor(current_url() . '/download/' . $entity->getPrimaryKey(), ICONS['IMAGE_FILE'] . explode("||", $value)[0], [...$attributes, "target" => "_self"]);
|
||||
break;
|
||||
case 'updated_at':
|
||||
case 'created_at':
|
||||
return isset($value) ? str_split($value, 10)[0] : "";
|
||||
break;
|
||||
default:
|
||||
if (in_array($field, $fieldFilters)) {
|
||||
$attributes["onChange"] = sprintf('location.href="%s/toggle/%s/%s?%s="+this.options[this.selectedIndex].value', current_url(), $entity->getPrimaryKey(), $field, $field);
|
||||
return getFieldFilter_HPILOHelper($field, $value, $fieldFormOptions, [...$attributes]);
|
||||
return getFieldFilter_UserHelper($field, $entity->$field, $fieldFormOptions, $attributes);
|
||||
}
|
||||
return $value;
|
||||
return getFieldView_UserHelper($field, $entity, $fieldFormOptions, $attributes);
|
||||
break;
|
||||
}
|
||||
} //
|
||||
@ -57,12 +57,19 @@ function getFieldView_UserSNSHelper($field, $entity, array $fieldFilters, array
|
||||
{
|
||||
$value = $entity->$field ?: DEFAULTS['EMPTY'];
|
||||
switch ($field) {
|
||||
case 'id':
|
||||
return anchor(current_url() . '/view/' . $entity->getPrimaryKey(), $value, [...$attributes, "target" => "_self"]);
|
||||
break;
|
||||
case 'upload_file':
|
||||
return $value == DEFAULTS['EMPTY'] ? DEFAULTS['EMPTY'] : anchor(current_url() . '/download/' . $entity->getPrimaryKey(), ICONS['IMAGE_FILE'] . explode(DEFAULTS['FILE_DLIMITER'], $value)[0], [...$attributes, "target" => "_self"]);
|
||||
break;
|
||||
case 'content':
|
||||
return html_entity_decode($value);
|
||||
break;
|
||||
case 'updated_at':
|
||||
case 'created_at':
|
||||
return isset($value) ? str_split($value, 10)[0] : "";
|
||||
break;
|
||||
default:
|
||||
return in_array($field, $fieldFilters) ? $fieldFormOptions[$field][$value] : $value;
|
||||
break;
|
||||
@ -89,24 +96,13 @@ function getFieldIndex_Column_UserSNSHelper($field, $order_field, $order_value,
|
||||
|
||||
function getFieldIndex_Row_UserSNSHelper($field, $entity, array $fieldFilters, $fieldFormOptions, $attributes = array()): string
|
||||
{
|
||||
$value = $entity->$field ?: DEFAULTS['EMPTY'];
|
||||
switch ($field) {
|
||||
case 'id':
|
||||
return anchor(current_url() . '/view/' . $entity->getPrimaryKey(), $value, [...$attributes, "target" => "_self"]);
|
||||
break;
|
||||
case 'upload_file':
|
||||
return $value == DEFAULTS['EMPTY'] ? DEFAULTS['EMPTY'] : anchor(current_url() . '/download/' . $entity->getPrimaryKey(), ICONS['IMAGE_FILE'] . explode(DEFAULTS['FILE_DLIMITER'], $value)[0], [...$attributes, "target" => "_self"]);
|
||||
break;
|
||||
case 'updated_at':
|
||||
case 'created_at':
|
||||
return isset($value) ? str_split($value, 10)[0] : "";
|
||||
break;
|
||||
default:
|
||||
if (in_array($field, $fieldFilters)) {
|
||||
$attributes["onChange"] = sprintf('location.href="%s/toggle/%s/%s?%s="+this.options[this.selectedIndex].value', current_url(), $entity->getPrimaryKey(), $field, $field);
|
||||
return getFieldFilter_UserSNSHelper($field, $value, $fieldFormOptions, [...$attributes]);
|
||||
return getFieldFilter_UserSNSHelper($field, $entity->$field, $fieldFormOptions, $attributes);
|
||||
}
|
||||
return $value;
|
||||
return getFieldView_UserSNSHelper($field, $entity, $fieldFormOptions, $attributes);
|
||||
break;
|
||||
}
|
||||
} //
|
||||
@ -60,6 +60,16 @@ function getFieldView_UserHelper($field, $entity, array $fieldFilters, array $fi
|
||||
{
|
||||
$value = $entity->$field ?: DEFAULTS['EMPTY'];
|
||||
switch ($field) {
|
||||
case 'id':
|
||||
return anchor(current_url() . '/view/' . $entity->getPrimaryKey(), $value, [...$attributes, "target" => "_self"]);
|
||||
break;
|
||||
case 'upload_file':
|
||||
return $value == DEFAULTS['EMPTY'] ? DEFAULTS['EMPTY'] : anchor(current_url() . '/download/' . $entity->getPrimaryKey(), ICONS['IMAGE_FILE'] . explode(DEFAULTS['FILE_DLIMITER'], $value)[0], [...$attributes, "target" => "_self"]);
|
||||
break;
|
||||
case 'updated_at':
|
||||
case 'created_at':
|
||||
return $value ? str_split($value, 10)[0] : "";
|
||||
break;
|
||||
case 'upload_file':
|
||||
return $value == DEFAULTS['EMPTY'] ? DEFAULTS['EMPTY'] : anchor(current_url() . '/download/' . $entity->getPrimaryKey(), ICONS['IMAGE_FILE'] . explode(DEFAULTS['FILE_DLIMITER'], $value)[0], [...$attributes, "target" => "_self"]);
|
||||
break;
|
||||
@ -92,24 +102,13 @@ function getFieldIndex_Column_UserHelper($field, $order_field, $order_value, arr
|
||||
|
||||
function getFieldIndex_Row_UserHelper($field, $entity, array $fieldFilters, $fieldFormOptions, $attributes = array()): string
|
||||
{
|
||||
$value = $entity->$field ?: DEFAULTS['EMPTY'];
|
||||
switch ($field) {
|
||||
case 'id':
|
||||
return anchor(current_url() . '/view/' . $entity->getPrimaryKey(), $value, [...$attributes, "target" => "_self"]);
|
||||
break;
|
||||
case 'upload_file':
|
||||
return $value == DEFAULTS['EMPTY'] ? DEFAULTS['EMPTY'] : anchor(current_url() . '/download/' . $entity->getPrimaryKey(), ICONS['IMAGE_FILE'] . explode(DEFAULTS['FILE_DLIMITER'], $value)[0], [...$attributes, "target" => "_self"]);
|
||||
break;
|
||||
case 'updated_at':
|
||||
case 'created_at':
|
||||
return isset($value) ? str_split($value, 10)[0] : "";
|
||||
break;
|
||||
default:
|
||||
if (in_array($field, $fieldFilters)) {
|
||||
$attributes["onChange"] = sprintf('location.href="%s/toggle/%s/%s?%s="+this.options[this.selectedIndex].value', current_url(), $entity->getPrimaryKey(), $field, $field);
|
||||
return getFieldFilter_UserHelper($field, $value, $fieldFormOptions, $attributes);
|
||||
return getFieldFilter_UserHelper($field, $entity->$field, $fieldFormOptions, $attributes);
|
||||
}
|
||||
return $value;
|
||||
return getFieldView_UserHelper($field, $entity, $fieldFormOptions, $attributes);
|
||||
break;
|
||||
}
|
||||
} //
|
||||
@ -1,4 +0,0 @@
|
||||
<?php
|
||||
|
||||
// override core en language system validation or define your own en language validation message
|
||||
return [];
|
||||
@ -40,6 +40,7 @@ abstract class BaseModel extends Model
|
||||
protected $beforeDelete = [];
|
||||
protected $afterDelete = [];
|
||||
|
||||
protected $_session = null;
|
||||
protected function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
@ -48,6 +49,7 @@ abstract class BaseModel extends Model
|
||||
array_push($this->allowedFields, $this->primaryKey);
|
||||
}
|
||||
$this->validationRules = [];
|
||||
$this->_session = \Config\Services::session();
|
||||
}
|
||||
final public function getPrimaryKey(): string
|
||||
{
|
||||
@ -75,7 +77,7 @@ abstract class BaseModel extends Model
|
||||
break;
|
||||
case "passwd":
|
||||
$rules[$field] = "if_exist|trim|string";
|
||||
if (!$action) {
|
||||
if ($action != "") {
|
||||
$rules["confirmpassword"] = "if_exist|trim|string|matches[passwd]";
|
||||
}
|
||||
break;
|
||||
@ -152,13 +154,15 @@ abstract class BaseModel extends Model
|
||||
break;
|
||||
case "user_uid":
|
||||
if (array_key_exists($field, $formDatas) && $formDatas[$field]) {
|
||||
$entity->$field = $formDatas[$field];
|
||||
} elseif (session()->get(SESSION_NAMES["ISLOGIN"])) {
|
||||
$auth = session()->get(SESSION_NAMES["AUTH"]);
|
||||
$entity->$field = $formDatas[$field];
|
||||
} elseif ($this->_session->get(SESSION_NAMES["ISLOGIN"])) {
|
||||
$auth = $this->_session->get(SESSION_NAMES["AUTH"]);
|
||||
$entity->$field = $auth[AUTH_FIELDS["ID"]];
|
||||
}
|
||||
break;
|
||||
case "passwd":
|
||||
// echo var_export($this->validationRules, true);
|
||||
// exit;
|
||||
if (array_key_exists($field, $formDatas) && $formDatas[$field]) {
|
||||
$entity->$field = password_hash($formDatas[$field], PASSWORD_DEFAULT);
|
||||
}
|
||||
@ -197,13 +201,13 @@ abstract class BaseModel extends Model
|
||||
}
|
||||
protected function create_process($entity, array $formDatas)
|
||||
{
|
||||
// echo var_export($entity);
|
||||
// exit;
|
||||
foreach ($this->allowedFields as $field) {
|
||||
$entity = $this->changeFormData($field, $formDatas, $entity);
|
||||
}
|
||||
// echo var_export($this->allowedFields);
|
||||
// echo "<HR>";
|
||||
// echo var_export($entity);
|
||||
// exit;
|
||||
// exit
|
||||
return $this->save_process($entity);
|
||||
}
|
||||
final protected function modify_process($entity, array $formDatas)
|
||||
|
||||
@ -100,7 +100,7 @@ class BoardConfigModel extends BaseModel
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return parent::changeFormData($field, $formDatas, $entity);
|
||||
$entity = parent::changeFormData($field, $formDatas, $entity);
|
||||
break;
|
||||
}
|
||||
return $entity;
|
||||
|
||||
@ -14,10 +14,10 @@ class HPILOModel extends BaseModel
|
||||
$this->allowedFields = [...$this->allowedFields, ...$this->getFields(), 'model', 'processor', 'memory', 'health', 'power', 'detail',];
|
||||
$this->validationRules = [...$this->validationRules, ...$this->getFieldRules($this->allowedFields),];
|
||||
}
|
||||
public function getTitle(): string
|
||||
{
|
||||
return 'customer';
|
||||
}
|
||||
public function getTitle(): string
|
||||
{
|
||||
return 'customer';
|
||||
}
|
||||
public function getFields(string $action = ""): array
|
||||
{
|
||||
$fields = [$this->getTitle(), 'ip', 'port', 'id', 'passwd', 'status'];
|
||||
@ -74,14 +74,8 @@ class HPILOModel extends BaseModel
|
||||
}
|
||||
public function getEntity($conditions): HPILOEntity
|
||||
{
|
||||
$entity = $this->asObject(HPILOEntity::class)->where($conditions)->first();
|
||||
return $entity ?: throw new \Exception("해당 정보가 없습니다.\n " . var_export($conditions, true));
|
||||
return $this->where($conditions)->first() ?: throw new \Exception("해당 데이터가 없습니다.\n" . var_export($conditions, true));
|
||||
}
|
||||
public function getEntitys($conditions): array
|
||||
{
|
||||
return $this->asObject(HPILOEntity::class)->where($conditions)->findAll();
|
||||
}
|
||||
|
||||
protected function changeFormData(string $field, array $formDatas, $entity)
|
||||
{
|
||||
switch ($field) {
|
||||
@ -109,16 +103,6 @@ class HPILOModel extends BaseModel
|
||||
public function setIndexWordFilter(string $word)
|
||||
{
|
||||
parent::setIndexWordFilter($word);
|
||||
$this->orLike($this->getTitle(), $word, 'both');
|
||||
$this->orLike($this->getTitle(), $word, "both"); //befor , after , both
|
||||
}
|
||||
public function setIndexOrderBy($field, $order = 'ASC')
|
||||
{
|
||||
$this->orderBy("health", "ASC");
|
||||
parent::setIndexOrderBy($field, $order);
|
||||
}
|
||||
public function setIndexOrderBy($field, $order = "ASC")
|
||||
{
|
||||
parent::setIndexOrderBy($field, $order);
|
||||
$this->orderBy($this->getTitle(), "ASC");
|
||||
}
|
||||
}
|
||||
|
||||
@ -53,7 +53,9 @@ class UserModel extends BaseModel
|
||||
break;
|
||||
case "passwd":
|
||||
$rules[$field] = "required|trim|string";
|
||||
$rules["confirmpassword"] = "required|trim|string|matches[passwd]";
|
||||
if ($action != "") {
|
||||
$rules["confirmpassword"] = "required|trim|string|matches[passwd]";
|
||||
}
|
||||
break;
|
||||
case $this->getTitle():
|
||||
$rules[$field] = "required|trim|string";
|
||||
@ -84,7 +86,7 @@ class UserModel extends BaseModel
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return parent::changeFormData($field, $formDatas, $entity);
|
||||
$entity = parent::changeFormData($field, $formDatas, $entity);
|
||||
break;
|
||||
}
|
||||
return $entity;
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
<?= getFieldLabel_BoardHelper($field, $fieldRules) ?>
|
||||
</td>
|
||||
<td style="text-align:left; padding-left:20px;">
|
||||
<?= getFieldForm_BoardHelper($field, old($field) ?: DEFAULTS['EMPTY'], $fieldFormOptions) ?>
|
||||
<?= getFieldForm_BoardHelper($field, old($field, DEFAULTS['EMPTY']), $fieldFormOptions) ?>
|
||||
<?= validation_show_error($field); ?>
|
||||
</td>
|
||||
</tr>
|
||||
@ -20,6 +20,5 @@
|
||||
</tr>
|
||||
</table>
|
||||
<?= form_close(); ?>
|
||||
<?php if (session()->getFlashdata('error')) : ?><?= session()->getFlashdata('error') ?><?php endif ?>
|
||||
<?= $this->include('templates/admin/footer'); ?>
|
||||
<?= $this->endSection() ?>
|
||||
@ -9,7 +9,7 @@
|
||||
<?= getFieldLabel_BoardHelper($field, $fieldRules) ?>
|
||||
</td>
|
||||
<td style="text-align:left; padding-left:20px;">
|
||||
<?= getFieldForm_BoardHelper($field, old($field) ?: $entity->$field, $fieldFormOptions) ?>
|
||||
<?= getFieldForm_BoardHelper($field, old($field, $entity->$field), $fieldFormOptions) ?>
|
||||
<?= validation_show_error($field); ?>
|
||||
</td>
|
||||
</tr>
|
||||
@ -19,6 +19,5 @@
|
||||
</tr>
|
||||
</table>
|
||||
<?= form_close(); ?>
|
||||
<?php if (session()->getFlashdata('error')) : ?><?= session()->getFlashdata('error') ?><?php endif ?>
|
||||
<?= $this->include('templates/admin/footer'); ?>
|
||||
<?= $this->endSection() ?>
|
||||
@ -9,7 +9,7 @@
|
||||
<?= getFieldLabel_BoardHelper($field, $fieldRules) ?>
|
||||
</td>
|
||||
<td style="text-align:left; padding-left:20px;">
|
||||
<?= getFieldForm_BoardHelper($field, old($field) ?: $entity->$field, $fieldFormOptions) ?>
|
||||
<?= getFieldForm_BoardHelper($field, old($field, $entity->$field), $fieldFormOptions) ?>
|
||||
<?= validation_show_error($field); ?>
|
||||
</td>
|
||||
</tr>
|
||||
@ -19,6 +19,5 @@
|
||||
</tr>
|
||||
</table>
|
||||
<?= form_close(); ?>
|
||||
<?php if (session()->getFlashdata('error')) : ?><?= session()->getFlashdata('error') ?><?php endif ?>
|
||||
<?= $this->include('templates/admin/footer'); ?>
|
||||
<?= $this->endSection() ?>
|
||||
@ -9,7 +9,7 @@
|
||||
<?= getFieldLabel_BoardConfigHelper($field, $fieldRules) ?>
|
||||
</td>
|
||||
<td style="text-align:left; padding-left:20px;">
|
||||
<?= getFieldForm_BoardConfigHelper($field, old($field) ?: DEFAULTS['EMPTY'], $fieldFormOptions) ?>
|
||||
<?= getFieldForm_BoardConfigHelper($field, old($field, DEFAULTS['EMPTY']), $fieldFormOptions) ?>
|
||||
<?= validation_show_error($field); ?>
|
||||
</td>
|
||||
</tr>
|
||||
@ -19,7 +19,5 @@
|
||||
</tr>
|
||||
</table>
|
||||
<?= form_close(); ?>
|
||||
<?php if (session()->getFlashdata('error')) : ?><?= session()->getFlashdata('error') ?><?php endif ?>
|
||||
</script>
|
||||
<?= $this->include('templates/admin/footer'); ?>
|
||||
<?= $this->endSection() ?>
|
||||
@ -9,7 +9,7 @@
|
||||
<?= getFieldLabel_BoardConfigHelper($field, $fieldRules) ?>
|
||||
</td>
|
||||
<td style="text-align:left; padding-left:20px;">
|
||||
<?= getFieldForm_BoardConfigHelper($field, old($field) ?: $entity->$field, $fieldFormOptions) ?>
|
||||
<?= getFieldForm_BoardConfigHelper($field, old($field, $entity->$field), $fieldFormOptions) ?>
|
||||
<?= validation_show_error($field); ?>
|
||||
</td>
|
||||
</tr>
|
||||
@ -19,6 +19,5 @@
|
||||
</tr>
|
||||
</table>
|
||||
<?= form_close(); ?>
|
||||
<?php if (session()->getFlashdata('error')) : ?><?= session()->getFlashdata('error') ?><?php endif ?>
|
||||
<?= $this->include('templates/admin/footer'); ?>
|
||||
<?= $this->endSection() ?>
|
||||
@ -9,7 +9,7 @@
|
||||
<?= getFieldLabel_UserHelper($field, $fieldRules) ?>
|
||||
</td>
|
||||
<td style="text-align:left; padding-left:20px;">
|
||||
<?= getFieldForm_UserHelper($field, old($field) ?: DEFAULTS['EMPTY'], $fieldFormOptions) ?>
|
||||
<?= getFieldForm_UserHelper($field, old($field, DEFAULTS['EMPTY']), $fieldFormOptions) ?>
|
||||
<?= validation_show_error($field); ?>
|
||||
</td>
|
||||
</tr>
|
||||
@ -19,6 +19,5 @@
|
||||
</tr>
|
||||
</table>
|
||||
<?= form_close(); ?>
|
||||
<?php if (session()->getFlashdata('error')) : ?><?= session()->getFlashdata('error') ?><?php endif ?>
|
||||
<?= $this->include('templates/admin/footer'); ?>
|
||||
<?= $this->endSection() ?>
|
||||
@ -9,7 +9,7 @@
|
||||
<?= getFieldLabel_UserHelper($field, $fieldRules) ?>
|
||||
</td>
|
||||
<td style="text-align:left; padding-left:20px;">
|
||||
<?= getFieldForm_UserHelper($field, old($field) ?: $entity->$field, $fieldFormOptions) ?>
|
||||
<?= getFieldForm_UserHelper($field, old($field, $entity->$field), $fieldFormOptions) ?>
|
||||
<?= validation_show_error($field); ?>
|
||||
</td>
|
||||
</tr>
|
||||
@ -19,6 +19,5 @@
|
||||
</tr>
|
||||
</table>
|
||||
<?= form_close(); ?>
|
||||
<?php if (session()->getFlashdata('error')) : ?><?= session()->getFlashdata('error') ?><?php endif ?>
|
||||
<?= $this->include('templates/admin/footer'); ?>
|
||||
<?= $this->endSection() ?>
|
||||
@ -1,38 +1,33 @@
|
||||
<?= $this->extend('layouts/empty') ?>
|
||||
<?= $this->section('content') ?>
|
||||
<div style="position:relative; width:799px; height:283px; margin:0 auto; background-image:url('/images/common/adminbg.png');">
|
||||
<?= form_open(url_to('signup'), $forms['attributes'], $forms['hiddens']) ?>
|
||||
<table style="position:absolute; top:130px; left:343px; width:340px;">
|
||||
<?= form_open(url_to('signup'), $forms['attributes'], $forms['hiddens']) ?>
|
||||
<div style="width:799px; height:283px;
|
||||
margin:auto;
|
||||
padding-top:150px;
|
||||
padding-left:300px;
|
||||
color:white;
|
||||
background-image:url('/images/common/adminbg.png');">
|
||||
<table>
|
||||
<tr>
|
||||
<td colspan="2" style="text-align:center; color:white;">
|
||||
<td style="text-align:right;">
|
||||
<div style="padding:5px;">계정 <input type="text" name="id" value="<?= old('id') ?>"></div>
|
||||
<div style="padding:5px;">암호 <input type="password" name="passwd" value="<?= old('passwd') ?>"></div>
|
||||
</td>
|
||||
<td style="text-align:left;">
|
||||
<input type="submit" style="width:57px; height:60px; background:url('/images/common/btn_login.png');" value="">
|
||||
</td>
|
||||
<td style="text-align:left;">
|
||||
<?php foreach ($login_buttons as $key => $login_button) : ?>
|
||||
<?= $login_button ?>
|
||||
<?php endforeach ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right;">
|
||||
<table>
|
||||
<tr>
|
||||
<td width="15%" nowrap style="padding:5px; text-align:right; color:white;">계정</td>
|
||||
<td width="*" style="text-align:left;"><input type="text" id="id" name="id" value="<?= old('id') ?>"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="15%" nowrap style="padding:5px; text-align:right; color:white;">암호</td>
|
||||
<td width="*" style="text-align:left;"><input type="password" id="passwd" name="passwd" value="<?= old('passwd') ?>"></td>
|
||||
</tr>
|
||||
</table>
|
||||
<td colspan="3" style="text-align:center;">
|
||||
<?= session()->getFlashdata('error') ?: "" ?>
|
||||
</td>
|
||||
<td style="text-align:left;"><input type="submit" style="padding:5px; width:57px; height:60px; border:0px; background:url('/images/common/btn_login.png');" value="" alt="login"></td>
|
||||
</tr>
|
||||
<?php if (session()->getFlashdata('error')) : ?>
|
||||
<tr>
|
||||
<td colspan="2" style="text-align:center; color:white;">
|
||||
<?= session()->getFlashdata('error') ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif ?>
|
||||
</table>
|
||||
<?= form_close(); ?>
|
||||
</div>
|
||||
<?= form_close(); ?>
|
||||
<?= $this->endSection() ?>
|
||||
@ -1,9 +1,5 @@
|
||||
<div class="footer"> </div>
|
||||
<!-- panel panel-default -->
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" />
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/select2-bootstrap-5-theme@1.3.0/dist/select2-bootstrap-5-theme.min.css" />
|
||||
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
|
||||
<script src="/vendors/tinymce/tinymce/tinymce.min.js" referrerpolicy="origin"></script>
|
||||
<?= $session->getFlashdata('return_message') ? alert_CommonHelper($session->getFlashdata('return_message')) : "" ?>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
//class가 calender인 inputbox용,날짜field용
|
||||
|
||||
Loading…
Reference in New Issue
Block a user