/**
* テーマをアップロードして適用する
*/
public function admin_add()
{
$this->pageTitle = 'テーマアップロード';
$this->subMenuElements = array('themes');
if ($this->request->data) {
if (empty($this->request->data['Theme']['file']['tmp_name'])) {
$this->setMessage('ファイルのアップロードに失敗しました。', true);
} else {
$name = $this->request->data['Theme']['file']['name'];
move_uploaded_file($this->request->data['Theme']['file']['tmp_name'], TMP . $name);
App::uses('BcZip', 'Lib');
$BcZip = new BcZip();
if ($BcZip->extract(TMP . $name, BASER_THEMES)) {
$theme = $BcZip->topArchiveName;
unlink(TMP . $name);
$this->_applyTheme($theme);
$this->redirect(array('action' => 'index'));
} else {
$msg = 'アップロードしたZIPファイルの展開に失敗しました。';
$msg .= '<br />' . $BcZip->error;
$this->setMessage($msg, true);
}
}
}
}