/**
  * edit
  *
  * @param string $boardId board id
  * @return \Xpressengine\Presenter\RendererInterface
  */
 public function edit($boardId)
 {
     $config = $this->configHandler->get($boardId);
     $listOptions = $this->configHandler->listColumns($boardId);
     $listColumns = $config->get('listColumns');
     // 현재 선택된건 제외 시키고 보여줌
     $listOptions = array_diff($listOptions, $listColumns);
     $formColumns = $this->configHandler->formColumns($boardId);
     $boardOrders = app('xe.board.order')->gets();
     $skinSection = (new SkinSection())->setting(Board::getId(), $boardId);
     $commentSection = (new CommentSection())->setting($boardId);
     $dynamicFieldSection = (new DynamicFieldSection($config->get('documentGroup')))->setting(XeDB::connection(), $config->get('revision'));
     $toggleMenuSection = (new ToggleMenuSection())->setting(Board::getId(), $boardId);
     $perms = $this->permissionHandler->getPerms($boardId);
     return $this->presenter->make('edit', ['config' => $config, 'boardId' => $boardId, 'listOptions' => $listOptions, 'listColumns' => $listColumns, 'formColumns' => $formColumns, 'boardOrders' => $boardOrders, 'skinSection' => $skinSection, 'commentSection' => $commentSection, 'dynamicFieldSection' => $dynamicFieldSection, 'toggleMenuSection' => $toggleMenuSection, 'perms' => $perms]);
 }
Example #2
0
 /**
  * 미리보기
  *
  * @return \Illuminate\Http\RedirectResponse
  * @throws \Xpressengine\Keygen\UnknownGeneratorException
  */
 public function preview()
 {
     /** @var \Illuminate\Http\Request $request */
     $request = app('request');
     if ($this->permissionHandler->hasCreate($this->boardId) === false) {
         throw new AccessDeniedHttpException();
     }
     $user = Auth::user();
     // get rules
     /** @var \Xpressengine\Plugins\Board\Validator $validator */
     $validator = app('xe.board.validator');
     $rules = $validator->makeRule($this->config);
     if ($user instanceof Guest) {
         $rules = array_merge($rules, $validator->guestStore());
     }
     $this->validate($request, $rules);
     $doc = new DocumentEntity($this->handler->documentFilter($request->all()));
     $doc->id = 'preview-' . (new Keygen())->generate();
     $doc->instanceId = $this->boardId;
     $doc->createdAt = date('Y-m-d H:i:s');
     if ($user instanceof Guest) {
         $doc->setUserType($doc::USER_TYPE_GUEST);
     }
     $doc->setAuthor($user);
     $item = $this->handler->makeItem($doc);
     /** @var \Xpressengine\Storage\Storage $storage */
     if (($fileIds = $request->get('_files')) !== null) {
         $storage = app('xe.storage');
         $item->setFiles($storage->getsIn($fileIds));
     }
     $formColumns = $this->configHandler->formColumns($this->boardId);
     return Presenter::make('preview', ['config' => $this->config, 'item' => $item, 'handler' => $this->handler, 'formColumns' => $formColumns]);
 }