. * * @copyright Copyright: 2009 Chunsheng Wang * @author Chunsheng Wang * @package install * @version $Id$ * @link http://www.zentao.cn */ class install extends control { const VERSION = '0.4 beta'; /* 构造函数,检查是否是通过安装入口调用。*/ public function __construct() { if(!defined('IN_INSTALL')) die(); parent::__construct(); } /* 安装程序首页。*/ public function index() { if(!isset($this->config->installed) or !$this->config->installed) $this->session->set('installing', true); $this->view->header->title = $this->lang->install->welcome; $this->display(); } /* 第一步: 系统检查。*/ public function step1() { $this->view->header->title = $this->lang->install->checking; $this->view->phpVersion = $this->install->getPhpVersion(); $this->view->phpResult = $this->install->checkPHP(); $this->view->pdoResult = $this->install->checkPDO(); $this->view->pdoMySQLResult = $this->install->checkPDOMySQL(); $this->view->tmpRootInfo = $this->install->getTmpRoot(); $this->view->tmpRootResult = $this->install->checkTmpRoot(); $this->view->dataRootInfo = $this->install->getDataRoot(); $this->view->dataRootResult = $this->install->checkDataRoot(); $this->view->iniInfo = $this->install->getIniInfo(); $this->display(); } /* 第二步:配置表单。*/ public function step2() { $this->view->header->title = $this->lang->install->setConfig; $this->display(); } /* 生成配置文件。*/ public function step3() { if(!empty($_POST)) { $return = $this->install->checkConfig(); if($return->result == 'ok') { $this->view = (object)$_POST; $this->view->lang = $this->lang; $this->view->config = $this->config; $this->view->domain = $this->server->HTTP_HOST; $this->view->header->title = $this->lang->install->saveConfig; $this->display(); } else { $this->view->header->title = $this->lang->install->saveConfig; $this->view->error = $return->error; $this->display(); } } else { $this->locate($this->createLink('install')); } } /* 第四步,创建公司,生成管理员帐号。*/ public function step4() { if(!empty($_POST)) { $this->install->grantPriv(); if(dao::isError()) die(js::error(dao::getError())); $this->loadModel('upgrade')->updateVersion(self::VERSION); echo (js::alert($this->lang->install->success)); unset($_SESSION['installing']); die(js::locate('index.php', 'parent')); } $this->view->header->title = $this->lang->install->getPriv; if(!isset($this->config->installed) or !$this->config->installed) { $this->view->error = $this->lang->install->errorNotSaveConfig; $this->display(); } else { $this->view->pmsDomain = $this->server->HTTP_HOST; $this->display(); } } }