_model = new CategoryModel(); parent::initController($request, $response, $logger); $this->_viewPath .= strtolower($this->_model->getClassName()); } public function getFields(string $action = ""): array { $fields = [ 'name', "linkurl", "photo", "isaccess", "isread", "iswrite", "isreply", "isupload", "isdownload", "status", "head", "tail", ]; switch ($action) { case "index": case "excel": return [ 'name', "linkurl", 'photo', "isaccess", "isread", "iswrite", "isreply", "isupload", "isdownload", "status", "created_at" ]; break; case "view": return [...$fields, "updated_at", "created_at"]; break; default: return $fields; break; } } public function getFieldFilters(): array { return ["isaccess", "isread", "iswrite", "isreply", "isupload", "isdownload", "status"]; } public function getFieldBatchFilters(): array { return parent::getFieldBatchFilters(); } //Field별 Form Datas 처리용 protected function getFieldFormData(string $field, $entity = null): array { switch ($field) { case 'photo': $file = $this->upload_image_procedure($field); if (!is_null($file)) { $this->_viewDatas['fieldDatas'][$field] = $file; } break; default: return parent::getFieldFormData($field, $entity); break; } return $this->_viewDatas['fieldDatas']; } private function build_leftmenu() { foreach ($this->_model->getEntitys(['grpdepth' => 2, 'status' => DEFAULTS['STATUS']]) as $entity) { $categorys = $this->_model->getSiblingEntitys($entity); $viewDatas = [ 'className' => $this->_model->getClassName(), 'category' => $entity, 'parent_category' => array_shift($categorys), 'sibling_categorys' => $categorys ]; $leftmenu = view($this->_viewPath . '/leftmenu_template', ['viewDatas' => $viewDatas]); file_put_contents(APPPATH . 'Views' . "/layouts/front/left_menu/leftmenu_{$entity->getPrimaryKey()}.php", $leftmenu); } } //Insert관련 protected function insert_process() { $entity = parent::insert_process(); $this->build_leftmenu(); return $entity; } //Update관련 protected function update_process($entity) { $entity = parent::update_process($entity); $this->build_leftmenu(); return $entity; } //Reply관련 protected function reply_process($entity) { $entity = parent::reply_process($entity); $this->build_leftmenu(); return $entity; } //Delete 관련 protected function delete_process($entity) { $entity = parent::delete_process($entity); $this->build_leftmenu(); return $entity; } }