dbh and !empty($this->config->db->name)) { global $config; if(!isset($config->global)) $config->global = new stdclass(); $flow = $this->dbh->query('SELECT value FROM' . TABLE_CONFIG . "WHERE `owner`='system' AND `module`='common' AND `key`='flow'")->fetch(); $config->global->flow = $flow ? $flow->value : 'full'; try { $productProject = $this->dbh->query('SELECT value FROM' . TABLE_CONFIG . "WHERE `owner`='system' AND `module`='custom' AND `key`='productProject'")->fetch(); } catch (PDOException $exception) { $repairCode = '|1034|1035|1194|1195|1459|'; $errorInfo = $exception->errorInfo; $errorCode = $errorInfo[1]; $errorMsg = $errorInfo[2]; $message = $exception->getMessage(); if(strpos($repairCode, "|$errorCode|") !== false or ($errorCode == '1016' and strpos($errorMsg, 'errno: 145') !== false) or strpos($message, 'repair') !== false) { if(isset($config->framework->autoRepairTable) and $config->framework->autoRepairTable) { header("location: " . $config->webRoot . 'checktable.php'); exit; } } } } $productCommon = $projectCommon = 0; if(!empty($this->config->isINT)) $projectCommon = 1; if($productProject) { $productProject = $productProject->value; list($productCommon, $projectCommon) = explode('_', $productProject); } $lang->productCommon = isset($this->config->productCommonList[$this->clientLang][(int)$productCommon]) ? $this->config->productCommonList[$this->clientLang][(int)$productCommon] : $this->config->productCommonList['zh-cn'][0]; $lang->projectCommon = isset($this->config->projectCommonList[$this->clientLang][(int)$projectCommon]) ? $this->config->projectCommonList[$this->clientLang][(int)$projectCommon] : $this->config->projectCommonList['zh-cn'][0]; } parent::loadLang($moduleName, $appName); /* Merge from the db lang. */ if($moduleName != 'common' and isset($lang->db->custom[$moduleName])) { foreach($lang->db->custom[$moduleName] as $section => $fields) { if(isset($lang->{$moduleName}->{$section}[''])) { $nullKey = ''; $nullValue = $lang->{$moduleName}->{$section}[$nullKey]; } elseif(isset($lang->{$moduleName}->{$section}[0])) { $nullKey = 0; $nullValue = $lang->{$moduleName}->{$section}[0]; } unset($lang->{$moduleName}->{$section}); if(isset($nullKey))$lang->{$moduleName}->{$section}[$nullKey] = $nullValue; foreach($fields as $key => $value) $lang->{$moduleName}->{$section}[$key] = $value; unset($nullKey); unset($nullValue); } } return $lang; } /** * Save error info. * * @param int $level * @param string $message * @param string $file * @param int $line * @access public * @return void */ public function saveError($level, $message, $file, $line) { $fatalLevel[E_ERROR] = E_ERROR; $fatalLevel[E_PARSE] = E_PARSE; $fatalLevel[E_CORE_ERROR] = E_CORE_ERROR; $fatalLevel[E_USER_ERROR] = E_USER_ERROR; if(isset($fatalLevel[$level])) $this->config->debug = true; parent::saveError($level, $message, $file, $line); } /** * Alias load module config. * * @param string $moduleName * @param string $appName * @access public * @return void */ public function loadConfig($moduleName, $appName = '') { return parent::loadModuleConfig($moduleName, $appName); } /** * Export config. * * @access public * @return void */ public function exportConfig() { ob_start(); parent::exportConfig(); $view = ob_get_contents(); ob_end_clean(); $view = json_decode($view); $view->rand = $this->session->random; $this->session->set('rand', $this->session->random); echo json_encode($view); } /** * PATH_INFO方式解析,获取$URI和$viewType。 * Parse PATH_INFO, get the $URI and $viewType. * * @access public * @return void */ public function parsePathInfo() { parent::parsePathInfo(); if($this->get->display == 'card') $this->viewType = 'xhtml'; } /** * GET请求方式解析,获取$URI和$viewType。 * Parse GET, get $URI and $viewType. * * @access public * @return void */ public function parseGET() { parent::parseGET(); if($this->get->display == 'card') $this->viewType = 'xhtml'; } /** * 合并请求的参数和默认参数,这样就可以省略已经有默认值的参数了。 * Merge the params passed in and the default params. Thus the params which have default values needn't pass value, just like a function. * * @param array $defaultParams the default params defined by the method. * @param array $passedParams the params passed in through url. * @access public * @return array the merged params. */ public function mergeParams($defaultParams, $passedParams) { unset($passedParams['display']); return parent::mergeParams($defaultParams, $passedParams); } }