dbms_init...1
This commit is contained in:
parent
9666de0600
commit
92936526ab
@ -197,6 +197,8 @@ define('ICONS', [
|
||||
'UNLOCK' => '<i class="bi bi-unlock"></i>',
|
||||
'BOX' => '<i class="bi bi-box"></i>',
|
||||
'BOXS' => '<i class="bi bi-boxes"></i>',
|
||||
'ONETIME' => '<i class="bi bi-1-circle-fill text-warning"></i>',
|
||||
'SALE' => '<i class="bi bi-graph-down-arrow"></i>',
|
||||
]);
|
||||
//배너관련
|
||||
define('TOP_BANNER', [
|
||||
|
||||
@ -4,8 +4,19 @@ namespace App\Controllers\Admin\Customer;
|
||||
|
||||
use App\Helpers\Customer\ServiceHelper;
|
||||
use App\Services\Customer\ServiceService;
|
||||
|
||||
use App\Services\Customer\ServiceItemService;
|
||||
|
||||
use App\Services\Equipment\Part\CpuService;
|
||||
use App\Services\Equipment\Part\DefenceService;
|
||||
use App\Services\Equipment\Part\StorageService;
|
||||
use App\Services\Equipment\Part\IpService;
|
||||
use App\Services\Equipment\Part\LINEService;
|
||||
use App\Services\Equipment\Part\RamService;
|
||||
use App\Services\Equipment\Part\SoftwareService;
|
||||
use App\Services\Equipment\ServerService;
|
||||
use App\Services\Equipment\DomainService;
|
||||
|
||||
use CodeIgniter\HTTP\RedirectResponse;
|
||||
use CodeIgniter\HTTP\RequestInterface;
|
||||
use CodeIgniter\HTTP\ResponseInterface;
|
||||
@ -13,6 +24,7 @@ use Psr\Log\LoggerInterface;
|
||||
|
||||
class ServiceController extends CustomerController
|
||||
{
|
||||
private $_equipmentService = [];
|
||||
private ?ServiceItemService $_serviceItemService = null;
|
||||
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
|
||||
{
|
||||
@ -45,6 +57,70 @@ class ServiceController extends CustomerController
|
||||
}
|
||||
return $this->_serviceItemService;
|
||||
}
|
||||
|
||||
final public function getEquipmentService(string $key): mixed
|
||||
{
|
||||
if (!array_key_exists($key, $this->_equipmentService)) {
|
||||
switch ($key) {
|
||||
case 'SERVER':
|
||||
$this->_equipmentService[$key] = new ServerService();
|
||||
break;
|
||||
case 'CPU':
|
||||
$this->_equipmentService[$key] = new CpuService();
|
||||
break;
|
||||
case 'RAM':
|
||||
$this->_equipmentService[$key] = new RamService();
|
||||
break;
|
||||
case 'STORAGE':
|
||||
$this->_equipmentService[$key] = new StorageService();
|
||||
break;
|
||||
case 'LINE':
|
||||
$this->_equipmentService[$key] = new LineService();
|
||||
break;
|
||||
case 'IP':
|
||||
$this->_equipmentService[$key] = new IpService();
|
||||
break;
|
||||
case 'DEFENCE':
|
||||
$this->_equipmentService[$key] = new DefenceService();
|
||||
break;
|
||||
case 'SOFTWARE':
|
||||
$this->_equipmentService[$key] = new SoftwareService();
|
||||
break;
|
||||
case 'DOMAIN':
|
||||
$this->_equipmentService[$key] = new DomainService();
|
||||
break;
|
||||
default:
|
||||
throw new \Exception(__FUNCTION__ . "에서 사용하지않는 Service를 요청하였습니다.: {$key}");
|
||||
}
|
||||
}
|
||||
return $this->_equipmentService[$key];
|
||||
}
|
||||
protected function getFormFieldOption(string $field, array $options): array
|
||||
{
|
||||
switch ($field) {
|
||||
case 'SERVER':
|
||||
case 'CPU':
|
||||
case 'RAM':
|
||||
case 'STORAGE':
|
||||
case 'LINE':
|
||||
case 'IP':
|
||||
case 'DEFENCE':
|
||||
case 'SOFTWARE':
|
||||
case 'DOMAIN':
|
||||
$temps = [];
|
||||
// throw new \Exception(__FUNCTION__ . "에서 item_type이 지정되지 않았습니다.->{$item_type}");
|
||||
foreach ($this->getEquipmentService($field)->getEntities() as $entity) {
|
||||
$temps[$entity->getPK()] = $entity->getTitle();
|
||||
}
|
||||
$options[$field] = $temps;
|
||||
// dd($options);
|
||||
break;
|
||||
default:
|
||||
$options = parent::getFormFieldOption($field, $options);
|
||||
break;
|
||||
}
|
||||
return $options;
|
||||
}
|
||||
protected function getResultPageByActon(string $action, string $message = MESSAGES["SUCCESS"]): RedirectResponse|string
|
||||
{
|
||||
switch ($action) {
|
||||
@ -65,7 +141,12 @@ class ServiceController extends CustomerController
|
||||
'fields' => ['clientinfo_uid', 'location', 'switch', 'code', 'type', 'raid', 'billing_at', 'start_at', 'status'],
|
||||
];
|
||||
$this->init('index', $fields);
|
||||
//추가 Field작업 처리
|
||||
$this->item_types = lang($this->getServiceItemService()->getClassName() . '.' . strtoupper('ITEM_TYPE'));
|
||||
foreach ($this->item_types as $field => $label) {
|
||||
$this->field_options = $this->getFormFieldOption($field, $this->field_options);
|
||||
}
|
||||
// dd($this->field_options);
|
||||
$entities = [];
|
||||
foreach (parent::index_process() as $entity) {
|
||||
foreach ($this->item_types as $field => $label) {
|
||||
|
||||
@ -137,6 +137,25 @@ class ServiceItemController extends CustomerController
|
||||
return $result;
|
||||
}
|
||||
//Index,FieldForm관련
|
||||
protected function create_process(): mixed
|
||||
{
|
||||
// dd($this->formDatas);
|
||||
if (!array_key_exists('item_type', $this->formDatas) || !$this->formDatas['item_type']) {
|
||||
throw new \Exception(__METHOD__ . "에서 item_type이 지정되지 않았습니다.");
|
||||
}
|
||||
if (!array_key_exists('item_uid', $this->formDatas) || !$this->formDatas['item_uid']) {
|
||||
throw new \Exception(__METHOD__ . "에서 item_uid가가 지정되지 않았습니다.");
|
||||
}
|
||||
$equipmentEntity = $this->getEquipmentService($this->formDatas['item_type'])->getEntity($this->formDatas['item_uid']);
|
||||
if (!$equipmentEntity) {
|
||||
throw new \Exception(__METHOD__ . "에서 equipmentEntity 정보가 확인되지 않습니다.");
|
||||
}
|
||||
//각 항목의 Price를 Item Price로 전달함
|
||||
$formDatas = $this->formDatas;
|
||||
$formDatas['price'] = $equipmentEntity->getPrice();
|
||||
$this->formDatas = $formDatas;
|
||||
return parent::create_process();
|
||||
}
|
||||
protected function index_process(): array
|
||||
{
|
||||
$fields = [
|
||||
|
||||
@ -9,41 +9,40 @@ use Psr\Log\LoggerInterface;
|
||||
use App\Helpers\Equipment\ServerHelper;
|
||||
use App\Services\Equipment\ServerService;
|
||||
|
||||
|
||||
class ServerController extends EquipmentController
|
||||
{
|
||||
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
|
||||
{
|
||||
parent::initController($request, $response, $logger);
|
||||
$this->title = lang("{$this->getService()->getClassName()}.title");
|
||||
$this->class_path .= $this->getService()->getClassName();
|
||||
$this->uri_path .= strtolower($this->getService()->getClassName('/')) . '/';
|
||||
// $this->view_path .= strtolower($this->getService()->getClassName()) . DIRECTORY_SEPARATOR;
|
||||
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
|
||||
{
|
||||
parent::initController($request, $response, $logger);
|
||||
$this->title = lang("{$this->getService()->getClassName()}.title");
|
||||
$this->class_path .= $this->getService()->getClassName();
|
||||
$this->uri_path .= strtolower($this->getService()->getClassName('/')) . '/';
|
||||
// $this->view_path .= strtolower($this->getService()->getClassName()) . DIRECTORY_SEPARATOR;
|
||||
|
||||
}
|
||||
public function getService(): ServerService
|
||||
{
|
||||
if (!$this->_service) {
|
||||
$this->_service = new ServerService($this->request);
|
||||
}
|
||||
public function getService(): ServerService
|
||||
{
|
||||
if (!$this->_service) {
|
||||
$this->_service = new ServerService($this->request);
|
||||
}
|
||||
return $this->_service;
|
||||
}
|
||||
public function getHelper(): ServerHelper
|
||||
{
|
||||
if (!$this->_helper) {
|
||||
$this->_helper = new ServerHelper($this->request);
|
||||
}
|
||||
return $this->_helper;
|
||||
return $this->_service;
|
||||
}
|
||||
public function getHelper(): ServerHelper
|
||||
{
|
||||
if (!$this->_helper) {
|
||||
$this->_helper = new ServerHelper($this->request);
|
||||
}
|
||||
return $this->_helper;
|
||||
}
|
||||
|
||||
//Index,FieldForm관련
|
||||
protected function index_process(): array
|
||||
{
|
||||
$fields = [
|
||||
'fields' => ['model', 'price', 'status', 'created_at'],
|
||||
];
|
||||
$this->init('index', $fields);
|
||||
// $this->modal_type = 'modal_fetch_v2'; //기본은 modal_iframe임
|
||||
return parent::index_process();
|
||||
}
|
||||
//Index,FieldForm관련
|
||||
protected function index_process(): array
|
||||
{
|
||||
$fields = [
|
||||
'fields' => ['model', 'price', 'status', 'created_at'],
|
||||
];
|
||||
$this->init('index', $fields);
|
||||
// $this->modal_type = 'modal_fetch_v2'; //기본은 modal_iframe임
|
||||
return parent::index_process();
|
||||
}
|
||||
}
|
||||
|
||||
@ -182,7 +182,15 @@ abstract class CommonController extends BaseController
|
||||
//Index,FieldForm관련
|
||||
|
||||
// 생성
|
||||
protected function create_form_process(): void {}
|
||||
protected function create_form_process(): void
|
||||
{
|
||||
foreach ($this->filter_fields as $field) {
|
||||
$value = $this->request->getVar($field);
|
||||
if ($value) {
|
||||
$this->$field = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
final public function create_form(): RedirectResponse|string
|
||||
{
|
||||
try {
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -9,8 +9,28 @@ class ServiceItemEntity extends CustomerEntity
|
||||
const PK = ServiceItemModel::PK;
|
||||
const TITLE = ServiceItemModel::TITLE;
|
||||
|
||||
public function getTitle(): string
|
||||
public function getItemUid(): int
|
||||
{
|
||||
return parent::getTitle() . " [" . number_format($this->attributes['price']) . '/' . number_format($this->attributes['amount']) . "원]";
|
||||
return intval($this->attributes['item_uid']);
|
||||
}
|
||||
public function getPrice(): int
|
||||
{
|
||||
return intval($this->attributes['price']);
|
||||
}
|
||||
public function getAmount(): int
|
||||
{
|
||||
return intval($this->attributes['amount']);
|
||||
}
|
||||
public function getView_Price(): string
|
||||
{
|
||||
return sprintf("원가:%s원 , 제공가:%s원", number_format($this->getPrice()), number_format($this->getAmount()));
|
||||
}
|
||||
public function getView_Sale(): string
|
||||
{
|
||||
return $this->getPrice() > $this->getAmount() ? "" : ICONS['SALE'];
|
||||
}
|
||||
public function getView_BillingCycle(): string
|
||||
{
|
||||
return $this->attributes['billing_cycle'] == "month" ? "" : ICONS['ONETIME'];;
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,8 +10,8 @@ abstract class EquipmentEntity extends CommonEntity
|
||||
{
|
||||
parent::__construct($data);
|
||||
}
|
||||
public function getTitle(): string
|
||||
final public function getPrice(): int
|
||||
{
|
||||
return parent::getTitle() . " [" . number_format($this->attributes['price']) . "원]";
|
||||
return intval($this->attributes['price']);
|
||||
}
|
||||
}
|
||||
|
||||
@ -232,13 +232,11 @@ class CommonHelper
|
||||
}
|
||||
$form = implode(" ", $forms);
|
||||
} else {
|
||||
$extra_class = isset($extras['class']) ? $extras['class'] . ' select-field' : 'select-field';
|
||||
// $extra_class = isset($extras['class']) ? $extras['class'] : "";
|
||||
$formOptions = ["" => lang($viewDatas['class_path'] . '.label.' . $field) . ' 선택'];
|
||||
foreach ($viewDatas['field_options'][$field] as $key => $label) {
|
||||
$formOptions[$key] = $label;
|
||||
}
|
||||
$form = form_dropdown($field, $formOptions, $value, ['class' => $extra_class, ...array_diff_key($extras, ['class' => ''])]);
|
||||
$form = form_dropdown($field, $formOptions, $value, $extras);
|
||||
}
|
||||
break;
|
||||
case 'billing_at':
|
||||
@ -259,15 +257,12 @@ class CommonHelper
|
||||
if (!is_array($viewDatas['field_options'][$field])) {
|
||||
throw new \Exception(__METHOD__ . "에서 {$field}의 field_options가 array형태가 아닙니다.");
|
||||
}
|
||||
//value값이 없을경우
|
||||
$value = $value ?? $this->request->getVar($field);
|
||||
$extra_class = isset($extras['class']) ? $extras['class'] . ' select-field' : 'select-field';
|
||||
// $extra_class = isset($extras['class']) ? $extras['class'] : "";
|
||||
$extras['class'] = isset($extras['class']) ? $extras['class'] . ' select-field' : 'select-field';
|
||||
$formOptions = ["" => lang($viewDatas['class_path'] . '.label.' . $field) . ' 선택'];
|
||||
foreach ($viewDatas['field_options'][$field] as $key => $label) {
|
||||
$formOptions[$key] = $label;
|
||||
}
|
||||
$form = form_dropdown($field, $formOptions, $value, ['class' => $extra_class, ...array_diff_key($extras, ['class' => ''])]);
|
||||
$form = form_dropdown($field, $formOptions, $value, $extras);
|
||||
} else {
|
||||
$form = form_input($field, $value ?? "", ["autocomplete" => $field, ...$extras]);
|
||||
}
|
||||
@ -280,9 +275,6 @@ class CommonHelper
|
||||
{
|
||||
$value = $viewDatas['entity']->$field ?? "";
|
||||
switch ($field) {
|
||||
case $this->getTitleField():
|
||||
$value = $this->getFieldForm($field, $viewDatas['entity']->$field, $viewDatas, $extras);
|
||||
break;
|
||||
case 'role':
|
||||
$roles = [];
|
||||
foreach (explode(DEFAULTS["DELIMITER_ROLE"], $value) as $key) {
|
||||
@ -314,6 +306,10 @@ class CommonHelper
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (is_array($value)) {
|
||||
echo __METHOD__ . "에서 오류: {$field}의 값이 Array형태입니다";
|
||||
exit;
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
final public function getListRowColor(mixed $entity, string $field = 'status', string $value = DEFAULTS['STATUS']): string
|
||||
|
||||
@ -26,6 +26,10 @@ class ClientHelper extends CustomerHelper
|
||||
$value = parent::getFieldView($field, $viewDatas, $extras);
|
||||
break;
|
||||
}
|
||||
if (is_array($value)) {
|
||||
echo __METHOD__ . "에서 오류: {$field}의 값이 Array형태입니다";
|
||||
exit;
|
||||
}
|
||||
return $value;
|
||||
} //
|
||||
}
|
||||
|
||||
@ -26,6 +26,17 @@ class ServiceHelper extends CustomerHelper
|
||||
case "DEFENCE":
|
||||
case "DOMAIN":
|
||||
$label = form_label(lang("{$viewDatas['class_path']}.label.{$field}"), $field, $extras);
|
||||
$extras = ["class" => "btn btn-light btn-circle", "target" => "_self", ...$extras];
|
||||
$label .= form_label(
|
||||
ICONS['SETUP'],
|
||||
$field,
|
||||
[
|
||||
"data-src" => "/admin/customer/serviceitem?item_type={$field}&serviceinfo_uid={$viewDatas['entity']->getPK()}",
|
||||
"data-bs-toggle" => "modal",
|
||||
"data-bs-target" => "#index_action_form",
|
||||
...$extras
|
||||
]
|
||||
);
|
||||
break;
|
||||
default:
|
||||
$label = parent::getFieldLabel($field, $viewDatas, $extras);
|
||||
@ -46,27 +57,21 @@ class ServiceHelper extends CustomerHelper
|
||||
case "SOFTWARE":
|
||||
case "DEFENCE":
|
||||
case "DOMAIN":
|
||||
$temps = [];
|
||||
foreach ($viewDatas['entity']->getItemEntities($field) as $partEntity) {
|
||||
$temps[] = "<div>" . $partEntity->getTitle() . "</div>";
|
||||
$temps = ["<ol>"];
|
||||
foreach ($viewDatas['entity']->getItemEntities($field) as $itemEntity) {
|
||||
$temps[] = "<li title=\"" . $itemEntity->getView_Price() . "\">" . $viewDatas['field_options'][$field][$itemEntity->getItemUid()] . ' ' . $itemEntity->getView_BillingCycle() . ' ' . $itemEntity->getView_Sale() . "</li>";
|
||||
}
|
||||
$extras = ["class" => "btn btn-outline btn-primary btn-circle", "target" => "_self", ...$extras];
|
||||
$temps[] = form_label(
|
||||
'변경',
|
||||
$field,
|
||||
[
|
||||
"data-src" => "/admin/customer/serviceitem?item_type={$field}&serviceinfo_uid={$viewDatas['entity']->getPK()}",
|
||||
"data-bs-toggle" => "modal",
|
||||
"data-bs-target" => "#index_action_form",
|
||||
...$extras
|
||||
]
|
||||
);
|
||||
$temps[] = "</ol>";
|
||||
$value = implode("", $temps);
|
||||
break;
|
||||
default:
|
||||
$value = parent::getFieldView($field, $viewDatas, $extras);
|
||||
break;
|
||||
}
|
||||
if (is_array($value)) {
|
||||
echo __METHOD__ . "에서 오류: {$field}의 값이 Array형태입니다";
|
||||
exit;
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
|
||||
@ -19,7 +19,7 @@ return [
|
||||
'IP' => "IP",
|
||||
'CPU' => "CPU",
|
||||
'RAM' => "메모리",
|
||||
'DISK' => "저장장치",
|
||||
'STORAGE' => "저장장치",
|
||||
'SOFTWARE' => "SOFTWARE",
|
||||
'DEFENCE' => "방어(CS)",
|
||||
'DOMAIN' => "도메인",
|
||||
@ -34,24 +34,24 @@ return [
|
||||
"default" => "치바",
|
||||
"tokyo" => "도쿄",
|
||||
],
|
||||
"SWITCH" => [
|
||||
"R35P10" => "R35P10",
|
||||
"R45P20" => "R45P20",
|
||||
"SWITCH" => [
|
||||
"R35P10" => "R35P10",
|
||||
"R45P20" => "R45P20",
|
||||
],
|
||||
"CODE" => [
|
||||
"JPN130" => "JPN130",
|
||||
"JPN140" => "JPN140",
|
||||
"JPN150" => "JPN138",
|
||||
"X1508A" => "R45P20",
|
||||
"X1508C" => "X1508C",
|
||||
"X1508D" => "X1508D",
|
||||
"X2001A" => "X2001A",
|
||||
"X2001B" => "X2001B",
|
||||
"X2001C" => "X2001C",
|
||||
"X2001D" => "X2001D",
|
||||
"X2001E" => "X2001E",
|
||||
"P2404I510" => "P2404I510",
|
||||
"P2404I710" => "P2404I710",
|
||||
"CODE" => [
|
||||
"JPN130" => "JPN130",
|
||||
"JPN140" => "JPN140",
|
||||
"JPN138" => "JPN138",
|
||||
"R45P20" => "R45P20",
|
||||
"X1508C" => "X1508C",
|
||||
"X1508D" => "X1508D",
|
||||
"X2001A" => "X2001A",
|
||||
"X2001B" => "X2001B",
|
||||
"X2001C" => "X2001C",
|
||||
"X2001D" => "X2001D",
|
||||
"X2001E" => "X2001E",
|
||||
"P2404I510" => "P2404I510",
|
||||
"P2404I710" => "P2404I710",
|
||||
],
|
||||
"TYPE" => [
|
||||
"default" => "일반",
|
||||
|
||||
@ -8,7 +8,7 @@ class ServiceModel extends CustomerModel
|
||||
{
|
||||
const TABLE = "serviceinfo";
|
||||
const PK = "uid";
|
||||
const TITLE = "switch";
|
||||
const TITLE = "code";
|
||||
protected $table = self::TABLE;
|
||||
protected $primaryKey = self::PK;
|
||||
protected $returnType = ServiceEntity::class;
|
||||
|
||||
@ -29,7 +29,6 @@ class ServiceItemService extends CustomerService
|
||||
"item_type",
|
||||
"item_uid",
|
||||
"billing_cycle",
|
||||
"price",
|
||||
"amount",
|
||||
"start_at",
|
||||
"status",
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
<tr>
|
||||
<th nowrap class="text-end"><?= $viewDatas['helper']->getFieldLabel($field, $viewDatas) ?></th>
|
||||
<td nowrap class="text-start">
|
||||
<?= $viewDatas['helper']->getFieldForm($field, old($field), $viewDatas) ?>
|
||||
<?= $viewDatas['helper']->getFieldForm($field, old($field) ?? isset($viewDatas[$field]) ? $viewDatas[$field] : null, $viewDatas) ?>
|
||||
<span><?= validation_show_error($field); ?></span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -48,7 +48,7 @@
|
||||
<table class="table table-bordered table-hover table-striped">
|
||||
<tr>
|
||||
<?php foreach ($viewDatas['item_types'] as $field => $label): ?>
|
||||
<th data-rtc-resizable="<?= $field ?>"><?= $label ?></th>
|
||||
<th data-rtc-resizable="<?= $field ?>" nowrap><?= $viewDatas['helper']->getFieldLabel($field, $viewDatas) ?></th>
|
||||
<?php endforeach ?>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
<ul class="nav justify-content-center">
|
||||
<li class="nav-item"><?= form_checkbox(array("id" => "batchjobuids_checkbox")) ?>ALL</li>
|
||||
<?php foreach ($viewDatas['batchjob_fields'] as $field): ?>
|
||||
<?= $viewDatas['helper']->getFieldForm($field, null, $viewDatas, ['data-batchjob' => 'true']) ?>
|
||||
<?= $viewDatas['helper']->getFieldForm($field, null, $viewDatas, ['data-batchjob' => 'true']) ?>
|
||||
<?php endforeach ?>
|
||||
<li class="nav-item"><?= $viewDatas['helper']->getListButton('batchjob', $viewDatas) ?></li>
|
||||
<li class="nav-item"><?= $viewDatas['helper']->getListButton('create', $viewDatas) ?></li>
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
<nav class="condition nav">
|
||||
조건:
|
||||
<?php foreach ($viewDatas['filter_fields'] as $field): ?>
|
||||
<?= $viewDatas['helper']->getFieldForm($field, $viewDatas[$field] ?? old($field), $viewDatas) ?>
|
||||
<?= $viewDatas['helper']->getFieldForm($field, $viewDatas[$field] ?? old($field), $viewDatas) ?>
|
||||
<?php endforeach ?>
|
||||
</nav>
|
||||
<nav class="search nav justify-content-center">
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
<nav class="condition nav">
|
||||
조건:
|
||||
<?php foreach ($viewDatas['filter_fields'] as $field): ?>
|
||||
<?= $viewDatas['helper']->getFieldForm($field, $viewDatas[$field] ?? old($field), $viewDatas) ?>
|
||||
<?= $viewDatas['helper']->getFieldForm($field, $viewDatas[$field] ? $viewDatas[$field] : old($field), $viewDatas) ?>
|
||||
<?php endforeach ?>
|
||||
</nav>
|
||||
<nav class="search nav justify-content-center">
|
||||
|
||||
Loading…
Reference in New Issue
Block a user