/** * Class constructor */ function SelectLanguage($elementName = null, $elementLabel = null, $options = null, $attributes = null) { parent::__construct($elementName, $elementLabel, $options, $attributes); // Get all languages $languages = api_get_languages(); $this->_options = array(); $this->_values = array(); foreach ($languages['name'] as $index => $name) { if ($languages['folder'][$index] == api_get_setting('platformLanguage')) { $this->addOption($name, $languages['folder'][$index], array('selected' => 'selected')); } else { $this->addOption($name, $languages['folder'][$index]); } } }
/** * Class constructor */ public function __construct($elementName = null, $elementLabel = null, $options = null, $attributes = null) { parent::__construct($elementName, $elementLabel, $options, $attributes); // Get all languages $languages = api_get_languages(); $this->_options = array(); $this->_values = array(); foreach ($languages as $iso => $name) { if ($iso == api_get_setting('language.platform_language')) { $this->addOption($name, $iso, array('selected' => 'selected')); } else { $this->addOption($name, $iso); } } }
/** * Class constructor */ function HTML_QuickForm_Select_Language($elementName = null, $elementLabel = null, $options = null, $attributes = null) { if (!isset($attributes['class'])) { $attributes['class'] = 'chzn-select'; } parent::HTML_QuickForm_Select($elementName, $elementLabel, $options, $attributes); // Get all languages $languages = api_get_languages(); $this->_options = array(); $this->_values = array(); foreach ($languages['name'] as $index => $name) { if ($languages['folder'][$index] == api_get_setting('platformLanguage')) { $this->addOption($name, $languages['folder'][$index], array('selected' => 'selected')); } else { $this->addOption($name, $languages['folder'][$index]); } } }
/** * Class constructor */ function HTML_QuickForm_Select_Language($elementName = null, $elementLabel = null, $options = null, $attributes = null) { if (!isset($attributes['class'])) { $attributes['class'] = 'chzn-select'; } parent::HTML_QuickForm_Select($elementName, $elementLabel, $options, $attributes); // Get all languages $languages = api_get_languages(); $this->_options = array(); $this->_values = array(); $platformLanguage = Container::getTranslator()->getLocale(); foreach ($languages as $language) { if ($language['isocode'] == $platformLanguage) { $this->addOption($language['english_name'], $language['isocode'], array('selected' => 'selected')); } else { $this->addOption($language['english_name'], $language['isocode']); } } }
/** * Update user information with all the parameters passed to this function * @param int The ID of the user to be updated * @param string The user's firstname * @param string The user's lastname * @param string The user's username (login) * @param string The user's password * @param string The authentication source (default: "platform") * @param string The user's e-mail address * @param int The user's status * @param string The user's official code (usually just an internal institutional code) * @param string The user's phone number * @param string The user's picture URL (internal to the Chamilo directory) * @param int The user ID of the person who registered this user (optional, defaults to null) * @param int The department of HR in which the user is registered (optional, defaults to 0) * @param array A series of additional fields to add to this user as extra fields (optional, defaults to null) * @return boolean true if the user information was updated * @assert (false, false, false, false, false, false, false, false, false, false, false, false, false) === false */ public static function update_user($user_id, $firstname, $lastname, $username, $password = null, $auth_source = null, $email, $status, $official_code, $phone, $picture_uri, $expiration_date, $active, $creator_id = null, $hr_dept_id = 0, $extra = null, $language = 'english', $encrypt_method = '', $send_email = false, $reset_password = 0) { $hook = HookUpdateUser::create(); if (!empty($hook)) { $hook->notifyUpdateUser(HOOK_EVENT_TYPE_PRE); } global $_configuration; $original_password = $password; if (empty($user_id)) { return false; } $user_info = api_get_user_info($user_id, false, true); if ($reset_password == 0) { $password = null; $auth_source = $user_info['auth_source']; } elseif ($reset_password == 1) { $original_password = $password = api_generate_password(); $auth_source = PLATFORM_AUTH_SOURCE; } elseif ($reset_password == 2) { $password = $password; $auth_source = PLATFORM_AUTH_SOURCE; } elseif ($reset_password == 3) { $password = $password; $auth_source = $auth_source; } if ($user_id != strval(intval($user_id))) { return false; } if ($user_id === false) { return false; } //Checking the user language $languages = api_get_languages(); if (!in_array($language, $languages['folder'])) { $language = api_get_setting('platformLanguage'); } $change_active = 0; if ($user_info['active'] != $active) { $change_active = 1; } $userManager = self::getManager(); /** @var Chamilo\UserBundle\Entity\User $user */ $user = self::getRepository()->find($user_id); if (empty($user)) { return false; } if (!empty($expiration_date)) { $expiration_date = api_get_utc_datetime($expiration_date); $expiration_date = new \DateTime($expiration_date, new DateTimeZone('UTC')); } $user->setLastname($lastname)->setFirstname($firstname)->setUsername($username)->setStatus($status)->setAuthSource($auth_source)->setLanguage($language)->setEmail($email)->setOfficialCode($official_code)->setPhone($phone)->setPictureUri($picture_uri)->setExpirationDate($expiration_date)->setActive($active)->setHrDeptId($hr_dept_id); if (!is_null($password)) { $user->setPlainPassword($password); } $userManager->updateUser($user, true); if ($change_active == 1) { if ($active == 1) { $event_title = LOG_USER_ENABLE; } else { $event_title = LOG_USER_DISABLE; } Event::addEvent($event_title, LOG_USER_ID, $user_id); } if (is_array($extra) && count($extra) > 0) { $res = true; foreach ($extra as $fname => $fvalue) { $res = $res && self::update_extra_field_value($user_id, $fname, $fvalue); } } if (!empty($email) && $send_email) { $recipient_name = api_get_person_name($firstname, $lastname, null, PERSON_NAME_EMAIL_ADDRESS); $emailsubject = '[' . api_get_setting('siteName') . '] ' . get_lang('YourReg') . ' ' . api_get_setting('siteName'); $sender_name = api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname'), null, PERSON_NAME_EMAIL_ADDRESS); $email_admin = api_get_setting('emailAdministrator'); if (api_is_multiple_url_enabled()) { $access_url_id = api_get_current_access_url_id(); if ($access_url_id != -1) { $url = api_get_access_url($access_url_id); $emailbody = get_lang('Dear') . " " . stripslashes(api_get_person_name($firstname, $lastname)) . ",\n\n" . get_lang('YouAreReg') . " " . api_get_setting('siteName') . " " . get_lang('WithTheFollowingSettings') . "\n\n" . get_lang('Username') . " : " . $username . ($reset_password > 0 ? "\n" . get_lang('Pass') . " : " . stripslashes($original_password) : "") . "\n\n" . get_lang('Address') . " " . api_get_setting('siteName') . " " . get_lang('Is') . " : " . $url['url'] . "\n\n" . get_lang('Problem') . "\n\n" . get_lang('SignatureFormula') . ",\n\n" . api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname')) . "\n" . get_lang('Manager') . " " . api_get_setting('siteName') . "\nT. " . api_get_setting('administratorTelephone') . "\n" . get_lang('Email') . " : " . api_get_setting('emailAdministrator'); } } else { $emailbody = get_lang('Dear') . " " . stripslashes(api_get_person_name($firstname, $lastname)) . ",\n\n" . get_lang('YouAreReg') . " " . api_get_setting('siteName') . " " . get_lang('WithTheFollowingSettings') . "\n\n" . get_lang('Username') . " : " . $username . ($reset_password > 0 ? "\n" . get_lang('Pass') . " : " . stripslashes($original_password) : "") . "\n\n" . get_lang('Address') . " " . api_get_setting('siteName') . " " . get_lang('Is') . " : " . $_configuration['root_web'] . "\n\n" . get_lang('Problem') . "\n\n" . get_lang('SignatureFormula') . ",\n\n" . api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname')) . "\n" . get_lang('Manager') . " " . api_get_setting('siteName') . "\nT. " . api_get_setting('administratorTelephone') . "\n" . get_lang('Email') . " : " . api_get_setting('emailAdministrator'); } api_mail_html($recipient_name, $email, $emailsubject, $emailbody, $sender_name, $email_admin); } if (!empty($hook)) { $hook->notifyUpdateUser(HOOK_EVENT_TYPE_POST); } return $user->getId(); }
/** * This function displays the form for searching a survey * * @return void (direct output) * * @author Patrick Cool <*****@*****.**>, Ghent University * @version January 2007 * * @todo use quickforms * @todo consider moving this to surveymanager.inc.lib.php */ static function display_survey_search_form() { echo '<form class="form-horizontal" method="get" action="' . api_get_path(WEB_CODE_PATH) . 'survey/survey_list.php?search=advanced">'; echo '<legend>' . get_lang('SearchASurvey') . '</legend>'; echo ' <div class="control-group"> <label class="control-label"> ' . get_lang('Title') . ' </label> <div class="controls"> <input type="text" id="search_title" name="keyword_title"/> </div> </div>'; echo ' <div class="control-group"> <label class="control-label"> ' . get_lang('Code') . ' </label> <div class="controls"> <input type="text" name="keyword_code"/> </div> </div>'; echo ' <div class="control-group"> <label class="control-label"> ' . get_lang('Language') . ' </label> <div class="controls">'; echo ' <select name="keyword_language"><option value="%">' . get_lang('All') . '</option>'; $languages = api_get_languages(); foreach ($languages['name'] as $index => &$name) { echo '<option value="' . $languages['folder'][$index] . '">' . $name . '</option>'; } echo ' </select>'; echo ' </div> </div>'; echo '<input type="hidden" name="cidReq" value="' . api_get_course_id() . '"/>'; echo ' <div class="control-group"> <div class="controls"> <button class="search" type="submit" name="do_search">' . get_lang('Search') . '</button> </div> </div>'; echo '</form>'; echo '<div style="clear: both;margin-bottom: 10px;"></div>'; }
/** * Validates the input language (english, spanish, etc) * in order always to return a language that is enabled in the system. * This function is to be used for data import when provided language should be validated. * @param string $language The language to be validated. * @return string Returns the input language identificator. If the input language is not enabled, platform language is returned then. */ function api_get_valid_language($language) { static $enabled_languages; if (!isset($enabled_languages)) { $enabled_languages_info = api_get_languages(); $enabled_languages = $enabled_languages_info['folder']; } $language = str_replace('_km', '_KM', strtolower(trim($language))); if (empty($language) || !in_array($language, $enabled_languages)) { $language = api_get_setting('platformLanguage'); } return $language; }
/** * Displays a form (drop down menu) so the user can select his/her preferred language. * The form works with or without javascript * @param boolean Hide form if only one language available (defaults to false = show the box anyway) * @return void Display the box directly */ function api_display_language_form($hide_if_no_choice = false) { // Retrieve a complete list of all the languages. $language_list = api_get_languages(); if (count($language_list) <= 1 && $hide_if_no_choice) { return; //don't show any form } $user_selected_language = api_get_language_selected_in_login(); $html = ' <script type="text/javascript"> <!-- $(document).ready(function() { $("#language_list").change(function() { jumpMenu("parent",this,0); }); }); function jumpMenu(targ,selObj,restore){ // v3.0 eval(targ+".location=\'"+selObj.options[selObj.selectedIndex].value+"\'"); if (restore) selObj.selectedIndex=0; } //--> </script>'; $html .= '<form id="lang_form" name="lang_form" method="post" action="' . api_get_self() . '">'; $html .= '<label style="display: none;" for="language_list">' . get_lang('Language') . '</label>'; $html .= '<select id="language_list" class="selectpicker show-tick form-control" name="language_list" >'; foreach ($language_list as $iso => $value) { if ($iso == $user_selected_language) { $option_end = ' selected="selected" >'; } else { $option_end = '>'; } $html .= '<option value="' . api_get_self() . '?language=' . $iso . '"' . $option_end; //echo substr($value, 0, 16); // Cut string to keep 800x600 aspect. $html .= $value . '</option>'; } $html .= '</select>'; $html .= '<noscript><input type="submit" name="user_select_language" value="' . get_lang('Ok') . '" /></noscript>'; $html .= '</form>'; return $html; }
$message = get_lang('TermAndConditionNotSaved'); } 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; } } } } } } }
/** * Creates a new user for the platform * @author Hugues Peeters <*****@*****.**>, * @author Roan Embrechts <*****@*****.**> * @param string Firstname * @param string Lastname * @param int Status (1 for course tutor, 5 for student, 6 for anonymous) * @param string e-mail address * @param string Login * @param string Password * @param string Any official code (optional) * @param string User language (optional) * @param string Phone number (optional) * @param string Picture URI (optional) * @param string Authentication source (optional, defaults to 'platform', dependind on constant) * @param string Account expiration date (optional, defaults to '0000-00-00 00:00:00') * @param int Whether the account is enabled or disabled by default * @param int The department of HR in which the user is registered (optional, defaults to 0) * @param array Extra fields * @param string Encrypt method used if password is given encrypted. Set to an empty string by default * @return mixed new user id - if the new user creation succeeds, false otherwise * @desc The function tries to retrieve $_user['user_id'] from the global space. If it exists, $_user['user_id'] is the creator id. If a problem arises, it stores the error message in global $api_failureList * @assert ('Sam','Gamegie',5,'*****@*****.**','jo','jo') > 1 * @assert ('Pippin','Took',null,null,'jo','jo') === false */ public static function create_user($firstName, $lastName, $status, $email, $loginName, $password, $official_code = '', $language = '', $phone = '', $picture_uri = '', $auth_source = PLATFORM_AUTH_SOURCE, $expiration_date = '0000-00-00 00:00:00', $active = 1, $hr_dept_id = 0, $extra = null, $encrypt_method = '', $send_mail = false) { global $_configuration; $original_password = $password; $access_url_id = 1; if (api_get_multiple_access_url()) { $access_url_id = api_get_current_access_url_id(); } if (is_array($_configuration[$access_url_id]) && isset($_configuration[$access_url_id]['hosting_limit_users']) && $_configuration[$access_url_id]['hosting_limit_users'] > 0) { $num = self::get_number_of_users(); if ($num >= $_configuration[$access_url_id]['hosting_limit_users']) { return api_set_failure('portal users limit reached'); } } if ($status === 1 && is_array($_configuration[$access_url_id]) && isset($_configuration[$access_url_id]['hosting_limit_teachers']) && $_configuration[$access_url_id]['hosting_limit_teachers'] > 0) { $num = self::get_number_of_users(1); if ($num >= $_configuration[$access_url_id]['hosting_limit_teachers']) { return api_set_failure('portal teachers limit reached'); } } $firstName = Security::remove_XSS($firstName); $lastName = Security::remove_XSS($lastName); $loginName = Security::remove_XSS($loginName); $phone = Security::remove_XSS($phone); // database table definition $table_user = Database::get_main_table(TABLE_MAIN_USER); //Checking the user language $languages = api_get_languages(); if (!in_array($language, $languages)) { $language = Container::getTranslator()->getLocale(); } $creator_id = api_get_user_id(); // First check wether the login already exists if (!self::is_username_available($loginName)) { return api_set_failure('login-pass already taken'); } if (empty($encrypt_method)) { $password = api_get_encrypted_password($password); } else { if ($_configuration['password_encryption'] === $encrypt_method) { if ($encrypt_method == 'md5' && !preg_match('/^[A-Fa-f0-9]{32}$/', $password)) { return api_set_failure('encrypt_method invalid'); } else { if ($encrypt_method == 'sha1' && !preg_match('/^[A-Fa-f0-9]{40}$/', $password)) { return api_set_failure('encrypt_method invalid'); } } } else { return api_set_failure('encrypt_method invalid'); } } //@todo replace this date with the api_get_utc_date function big problem with users that are already registered $current_date = api_get_utc_datetime(); $em = Database::getManager(); $expirationDate = new \DateTime($expiration_date); $user = new \Chamilo\UserBundle\Entity\User(); $user->setLastname($lastName)->setFirstname($firstName)->setUsername($loginName)->setPassword($password)->setEmail($email)->setOfficialCode($official_code)->setPictureUri($picture_uri)->setCreatorId($creator_id)->setAuthSource($auth_source)->setPhone($phone)->setLanguage($language)->setExpirationDate($expirationDate)->setHrDeptId($hr_dept_id)->setActive($active); /*$sql = "INSERT INTO $table_user ". "SET lastname = '".Database::escape_string(trim($lastName))."',". "firstname = '".Database::escape_string(trim($firstName))."',". "username = '******',". "status = '".Database::escape_string($status)."',". "password = '******',". "email = '".Database::escape_string($email)."',". "official_code = '".Database::escape_string($official_code)."',". "picture_uri = '".Database::escape_string($picture_uri)."',". "creator_id = '".Database::escape_string($creator_id)."',". "auth_source = '".Database::escape_string($auth_source)."',". "phone = '".Database::escape_string($phone)."',". "language = '".Database::escape_string($language)."',". "registration_date = '".$current_date."',". "expiration_date = '".Database::escape_string($expiration_date)."',". "hr_dept_id = '".Database::escape_string($hr_dept_id)."',". "active = '".Database::escape_string($active)."'"; $result = Database::query($sql);*/ $em->persist($user); $em->flush(); if ($user) { $userId = $user->getId(); if (api_get_multiple_access_url()) { UrlManager::add_user_to_url($userId, api_get_current_access_url_id()); } else { //we are adding by default the access_url_user table with access_url_id = 1 UrlManager::add_user_to_url($userId, 1); } $group = $em->getRepository('ChamiloUserBundle:Group')->find($status); $user->addGroup($group); //$user->addRole($roleName); $em->persist($user); $em->flush(); if (!empty($email) && $send_mail) { $recipient_name = api_get_person_name($firstName, $lastName, null, PERSON_NAME_EMAIL_ADDRESS); $emailsubject = '[' . api_get_setting('platform.site_name') . '] ' . get_lang('YourReg') . ' ' . api_get_setting('platform.site_name'); $sender_name = api_get_person_name(api_get_setting('platform.administrator_name'), api_get_setting('platform.administrator_surname'), null, PERSON_NAME_EMAIL_ADDRESS); $email_admin = api_get_setting('platform.administrator_email'); $params = array('complete_user_name' => api_get_person_name($firstName, $lastName), 'login_name' => $loginName, 'password' => stripslashes($original_password)); $message = \Swift_Message::newInstance()->setSubject($emailsubject)->setFrom(array($email_admin => $sender_name))->setTo(array($email => $recipient_name))->setBody(Container::getTemplate()->render('ChamiloCoreBundle:Mailer:User/new_user.html.twig', $params), 'text/html')->addPart(Container::getTemplate()->render('ChamiloCoreBundle:Mailer:User/new_user.text.twig', $params), 'text/plain')->setEncoder(Swift_Encoding::get8BitEncoding()); $type = $message->getHeaders()->get('Content-Type'); $type->setValue('text/html'); $type->setParameter('charset', 'utf-8'); Container::getMailer()->send($message); /* MANAGE EVENT WITH MAIL */ /*if (EventsMail::check_if_using_class('user_registration')) { $values["about_user"] = $return; $values["password"] = $original_password; $values["send_to"] = array($return); $values["prior_lang"] = null; EventsDispatcher::events('user_registration', $values); } else { @api_mail_html($recipient_name, $email, $emailsubject, $emailbody, $sender_name, $email_admin); }*/ /* ENDS MANAGE EVENT WITH MAIL */ } // Add event to system log $user_id_manager = api_get_user_id(); $user_info = api_get_user_info($userId); Event::addEvent(LOG_USER_CREATE, LOG_USER_ID, $userId, api_get_utc_datetime(), $user_id_manager); Event::addEvent(LOG_USER_CREATE, LOG_USER_OBJECT, $user_info, api_get_utc_datetime(), $user_id_manager); } else { return api_set_failure('error inserting in Database'); } if (is_array($extra) && count($extra) > 0) { $res = true; foreach ($extra as $fname => $fvalue) { $res = $res && self::update_extra_field_value($userId, $fname, $fvalue); } } self::update_extra_field_value($userId, 'already_logged_in', 'false'); return $userId; }
function api_get_language_interface() { $valid_languages = api_get_languages(); $user_language = api_get_user_language(); $courseInfo = api_get_course_info(); $language_interface = 'english'; $languageFromLogin = api_get_language_selected_in_login(); if (!empty($languageFromLogin)) { $language_interface = $languageFromLogin; } if (!empty($valid_languages)) { // User language or platform lang //platformLanguage //if (!empty($user_language)) { $language_interface = $user_language; //} // Course language if (!empty($courseInfo) && isset($courseInfo['language'])) { $language_interface = $courseInfo['language']; } //error_log('$language_interface: '.$language_interface); // Lang priorities could be: course_lang, user_profil_lang, user_selected_lang , platform_lang $language_priority1 = api_get_setting('languagePriority1'); $language_priority2 = api_get_setting('languagePriority2'); $language_priority3 = api_get_setting('languagePriority3'); $language_priority4 = api_get_setting('languagePriority4'); /*error_log('$language_interface1: '.$language_priority1); error_log('$language_interface2: '.$language_priority2); error_log('$language_interface3: '.$language_priority3); error_log('$language_interface4: '.$language_priority4);*/ if (!empty($language_priority4) && api_get_language_from_type($language_priority4) !== false) { $language_interface = api_get_language_from_type($language_priority4); } if (!empty($language_priority3) && api_get_language_from_type($language_priority3) !== false) { $language_interface = api_get_language_from_type($language_priority3); } if (!empty($language_priority2) && api_get_language_from_type($language_priority2) !== false) { $language_interface = api_get_language_from_type($language_priority2); } if (!empty($language_priority1) && api_get_language_from_type($language_priority1) !== false) { $language_interface = api_get_language_from_type($language_priority1); } // If user lang is not valid get the default platform lang if (empty($language_interface) || !in_array($language_interface, $valid_languages['folder'])) { $language_interface = api_get_setting('platformLanguage'); } } return $language_interface; }
if (isset($settings['settings_latest_update']) && $settings['settings_latest_update'] != $settingsLatestUpdate) { api_set_settings_and_plugins(); } } $app['plugins'] = Session::read('_plugins'); // Default template style. $templateStyle = api_get_setting('template'); $templateStyle = isset($templateStyle) && !empty($templateStyle) ? $templateStyle : 'default'; if (!is_dir($app['sys_root'] . 'main/template/' . $templateStyle)) { $templateStyle = 'default'; } $app['template_style'] = $templateStyle; // Default layout. $app['default_layout'] = $app['template_style'] . '/layout/layout_1_col.tpl'; // Setting languages. $app['api_get_languages'] = api_get_languages(); $app['language_interface'] = $language_interface = api_get_language_interface(); // Reconfigure template now that we know the user. $app['template.hide_global_chat'] = !api_is_global_chat_enabled(); /** Setting the course quota */ // Default quota for the course documents folder $default_quota = api_get_setting('default_document_quotum'); // Just in case the setting is not correctly set if (empty($default_quota)) { $default_quota = 100000000; } define('DEFAULT_DOCUMENT_QUOTA', $default_quota); // Specification for usernames: // 1. ASCII-letters, digits, "." (dot), "_" (underscore) are acceptable, 40 characters maximum length. // 2. Empty username is formally valid, but it is reserved for the anonymous user. // 3. Checking the login_is_email portal setting in order to accept 100 chars maximum
/** * Displays a form (drop down menu) so the user can select his/her preferred language. * The form works with or without javascript * @param boolean Hide form if only one language available (defaults to false = show the box anyway) * @return void Display the box directly */ function api_display_language_form($hide_if_no_choice = false) { // Retrieve a complete list of all the languages. $language_list = api_get_languages(); if (count($language_list['name']) <= 1 && $hide_if_no_choice) { return; //don't show any form } // The the current language of the user so that his/her language occurs as selected in the dropdown menu. if (isset($_SESSION['user_language_choice'])) { $user_selected_language = $_SESSION['user_language_choice']; } if (empty($user_selected_language)) { $user_selected_language = api_get_setting('platformLanguage'); } $original_languages = $language_list['name']; $folder = $language_list['folder']; // This line is probably no longer needed. $html = ' <script type="text/javascript"> <!-- $(document).ready(function() { $("#language_list").change(function() { jumpMenu("parent",this,0); }); }); function jumpMenu(targ,selObj,restore){ // v3.0 eval(targ+".location=\'"+selObj.options[selObj.selectedIndex].value+"\'"); if (restore) selObj.selectedIndex=0; } //--> </script>'; $html .= '<form id="lang_form" name="lang_form" method="post" action="' . api_get_self() . '">'; $html .= '<label style="display: none;" for="language_list">' . get_lang('Language') . '</label>'; $html .= '<select id="language_list" class="selectpicker show-tick form-control" name="language_list" >'; foreach ($original_languages as $key => $value) { if ($folder[$key] == $user_selected_language) { $option_end = ' selected="selected" >'; } else { $option_end = '>'; } $html .= '<option value="' . api_get_self() . '?language=' . $folder[$key] . '"' . $option_end; //echo substr($value, 0, 16); // Cut string to keep 800x600 aspect. $html .= $value . '</option>'; } $html .= '</select>'; $html .= '<noscript><input type="submit" name="user_select_language" value="' . get_lang('Ok') . '" /></noscript>'; $html .= '</form>'; return $html; }
/** * Update user information with all the parameters passed to this function * @param int The ID of the user to be updated * @param string The user's firstname * @param string The user's lastname * @param string The user's username (login) * @param string The user's password * @param string The authentication source (default: "platform") * @param string The user's e-mail address * @param int The user's status * @param string The user's official code (usually just an internal institutional code) * @param string The user's phone number * @param string The user's picture URL (internal to the Chamilo directory) * @param int The user ID of the person who registered this user (optional, defaults to null) * @param int The department of HR in which the user is registered (optional, defaults to 0) * @param array A series of additional fields to add to this user as extra fields (optional, defaults to null) * @return boolean true if the user information was updated * @assert (false) === false */ public static function update_user($user_id, $firstname, $lastname, $username, $password = null, $auth_source = null, $email = null, $status = STUDENT, $official_code = null, $phone = null, $picture_uri = null, $expiration_date = null, $active = 1, $creator_id = null, $hr_dept_id = 0, $extra = null, $language = 'english', $encrypt_method = '', $send_email = false, $reset_password = 0) { global $_configuration; $original_password = $password; $user_info = api_get_user_info($user_id, false, true); if ($reset_password == 0) { $password = null; $auth_source = $user_info['auth_source']; } elseif ($reset_password == 1) { $original_password = $password = api_generate_password(); $auth_source = PLATFORM_AUTH_SOURCE; } elseif ($reset_password == 2) { $password = $password; $auth_source = PLATFORM_AUTH_SOURCE; } elseif ($reset_password == 3) { $password = $password; $auth_source = $auth_source; } if ($user_id != strval(intval($user_id))) { return false; } if ($user_id === false) { return false; } $table_user = Database::get_main_table(TABLE_MAIN_USER); //Checking the user language $languages = api_get_languages(); if (!in_array($language, $languages['folder'])) { $language = api_get_setting('platformLanguage'); } $sql = "UPDATE {$table_user} SET\n lastname='" . Database::escape_string($lastname) . "',\n firstname='" . Database::escape_string($firstname) . "',\n username='******',\n language='" . Database::escape_string($language) . "',"; if (!is_null($password)) { if ($encrypt_method == '') { $password = api_get_encrypted_password($password); } else { if ($_configuration['password_encryption'] === $encrypt_method) { if ($encrypt_method == 'md5' && !preg_match('/^[A-Fa-f0-9]{32}$/', $password)) { return api_set_failure('encrypt_method invalid'); } else { if ($encrypt_method == 'sha1' && !preg_match('/^[A-Fa-f0-9]{40}$/', $password)) { return api_set_failure('encrypt_method invalid'); } } } else { return api_set_failure('encrypt_method invalid'); } } $sql .= " password='******',"; } if (!is_null($auth_source)) { $sql .= " auth_source='" . Database::escape_string($auth_source) . "',"; } $sql .= "\n email='" . Database::escape_string($email) . "',\n status='" . Database::escape_string($status) . "',\n official_code='" . Database::escape_string($official_code) . "',\n phone='" . Database::escape_string($phone) . "',\n picture_uri='" . Database::escape_string($picture_uri) . "',\n expiration_date='" . Database::escape_string($expiration_date) . "',\n active='" . Database::escape_string($active) . "',\n hr_dept_id=" . intval($hr_dept_id); if (!is_null($creator_id)) { $sql .= ", creator_id='" . Database::escape_string($creator_id) . "'"; } $sql .= " WHERE user_id = '{$user_id}' "; $return = Database::query($sql); if (is_array($extra) && count($extra) > 0) { $res = true; foreach ($extra as $fname => $fvalue) { $res = $res && self::update_extra_field_value($user_id, $fname, $fvalue); } } if ($user_info['active'] != $active) { self::change_active_state($user_id, $active); } global $app; // Adding user /** @var Entity\User $user */ $em = $app['orm.ems']['db_write']; $user = $em->getRepository('Entity\\User')->find($user_id); $role = $em->getRepository('Entity\\Role')->find($status); $user->getRolesObj()->remove(0); $user->getRolesObj()->add($role); $em->persist($user); $em->flush(); if (!empty($email) && $send_email) { $recipient_name = api_get_person_name($firstname, $lastname, null, PERSON_NAME_EMAIL_ADDRESS); $emailsubject = '[' . api_get_setting('siteName') . '] ' . get_lang('YourReg') . ' ' . api_get_setting('siteName'); $sender_name = api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname'), null, PERSON_NAME_EMAIL_ADDRESS); $email_admin = api_get_setting('emailAdministrator'); if ($_configuration['multiple_access_urls']) { $access_url_id = api_get_current_access_url_id(); if ($access_url_id != -1) { $url = api_get_current_access_url_info(); $emailbody = get_lang('Dear') . " " . stripslashes(api_get_person_name($firstname, $lastname)) . ",\n\n" . get_lang('YouAreReg') . " " . api_get_setting('siteName') . " " . get_lang('WithTheFollowingSettings') . "\n\n" . get_lang('Username') . " : " . $username . ($reset_password > 0 ? "\n" . get_lang('Pass') . " : " . stripslashes($original_password) : "") . "\n\n" . get_lang('Address') . " " . api_get_setting('siteName') . " " . get_lang('Is') . " : " . $url['url'] . "\n\n" . get_lang('Problem') . "\n\n" . get_lang('Formula') . ",\n\n" . api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname')) . "\n" . get_lang('Manager') . " " . api_get_setting('siteName') . "\nT. " . api_get_setting('administratorTelephone') . "\n" . get_lang('Email') . " : " . api_get_setting('emailAdministrator'); } } else { $emailbody = get_lang('Dear') . " " . stripslashes(api_get_person_name($firstname, $lastname)) . ",\n\n" . get_lang('YouAreReg') . " " . api_get_setting('siteName') . " " . get_lang('WithTheFollowingSettings') . "\n\n" . get_lang('Username') . " : " . $username . ($reset_password > 0 ? "\n" . get_lang('Pass') . " : " . stripslashes($original_password) : "") . "\n\n" . get_lang('Address') . " " . api_get_setting('siteName') . " " . get_lang('Is') . " : " . $_configuration['root_web'] . "\n\n" . get_lang('Problem') . "\n\n" . get_lang('Formula') . ",\n\n" . api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname')) . "\n" . get_lang('Manager') . " " . api_get_setting('siteName') . "\nT. " . api_get_setting('administratorTelephone') . "\n" . get_lang('Email') . " : " . api_get_setting('emailAdministrator'); } @api_mail_html($recipient_name, $email, $emailsubject, $emailbody, $sender_name, $email_admin); } $user_info = api_get_user_info($user_id); event_system(LOG_USER_UPDATED, LOG_USER_ID, $user_id, api_get_utc_datetime(), api_get_user_id()); event_system(LOG_USER_UPDATED, LOG_USER_OBJECT, $user_info, api_get_utc_datetime(), api_get_user_id()); return $return; }
$values['group'] = isset($groups['group_id']) ? $groups['group_id'] : 0; $action_todo = true; break; } if ($action_todo) { if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'add') { $form_title = get_lang('AddNews'); $url = api_get_self(); } elseif (isset($_REQUEST['action']) && $_REQUEST['action'] == 'edit') { $form_title = get_lang('EditNews'); $url = api_get_self() . '?id=' . intval($_GET['id']); } $form = new FormValidator('system_announcement', 'post', $url); $form->addElement('header', '', $form_title); $form->addText('title', get_lang('Title'), true); $language_list = api_get_languages(); $language_list_with_keys = array(); $language_list_with_keys['all'] = get_lang('All'); for ($i = 0; $i < count($language_list['name']); $i++) { $language_list_with_keys[$language_list['folder'][$i]] = $language_list['name'][$i]; } $form->addElement('select', 'lang', get_lang('Language'), $language_list_with_keys); $form->addHtmlEditor('content', get_lang('Content'), true, false, array('ToolbarSet' => 'PortalNews', 'Width' => '100%', 'Height' => '300')); $form->addDateRangePicker('range', get_lang('StartTimeWindow'), true, array('id' => 'date_range')); $group = array(); $group[] = $form->createElement('checkbox', 'visible_teacher', null, get_lang('Teacher')); $group[] = $form->createElement('checkbox', 'visible_student', null, get_lang('Student')); $group[] = $form->createElement('checkbox', 'visible_guest', null, get_lang('Guest')); $form->addGroup($group, null, get_lang('Visible'), ''); $form->addElement('hidden', 'id'); $userGroup = new UserGroup();
unset(${$item}); } $sub_file = $langpath . $sub_language['dokeos_folder'] . '/' . $language_file_item . '.inc.php'; if (file_exists($sub_file) && is_file($sub_file)) { include $sub_file; } // sub language array $sub_language_array[$language_file_item] = compact($lang_list_result); //cleaning the variables foreach ($lang_list_result as $item) { unset(${$item}); } } } // Checking if we have a valid language. If not we set it to the platform language. $valid_languages = api_get_languages(); if (!empty($valid_languages)) { if (!in_array($user_language, $valid_languages['folder'])) { $user_language = api_get_setting('language.platform_language'); } $language_priority1 = api_get_setting('languagePriority1'); $language_priority2 = api_get_setting('languagePriority2'); $language_priority3 = api_get_setting('languagePriority3'); $language_priority4 = api_get_setting('languagePriority4'); if (isset($_GET['language']) || isset($_POST['language_list']) && !empty($_POST['language_list']) || !empty($browser_language)) { $user_selected_language = $user_language; // $_GET['language']; or HTTP_ACCEPT_LANGUAGE $_SESSION['user_language_choice'] = $user_selected_language; $platformLanguage = $user_selected_language; } if (!empty($language_priority4) && api_get_language_from_type($language_priority4) !== false) {
$event_name = isset($_REQUEST['event_type_name']) ? addslashes($_REQUEST['event_type_name']) : 0; if ($action == 'modEventType') { if ($eventUsers) { $users = explode(';', $eventUsers); } else { $users = array(); } if (!empty($event_name)) { $eventName = $event_name; } Event::save_event_type_message($eventName, $users, $eventMessage, $eventSubject, $eventMessageLanguage, $activated); header('location: event_controller.php'); exit; } $ets = Event::get_all_event_types(); $languages = api_get_languages(); $ajaxPath = api_get_path(WEB_CODE_PATH) . 'inc/ajax/events.ajax.php'; $action_array = array(array('url' => 'event_controller.php?action=listing', 'content' => Display::return_icon('view_text.png', get_lang('ListView'), array(), ICON_SIZE_MEDIUM))); $key_lang = get_lang('YouHaveSomeUnsavedChanges'); $users = UserManager::get_user_list(array(), array('firstname')); $new_user_list = array(); foreach ($users as $user) { if ($user['status'] == ANONYMOUS) { continue; } $new_user_list[] = $user; } /** * Header definition */ $interbreadcrumb[] = array('url' => 'index.php', 'name' => get_lang('PlatformAdmin'));
/** * Update user information with all the parameters passed to this function * @param int The ID of the user to be updated * @param string The user's firstname * @param string The user's lastname * @param string The user's username (login) * @param string The user's password * @param string The authentication source (default: "platform") * @param string The user's e-mail address * @param int The user's status * @param string The user's official code (usually just an internal institutional code) * @param string The user's phone number * @param string The user's picture URL (internal to the Chamilo directory) * @param int The user ID of the person who registered this user (optional, defaults to null) * @param int The department of HR in which the user is registered (optional, defaults to 0) * @param array A series of additional fields to add to this user as extra fields (optional, defaults to null) * @return boolean true if the user information was updated * @assert (false, false, false, false, false, false, false, false, false, false, false, false, false) === false */ public static function update_user( $user_id, $firstname, $lastname, $username, $password = null, $auth_source = null, $email, $status, $official_code, $phone, $picture_uri, $expiration_date, $active, $creator_id = null, $hr_dept_id = 0, $extra = null, $language = 'english', $encrypt_method = '', $send_email = false, $reset_password = 0 ) { global $_configuration; $original_password = $password; if (empty($user_id)) { return false; } $user_info = api_get_user_info($user_id, false, true); if ($reset_password == 0) { $password = null; $auth_source = $user_info['auth_source']; } elseif ($reset_password == 1) { $original_password = $password = api_generate_password(); $auth_source = PLATFORM_AUTH_SOURCE; } elseif ($reset_password == 2) { $password = $password; $auth_source = PLATFORM_AUTH_SOURCE; } elseif ($reset_password == 3) { $password = $password; $auth_source = $auth_source; } if ($user_id != strval(intval($user_id))) return false; if ($user_id === false) return false; $table_user = Database :: get_main_table(TABLE_MAIN_USER); //Checking the user language $languages = api_get_languages(); if (!in_array($language, $languages['folder'])) { $language = api_get_setting('platformLanguage'); } $change_active = 0; if ($user_info['active'] != $active) { $change_active = 1; } $sql = "UPDATE $table_user SET lastname='".Database::escape_string($lastname)."', firstname='".Database::escape_string($firstname)."', username='******', language='".Database::escape_string($language)."',"; if (!is_null($password)) { if ($encrypt_method == '') { $password = api_get_encrypted_password($password); } else { if ($_configuration['password_encryption'] === $encrypt_method) { if ($encrypt_method == 'md5' && !preg_match('/^[A-Fa-f0-9]{32}$/', $password)) { return api_set_failure('encrypt_method invalid'); } else if ($encrypt_method == 'sha1' && !preg_match('/^[A-Fa-f0-9]{40}$/', $password)) { return api_set_failure('encrypt_method invalid'); } } else { return api_set_failure('encrypt_method invalid'); } } $sql .= " password='******',"; } if (!is_null($auth_source)) { $sql .= " auth_source='".Database::escape_string($auth_source)."',"; } $sql .= " email='".Database::escape_string($email)."', status='".Database::escape_string($status)."', official_code='".Database::escape_string($official_code)."', phone='".Database::escape_string($phone)."', picture_uri='".Database::escape_string($picture_uri)."', expiration_date='".Database::escape_string($expiration_date)."', active='".Database::escape_string($active)."', hr_dept_id=".intval($hr_dept_id); if (!is_null($creator_id)) { $sql .= ", creator_id='".intval($creator_id)."'"; } $sql .= " WHERE user_id='$user_id'"; $return = Database::query($sql); if ($change_active == 1 && $return) { if ($active == 1) { $event_title = LOG_USER_ENABLE; } else { $event_title = LOG_USER_DISABLE; } event_system($event_title, LOG_USER_ID, $user_id); } if (is_array($extra) && count($extra) > 0) { $res = true; foreach ($extra as $fname => $fvalue) { $res = $res && self::update_extra_field_value($user_id, $fname, $fvalue); } } if (!empty($email) && $send_email) { $recipient_name = api_get_person_name($firstname, $lastname, null, PERSON_NAME_EMAIL_ADDRESS); $emailsubject = '['.api_get_setting('siteName').'] '.get_lang('YourReg').' '.api_get_setting('siteName'); $sender_name = api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname'), null, PERSON_NAME_EMAIL_ADDRESS); $email_admin = api_get_setting('emailAdministrator'); if (api_is_multiple_url_enabled()) { $access_url_id = api_get_current_access_url_id(); if ($access_url_id != -1) { $url = api_get_access_url($access_url_id); $emailbody = get_lang('Dear')." ".stripslashes(api_get_person_name($firstname, $lastname)).",\n\n".get_lang('YouAreReg')." ".api_get_setting('siteName')." ".get_lang('WithTheFollowingSettings')."\n\n".get_lang('Username')." : ".$username.(($reset_password > 0) ? "\n".get_lang('Pass')." : ".stripslashes($original_password) : "")."\n\n".get_lang('Address')." ".api_get_setting('siteName')." ".get_lang('Is')." : ".$url['url']."\n\n".get_lang('Problem')."\n\n".get_lang('SignatureFormula').",\n\n".api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname'))."\n".get_lang('Manager')." ".api_get_setting('siteName')."\nT. ".api_get_setting('administratorTelephone')."\n".get_lang('Email')." : ".api_get_setting('emailAdministrator'); } } else { $emailbody = get_lang('Dear')." ".stripslashes(api_get_person_name($firstname, $lastname)).",\n\n".get_lang('YouAreReg')." ".api_get_setting('siteName')." ".get_lang('WithTheFollowingSettings')."\n\n".get_lang('Username')." : ".$username.(($reset_password > 0) ? "\n".get_lang('Pass')." : ".stripslashes($original_password) : "")."\n\n".get_lang('Address')." ".api_get_setting('siteName')." ".get_lang('Is')." : ".$_configuration['root_web']."\n\n".get_lang('Problem')."\n\n".get_lang('SignatureFormula').",\n\n".api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname'))."\n".get_lang('Manager')." ".api_get_setting('siteName')."\nT. ".api_get_setting('administratorTelephone')."\n".get_lang('Email')." : ".api_get_setting('emailAdministrator'); } @api_mail_html($recipient_name, $email, $emailsubject, $emailbody, $sender_name, $email_admin); } return $return; }