Example #1
0
 /**
  * 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());
 }
 /**
  * 리스트에서 검색할 때 검색 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]);
 }
Example #6
0
 /**
  * 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();
 }