* @package * @uses control * @license LGPL * @version $Id$ * @Link http://www.zentao.net */ class dev extends control { /** * Get API of system. * * @access public * @return void */ public function api($module = '') { $this->view->title = $this->lang->dev->api; $this->view->position[] = html::a(inlink('api'), $this->lang->dev->common); $this->view->position[] = $this->lang->dev->api; $this->view->tables = $this->dev->getTables(); $this->view->tab = 'api'; $this->view->selectedModule = $module; $this->view->apis = $module ? $this->dev->getAPIs($module) : array(); $this->view->moduleTree = $this->dev->getTree($module, 'module'); $this->display(); } /** * Get schema of database. * * @param string $table * @access public * @return void */ public function db($table = '') { $this->view->title = $this->lang->dev->db; $this->view->position[] = html::a(inlink('api'), $this->lang->dev->common); $this->view->position[] = $this->lang->dev->db; $this->view->tableTree = $this->dev->getTree($table, 'table'); $this->view->selectedTable = $table; $this->view->tab = 'db'; $this->view->fields = $table ? $this->dev->getFields($table) : array(); $this->display(); } /** * Editor. * * @access public * @return void */ public function editor() { $this->view->title = $this->lang->dev->editor; $this->view->position[] = html::a(inlink('api'), $this->lang->dev->common); $this->view->position[] = $this->lang->dev->editor; $this->view->tab = 'editor'; $this->display(); } /** * Translate. * * @access public * @return void */ public function translate() { $this->view->title = $this->lang->dev->translate; $this->view->position[] = $this->lang->dev->translate; $this->display(); } /** * Custom menu lang item. * * @param string $type common|first|second|third|tag * @param string $module * @param string $method * @param string $language zh_cn|en|fr|de|zh_tw * @access public * @return void */ public function langItem($type = 'common', $module = '', $method = '', $language = '') { $clientLang = $this->app->getClientLang(); if(empty($language)) $language = $clientLang; $language = str_replace('_', '-', $language); if($type == 'second' and empty($module)) $module = 'my'; $moduleName = $module; if($type == 'common' or $type == 'first') $moduleName = 'common'; if($type == 'second') $moduleName = $module . 'Menu'; if($type == 'third') { if($this->config->vision == 'lite') { $module = $module == '' ? 'kanbanProject' : $module; $method = $method == '' ? 'settings' : $method; } elseif(empty($method)) { $module = 'my'; $method = 'work'; } $moduleName = $module . 'SubMenu'; } if($type == 'tag') { if(empty($module)) $module = 'my'; if(empty($method)) $method = 'todo'; $moduleName = $module; } if($this->server->request_method == 'POST') { $this->dev->saveCustomedLang($type, $moduleName, $method, $language); return $this->send(array('result' => 'success', 'locate' => 'top', 'message' => $this->lang->saveSuccess)); } if($clientLang != $language) { $currentCommonLang = $this->config->custom->commonLang; $commonLang = $this->dev->getOriginalLang('common', '', '', $language); $commonLang = array_merge($commonLang, $this->dev->getCustomedLang('common', '', '', $language)); foreach($commonLang as $commonKey => $langValue) { $upperKey = '$' . strtoupper($commonKey); if(isset($this->config->custom->commonLang[$upperKey])) $this->config->custom->commonLang[$upperKey] = $langValue; } $this->view->currentLangs = $this->dev->getOriginalLang($type, $module, $method, $clientLang); $this->view->currentCommonLang = $currentCommonLang; } $this->view->title = $this->lang->langItem; $this->view->type = $type; $this->view->originalLangs = $this->dev->getOriginalLang($type, $module, $method, $language); $this->view->customedLangs = $this->dev->getCustomedLang($type, $module, $method, $language); $this->view->menuTree = $this->dev->getMenuTree($type, $module, $method); $this->view->moduleName = $moduleName; $this->view->module = $module; $this->view->method = $method; $this->view->language = str_replace('-', '_', $language); $this->display(); } /** * Reset customed menu lang. * * @param string $type common|first|second|third|tag * @param string $module * @param string $method * @param string $language zh_cn|en|fr|de|zh_tw * @param string $confirm no|yes * @access public * @return void */ public function resetLang($type = 'common', $module = '', $method = '', $language = 'zh_cn', $confirm = 'no') { if($confirm == 'no') return print(js::confirm($this->lang->dev->confirmRestore, inlink('resetLang', "type={$type}&module={$module}&method={$method}&language={$language}&confirm=yes"))); $language = str_replace('_', '-', $language); $section = ''; if($type == 'common') $section = '§ion='; if($type == 'first') $section = '§ion=mainNav'; if($type == 'tag') { if($this->config->vision == 'lite' and isset($this->config->dev->liteTagMethod["$module-$method"])) $method = $this->config->dev->liteTagMethod["$module-$method"]; $section = str_replace('_', '-', "§ion=featureBar-{$method}"); $this->dao->delete()->from(TABLE_LANG)->where('lang')->eq($language)->andWhere('module')->eq($module)->andWhere('section')->like("moreSelects-$method%")->andWhere('vision')->eq($this->config->vision)->exec(); } $key = ''; if($type == 'common') $key = '&key=projectCommon,productCommon,executionCommon'; $this->loadModel('custom')->deleteItems("lang={$language}&module={$module}&vision={$this->config->vision}{$section}{$key}"); if($this->config->vision == 'rnd' and $type == 'common' and $this->config->custom->URSR) { $oldValue = $this->dao->select('*')->from(TABLE_LANG)->where('`key`')->eq($this->config->custom->URSR)->andWhere('section')->eq('URSRList')->andWhere('lang')->eq($language)->andWhere('module')->eq('custom')->fetch('value'); if($oldValue) { $oldValue = json_decode($oldValue); $_POST = array(); $_POST['SRName'] = zget($oldValue, 'defaultSRName', $oldValue->SRName); $_POST['URName'] = zget($oldValue, 'defaultURName', $oldValue->URName); $this->custom->updateURAndSR($this->config->custom->URSR, $language); } } return print(js::reload('parent.parent')); } }