$content .= Display::return_message(get_lang('OpenIDCouldNotBeFoundPleaseRegister')); } } // Terms and conditions if (api_get_setting('registration.allow_terms_conditions') == 'true') { $language = api_get_interface_language(); $language = api_get_language_id($language); $term_preview = LegalManager::get_last_condition($language); if (!$term_preview) { //we load from the platform $language = api_get_setting('language.platform_language'); $language = api_get_language_id($language); $term_preview = LegalManager::get_last_condition($language); //if is false we load from english if (!$term_preview) { $language = api_get_language_id('english'); //this must work $term_preview = LegalManager::get_last_condition($language); } } // Version and language $form->addElement('hidden', 'legal_accept_type', $term_preview['version'] . ':' . $term_preview['language_id']); $form->addElement('hidden', 'legal_info', $term_preview['legal_id'] . ':' . $term_preview['language_id']); if ($term_preview['type'] == 1) { $form->addElement('checkbox', 'legal_accept', null, get_lang('IHaveReadAndAgree') . ' <a href="inscription.php?legal" target="_blank">' . get_lang('TermsAndConditions') . '</a>'); $form->addRule('legal_accept', get_lang('ThisFieldIsRequired'), 'required'); } else { $preview = LegalManager::show_last_condition($term_preview); $form->addElement('label', null, $preview); } }
/** * Loads the translation files inside a plugin if exists. * It loads by default english see the hello world plugin * * @param string $plugin_name * * @todo add caching */ public function load_plugin_lang_variables($plugin_name) { global $language_interface; $root = api_get_path(SYS_PLUGIN_PATH); $strings = null; // 1. Loading english if exists $english_path = $root . $plugin_name . "/lang/english.php"; if (is_readable($english_path)) { include $english_path; foreach ($strings as $key => $string) { $GLOBALS[$key] = $string; } } // 2. Loading the system language if ($language_interface != 'english') { $path = $root . $plugin_name . "/lang/{$language_interface}.php"; if (is_readable($path)) { include $path; if (!empty($strings)) { foreach ($strings as $key => $string) { $GLOBALS[$key] = $string; } } } else { $interfaceLanguageId = api_get_language_id($language_interface); $interfaceLanguageInfo = api_get_language_info($interfaceLanguageId); $languageParentId = intval($interfaceLanguageInfo['parent_id']); if ($languageParentId > 0) { $languageParentInfo = api_get_language_info($languageParentId); $languageParentFolder = $languageParentInfo['dokeos_folder']; $parentPath = "{$root}{$plugin_name}/lang/{$languageParentFolder}.php"; if (is_readable($parentPath)) { include $parentPath; if (!empty($strings)) { foreach ($strings as $key => $string) { $this->strings[$key] = $string; } } } } } } }
/** * Save the new message for one event and for one language * * @param string $eventName * @param array $users * @param string $message * @param string $subject * @param string $eventMessageLanguage * @param int $activated */ public static function save_event_type_message($event_name, $users, $message, $subject, $event_message_language, $activated) { $event_name = Database::escape_string($event_name); $activated = intval($activated); $event_message_language = Database::escape_string($event_message_language); // Deletes then re-adds the users linked to the event $sql = 'DELETE FROM ' . Database::get_main_table(TABLE_EVENT_TYPE_REL_USER) . ' WHERE event_type_name = "' . $event_name . '" '; Database::query($sql); foreach ($users as $user) { $sql = 'INSERT INTO ' . Database::get_main_table(TABLE_EVENT_TYPE_REL_USER) . ' (user_id,event_type_name) VALUES(' . intval($user) . ',"' . $event_name . '")'; Database::query($sql); } $language_id = api_get_language_id($event_message_language); // check if this template in this language already exists or not $sql = 'SELECT COUNT(id) as total FROM ' . Database::get_main_table(TABLE_EVENT_EMAIL_TEMPLATE) . ' WHERE event_type_name = "' . $event_name . '" AND language_id = ' . $language_id; $sql = Database::store_result(Database::query($sql), 'ASSOC'); // if already exists, we update if ($sql[0]["total"] > 0) { $sql = 'UPDATE ' . Database::get_main_table(TABLE_EVENT_EMAIL_TEMPLATE) . ' SET message = "' . Database::escape_string($message) . '", subject = "' . Database::escape_string($subject) . '", activated = ' . $activated . ' WHERE event_type_name = "' . $event_name . '" AND language_id = (SELECT id FROM ' . Database::get_main_table(TABLE_MAIN_LANGUAGE) . ' WHERE dokeos_folder = "' . $event_message_language . '")'; Database::query($sql); } else { // else we create a new record // gets the language_-_id $lang_id = '(SELECT id FROM ' . Database::get_main_table(TABLE_MAIN_LANGUAGE) . ' WHERE dokeos_folder = "' . $event_message_language . '")'; $lang_id = Database::store_result(Database::query($lang_id), 'ASSOC'); if (!empty($lang_id[0]["id"])) { $sql = 'INSERT INTO ' . Database::get_main_table(TABLE_EVENT_EMAIL_TEMPLATE) . ' (event_type_name, language_id, message, subject, activated) VALUES("' . $event_name . '", ' . $lang_id[0]["id"] . ', "' . Database::escape_string($message) . '", "' . Database::escape_string($subject) . '", ' . $activated . ')'; Database::query($sql); } } // set activated at every save $sql = 'UPDATE ' . Database::get_main_table(TABLE_EVENT_EMAIL_TEMPLATE) . ' SET activated = ' . $activated . ' WHERE event_type_name = "' . $event_name . '"'; Database::query($sql); }
/** * Gets the current interface language. * @param bool $purified (optional) When it is true, a purified (refined) * language value will be returned, for example 'french' instead of 'french_unicode'. * @return string The current language of the interface. */ function api_get_interface_language($purified = false, $check_sub_language = false) { global $language_interface; if (empty($language_interface)) { return 'english'; } if ($check_sub_language) { static $parent_language_name = null; if (!isset($parent_language_name)) { // 2. The current language is a sub language so we grab the father's // setting according to the internalization_database/name_order_convetions.php file $language_id = api_get_language_id($language_interface); $language_info = api_get_language_info($language_id); if (!empty($language_id) && !empty($language_info)) { if (!empty($language_info['parent_id'])) { $language_info = api_get_language_info($language_info['parent_id']); $parent_language_name = $language_info['english_name']; if (!empty($parent_language_name)) { return $parent_language_name; } } return $language_info['english_name']; } return 'english'; } else { return $parent_language_name; } } else { // 2. Normal way $interface_language = $purified ? api_purify_language_id($language_interface) : $language_interface; } return $interface_language; }
Security::clear_token(); $tok = Security::get_token(); header('Location: legal_list.php?action=show_message&message=' . urlencode($message) . '&sec_token=' . $tok); exit; } elseif ($submit == 'preview') { $defaults['type'] = $type; $defaults['content'] = $content; $defaults['changes'] = $changes; $term_preview = $defaults; $term_preview['type'] = intval($_POST['type']); } else { $my_lang = $_POST['language']; if (isset($_POST['language'])) { $all_langs = api_get_languages(); if (in_array($my_lang, $all_langs['folder'])) { $language = api_get_language_id($my_lang); $term_preview = LegalManager::get_last_condition($language); $defaults = $term_preview; if (!$term_preview) { // there are not terms and conditions $term_preview['type'] = -1; $defaults['type'] = 0; } } } } } } } $form->setDefaults($defaults); if (isset($_POST['send'])) {
/** * Hook for the get_lang() function to check for plugin-defined language terms * @param string $name of the language variable we are looking for * * @return string The translated language term of the plugin */ public function get_lang($name) { // Check whether the language strings for the plugin have already been // loaded. If so, no need to load them again. if (is_null($this->strings)) { global $language_interface; $root = api_get_path(SYS_PLUGIN_PATH); $plugin_name = $this->get_name(); $interfaceLanguageId = api_get_language_id($language_interface); $interfaceLanguageInfo = api_get_language_info($interfaceLanguageId); $languageParentId = !empty($interfaceLanguageInfo['parent_id']) ? intval($interfaceLanguageInfo['parent_id']) : 0; //1. Loading english if exists $english_path = $root . $plugin_name . "/lang/english.php"; if (is_readable($english_path)) { $strings = array(); include $english_path; $this->strings = $strings; } $path = $root . $plugin_name . "/lang/{$language_interface}.php"; //2. Loading the system language if (is_readable($path)) { include $path; if (!empty($strings)) { foreach ($strings as $key => $string) { $this->strings[$key] = $string; } } } elseif ($languageParentId > 0) { $languageParentInfo = api_get_language_info($languageParentId); $languageParentFolder = $languageParentInfo['dokeos_folder']; $parentPath = "{$root}{$plugin_name}/lang/{$languageParentFolder}.php"; if (is_readable($parentPath)) { include $parentPath; if (!empty($strings)) { foreach ($strings as $key => $string) { $this->strings[$key] = $string; } } } } } if (isset($this->strings[$name])) { return $this->strings[$name]; } return get_lang($name); }
// Terms and conditions if (api_get_setting('allow_terms_conditions') == 'true') { $language = api_get_interface_language(); $language = api_get_language_id($language); $term_preview = LegalManager::get_last_condition($language); if (!$term_preview) { //we load from the platform $language = api_get_setting('platformLanguage'); $language = api_get_language_id($language); $term_preview = LegalManager::get_last_condition($language); //if is false we load from english if (!$term_preview) { $language = api_get_language_id('english'); //this must work $term_preview = LegalManager::get_last_condition($language); } } // Version and language $form->addElement('hidden', 'legal_accept_type', $term_preview['version'] . ':' . $term_preview['language_id']); $form->addElement('hidden', 'legal_info', $term_preview['legal_id'] . ':' . $term_preview['language_id']); if ($term_preview['type'] == 1) { $form->addElement('checkbox', 'legal_accept', null, get_lang('IHaveReadAndAgree') . ' <a href="inscription.php?legal" target="_blank">' . get_lang('TermsAndConditions') . '</a>'); $form->addRule('legal_accept', get_lang('ThisFieldIsRequired'), 'required'); } else { $preview = LegalManager::show_last_condition($term_preview); $form->addElement('label', null, $preview); }