/** * */ public function index_action($action = 'import') { $this->hookAdminMenu(1); $this->hookAdminMenu(3); switch ($action) { case 'import': $form = new Form('Lang/forms/import'); if ($result = $form->result()) { if ($file = $result->file) { $zip = new Zip(array('file' => $file->path, 'check' => array('type' => 'lang'))); if ($zip->extract(LANG)) { $info = $zip->info(); $langs = $this->getLangs(array($info['lang'])); success(t('<b>Архив успешно распакован!</b> Индекс для языка <b>«%s»</b> установлен.', implode($langs)), '', 'content'); } $zip->close(); unlink($file->path); } } $form->show(); break; case 'export': template('Lang/templates/download')->show(); break; case 'download': $file = ROOT . $this->prepareFilePath(); $archive = TEMP . DS . pathinfo($file, PATHINFO_FILENAME) . '.zip'; $zip = new Zip(array('file' => $archive, 'create' => TRUE)); $zip->add($file); $zip->info(array('type' => 'lang', 'lang' => config('lang.lang'))); $zip->close(); File::download($archive, basename($archive), TRUE); break; } }
/** * Выгрузка файла конфигурации */ public function download_action($themes = array()) { $archive_name = 'config.zip'; $path = TEMP . DS . $archive_name; $zip = new Zip(array('file' => $path, 'create' => TRUE)); $zip->info(array('type' => 'config')); $zip->add(ROOT . DS . 'config' . EXT); $zip->close(); File::download($path, $archive_name, TRUE); }
/** * Загрузка тем */ public function upload_action() { $this->hookAdminMenu(); $this->hookAdminMenu(2); $form = new Form('Gears/forms/add'); if ($result = $form->result()) { if ($file = $result->file ? $result->file : $result->url) { $zip = new Zip(array('file' => UPLOADS . $file, 'check' => array('type' => 'gears'))); if ($zip->extract(GEARS)) { $info = $zip->info(); success(t('<b>Архив успешно распакован!</b> <p>Он содержал в себе следующие шестерёнки: <ul><li>%s</li></ul>', implode('</li><li>', $info['gears'])), '', 'content'); } $zip->close(); unlink(UPLOADS . $file); } } $form->show(); }