コード例 #1
0
 public function handle(Request $request, Closure $next)
 {
     app('events')->listen('locale.changed', function ($locale) {
         app('xe.translator')->setLocale($locale);
     });
     // check locale at request & set locale
     $locale = $request->get('_l');
     if (!$locale) {
         $locale = $request->cookie('locale', app('xe.translator')->getLocale());
     }
     app()->setLocale($locale);
     app('cookie')->queue(cookie()->forever('locale', $locale));
     app('router')->matched(function ($route, $request) use($locale) {
         $key = self::class . '://' . $request->method() . '/' . $route->getPath() . '/' . $locale;
         app('xe.translator')->setCurrentCacheKey($key);
     });
     if ($request->has('xe_use_request_preprocessor') && $this->available()) {
         $this->prepare($request);
     }
     /** @var Response $response */
     $response = $next($request);
     if ($request->has('xe_use_request_preprocessor') && $this->available()) {
         $this->conduct($request);
     }
     return $response;
 }
コード例 #2
0
 public function disconnect(Request $request, $provider)
 {
     // execute auth
     $namespace = 'Xpressengine\\Plugins\\SocialLogin\\Authenticators\\';
     $className = $namespace . studly_case($provider) . 'Auth';
     $auth = new $className($provider);
     $param = $auth->getCallbackParameter();
     $hasCode = $request->has($param);
     $auth->disconnect($hasCode);
     return redirect()->back()->with('alert', ['type' => 'success', 'message' => '연결해제 되었습니다']);
 }
コード例 #3
0
 /**
  * get articles
  *
  * @param Request                $request         request
  * @param BoardPermissionHandler $boardPermission board permission
  * @param null                   $id              document id
  * @return mixed
  */
 public function articles(Request $request, BoardPermissionHandler $boardPermission, $menuUrl, $id = null)
 {
     if (Gate::denies(BoardPermissionHandler::ACTION_LIST, new Instance($boardPermission->name($this->instanceId)))) {
         throw new AccessDeniedHttpException();
     }
     $query = $this->handler->getModel($this->config)->where('instanceId', $this->instanceId)->visible();
     if ($this->config->get('category') === true) {
         $query->leftJoin('board_category', sprintf('%s.%s', $query->getQuery()->from, 'id'), '=', sprintf('%s.%s', 'board_category', 'targetId'));
     }
     if ($request->has('favorite') === true) {
         $query->leftJoin('board_favorites', sprintf('%s.%s', $query->getQuery()->from, 'id'), '=', sprintf('%s.%s', 'board_favorites', 'targetId'));
         $query->where('board_favorites.userId', Auth::user()->getId());
     }
     $this->handler->makeWhere($query, $request, $this->config);
     $this->handler->makeOrder($query, $request, $this->config);
     // eager loading favorite list
     $query->with(['favorite' => function ($favoriteQuery) {
         $favoriteQuery->where('userId', Auth::user()->getId());
     }, 'slug', 'data']);
     Event::fire('xe.plugin.board.articles', [$query]);
     if ($id !== null) {
         $request->query->set('page', $this->handler->pageResolver($query, $this->config, $id));
     }
     $paginate = $query->paginate($this->config->get('perPage'))->appends($request->except('page'));
     $fieldTypes = (array) $this->configHandler->getDynamicFields($this->config);
     $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];
         }
     }
     return XePresenter::makeApi(['paginate' => $paginate, 'categories' => $categories, 'fieldTypes' => $fieldTypes]);
 }