/**
  * @brief Supported languages (was procInstallAdminSaveLangSelected)
  **/
 function saveLangSelected($selected_lang)
 {
     $langs = $selected_lang;
     $lang_supported = Context::loadLangSupported();
     $buff = null;
     for ($i = 0; $i < count($langs); $i++) {
         $buff .= sprintf("%s,%s\n", $langs[$i], $lang_supported[$langs[$i]]);
     }
     FileHandler::writeFile(_XE_PATH_ . 'files/config/lang_selected.info', trim($buff));
     //$this->setMessage('success_updated');
 }
 /**
  * @brief 지원 언어 선택
  **/
 function procInstallAdminSaveLangSelected()
 {
     $selected_lang = trim(Context::get('selected_lang'));
     if (!$selected_lang) {
         return new Object(-1, 'msg_invalid_request');
     }
     $langs = explode('|@|', $selected_lang);
     $lang_supported = Context::loadLangSupported();
     $buff = null;
     for ($i = 0; $i < count($langs); $i++) {
         $buff .= sprintf("%s,%s\n", $langs[$i], $lang_supported[$langs[$i]]);
     }
     FileHandler::writeFile(_XE_PATH_ . 'files/config/lang_selected.info', trim($buff));
     $this->setMessage('success_updated');
 }
Example #3
0
 /**
  * Display Configuration(settings) page
  * @return void
  */
 function dispAdminConfigGeneral()
 {
     Context::loadLang('modules/install/lang');
     $db_info = Context::getDBInfo();
     Context::set('selected_lang', $db_info->lang_type);
     if (strpos($db_info->default_url, 'xn--') !== FALSE) {
         $db_info->default_url = Context::decodeIdna($db_info->default_url);
     }
     Context::set('default_url', $db_info->default_url);
     Context::set('langs', Context::loadLangSupported());
     // site lock
     Context::set('IP', $_SERVER['REMOTE_ADDR']);
     if (!$db_info->sitelock_title) {
         $db_info->sitelock_title = 'Maintenance in progress...';
     }
     if (!in_array('127.0.0.1', $db_info->sitelock_whitelist)) {
         $db_info->sitelock_whitelist[] = '127.0.0.1';
     }
     if (!in_array($_SERVER['REMOTE_ADDR'], $db_info->sitelock_whitelist)) {
         $db_info->sitelock_whitelist[] = $_SERVER['REMOTE_ADDR'];
     }
     $db_info->sitelock_whitelist = array_unique($db_info->sitelock_whitelist);
     Context::set('remote_addr', $_SERVER['REMOTE_ADDR']);
     Context::set('use_sitelock', $db_info->use_sitelock);
     Context::set('sitelock_title', $db_info->sitelock_title);
     Context::set('sitelock_message', htmlspecialchars($db_info->sitelock_message, ENT_COMPAT | ENT_HTML401, 'UTF-8', false));
     $whitelist = implode("\r\n", $db_info->sitelock_whitelist);
     Context::set('sitelock_whitelist', $whitelist);
     if ($db_info->admin_ip_list) {
         $admin_ip_list = implode("\r\n", $db_info->admin_ip_list);
     } else {
         $admin_ip_list = '';
     }
     Context::set('admin_ip_list', $admin_ip_list);
     Context::set('lang_selected', Context::loadLangSelected());
     $oAdminModel = getAdminModel('admin');
     $favicon_url = $oAdminModel->getFaviconUrl();
     $mobicon_url = $oAdminModel->getMobileIconUrl();
     Context::set('favicon_url', $favicon_url . '?' . $_SERVER['REQUEST_TIME']);
     Context::set('mobicon_url', $mobicon_url . '?' . $_SERVER['REQUEST_TIME']);
     $oDocumentModel = getModel('document');
     $config = $oDocumentModel->getDocumentConfig();
     Context::set('thumbnail_type', $config->thumbnail_type);
     $oModuleModel = getModel('module');
     $config = $oModuleModel->getModuleConfig('module');
     Context::set('siteTitle', $config->siteTitle);
     Context::set('htmlFooter', htmlspecialchars($config->htmlFooter));
     // embed filter
     require_once _XE_PATH_ . 'classes/security/EmbedFilter.class.php';
     $oEmbedFilter = EmbedFilter::getInstance();
     context::set('embed_white_object', implode(PHP_EOL, $oEmbedFilter->whiteUrlList));
     context::set('embed_white_iframe', implode(PHP_EOL, $oEmbedFilter->whiteIframeUrlList));
     $columnList = array('modules.mid', 'modules.browser_title', 'sites.index_module_srl');
     $start_module = $oModuleModel->getSiteInfo(0, $columnList);
     Context::set('start_module', $start_module);
     Context::set('pwd', $pwd);
     $this->setTemplateFile('config_general');
     $security = new Security();
     $security->encodeHTML('news..', 'released_version', 'download_link', 'selected_lang', 'module_list..', 'module_list..author..', 'addon_list..', 'addon_list..author..', 'start_module.');
 }
