getTemplateList() public static method

レイアウトテンプレートのリストを取得する
public static getTemplateList ( string $path, string $plugin, string $theme ) : array
$path string
$plugin string
$theme string
return array
Exemplo n.º 1
0
 /**
  * フォルダのテンプレートリストを取得する
  *
  * @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;
 }
Exemplo n.º 2
0
 /**
  * [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';
 }
Exemplo n.º 3
0
 /**
  * 固定ページテンプレートリストを取得する
  *
  * @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;
 }
Exemplo n.º 4
0
 /**
  * コンテンツ保存フォームを設定する
  *
  * @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;
 }