/** * Dynamic Field 설정 페이지에서 각 fieldType 에 필요한 설정 등록 페이지 반환 * return html tag string * * @param ConfigEntity $config config entity * @return string */ public function getSettingsView(ConfigEntity $config = null) { $category = null; if ($config != null) { $category = CategoryModel::find($config->get('categoryId')); } XeFrontend::rule('dynamicFieldSection', $this->getSettingsRules()); return View::make('dynamicField/category/createType', ['config' => $config, 'category' => $category])->render(); }
public function search(array $args) { $selectItems = []; $categoryItems = Category::find($this->config->get('categoryId'))->items; foreach ($categoryItems as $categoryItem) { $selectItems[] = ['value' => $categoryItem->id, 'text' => $categoryItem->word]; } $this->addMergeData(['selectItems' => $selectItems]); return parent::search($args); }
public function children(Request $request, $id) { if ($request->get('id') === null) { $children = Category::find($id)->getProgenitors(); } else { /** @var CategoryItem $item */ if (!($item = CategoryItem::find($request->get('id')))) { throw new InvalidArgumentHttpException(); } $children = $item->getChildren(); } foreach ($children as $child) { $child->readableWord = xe_trans($child->word); } return XePresenter::makeApi($children->toArray()); }
/** * Convert the model instance to an array. * * @return array */ public function toArray() { $tree = $this->getTree(); return array_merge(parent::toArray(), ['items' => $tree, 'entity' => 'menu', 'itemCount' => $tree->size()]); }
/** * 리스트에서 검색할 때 검색 form 에 사용될 html 코드 반환 * return html tag string * * @param array $args arguments * @return string */ public function search(array $args) { $category = Category::find($this->config->get('categoryId')); $item = null; if (isset($args[$this->config->get('id') . 'ItemId'])) { $item = CategoryItem::find($args[$this->config->get('id') . 'ItemId']); } $this->addMergeData(['categoryItems' => $category->items, 'categoryItem' => $item]); return parent::search($args); }
/** * edit * * @param Request $request request * @param Validator $validator validator * @param BoardPermissionHandler $boardPermission board permission handler * @param IdentifyManager $identifyManager identify manager * @param string $menuUrl first segment * @param string $id document id * @return \Xpressengine\Presenter\RendererInterface */ public function edit(Request $request, Validator $validator, BoardPermissionHandler $boardPermission, IdentifyManager $identifyManager, $menuUrl, $id) { $user = Auth::user(); $item = $this->handler->getModel($this->config)->find($id); $this->handler->setModelConfig($item, $this->config); if ($item === null) { throw new NotFoundDocumentException(); } // 비회원이 작성 한 글일 때 인증페이지로 이동 if ($this->isManager !== true && $item->isGuest() === true && $identifyManager->identified($item) === false && $user->getRating() != 'super') { return $this->guestId($menuUrl, $item->id); } // 접근 권한 확인 if ($this->isManager !== true && $item->userId !== $user->getId()) { throw new AccessDeniedHttpException(); } $categories = []; if ($this->config->get('category') === true) { $categoryItems = Category::find($this->config->get('categoryId'))->items; foreach ($categoryItems as $categoryItem) { $categories[] = ['value' => $categoryItem->id, 'text' => $categoryItem->word]; } } /** @var \Xpressengine\Plugins\Board\Validator $validator */ $validator = app('xe.board.validator'); $rules = $validator->getEditRule($user, $this->config); $parent = null; return XePresenter::make('edit', ['config' => $this->config, 'handler' => $this->handler, 'item' => $item, 'parent' => $parent, 'categories' => $categories, 'rules' => $rules]); }
/** * get search * * @param array $inputs * @param string $view * @return string */ public function search(array $inputs, $view = 'dynamicField/category/default/search') { $config = $this->config; if ($config->get('searchable') !== true) { return ''; } $category = Category::find($config->get('categoryId')); $items = $category->items; $key = $config->get('id') . 'ItemId'; $itemId = ''; $item = ''; if (isset($inputs[$key])) { $itemId = $inputs[$key]; $item = CategoryItem::find($itemId); } return View::make($view, ['config' => $config, 'items' => $items, 'itemId' => $itemId, 'item' => $item])->render(); }
/** * Create a new category item * * @param Category $category category instance * @param array $inputs item attributes for created * @return CategoryItem */ public function createItem(Category $category, array $inputs) { /** @var CategoryItem $item */ $item = $category->items()->create($inputs); $this->setHierarchy($item); $this->setOrder($item); // 아이템이 추가되면 카테고리 그룹의 아이템 수량을 증가 시킴 $category->increment($category->getCountName()); return $item; }