Example #4
0
 /**
  * Find selected languages to serve in the site
  *
  * @return array Selected languages
  */
 function loadLangSelected()
 {
     static $lang_selected = null;
     if (!$lang_selected) {
         $orig_lang_file = _XE_PATH_ . 'common/lang/lang.info';
         $selected_lang_file = _XE_PATH_ . 'files/config/lang_selected.info';
         if (!FileHandler::hasContent($selected_lang_file)) {
             $old_selected_lang_file = _XE_PATH_ . 'files/cache/lang_selected.info';
             FileHandler::moveFile($old_selected_lang_file, $selected_lang_file);
         }
         if (!FileHandler::hasContent($selected_lang_file)) {
             $buff = FileHandler::readFile($orig_lang_file);
             FileHandler::writeFile($selected_lang_file, $buff);
             $lang_selected = Context::loadLangSupported();
         } else {
             $langs = file($selected_lang_file);
             foreach ($langs as $val) {
                 list($lang_prefix, $lang_text) = explode(',', $val);
                 $lang_text = trim($lang_text);
                 $lang_selected[$lang_prefix] = $lang_text;
             }
         }
     }
     return $lang_selected;
 }
 /**
  * @brief Get values for a particular language code
  * Return its corresponding value if lang_code is specified. Otherwise return $name.
  */
 function getLangCode($site_srl, $name, $isFullLanguage = FALSE)
 {
     if ($isFullLanguage) {
         $lang_supported = Context::loadLangSupported();
     } else {
         $lang_supported = Context::get('lang_supported');
     }
     if (substr($name, 0, 12) == '$user_lang->') {
         $args = new stdClass();
         $args->site_srl = (int) $site_srl;
         $args->name = substr($name, 12);
         $output = executeQueryArray('module.getLang', $args);
         if ($output->data) {
             foreach ($output->data as $key => $val) {
                 $selected_lang[$val->lang_code] = $val->value;
             }
         }
     } else {
         $tmp = unserialize($name);
         if ($tmp) {
             $selected_lang = array();
             $rand_name = $tmp[Context::getLangType()];
             if (!$rand_name) {
                 $rand_name = array_shift($tmp);
             }
             if (is_array($lang_supported)) {
                 foreach ($lang_supported as $key => $val) {
                     $selected_lang[$key] = $tmp[$key] ? $tmp[$key] : $rand_name;
                 }
             }
         }
     }
     $output = array();
     if (is_array($lang_supported)) {
         foreach ($lang_supported as $key => $val) {
             $output[$key] = $selected_lang[$key] ? $selected_lang[$key] : $name;
         }
     }
     return $output;
 }
 function getFileAllContents($translation_file_srl)
 {
     if (!$translation_file_srl) {
         return;
     }
     $content_nodes = $this->getFileContentNodes($translation_file_srl);
     // get supported language list
     $lang_supported_list = Context::loadLangSupported();
     $valueArr = array();
     foreach ($content_nodes as $key => $val) {
         $obj->content_node = $val->content_node;
         $obj->translation_file_srl = $translation_file_srl;
         foreach ($lang_supported_list as $lang_key => $lang_val) {
             $obj->lang = $lang_key;
             $value = $this->getRecommendValue($obj);
             if ($value) {
                 $vArr['content_node'] = $obj->content_node;
                 $vArr['lang'] = $obj->lang;
                 $vArr['content'] = $value->content;
                 $vArr['is_new_lang'] = $value->is_new_lang;
                 array_push($valueArr, $vArr);
             }
         }
     }
     $file_info = $this->getFile($translation_file_srl);
     $oXMLContext = new XMLContext($file_info->target_file, "en");
     $xmlContents = $oXMLContext->getXmlFile($valueArr);
     return $xmlContents;
 }
