/**
  * 정렬 확장 기능 목록
  *
  * @return array
  */
 public function getOrders()
 {
     $names = $this->register->get(Module\Board::getId() . PluginRegister::KEY_DELIMITER . self::ORDER_REGISTER_NAME);
     $classes = [];
     foreach ($names as $name) {
         $classes[$name] = new $name();
     }
     return $classes;
 }
示例#2
0
 /**
  * create instance
  */
 public function __construct()
 {
     $instanceConfig = InstanceConfig::instance();
     $this->currentUrl = $instanceConfig->getUrl();
     $this->boardId = $instanceConfig->getInstanceId();
     if ($this->boardId === null) {
         throw new NotFoundInstanceIdException();
     }
     $this->handler = app('xe.board.handler');
     $this->urlHandler = app('xe.board.url');
     $this->configHandler = app('xe.board.config');
     // set config
     $this->config = $this->configHandler->get($this->boardId);
     $this->handler->setConfig($this->config);
     $this->urlHandler->setConfig($this->config);
     // check is manager
     $this->permissionHandler = app('xe.board.permission');
     if (Auth::guest() === false && $this->permissionHandler->get($this->boardId)->ables(PermissionHandler::ACTION_MANAGE) === true) {
         $this->isManager = true;
     }
     // set skin
     /** @var \Xpressengine\Presenter\Presenter $presenter */
     $presenter = app('xe.presenter');
     $presenter->setSkin(Board::getId());
     //$presenter->htmlRenderPopup();
     $presenter->share('config', $this->config);
     $presenter->share('currentUrl', $this->currentUrl);
     $presenter->share('boardId', $this->boardId);
     $presenter->share('handler', $this->handler);
     $presenter->share('permissionHandler', $this->permissionHandler);
     $presenter->share('configHandler', $this->configHandler);
     $presenter->share('urlHandler', $this->urlHandler);
     $presenter->share('isManager', $this->isManager);
 }
 /**
  * document manager
  *
  * @return \Xpressengine\Presenter\RendererInterface
  */
 public function docsTrash()
 {
     $instances = [];
     $instanceIds = [];
     $urls = [];
     /** @var \Xpressengine\Routing\InstanceRouteHandler $instanceRoute */
     $instanceRoute = app('xe.router');
     $instanceRoutes = $instanceRoute->getsByModule(Board::getId());
     foreach ($instanceRoutes as $route) {
         $instanceIds[] = $route->instanceId;
         $urls[$route->instanceId] = $route->url;
         $instances[] = ['id' => $route->instanceId, 'name' => $route->instanceId];
     }
     $wheres = ['status' => DocumentEntity::STATUS_TRASH, 'instanceIds' => $instanceIds];
     // keyword 검색 처리
     if (Input::get('searchKeyword') != '') {
         $searchTarget = Input::get('searchTarget');
         $searchKeyword = Input::get('searchKeyword');
         if ($searchTarget == 'title_content') {
             $wheres[$searchTarget] = $searchKeyword;
         } else {
             $wheres[$searchTarget] = $searchKeyword;
         }
     }
     // 상세 검색 처리
     foreach (Input::all() as $key => $value) {
         if ($value != '') {
             $wheres[$key] = $value;
         }
     }
     // 정렬 처리
     $orders = ['createdAt' => 'desc'];
     $documents = Document::paginate($wheres, $orders, 3)->appends(Input::except('page'));
     return $this->presenter->make('docs.trash', compact('documents', 'instances', 'urls'));
 }