function Language($language_row) { if (is_array($language_row)) { $this->code = $language_row['language_code']; $this->characterSet = $language_row['charset']; $this->regularExpression = $language_row['reg_exp']; $this->nativeName = $language_row['native_name']; $this->englishName = $language_row['english_name']; $this->status = $language_row['status']; $this->transformable_version = isset($language_row['version']) ? $language_row['version'] : VERSION; $langCodesDAO = new LangCodesDAO(); $row_langCodes = $langCodesDAO->GetLangCodeBy3LetterCode($this->getParentCode($language_row['language_code'])); $this->direction = $row_langCodes['direction']; } else { if (is_object($language_row)) { $this->cloneThis($language_row); } } }
/* modify it under the terms of the GNU General Public License */ /* as published by the Free Software Foundation. */ /************************************************************************/ // $Id$ define('AC_INCLUDE_PATH', '../include/'); include AC_INCLUDE_PATH . 'vitals.inc.php'; include_once AC_INCLUDE_PATH . 'classes/DAO/LanguagesDAO.class.php'; include_once AC_INCLUDE_PATH . 'classes/DAO/LangCodesDAO.class.php'; include_once AC_INCLUDE_PATH . 'classes/Language/LanguageUtility.class.php'; if (isset($_GET["id"])) { $pieces = explode('_', $_GET['id'], 2); $lang_code = $pieces[0]; $charset = $pieces[1]; } $languagesDAO = new LanguagesDAO(); $langCodesDAO = new LangCodesDAO(); // handle submits if (isset($_POST['cancel'])) { $msg->addFeedback('CANCELLED'); header('Location: index.php'); exit; } else { if (isset($_POST['save'])) { if (isset($_GET["id"])) { if ($languagesDAO->Update($lang_code, $charset, '', trim($_POST['native_name']), trim($_POST['english_name']), $_POST['status'])) { $msg->addFeedback('ACTION_COMPLETED_SUCCESSFULLY'); header('Location: index.php'); exit; } } else { if (isset($_POST['locale']) && $_POST['locale'] != '') {
/** * check if value in the given attribute is a valid language code * return true if valid, otherwise, return false */ public static function isValidLangCode($code) { // The allowed characters in a valid language code are letters, numbers or dash(-). if (!preg_match("/^[a-zA-Z0-9-]+\$/", $code)) { return false; } $code = BasicChecks::cutOutLangCode($code); $langCodesDAO = new LangCodesDAO(); if (strlen($code) == 2) { $rows = $langCodesDAO->GetLangCodeBy2LetterCode($code); } else { if (strlen($code) == 3) { $rows = $langCodesDAO->GetLangCodeBy3LetterCode($code); } else { return false; } } return is_array($rows); }
/** * private * send uri to 3rd party and return its response */ function validate_uri($uri) { $sys_command = $this->local_validator_command . $this->local_validator_path . $this->local_validator_option; exec($sys_command . $uri, $retval); if (sizeof($retval) == 0) { // If output from the internal validiator is not found, use the external validator include_once AC_INCLUDE_PATH . 'classes/DAO/LangCodesDAO.class.php'; $langCodesDAO = new LangCodesDAO(); $lang_code_2letters = $langCodesDAO->GetLangCodeBy3LetterCode($_SESSION['lang']); // needed, a way to switch profiles, here defaulting to css3 (1, 2, 2.1, 3) $content = @file_get_contents($this->validator_url . "?uri=" . $uri . "&warning=0&profile=css3&lang=" . $lang_code_2letters["code_2letters"]); } else { //echo "validatore interno"; $content = implode($retval); } if ($content != null) { return $content; } return false; }
/** * Return a valid 3-character language code * 1. if input is a valid 3-character language code, return itself; * 2. if input is a valid 2-character language code, return according 3-character language code * 3. if input is an invalid language code, return default language code */ public static function get3LetterLangCode($code) { require_once TR_INCLUDE_PATH . 'classes/DAO/LangCodesDAO.class.php'; $langCodesDAO = new LangCodesDAO(); if (!Utility::isValidLangCode($code)) { return $_config['default_language']; } else { if (strlen($code) == 3) { return $code; } if (strlen($code) == 2) { $rows = $langCodesDAO->GetLangCodeBy2LetterCode($code); return $rows[0]['code_3letters']; } } }
/** * private * returns 2 letters code of currennt language */ private function getLangCode() { $lang_code = new LangCodesDAO(); $code_2_letters = $lang_code->GetLangCodeBy3LetterCode($_SESSION['lang']); return $code_2_letters['code_2letters']; }