table = $table; parent::__construct(); } public function getTitleField(): string { return 'title'; } public function getFieldRule(string $field, array $rules): array { switch ($field) { case 'gid': $rules[$field] = "if_exist|numeric"; break; case "data_type": $rules[$field] = "if_exist|trim|in_list[html,text]"; break; case "editor_type": $rules[$field] = "if_exist|trim|in_list[N,S]"; break; case "reg_date": $rules[$field] = "if_exist|valid_date"; break; case "content": case "image_path": $rules[$field] = "if_exist|trim|string"; break; case 'hit': case 'level': case 'user_pid': $rules[$field] = "if_exist|numeric"; break; default: $rules = parent::getFieldRule($field, $rules); break; } return $rules; } public function getEntityByPK(int $uid): null | BoardEntity { $this->where($this->getPKField(), $uid); return $this->getEntity(); } public function getEntityByID(string $id): null | BoardEntity { $this->where('user_id', $id); return $this->getEntity(); } //create용 public function create(array $formDatas = []): BoardEntity { $entity = $this->create_process(new BoardEntity(), $formDatas); //입력후 PID값을 GID값에 넣어주기 위함 return $this->modify($entity, ['gid' => intval($entity->getPK())]); } //modify용 public function modify(BoardEntity $entity, array $formDatas): BoardEntity { return $this->modify_process($entity, $formDatas); } public function createByCrawler( BoardsEntity $boards_entity, UserEntity $user_entity, int $cnt, array $listInfo, array $storages ): BoardEntity { $formDatas = []; //미디어관련정보 entity에 넣기 $formDatas['title'] = $listInfo["title"]; $formDatas['user_pid'] = $user_entity->getPK(); $formDatas['user_id'] = $user_entity->getID(); $formDatas['user_name'] = $listInfo["nickname"] != "" ? $listInfo["nickname"] : $user_entity->getTitle(); $formDatas['level'] = $boards_entity->getListLevel(); $formDatas['hit'] = $listInfo['hit']; $formDatas['reg_date'] = date("Y-m-d H:i:s", strtotime($listInfo['date'])); $formDatas['data_type'] = "html"; $formDatas['editor_type'] = "S"; $formDatas['image_path'] = ""; $formDatas['content'] = ""; foreach ($storages as $storage) { if ($formDatas['image_path'] == "") { $formDatas['image_path'] = $storage->getBasePath() . DIRECTORY_SEPARATOR . $storage->getPath() . DIRECTORY_SEPARATOR . $storage->getOriginName(); } $formDatas['content'] .= $storage->getHTMLTag();; } //망보드 게시판에 등록 if ($formDatas['content'] == "") { throw new \Exception(sprintf( "%s=>%s번째 %s 내용이 없어 => %s 등록 안함 : storage->%s", __FUNCTION__, $cnt, $listInfo["title"], $this->getTable(), count($storages) )); } $entity = $this->create($formDatas); log_message("notice", sprintf( "%s=>%s번째 %s => %s 등록 완료 : storage->%s", __FUNCTION__, $cnt, $listInfo["title"], $this->getTable(), count($storages) )); return $entity; } }