/** * フォルダのテンプレートリストを取得する * * @param $contentId * @param $theme * @return array */ public function getFolderTemplateList($contentId, $theme) { $folderTemplates = BcUtil::getTemplateList('ContentFolders', '', $theme); if ($contentId != 1) { $parentTemplate = $this->getParentTemplate($contentId, 'folder'); $searchKey = array_search($parentTemplate, $folderTemplates); if ($searchKey !== false) { unset($folderTemplates[$searchKey]); } array_unshift($folderTemplates, array('' => '親フォルダの設定に従う(' . $parentTemplate . ')')); } return $folderTemplates; }
/** * [ADMIN] 管理者ダッシュボードページを表示する * * @return void */ public function admin_index() { $this->pageTitle = '管理者ダッシュボード'; $panels = []; $panels['Core'] = BcUtil::getTemplateList('Elements/admin/dashboard', '', $this->siteConfigs['theme']); $plugins = CakePlugin::loaded(); if ($plugins) { foreach ($plugins as $plugin) { $panels[$plugin] = BcUtil::getTemplateList('Elements/admin/dashboard', $plugin, $this->siteConfigs['theme']); } } $this->set('panels', $panels); $this->help = 'dashboard_index'; }
/** * 固定ページテンプレートリストを取得する * * @param $contentId * @param $theme * @return array */ public function getPageTemplateList($contentId, $theme) { $pageTemplates = BcUtil::getTemplateList('Pages/templates', '', $theme); if ($contentId != 1) { $ContentFolder = ClassRegistry::init('ContentFolder'); $parentTemplate = $ContentFolder->getParentTemplate($contentId, 'page'); $searchKey = array_search($parentTemplate, $pageTemplates); if ($searchKey !== false) { unset($pageTemplates[$searchKey]); } array_unshift($pageTemplates, array('' => '親フォルダの設定に従う(' . $parentTemplate . ')')); } return $pageTemplates; }
/** * コンテンツ保存フォームを設定する * * @param Controller $controller * @return void */ public function settingForm(Controller $controller, $currentSiteId, $currentContentId = null) { // コントロールソースを設定 $options = array(); if ($controller->name == 'ContentFolders') { $options['excludeId'] = $currentContentId; } $data = $controller->request->data; $theme = $this->_Controller->siteConfigs['theme']; $site = BcSite::findById($data['Content']['site_id']); if ($site->theme) { $theme = $site->theme; } $templates = array_merge(BcUtil::getTemplateList('Layouts', '', $theme), BcUtil::getTemplateList('Layouts', $this->_Controller->plugin, $theme)); if ($data['Content']['id'] != 1) { $parentTemplate = $this->getParentLayoutTemplate($data['Content']['id']); if (in_array($parentTemplate, $templates)) { unset($templates[$parentTemplate]); } array_unshift($templates, array('' => '親フォルダの設定に従う(' . $parentTemplate . ')')); } $data['Content']['name'] = urldecode($data['Content']['name']); $controller->set('layoutTemplates', $templates); $controller->set('parentContents', $controller->Content->getContentFolderList($currentSiteId, $options)); $controller->set('authors', $controller->User->getUserList()); $Site = ClassRegistry::init('Site'); $site = $controller->Content->find('first', ['conditions' => ['Content.id' => $data['Content']['id']]]); if (!is_null($site['Site']['main_site_id'])) { $mainSiteId = $site['Site']['main_site_id']; } else { $mainSiteId = 0; } $siteList = ['' => ''] + $controller->Content->Site->getSiteList(); $controller->set('sites', $siteList); $controller->set('mainSiteDisplayName', $siteList[0]); $data['Site'] = $site['Site']; $controller->set('mainSiteId', $mainSiteId); $controller->set('relatedContents', $Site->getRelatedContents($data['Content']['id'])); $related = false; if ($data['Site']['relate_main_site'] && $data['Content']['main_site_content_id'] && $data['Content']['alias_id'] || $data['Site']['relate_main_site'] && $data['Content']['main_site_content_id'] && $data['Content']['type'] == 'ContentFolder') { $related = true; } $controller->set('related', $related); $controller->request->data = $data; }