static function init($locale) { self::$instance = new ITechTranslate(); self::$instance->addTranslation(Globals::$BASE_PATH . '/translations/' . $locale . '/LC_MESSAGES/itech.mo', $locale); self::$instance->setLocale($locale); setlocale(LC_TIME, str_replace(".UTF-8", "", $locale)); //hack to get date conversion to work. Use fr_FR without the .UTF-8 self::$instance->locale = $locale; }
public function __construct() { if (self::$instance == null) { self::$instance = $this; $this->addCSSLink('/js/yui/build/reset-fonts-grids/reset-fonts-grids.css'); $this->addCSSLink('/js/yui/build/resize/assets/skins/sam/resize.css'); $this->addCSSLink('/js/yui/build/button/assets/skins/sam/button.css'); $this->addCSSLink('/js/yui/build/autocomplete/assets/skins/sam/autocomplete.css'); $this->addCSSLink('/js/yui/build/calendar/assets/skins/sam/calendar.css'); $this->addCSSLink('/js/yui/build/container/assets/skins/sam/container.css'); $this->addCSSLink('/js/yui/build/datatable/assets/skins/sam/datatable.css'); $this->addCSSLink('/css/style.css'); $this->addCSSLink('/css/calendar.css'); $url_parts = explode('.', $_SERVER['HTTP_HOST']); if (@$url_parts[0] == 'eventsmart' or isset($url_parts[1]) && @$url_parts[1] == 'eventsmart') { $this->addCSSLink('/css/style-engender.css'); } $local = ITechTranslate::getLocale(); $local_empty = $local === null; if (!$local_empty) { $this->addJSLink('/js/translation-' . $local . '.js'); } $this->addJSLink('/js/itech-namespace.js'); $this->addJSLink('/js/yui/build/yahoo-dom-event/yahoo-dom-event.js'); $this->addJSLink('/js/yui/build/connection/connection.js'); $this->addJSLink('/js/yui/build/animation/animation.js'); $this->addJSLink('/js/yui/build/autocomplete/autocomplete.js'); $this->addJSLink('/js/yui/build/utilities/utilities.js'); $this->addJSLink('/js/yui/build/datasource/datasource-beta.js'); $this->addJSLink('/js/yui/build/datatable/datatable-beta.js'); $this->addJSLink('/js/yui/build/dragdrop/dragdrop.js'); $this->addJSLink('/js/yui/build/button/button.js'); $this->addJSLink('/js/yui/build/calendar/calendar.js'); $this->addJSLink('/js/yui/build/element/element-beta.js'); $this->addJSLink('/js/yui/build/json/json.js'); $this->addJSLink('/js/flydown.js'); $this->addJSLink('/js/yui/build/container/container.js'); //add me last $this->addJSLink('/js/statusbox.js'); $this->addJSLink('/js/ajaxsubmit.js'); $this->addJSLink('/js/autocomplete.js'); $this->addJSLink('/js/calendar.js'); $this->addJSLink('/js/datatable.js'); $this->addJSLink('/js/edittable.js'); $this->addJSLink('/js/edittable-training.js'); $this->addJSLink('/js/fileupload.js'); $this->addJSLink('/js/itech.js'); $burl = Settings::$COUNTRY_BASE_URL; if (substr($burl, -1) != '/' && substr($burl, -1) != '\\') { $burl = $burl . '/'; } self::$jsincludes[] = '<script src="' . $burl . 'index/js-aggregate" type="text/javascript"></script>'; } }
public static function translate($key_phrase) { $tTable = new Translation(); $select = $tTable->select()->where("key_phrase = '{$key_phrase}'"); $db_phrase = $tTable->fetchRow($select)->phrase; if (ITechTranslate::getLocale() == 'en_EN.UTF-8') { return $db_phrase; } else { return t($db_phrase); } }
public function preDispatch() { require_once 'models/table/User.php'; //add identity to view variables $auth = Zend_Auth::getInstance(); $identity = null; if ($auth->hasIdentity()) { //get ACLs and add to identity $acls = User::getACLs($auth->getIdentity()->id); $identity = $auth->getIdentity(); $identity->acls = $acls; $auth->getStorage()->write($identity); $this->view->assign('identity', $identity); } //set up localization //get country default locale, then check user settings if (isset($_COOKIE['locale']) and array_key_exists($_COOKIE['locale'], ITechTranslate::getLanguages())) { $locale = $_COOKIE['locale']; } else { $locale = $this->_countrySettings['locale']; } if (!$locale) { $locale = 'en_EN.UTF-8'; } if ($auth->hasIdentity() and $auth->getIdentity()->locale) { $locale = $auth->getIdentity()->locale; } //set up localization ITechTranslate::init($locale); // get Country-specific phrases for fields self::$_translations = Translation::getAll(); $this->view->assign('translation', self::translations()); //look for any status messages in the session and put the validation container in the view scope $statusObj = ValidationContainer::instance(); if (isset($_SESSION['status'])) { $statusObj->setStatusMessage($_SESSION['status']); unset($_SESSION['status']); } $this->view->assign('status', $statusObj); }
public function __construct() { if (self::$instance == null) { self::$instance = $this; # CSS YUI $this->addCSSLink('/js/yui/build/reset-fonts-grids/reset-fonts-grids.css'); $this->addCSSLink('/js/yui/build/resize/assets/skins/sam/resize.css'); $this->addCSSLink('/js/yui/build/button/assets/skins/sam/button.css'); $this->addCSSLink('/js/yui/build/autocomplete/assets/skins/sam/autocomplete.css'); $this->addCSSLink('/js/yui/build/calendar/assets/skins/sam/calendar.css'); $this->addCSSLink('/js/yui/build/container/assets/skins/sam/container.css'); $this->addCSSLink('/js/yui/build/datatable/assets/skins/sam/datatable.css'); #CSS $this->addCSSLink('/css/style.css'); $this->addCSSLink('/css/calendar.css'); $this->addCSSLink('/css/media/demo_page.css'); $this->addCSSLink('/css/media/demo_table_jui.css'); $this->addCSSLink('/css/media/jquery-ui-1.8.17.custom.css'); // $this->addCSSLink('/css/trainsmart/ts.css'); // $this->addCSSLink('/css/media/trainsmart.css'); $url_parts = explode('.', $_SERVER['HTTP_HOST']); if (@$url_parts[0] == 'eventsmart' or isset($url_parts[1]) && @$url_parts[1] == 'eventsmart') { $this->addCSSLink('/css/style-engender.css'); } # TransLations $locale = ITechTranslate::getLocale(); if ($locale !== null) { $this->addJSLink('/js/translation-' . $locale . '.js'); } # Javascript $this->addJSLink('/js/itech-namespace.js'); # jQuery $this->addJSLink('/js/scripts/jquery-1.7.1-min.js'); $this->addJSLink('/js/scripts/jquery.dataTables.min.js'); $this->addJSLink('/js/scripts/jquery-ui-1.8.17.custom-min.js'); # Javascript - PRESERVICE $this->addJSLink('/js/scripts/validate/jquery.validate.js'); $this->addJSLink('/js/scripts/jquery.comboedit.js'); $this->addJSLink('/js/scripts/preservice.js'); # Javascript - YUI $this->addJSLink('/js/yui/build/yahoo-dom-event/yahoo-dom-event.js'); $this->addJSLink('/js/yui/build/connection/connection.js'); $this->addJSLink('/js/yui/build/animation/animation.js'); $this->addJSLink('/js/yui/build/autocomplete/autocomplete.js'); $this->addJSLink('/js/yui/build/utilities/utilities.js'); $this->addJSLink('/js/yui/build/datasource/datasource-beta.js'); $this->addJSLink('/js/yui/build/datatable/datatable-beta.js'); $this->addJSLink('/js/yui/build/dragdrop/dragdrop.js'); $this->addJSLink('/js/yui/build/button/button.js'); $this->addJSLink('/js/yui/build/calendar/calendar.js'); $this->addJSLink('/js/yui/build/element/element-beta.js'); $this->addJSLink('/js/yui/build/json/json.js'); # Javascript - TrainSMART $this->addJSLink('/js/flydown.js'); $this->addJSLink('/js/yui/build/container/container.js'); //add me last $this->addJSLink('/js/statusbox.js'); $this->addJSLink('/js/ajaxsubmit.js'); $this->addJSLink('/js/autocomplete.js'); $this->addJSLink('/js/calendar.js'); $this->addJSLink('/js/datatable.js'); $this->addJSLink('/js/edittable.js'); $this->addJSLink('/js/edittable-training.js'); $this->addJSLink('/js/fileupload.js'); $this->addJSLink('/js/itech.js'); $this->addJSLink('/js/dropdown.js'); $burl = Settings::$COUNTRY_BASE_URL; if (substr($burl, -1) != '/' && substr($burl, -1) != '\\') { $burl = $burl . '/'; } self::$jsincludes[] = '<script src="' . $burl . 'index/js-aggregate" type="text/javascript"></script>'; } }
public function languageAction() { require_once 'models/Session.php'; require_once 'models/table/User.php'; if ($this->isLoggedIn() and array_key_exists($this->getSanParam('opt'), ITechTranslate::getLanguages())) { $user = new User(); $userRow = $user->find(Session::getCurrentUserId())->current(); $user->updateLocale($this->getSanParam('opt'), Session::getCurrentUserId()); $auth = Zend_Auth::getInstance(); $identity = $auth->getIdentity(); $identity->locale = $this->getSanParam('opt'); $auth->getStorage()->write($identity); setcookie('locale', $this->getSanParam('opt'), null, Globals::$BASE_PATH); } $this->_redirect($_SERVER['HTTP_REFERER']); }
public function countrySettingsAction() { require_once 'models/table/System.php'; $sysTable = new System(); // For "Labels" require_once 'models/table/Translation.php'; $labelNames = array('label_country' => 'Country', 'label_regiona' => 'Region A (Province)', 'label_regionb' => 'Region B (Health District)', 'label_regionc' => 'Region C (Local Region)', 'label_regiond' => 'Region D', 'label_regione' => 'Region E', 'label_regionf' => 'Region F', 'label_regiong' => 'Region G', 'label_regionh' => 'Region H', 'label_regioni' => 'Region I', 'label_citytown' => 'City or Town', 'label_application_name' => 'Application Name', 'label_training' => 'Training', 'label_trainings' => 'Trainings', 'label_trainer' => 'Trainer', 'label_trainers' => 'Trainers', 'label_training_center' => 'Training Center', 'label_participant' => 'Participant', 'label_participants' => 'Participants'); // _system settings $checkboxFields = array('check_mod_eval' => 'module_evaluation_enabled', 'check_mod_approvals' => 'module_approvals_enabled', 'check_mod_historical' => 'module_historical_data_enabled', 'check_mod_unknown' => 'module_unknown_participants_enabled', 'check_mod_attendance' => 'module_attendance_enabled', 'display_training_partner' => 'display_training_partner', 'display_mod_skillsmart' => 'display_mod_skillsmart', 'fiscal_year_start' => 'fiscal_year_start', 'check_mod_employee' => 'module_employee_enabled'); if ($this->getRequest()->isPost()) { // Update db $updateData = array(); $country = $this->_getParam('country'); $this->putSetting('country', $country); // update translation labels $tranTable = new Translation(); foreach ($labelNames as $input_key => $db_key) { if ($this->_getParam($input_key)) { try { $tranTable->update(array('phrase' => $this->_getParam($input_key)), "key_phrase = '{$db_key}'"); $this->viewAssignEscaped($input_key, $this->_getParam($input_key)); } catch (Zend_Exception $e) { error_log($e); } } } // save locale $updateData['locale_enabled'] = implode(',', $this->_getParam('locales')); if ($this->_getParam('locale_default')) { $updateData['locale'] = $this->_getParam('locale_default'); } // update _system (checkboxes) foreach ($checkboxFields as $input_key => $db_field) { $value = $this->_getParam($input_key) == NULL ? 0 : 1; $updateData[$db_field] = $value; $this->view->assign($input_key, $value); } $updateData['fiscal_year_start'] = $this->_getParam('fiscal_year_start'); $sysTable->update($updateData, ''); } else { // view // labels $t = Translation::getAll(); foreach ($labelNames as $input_key => $db_key) { $this->viewAssignEscaped($input_key, $t[$db_key]); } // checkboxes $sysRows = $sysTable->fetchRow($sysTable->select()->limit(1)); foreach ($checkboxFields as $input_key => $field_key) { $this->view->assign($input_key, $sysRows->{$field_key}); } } // country $country = $this->getSetting('country'); $this->view->assign('country', htmlspecialchars($country)); // locale $this->view->assign('languages', ITechTranslate::getLanguages()); $this->view->assign('locale', $this->getSetting('locale')); $this->view->assign('locale_enabled', ITechTranslate::getLocaleEnabled()); // redirect to next page if ($this->_getParam('saveonly')) { $status = ValidationContainer::instance(); $status->setStatusMessage(t('Your settings have been updated.')); //reload the page $this->_redirect('admin/country-settings'); } else { if ($this->_getParam('redirect')) { header("Location: " . $this->_getParam('redirect')); exit; } } }
public function historyAction() { $person_id = $this->getSanParam('id'); //history require_once 'models/table/History.php'; $history = new History('person'); $changes = $history->fetchAllPerson($person_id); foreach ($changes as $ck => $crow) { $c = $crow['changes']; $keys = array(); $values = array(); if (!isset($this->setting['display_mod_skillsmart']) || $this->setting['display_mod_skillsmart'] !== 1) { unset($c['pvid']); } unset($c['vid']); unset($c['id']); unset($c['timestamp_created']); unset($c['timestamp_updated']); unset($c['created_by']); unset($c['modified_by']); unset($c['active_trainer_option_id']); unset($c['is_active']); unset($c['secondary_responsibility_option_id']); unset($c['primary_responsibility_option_id']); unset($c['primary_qualification_option_id']); unset($c['facility_id']); unset($c['affiliation_option_id']); if ($this->setting('display_mod_skillsmart')) { if (count($c) == 0) { unset($changes[$ck]); continue; } } foreach ($c as $k => $v) { $translated = htmlentities(ITechTranslate::db_tr($k)); // if ((strstr ( $translated, '_' ) == false)) { $keys[] = $translated; if ($this->setting('display_mod_skillsmart')) { if (strpos($v, "_Oth") > 0) { $rmi = strrev($v); if (strpos($rmi, "_") == 1) { $v = strrev(substr($rmi, 2)); } } $values[] = htmlentities(str_replace("Z_Other (", "Other (", $v)); } else { $values[] = htmlentities($v); } // } } $changes[$ck]['translated_keys'] = implode(', ', $keys); $changes[$ck]['translated_values'] = implode(', ', $values); } if ($this->setting('display_mod_skillsmart')) { $changes = array_values($changes); } $this->sendData($changes); }