/** * 多语言 * * @param <type> $lan 要转义的字符串 */ public function language($lan) { $return = language('controller', $lan, get_gvar('APPLICATION'), get_gvar('CONTROLLER'), get_gvar('ACTION')); return $return; }
/** * 替换SQL中的中文名,执行SQL,返回执行结果;返回结果为: * 正常:array('isError'=> false, 'data' =>'执行结果,二维数组'); * 出错:array('isError' => true, * 'errorMsg' => '出错信息', * 'data' => '解析后的执行SQL'); * * @param string $pCnName 项目中文名 * @param string $sql SQL * @return array 当出错时isError为true,data中执行结果; * 否则isError为false,data中为执行SQL, * data中为错误提示信息。 * */ public function execSQL($pCnName, $sql) { $result = $this->execCodeSection($pCnName, $sql); if (is_string($result)) { return array('isError' => true, 'errorMsg' => $result, 'data' => $sql); } $sql = $result['code']; $tName = $result['tCnName']; $dModel = $this->getDModel(); $model = new Plugin_Model($this->getDModel(), get_gvar($pCnName . $tName, $this->getTnameKey())); return $model->query($sql, true); }
/** * 多语言函数 * * @param <string> $app app * @param <type> $module 语言模块 * @param <type> $lan 需要转义的key, 如果为'*'则输出全部语言数组 * @param <type> $function 具体的方法名。 * * @modify shiling //模板里增加全局语言文件public.php */ function language($module, $lan = '*', $app = '', $controller = '', $action = '', $dl = false) { $defaultLanguage = 'cn'; $unknown = $lan; //$unknown = 'unknown';//当需要转义的字符串找不到时返回的默认值 if (!$app) { $app = get_gvar('APPLICATION'); } $lanData = array(); if (!$dl) { $language = isset($GLOBALS['LANGUAGE']) ? $GLOBALS['LANGUAGE'] : $defaultLanguage; } else { $language = $defaultLanguage; } $lanDir = _APP_ . '_language' . _DIR_SEPARATOR_ . $language; if (!is_dir($lanDir)) { //语言包不存在,转为默认语言 $language = 'cn'; $lanDir = _APP_ . '_language' . _DIR_SEPARATOR_ . $language; } if ($module == 'controller') { //对controller的转义 $lanData = C($app . '.php', '', $lanDir); if (!isset($lanData[$module])) { return $unknown; } $lanData = $lanData[$module]; $lan = $controller . '.' . $action . '.' . $lan; } elseif ($module == 'model') { //对Model的转义 if (!empty($app)) { $lanData = C($app . '.php', '', $lanDir); $lanData = $lanData['model']; } } elseif ($module == 'template') { //对模板的转义 if (empty($app)) { $lanData = C('template.php', '', $lanDir); } else { $lanData = C($app . '.php', '', $lanDir); } $lanData = $lanData['template']; //私用语言文件覆盖全局文件 $publicData = C('public.php', '', $lanDir); if (is_array($lanData) && is_array($publicData)) { $lanData = array_merge($publicData, $lanData); } } else { //对自定义语言模块的转义 $lanData = C($module . '.php', '', $lanDir); //var_dump($lanData); } if ($lan == '*') { return $lanData; } if (isset($lanData[$lan])) { return $lanData[$lan]; } //转义字符不存在,到默认语言包中寻找 if ($language != $defaultLanguage) { $args = func_get_args(); @($r = language($args[0], $args[1], $args[2], $args[3], $args[4], true)); return $r; } return $unknown; }
/** * 多语言转义函数 * * @param <type> $lan 要转义的字符串 */ public function language($lan, $app = '') { $return = language('model', $lan, $app ? $app : get_gvar('APPLICATION')); //language($module, $lan, $app, $controller, $action); return $return; }