/** * サブサイト情報編集 * * @param $id */ public function admin_edit($id) { if (!$id) { $this->notFound(); } if (!$this->request->data) { $this->request->data = $this->Site->find('first', ['conditions' => ['Site.id' => $id], 'recursive' => -1]); if (!$this->request->data) { $this->notFound(); } } else { /*** Sites.beforeEdit ** */ $event = $this->dispatchEvent('beforeEdit', ['data' => $this->request->data]); if ($event !== false) { $this->request->data = $event->result === true ? $event->data['data'] : $event->result; } if ($data = $this->Site->save($this->request->data)) { /*** Sites.afterEdit ***/ $this->dispatchEvent('afterEdit', ['data' => $data]); $this->setMessage('サブサイト「' . $this->request->data['Site']['name'] . '」を更新しました。', false, true); $this->redirect(array('action' => 'edit', $id)); } else { $this->setMessage('入力エラーです。内容を修正してください。', true); } } $this->pageTitle = 'サブサイト編集'; $defaultThemeName = 'サイト基本設定に従う'; if (!empty($this->siteConfigs['theme'])) { $defaultThemeName .= '(' . $this->siteConfigs['theme'] . ')'; } $themes = BcUtil::getThemeList(); if (in_array($this->siteConfigs['theme'], $themes)) { unset($themes[$this->siteConfigs['theme']]); } $this->set('mainSites', $this->Site->getSiteList(0, ['excludeIds' => $this->request->data['Site']['id']])); $this->set('themes', array_merge(['' => $defaultThemeName], $themes)); $this->help = 'sites_form'; }