Example #7
0
 /**
  * Display Configuration(settings) page
  * @return void
  */
 function dispAdminConfigGeneral()
 {
     Context::loadLang('modules/install/lang');
     $db_info = Context::getDBInfo();
     Context::set('selected_lang', $db_info->lang_type);
     Context::set('default_url', $db_info->default_url);
     Context::set('langs', Context::loadLangSupported());
     Context::set('lang_selected', Context::loadLangSelected());
     $admin_ip_list = preg_replace("/[,]+/", "\r\n", $db_info->admin_ip_list);
     Context::set('admin_ip_list', $admin_ip_list);
     $oAdminModel =& getAdminModel('admin');
     $favicon_url = $oAdminModel->getFaviconUrl();
     $mobicon_url = $oAdminModel->getMobileIconUrl();
     Context::set('favicon_url', $favicon_url);
     Context::set('mobicon_url', $mobicon_url);
     $oDocumentModel =& getModel('document');
     $config = $oDocumentModel->getDocumentConfig();
     Context::set('thumbnail_type', $config->thumbnail_type);
     Context::set('IP', $_SERVER['REMOTE_ADDR']);
     $oModuleModel =& getModel('module');
     $config = $oModuleModel->getModuleConfig('module');
     Context::set('htmlFooter', $config->htmlFooter);
     $columnList = array('modules.mid', 'modules.browser_title', 'sites.index_module_srl');
     $start_module = $oModuleModel->getSiteInfo(0, $columnList);
     Context::set('start_module', $start_module);
     Context::set('pwd', $pwd);
     $this->setTemplateFile('config_general');
     $security = new Security();
     $security->encodeHTML('news..', 'released_version', 'download_link', 'selected_lang', 'module_list..', 'module_list..author..', 'addon_list..', 'addon_list..author..', 'start_module.');
 }
 /**
  * @brief display insert translation admin page
  **/
 function dispTranslationAdminInsertTranslation()
 {
     if (!in_array($this->module_info->module, array('admin', 'translation'))) {
         return $this->alertMessage('msg_invalid_request');
     }
     // get skin list
     $oModuleModel =& getModel('module');
     $skin_list = $oModuleModel->getSkins($this->module_path);
     Context::set('skin_list', $skin_list);
     // get layout list
     $oLayoutModel =& getModel('layout');
     $layout_list = $oLayoutModel->getLayoutList();
     Context::set('layout_list', $layout_list);
     // get supported language list
     $lang_supported_list = Context::loadLangSupported();
     Context::set('lang_supported_list', $lang_supported_list);
     $this->setTemplateFile('translation_insert');
 }
 function dispTransContent()
 {
     $fileSrl = Context::get('translation_file_srl') ? Context::get('translation_file_srl') : null;
     $projSrl = Context::get('translation_project_srl') ? Context::get('translation_project_srl') : null;
     $mid = Context::get('mid');
     $oTransModel =& getModel('translation');
     $sourceLang = Context::get('source_lang') ? Context::get('source_lang') : $this->module_info->default_lang;
     $targetLang = Context::get('target_lang') ? Context::get('target_lang') : 'zh-CN';
     Context::set('source_lang', $sourceLang);
     Context::set('target_lang', $targetLang);
     $listCount = Context::get('listCount') ? Context::get('listCount') : $this->listCount;
     Context::set('listCount', $listCount);
     $sortType = Context::get('listType') ? Context::get('listType') : 'translation_count';
     Context::set('listType', $sortType);
     //get the file Info
     $fileInfo = $oTransModel->getFileInfo($fileSrl, $projSrl);
     //get project info
     if ($projSrl || $fileInfo) {
         if ($projSrl) {
             $projInfo = $oTransModel->getProjInfoBySrl(array($projSrl));
         } else {
             $f = current($fileInfo->data);
             $projInfo = $oTransModel->getProjInfoBySrl(array($f->translation_project_srl));
         }
         if ($projInfo && $projInfo->data) {
             Context::set('projInfo', $projInfo->data);
         }
         if (!$projSrl) {
             Context::set('translation_project_srl', $projInfo->data->translation_project_srl);
         }
     }
     //if has file_srl in the get params, need file_info to show in the page
     if ($fileSrl) {
         Context::set('fileInfo', current($fileInfo->data));
     }
     //get Source List
     $page = Context::get('page');
     if (!$page) {
         Context::set('page', $page = 1);
     }
     $sourceList = $oTransModel->getSourceList($sourceLang, $targetLang, $fileSrl, $projSrl, $sortType, $listCount, $page, $this->pageCount);
     Context::set('page_navigation', $sourceList->page_navigation);
     if (empty($sourceList->data)) {
         $sourceList->data = array();
     }
     //get other info :targetInfo, dictionary item
     $contentNode = array();
     foreach ($sourceList->data as $key => $dataObj) {
         $contentNode[] = $dataObj->content_node;
         $nodeContent[$dataObj->translation_content_srl] = $this->_removeSpecialTag($dataObj->content);
     }
     //get translation_content_srl
     $targetList = $oTransModel->getTargetList($contentNode, $targetLang, $fileSrl, $projSrl);
     //combine the target info,file info into the source
     foreach ($sourceList->data as $key => &$obj) {
         $obj->targetList = array();
         $obj->content = $this->_removeSpecialTag($obj->content);
         $obj->login_recommend = false;
         if (!empty($targetList->data)) {
             foreach ($targetList->data as $key2 => &$obj2) {
                 if ($obj2->content) {
                     $obj2->content = $this->_removeSpecialTag($obj2->content);
                 }
                 if ($obj->content_node == $obj2->content_node && $obj->translation_file_srl == $obj2->translation_file_srl) {
                     // check whether the target content has been recommended by login user
                     $obj2->login_recommend = false;
                     $recommended_member = explode(':', $obj2->recommended_member);
                     $logged_info = Context::get('logged_info');
                     if (in_array($logged_info->member_srl, $recommended_member)) {
                         $obj->login_recommend = true;
                         $obj2->login_recommend = true;
                     }
                     $obj->targetList[] = $obj2;
                     if ($obj2->is_original) {
                         $obj->targetListTop = $obj2;
                     }
                 }
             }
         }
         if (!$obj->targetListTop && count($obj->targetList) > 0) {
             $obj->targetListTop = $obj->targetList[0];
         }
         $obj->fileInfo = null;
         if (!empty($fileInfo->data)) {
             foreach ($fileInfo->data as $key3 => $obj3) {
                 if ($obj->translation_file_srl == $obj3->translation_file_srl) {
                     $obj->fileInfo = $obj3;
                     break;
                 }
             }
         }
         $obj->content_node = preg_replace('/\\//', '>', $obj->content_node);
     }
     Context::set('sourceList', $sourceList->data);
     $url = getUrl('', 'mid', $mid, 'act', Context::get('act'), 'translation_project_srl', $projSrl, 'translation_file_srl', $fileSrl, 'source_lang', $sourceLang, 'target_lang', $targetLang, 'listType', $sortType);
     Context::set('listUrl', $url);
     // get supported language list
     $lang_supported_list = Context::loadLangSupported();
     Context::set('lang_supported_list', $lang_supported_list);
     $this->setTemplateFile('file_content');
 }
Example #10
0
 /**
  * @brief 관리자 설정
  **/
 function dispAdminConfig()
 {
     $db_info = Context::getDBInfo();
     Context::set('selected_lang', $db_info->lang_type);
     Context::set('default_url', $db_info->default_url);
     Context::set('langs', Context::loadLangSupported());
     Context::set('lang_selected', Context::loadLangSelected());
     Context::set('ftp_info', Context::getFTPInfo());
     $site_args->site_srl = 0;
     $output = executeQuery('module.getSiteInfo', $site_args);
     Context::set('start_module', $output->data);
     Context::set('layout', 'none');
     $this->setTemplateFile('config');
 }