/** * 테마를 출력한다. * * @return string */ public function render() { // load assets $this->loadAssets(); // get configuration data of theme $config = $this->getConfig(); // get menu & selected menu $mainMenu = $this->getMenu($config, 'mainmenu', true); $selectedMenu = $this->selectedMenu; // get submenus $subMenus = []; if ($config['submenu1_title']) { $subMenus[$config['submenu1_title']] = $this->getMenu($config, 'submenu1'); } if ($config['submenu2_title']) { $subMenus[$config['submenu2_title']] = $this->getMenu($config, 'submenu2'); } if ($config['no_snb'] !== 'no_snb') { //$ctClass = 'container section'; $sideMenu = $this->getMenu($config, 'mainmenu', true); } $config['sub'] = 'sub'; $config['no_spot'] = ''; $config['ct_class'] = 'container section'; // render html return \View::make(Alice::getIdWith('views.sub'), compact('config', 'mainMenu', 'subMenus', 'selectedMenu', 'sideMenu')); }
/** * 테마를 출력한다. * * @return string */ public function render() { // load assets $this->loadAssets(); // get configuration data of theme $config = $this->getConfig(); $mainMenu = $this->getMenu($config, 'mainmenu'); $subMenus = []; if ($config['submenu1_title']) { $subMenus[$config['submenu1_title']] = $this->getMenu($config, 'submenu1'); } if ($config['submenu2_title']) { $subMenus[$config['submenu2_title']] = $this->getMenu($config, 'submenu2'); } $config['no_snb'] = ''; $config['no_spot'] = ''; $config['snb'] = ''; $config['ct_class'] = ''; // render html return \View::make(Alice::getIdWith('views.main'), compact('config', 'mainMenu', 'subMenus')); }
public function update(Request $request) { $config = $request->only(['title', 'mainmenu', 'submenu1', 'submenu1_title', 'submenu2', 'submenu2_title', 'slide_img1', 'slide_img2', 'slide_img3', 'slide_video', 'sub_bg', 'sidemenu2', 'sidemenu_title', 'mode', 'no_snb', 'bg_none', 'header_scroll']); $oldConfig = \Theme::getThemeConfig($this->configId); // process images /** @var \Xpressengine\Storage\Storage $storage */ $storage = app('xe.storage'); /** @var MediaManager $media */ $media = app('xe.media'); $imageInputs = ['slide_img1', 'slide_img2', 'slide_img3', 'slide_video', 'sub_bg']; foreach ($imageInputs as $key) { $uploadedFile = array_get($config, $key); $configId = $key . 'Id'; $configPath = $key . 'Path'; if ($uploadedFile !== null) { // remove old logo file if (isset($oldConfig[$configId])) { $oldFileId = $oldConfig[$configId]; $oldFile = $storage->get($oldFileId); if ($oldFile) { $storage->remove($oldFile); } } $file = $storage->upload($uploadedFile, Alice::getId(), null, 'plugin'); $mediaFile = $media->make($file); $fileId = $file->getId(); $filePath = $mediaFile->url(); $config[$configId] = $fileId; $config[$configPath] = $filePath; } else { $config[$configId] = array_get($oldConfig, $configId); $config[$configPath] = array_get($oldConfig, $configPath); } } \Theme::setThemeConfig($this->configId, $config); return \Redirect::back()->with('alert', ['type' => 'success', 'message' => '저장되었습니다.']); }
/** * 테마 편집 페이지에서 편집할 수 있는 파일의 목록을 반환한다. * * @return array */ public static function getEditFiles() { return ['template' => ['main.blade.php' => Alice::getPath('views/main.blade.php'), 'site.blade.php' => Alice::getPath('views/site.blade.php'), 'sub.blade.php' => Alice::getPath('views/sub.blade.php'), 'theme.blade.php' => Alice::getPath('views/theme.blade.php')], 'stylesheets' => ['theme.css' => Alice::getPath('assets/css/theme.css')]]; }