/** * index * * @return RendererInterface */ public function index() { $instanceConfig = InstanceConfig::instance(); $instanceId = $instanceConfig->getInstanceId(); $configName = $this->getConfigKeyString($instanceId); $includePath = $this->configManager->getVal($configName); return XePresenter::make('show', ['includePath' => $includePath]); }
public function testGetCurrentInstanceId() { /** * @var InstanceConfig $instanceConfig */ $instanceConfig = InstanceConfig::instance(); $instanceConfig->setInstanceId('testInstanceId'); $instanceId = getCurrentInstanceId(); $this->assertEquals('testInstanceId', $instanceId); }
/** * testMenuConfig * * @return void */ public function testMenuConfig() { /** * @var InstanceConfig $instanceConfig; */ $instanceConfig = InstanceConfig::instance(); $instanceConfig->setInstanceId('testInstance'); $instanceConfig->setTheme('bootstrapTheme'); $instanceConfig->setUrl('test'); $instanceConfig->setModule('xpressengine@test'); $this->assertEquals('testInstance', $instanceConfig->getInstanceId()); $this->assertEquals('bootstrapTheme', $instanceConfig->getTheme()); $this->assertEquals('test', $instanceConfig->getUrl()); $this->assertEquals('xpressengine@test', $instanceConfig->getModule()); }
/** * testInstanceConfig * * @return void */ public function testInstanceConfig() { /** * @var InstanceConfig $instanceConfig */ $instanceConfig = InstanceConfig::instance(); $instanceConfig->setInstanceId('test'); $instanceConfig->setModule('module/xpressengine@board'); $instanceConfig->setTheme('defaultTheme'); $instanceConfig->setUrl('freeboard'); $this->assertEquals('freeboard', $instanceConfig->getUrl()); $this->assertEquals('module/xpressengine@board', $instanceConfig->getModule()); $this->assertEquals('test', $instanceConfig->getInstanceId()); $this->assertEquals('defaultTheme', $instanceConfig->getTheme()); }
/** * register presenter * * @return void */ private function registerPresenter() { $this->app->singleton('xe.presenter', function ($app) { $proxyClass = $app['xe.interception']->proxy(Presenter::class, 'Presenter'); /** @var \Xpressengine\Presenter\Presenter $presenter */ $presenter = new $proxyClass($app['view'], $app['request'], $app['xe.theme'], $app['xe.skin'], $app['xe.settings'], InstanceConfig::instance()); HtmlRenderer::setCommonHtmlWrapper(app('config')['xe.HtmlWrapper.common']); HtmlRenderer::setPopupHtmlWrapper(app('config')['xe.HtmlWrapper.popup']); /** @var \Xpressengine\Presenter\RendererInterface $proxyHtmlRenderer */ $proxyHtmlRenderer = $app['xe.interception']->proxy(HtmlRenderer::class, 'HtmlRenderer'); /** @var \Xpressengine\Presenter\RendererInterface $proxyJsonRenderer */ $proxyJsonRenderer = $app['xe.interception']->proxy(JsonRenderer::class, 'JsonRenderer'); $presenter->register($proxyHtmlRenderer::format(), function (Presenter $presenter) use($proxyHtmlRenderer) { return new $proxyHtmlRenderer($presenter, app('xe.seo'), app('xe.widget.parser')); }); $presenter->register($proxyJsonRenderer::format(), function (Presenter $presenter) use($proxyJsonRenderer) { return new $proxyJsonRenderer($presenter); }); return $presenter; }); }
/** * show document * * @param Request $request request * @param string $slug slug * @return mixed */ public function index(Request $request, $slug) { $slug = BoardSlug::where('slug', $slug)->first(); $instanceId = $slug->instanceId; $id = $slug->targetId; $instanceConfig = InstanceConfig::instance(); $instanceConfig->setInstanceId($slug->instanceId); /** * @var Handler $handler * @var ConfigHandler $configHandler * @var UrlHandler $urlHandler * @var BoardPermissionHandler $permission */ $handler = app('xe.board.handler'); $configHandler = app('xe.board.config'); $urlHandler = app('xe.board.url'); $permission = app('xe.board.permission'); $this->setCurrentPage($request, $handler, $configHandler, $slug); $userController = new UserController($handler, $configHandler, $urlHandler, $permission); return $userController->show($request, $permission, $instanceId, $id); }
/** * Generate a URL to a named route. * * @param string $name route name * @param array $parameters route parameter * @param string $instanceId instance id * @param bool $absolute absolute bool * @param \Illuminate\Routing\Route $route illuminate route * * @return string */ function instanceRoute($name, $parameters = array(), $instanceId = null, $absolute = true, $route = null) { /** * @var Xpressengine\Routing\RouteCollection $routeCollection */ if ($instanceId === null) { $instanceConfig = InstanceConfig::instance(); $module = $instanceConfig->getModule(); $url = $instanceConfig->getUrl(); } else { /** * @var $instanceRouter InstanceRouteHandler */ $instanceRouter = app('xe.router'); $instanceRoute = $instanceRouter->getByInstanceId($instanceId); $url = $instanceRoute->url; $module = $instanceRoute->module; } $name = $module . '.' . $name; array_unshift($parameters, $url); return app('url')->route($name, $parameters, $absolute, $route); }
/** * setInstanceConfig * * @param InstanceRoute $instanceRoute instance route * @param XeRequest $request xpressengine request * * @return void */ private function setInstanceConfig(InstanceRoute $instanceRoute, XeRequest $request) { $item = $this->menuHandler->getItem($instanceRoute->instanceId); $menuConfig = $this->menuHandler->getMenuItemTheme($item); if ($request->isMobile()) { $theme = $menuConfig->get('mobileTheme'); } else { $theme = $menuConfig->get('desktopTheme'); } $instanceId = $instanceRoute->instanceId; $module = $instanceRoute->module; $url = $instanceRoute->url; $instanceConfig = InstanceConfig::instance(); $instanceConfig->setTheme($theme); $instanceConfig->setInstanceId($instanceId); $instanceConfig->setModule($module); $instanceConfig->setUrl($url); $themeHandler = $this->themeHandler; $themeHandler->selectTheme($theme); }
/** * getMenuItem * * @return MenuItem */ protected function getMenuItem() { /** * @var MenuRetrieveHandler $menuHandler */ $instanceConfig = InstanceConfig::instance(); $menuHandler = $this->app['xe.menu']; $item = $menuHandler->getItem($instanceConfig->instanceId); return $item; }
/** * set board list * * @return void */ protected function setBoardList() { $instanceConfig = InstanceConfig::instance(); $instanceId = $instanceConfig->getInstanceId(); $configHandler = app('xe.board.config'); $boards = $configHandler->gets(); $boardList = []; /** @var ConfigEntity $config */ foreach ($boards as $config) { // 현재의 게시판은 리스트에서 제외 if ($instanceId === $config->get('boardId')) { continue; } $boardList[] = ['value' => $config->get('boardId'), 'text' => $config->get('boardName')]; } $this->data['boardList'] = $boardList; }
/** * PageUserController constructor. */ public function __construct() { XePresenter::setSkinTargetId(PageModule::getId()); $instanceConfig = InstanceConfig::instance(); $this->pageId = $instanceConfig->getInstanceId(); }
/** * skin 설정할 때 thumbnail table 을 join 할 수 있도록 intercept 등록 * * @return void */ protected static function interceptSetSkinTargetId() { intercept(sprintf('%s@setSkinTargetId', Presenter::class), 'board_gallery_skin::set_skin_target_id', function ($func, $skinTargetId) { $func($skinTargetId); $request = app('request'); $instanceConfig = InstanceConfig::instance(); if ($request instanceof Request) { $isMobile = $request->isMobile(); } else { $isMobile = false; } $assignedSkin = XeSkin::getAssigned([$skinTargetId, $instanceConfig->getInstanceId()], $isMobile ? 'mobile' : 'desktop'); // target 의 스킨이 현재 skin 의 아이디와 일치하는지 확인 if (in_array($assignedSkin->getId(), static::getThumbSkins())) { // 리스트 출력할 때 gallery thumbnail 확인을 위한 table join 이벤트 등록 Event::listen('xe.plugin.board.articles', function ($query) { $query->leftJoin('board_gallery_thumbs', sprintf('%s.%s', $query->getQuery()->from, 'id'), '=', sprintf('%s.%s', 'board_gallery_thumbs', 'targetId')); }); } }); }
/** * 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); }
/** * Return current Instance Id * * @return string */ function getCurrentInstanceId() { $instanceConfig = InstanceConfig::instance(); return $instanceConfig->getInstanceId(); }
/** * UserController constructor. * * @param Handler $handler * @param ConfigHandler $configHandler * @param UrlHandler $urlHandler * @param BoardPermissionHandler $boardPermission */ public function __construct(Handler $handler, ConfigHandler $configHandler, UrlHandler $urlHandler, BoardPermissionHandler $boardPermission) { $instanceConfig = InstanceConfig::instance(); $this->instanceId = $instanceConfig->getInstanceId(); $this->handler = $handler; $this->configHandler = $configHandler; $this->urlHandler = $urlHandler; $this->config = $configHandler->get($this->instanceId); if ($this->config !== null) { $urlHandler->setConfig($this->config); $this->isManager = false; if (Gate::allows(BoardPermissionHandler::ACTION_MANAGE, new Instance($boardPermission->name($this->instanceId)))) { $this->isManager = true; } } // set Skin XePresenter::setSkinTargetId(BoardModule::getId()); XePresenter::share('handler', $handler); XePresenter::share('configHandler', $configHandler); XePresenter::share('urlHandler', $urlHandler); XePresenter::share('isManager', $this->isManager); XePresenter::share('instanceId', $this->instanceId); XePresenter::share('config', $this->config); }
/** * getMenuItem * * @return MenuItem */ protected function getMenuItem() { $instanceConfig = InstanceConfig::instance(); return $instanceConfig->getMenuItem(); }