From 2c026033a80d8cb4364c016a9178a1d61fc23c04 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Juan=20Carlos=20Ra=C3=B1a?=
Date: Wed, 28 Oct 2009 00:57:00 +0100
Subject: [PATCH 1/8] fix lang var
---
main/admin/user_list.php | 1558 +++++++++++++++++++-------------------
1 file changed, 779 insertions(+), 779 deletions(-)
diff --git a/main/admin/user_list.php b/main/admin/user_list.php
index 1cf266ae36..a2eb221e3e 100644
--- a/main/admin/user_list.php
+++ b/main/admin/user_list.php
@@ -1,779 +1,779 @@
-';
-$htmlHeadXtra[] = '';
-$htmlHeadXtra[] = '';
-
-$this_section = SECTION_PLATFORM_ADMIN;
-api_protect_admin_script(true);
-
-/**
-* Make sure this function is protected because it does NOT check password!
-*
-* This function defines globals.
-* @param int User ID
-* @return bool False on failure, redirection on success
-* @author Evie Embrechts
-* @author Yannick Warnier
-*/
-function login_user($user_id) {
- //init ---------------------------------------------------------------------
- //Load $_user to be sure we clean it before logging in
- global $uidReset, $loginFailed, $_configuration, $_user;
-
- $main_user_table = Database :: get_main_table(TABLE_MAIN_USER);
- $main_admin_table = Database :: get_main_table(TABLE_MAIN_ADMIN);
- $track_e_login_table = Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_LOGIN);
-
- //logic --------------------------------------------------------------------
- unset($_user['user_id']); // uid not in session ? prevent any hacking
- if (!isset ($user_id)) {
- $uidReset = true;
- return;
- }
- if ($user_id != strval(intval($user_id))) {
- return false;
- }
-
- $sql_query = "SELECT * FROM $main_user_table WHERE user_id='$user_id'";
- $sql_result = Database::query($sql_query, __FILE__, __LINE__);
- $result = Database :: fetch_array($sql_result);
-
- // check if the user is allowed to 'login_as'
- $can_login_as = (api_is_platform_admin() OR (api_is_session_admin() && $result['status'] == 5 ));
- if (!$can_login_as) { return false; }
-
- $firstname = $result['firstname'];
- $lastname = $result['lastname'];
- $user_id = $result['user_id'];
-
- //$message = "Attempting to login as ".api_get_person_name($firstname, $lastname)." (id ".$user_id.")";
- if (api_is_western_name_order()) {
- $message = sprintf(get_lang('AttemptingToLoginAs'),$firstname,$lastname,$user_id);
- } else {
- $message = sprintf(get_lang('AttemptingToLoginAs'), $lastname, $firstname, $user_id);
- }
-
- $loginFailed = false;
- $uidReset = false;
-
- if ($user_id) { // a uid is given (log in succeeded)
- if ($_configuration['tracking_enabled']) {
- $sql_query = "SELECT user.*, a.user_id is_admin,
- UNIX_TIMESTAMP(login.login_date) login_date
- FROM $main_user_table
- LEFT JOIN $main_admin_table a
- ON user.user_id = a.user_id
- LEFT JOIN $track_e_login_table login
- ON user.user_id = login.login_user_id
- WHERE user.user_id = '".$user_id."'
- ORDER BY login.login_date DESC LIMIT 1";
- } else {
- $sql_query = "SELECT user.*, a.user_id is_admin
- FROM $main_user_table
- LEFT JOIN $main_admin_table a
- ON user.user_id = a.user_id
- WHERE user.user_id = '".$user_id."'";
- }
-
- $sql_result = Database::query($sql_query, __FILE__, __LINE__);
-
-
- if (Database::num_rows($sql_result) > 0) {
- // Extracting the user data
-
- $user_data = Database::fetch_array($sql_result);
-
- //Delog the current user
-
- LoginDelete($_SESSION["_user"]["user_id"]);
-
- // Cleaning session variables
- unset($_SESSION['_user']);
- unset($_SESSION['is_platformAdmin']);
- unset($_SESSION['is_allowedCreateCourse']);
- unset($_SESSION['_uid']);
-
-
- $_user['firstName'] = $user_data['firstname'];
- $_user['lastName'] = $user_data['lastname'];
- $_user['mail'] = $user_data['email'];
- $_user['lastLogin'] = $user_data['login_date'];
- $_user['official_code'] = $user_data['official_code'];
- $_user['picture_uri'] = $user_data['picture_uri'];
- $_user['user_id'] = $user_data['user_id'];
- $_user['status'] = $user_data['status'];
-
- $is_platformAdmin = (bool) (!is_null($user_data['is_admin']));
- $is_allowedCreateCourse = (bool) ($user_data['status'] == 1);
-
- // Filling session variables with new data
- $_SESSION['_uid'] = $user_id;
- $_SESSION['_user'] = $_user;
- $_SESSION['is_platformAdmin'] = $is_platformAdmin;
- $_SESSION['is_allowedCreateCourse'] = $is_allowedCreateCourse;
- $_SESSION['login_as'] = true; // will be usefull later to know if the user is actually an admin or not (example reporting)s
-
- $target_url = api_get_path(WEB_PATH)."user_portal.php";
- //$message .= "
Login successful. Go to $target_url";
- $message .= '
'.sprintf(get_lang('LoginSuccessfulGoToX'),''.$target_url.'');
- Display :: display_header(get_lang('UserList'));
- Display :: display_normal_message($message,false);
- Display :: display_footer();
- exit;
- } else {
- exit ("
WARNING UNDEFINED UID !! ");
- }
- }
-}
-/**
- * Get the total number of users on the platform
- * @see SortableTable#get_total_number_of_items()
- */
-function get_number_of_users()
-{
- $user_table = Database :: get_main_table(TABLE_MAIN_USER);
- $sql = "SELECT COUNT(u.user_id) AS total_number_of_items FROM $user_table u";
-
- // adding the filter to see the user's only of the current access_url
- global $_configuration;
- if ((api_is_platform_admin() || api_is_session_admin()) && $_configuration['multiple_access_urls']==true && api_get_current_access_url_id()!=-1) {
- $access_url_rel_user_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
- $sql.= " INNER JOIN $access_url_rel_user_table url_rel_user ON (u.user_id=url_rel_user.user_id)";
- }
-
- if ( isset ($_GET['keyword'])) {
- $keyword = Database::escape_string($_GET['keyword']);
- $sql .= " WHERE (u.firstname LIKE '%".$keyword."%' OR u.lastname LIKE '%".$keyword."%' OR u.username LIKE '%".$keyword."%' OR u.email LIKE '%".$keyword."%' OR u.official_code LIKE '%".$keyword."%') ";
- } elseif (isset ($_GET['keyword_firstname'])) {
- $admin_table = Database :: get_main_table(TABLE_MAIN_ADMIN);
- $keyword_firstname = Database::escape_string($_GET['keyword_firstname']);
- $keyword_lastname = Database::escape_string($_GET['keyword_lastname']);
- $keyword_email = Database::escape_string($_GET['keyword_email']);
- $keyword_officialcode = Database::escape_string($_GET['keyword_officialcode']);
- $keyword_username = Database::escape_string($_GET['keyword_username']);
- $keyword_status = Database::escape_string($_GET['keyword_status']);
- $query_admin_table = '';
- $keyword_admin = '';
- if ($keyword_status == SESSIONADMIN) {
- $keyword_status = '%';
- $query_admin_table = " , $admin_table a ";
- $keyword_admin = ' AND a.user_id = u.user_id ';
- }
- $keyword_active = isset($_GET['keyword_active']);
- $keyword_inactive = isset($_GET['keyword_inactive']);
- $sql .= $query_admin_table .
- " WHERE (u.firstname LIKE '%".$keyword_firstname."%' " .
- "AND u.lastname LIKE '%".$keyword_lastname."%' " .
- "AND u.username LIKE '%".$keyword_username."%' " .
- "AND u.email LIKE '%".$keyword_email."%' " .
- "AND u.official_code LIKE '%".$keyword_officialcode."%' " .
- "AND u.status LIKE '".$keyword_status."'" .
- $keyword_admin;
- if($keyword_active && !$keyword_inactive) {
- $sql .= " AND u.active='1'";
- } elseif($keyword_inactive && !$keyword_active) {
- $sql .= " AND u.active='0'";
- }
- $sql .= " ) ";
- }
-
- // adding the filter to see the user's only of the current access_url
- if ((api_is_platform_admin() || api_is_session_admin()) && $_configuration['multiple_access_urls']==true && api_get_current_access_url_id()!=-1) {
- $sql.= " AND url_rel_user.access_url_id=".api_get_current_access_url_id();
- }
-
- $res = Database::query($sql, __FILE__, __LINE__);
- $obj = Database::fetch_object($res);
- return $obj->total_number_of_items;
-}
-/**
- * Get the users to display on the current page (fill the sortable-table)
- * @param int offset of first user to recover
- * @param int Number of users to get
- * @param int Column to sort on
- * @param string Order (ASC,DESC)
- * @see SortableTable#get_table_data($from)
- */
-function get_user_data($from, $number_of_items, $column, $direction)
-{
- $user_table = Database :: get_main_table(TABLE_MAIN_USER);
- $admin_table = Database :: get_main_table(TABLE_MAIN_ADMIN);
- $sql = "SELECT
- u.user_id AS col0,
- u.official_code AS col1,
- ".(api_is_western_name_order()
- ? "u.firstname AS col2,
- u.lastname AS col3,"
- : "u.lastname AS col2,
- u.firstname AS col3,")."
- u.username AS col4,
- u.email AS col5,
- u.status AS col6,
- u.active AS col7,
- u.user_id AS col8 ".
- ", u.expiration_date AS exp ".
- " FROM $user_table u ";
-
- // adding the filter to see the user's only of the current access_url
- global $_configuration;
- if ((api_is_platform_admin() || api_is_session_admin()) && $_configuration['multiple_access_urls']==true && api_get_current_access_url_id()!=-1) {
- $access_url_rel_user_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
- $sql.= " INNER JOIN $access_url_rel_user_table url_rel_user ON (u.user_id=url_rel_user.user_id)";
- }
-
- if (isset ($_GET['keyword'])) {
- $keyword = Database::escape_string($_GET['keyword']);
- $sql .= " WHERE (u.firstname LIKE '%".$keyword."%' OR u.lastname LIKE '%".$keyword."%' OR u.username LIKE '%".$keyword."%' OR u.official_code LIKE '%".$keyword."%' OR u.email LIKE '%".$keyword."%' )";
- } elseif (isset ($_GET['keyword_firstname'])) {
- $keyword_firstname = Database::escape_string($_GET['keyword_firstname']);
- $keyword_lastname = Database::escape_string($_GET['keyword_lastname']);
- $keyword_email = Database::escape_string($_GET['keyword_email']);
- $keyword_officialcode = Database::escape_string($_GET['keyword_officialcode']);
- $keyword_username = Database::escape_string($_GET['keyword_username']);
- $keyword_status = Database::escape_string($_GET['keyword_status']);
- $query_admin_table = '';
- $keyword_admin = '';
-
- if ($keyword_status == SESSIONADMIN) {
- $keyword_status = '%';
- $query_admin_table = " , $admin_table a ";
- $keyword_admin = ' AND a.user_id = u.user_id ';
- }
- $keyword_active = isset($_GET['keyword_active']);
- $keyword_inactive = isset($_GET['keyword_inactive']);
- $sql .= $query_admin_table." WHERE (u.firstname LIKE '%".$keyword_firstname."%' " .
- "AND u.lastname LIKE '%".$keyword_lastname."%' " .
- "AND u.username LIKE '%".$keyword_username."%' " .
- "AND u.email LIKE '%".$keyword_email."%' " .
- "AND u.official_code LIKE '%".$keyword_officialcode."%' " .
- "AND u.status LIKE '".$keyword_status."'" .
- $keyword_admin;
-
- if ($keyword_active && !$keyword_inactive) {
- $sql .= " AND u.active='1'";
- } elseif($keyword_inactive && !$keyword_active) {
- $sql .= " AND u.active='0'";
- }
- $sql .= " ) ";
- }
-
- // adding the filter to see the user's only of the current access_url
- if ((api_is_platform_admin() || api_is_session_admin()) && $_configuration['multiple_access_urls']==true && api_get_current_access_url_id()!=-1) {
- $sql.= " AND url_rel_user.access_url_id=".api_get_current_access_url_id();
- }
-
- if (!in_array($direction, array('ASC','DESC'))) {
- $direction = 'ASC';
- }
- $column = intval($column);
- $from = intval($from);
- $number_of_items = intval($number_of_items);
-
- $sql .= " ORDER BY col$column $direction ";
- $sql .= " LIMIT $from,$number_of_items";
- $res = Database::query($sql, __FILE__, __LINE__);
-
- $users = array ();
- $t = time();
- while ($user = Database::fetch_row($res)) {
- if ($user[7] == 1 && $user[9] != '0000-00-00 00:00:00') {
- // check expiration date
- $expiration_time = convert_mysql_date($user[9]);
- // if expiration date is passed, store a special value for active field
- if ($expiration_time < $t) {
- $user[7] = '-1';
- }
- }
- // forget about the expiration date field
- $users[] = array($user[0],$user[1],$user[2],$user[3],$user[4],$user[5],$user[6],$user[7],$user[8]);
- }
- return $users;
-}
-/**
-* Returns a mailto-link
-* @param string $email An email-address
-* @return string HTML-code with a mailto-link
-*/
-function email_filter($email)
-{
- return Display :: encrypted_mailto_link($email, $email);
-}
-/**
- * Build the modify-column of the table
- * @param int The user id
- * @param string URL params to add to table links
- * @param array Row of elements to alter
- * @return string Some HTML-code with modify-buttons
- */
-function modify_filter($user_id,$url_params,$row)
-{
- global $charset;
- global $_user;
- global $_admins_list;
- $is_admin = in_array($user_id,$_admins_list);
- $statusname = api_get_status_langvars();
- $user_is_anonymous = false;
- if ($row['6'] == $statusname[ANONYMOUS]) {
- $user_is_anonymous =true;
- }
- if (!$user_is_anonymous) {
- $result .= '
-
-
- ';
- } else {
- $result .= Display::return_icon('course_na.gif',get_lang('Courses')).' ';
- }
-
- if (api_is_platform_admin()) {
- if (!$user_is_anonymous) {
- $result .= ''.Display::return_icon('synthese_view.gif', get_lang('Info')).' ';
- } else {
- $result .= Display::return_icon('synthese_view_na.gif', get_lang('Info')).' ';
- }
- }
-
- //only allow platform admins to login_as, or session admins only for students (not teachers nor other admins)
- if (api_is_platform_admin() || (api_is_session_admin() && $row['6'] == $statusname[STUDENT])) {
- if (!$user_is_anonymous) {
- $result .= ''.Display::return_icon('login_as.gif', get_lang('LoginAs')).' ';
- } else {
- $result .= Display::return_icon('login_as_na.gif', get_lang('LoginAs')).' ';
- }
- } else {
- $result .= Display::return_icon('login_as_na.gif', get_lang('LoginAs')).' ';
- }
- if ($row['6'] != $statusname[STUDENT]) {
- $result .= Display::return_icon('statistics_na.gif', get_lang('Reporting')).' ';
- } else {
- $result .= ''.Display::return_icon('statistics.gif', get_lang('Reporting')).' ';
- }
-
- if (api_is_platform_admin()) {
- if (!$user_is_anonymous) {
- $result .= ''.Display::return_icon('edit.gif', get_lang('Edit')).' ';
- } else {
- $result .= Display::return_icon('edit_na.gif', get_lang('Edit')).' ';
- }
-
- if ($row[0]<>$_user['user_id'] && $user_is_anonymous == false) {
- // you cannot lock yourself out otherwise you could disable all the accounts including your own => everybody is locked out and nobody can change it anymore.
- $result .= ''.Display::return_icon('delete.gif', get_lang('Delete')).'';
- } else {
- $result .= Display::return_icon('delete_na.gif', get_lang('Delete'));
- }
- }
- if ($is_admin) {
- $result .= Display::return_icon('admin_star.png', get_lang('IsAdministrator'),array('width'=> 22, 'heigth'=> 22));
-
- } else {
- $result .= Display::return_icon('admin_star_na.png', get_lang('IsNotAdministrator'));
- }
- return $result;
-}
-
-
-/**
- * Build the active-column of the table to lock or unlock a certain user
- * lock = the user can no longer use this account
- * @author Patrick Cool , Ghent University
- * @param int $active the current state of the account
- * @param int $user_id The user id
- * @param string $url_params
- * @return string Some HTML-code with the lock/unlock button
- */
-function active_filter($active, $url_params, $row) {
- global $_user;
-
- if ($active=='1') {
- $action='lock';
- $image='right';
- } elseif ($active=='-1') {
- $action='edit';
- $image='expired';
- } elseif ($active=='0') {
- $action='unlock';
- $image='wrong';
- }
-
- if ($action=='edit') {
- $result = Display::return_icon($image.'.gif', get_lang('AccountExpired'));
- }elseif ($row['0']<>$_user['user_id']) { // you cannot lock yourself out otherwise you could disable all the accounts including your own => everybody is locked out and nobody can change it anymore.
- $result = ''.Display::return_icon($image.'.gif', get_lang(ucfirst($action))).'';
- }
- return $result;
-}
-
-/**
- * Lock or unlock a user
- * @author Patrick Cool , Ghent University
- * @param int $status, do we want to lock the user ($status=lock) or unlock it ($status=unlock)
- * @param int $user_id The user id
- * @return language variable
- */
-function lock_unlock_user($status,$user_id)
-{
- $user_table = Database :: get_main_table(TABLE_MAIN_USER);
- if ($status=='lock')
- {
- $status_db='0';
- $return_message=get_lang('UserLocked');
- }
- if ($status=='unlock')
- {
- $status_db='1';
- $return_message=get_lang('UserUnlocked');
- }
-
- if(($status_db=='1' OR $status_db=='0') AND is_numeric($user_id))
- {
- $sql="UPDATE $user_table SET active='".Database::escape_string($status_db)."' WHERE user_id='".Database::escape_string($user_id)."'";
- $result = Database::query($sql, __FILE__, __LINE__);
- }
-
- if ($result)
- {
- return $return_message;
- }
-}
-
-/**
- * Instead of displaying the integer of the status, we give a translation for the status
- *
- * @param integer $status
- * @return string translation
- *
- * @version march 2008
- * @author Patrick Cool , Ghent University, Belgium
- */
-function status_filter($status)
-{
- $statusname = api_get_status_langvars();
- return $statusname[$status];
-}
-
-
-/**
-==============================================================================
- INIT SECTION
-==============================================================================
-*/
-$action = $_GET["action"];
-$login_as_user_id = $_GET["user_id"];
-
-
-
-// Login as ...
-if ($_GET['action'] == "login_as" && isset ($login_as_user_id))
-{
- login_user($login_as_user_id);
-}
-
-if (isset ($_GET['search']) && $_GET['search'] == 'advanced')
-{
- $interbreadcrumb[] = array ("url" => 'index.php', "name" => get_lang('PlatformAdmin'));
- $interbreadcrumb[] = array ("url" => 'user_list.php', "name" => get_lang('UserList'));
- $tool_name = get_lang('SearchAUser');
- Display :: display_header($tool_name);
- //api_display_tool_title($tool_name);
- $form = new FormValidator('advanced_search','get');
- $form->addElement('header', '', $tool_name);
- $form->add_textfield('keyword_firstname',get_lang('FirstName'),false);
- $form->add_textfield('keyword_lastname',get_lang('LastName'),false);
- $form->add_textfield('keyword_username',get_lang('LoginName'),false);
- $form->add_textfield('keyword_email',get_lang('Email'),false);
- $form->add_textfield('keyword_officialcode',get_lang('OfficialCode'),false);
- $status_options = array();
- $status_options['%'] = get_lang('All');
- $status_options[STUDENT] = get_lang('Student');
- $status_options[COURSEMANAGER] = get_lang('Teacher');
- $status_options[SESSIONADMIN] = get_lang('Administrator');//
- $form->addElement('select','keyword_status',get_lang('Status'),$status_options);
- $active_group = array();
- $active_group[] = $form->createElement('checkbox','keyword_active','',get_lang('Active'));
- $active_group[] = $form->createElement('checkbox','keyword_inactive','',get_lang('Inactive'));
- $form->addGroup($active_group,'',get_lang('ActiveAccount'),'
',false);
- $form->addElement('style_submit_button', 'submit',get_lang('SearchUsers'),'class="search"');
- $defaults['keyword_active'] = 1;
- $defaults['keyword_inactive'] = 1;
- $form->setDefaults($defaults);
- $form->display();
-}
-else
-{
- $interbreadcrumb[] = array ("url" => 'index.php', "name" => get_lang('PlatformAdmin'));
- $tool_name = get_lang('UserList');
- Display :: display_header($tool_name, "");
-
- //api_display_tool_title($tool_name);
- if (isset ($_GET['action'])) {
- $check = Security::check_token('get');
- if($check) {
- switch ($_GET['action']) {
- case 'show_message' :
- if (!empty($_GET['warn'])) {
- // to prevent too long messages
- if ($_GET['warn'] == 'session_message'){
- $_GET['warn'] = $_SESSION['session_message_import_users'];
- }
- Display::display_warning_message(urldecode($_GET['warn']),false);
- }
- if (!empty($_GET['message'])) {
- Display :: display_confirmation_message(stripslashes($_GET['message']));
- }
- break;
- case 'delete_user' :
- if (api_is_platform_admin()) {
- if ($user_id != $_user['user_id'] && UserManager :: delete_user($_GET['user_id'])) {
- Display :: display_normal_message(get_lang('UserDeleted'));
- } else {
- Display :: display_error_message(get_lang('CannotDeleteUserBecauseOwnsCourse'));
- }
- }
- break;
- case 'lock' :
- $message=lock_unlock_user('lock',$_GET['user_id']);
- Display :: display_normal_message($message);
- break;
- case 'unlock';
- $message=lock_unlock_user('unlock',$_GET['user_id']);
- Display :: display_normal_message($message);
- break;
-
- }
- Security::clear_token();
- }
- }
- if (isset ($_POST['action']))
- {
- $check = Security::check_token('get');
- if($check)
- {
- switch ($_POST['action'])
- {
- case 'delete' :
- if (api_is_platform_admin()) {
- $number_of_selected_users = count($_POST['id']);
- $number_of_deleted_users = 0;
- if (is_array($_POST['id'])) {
- foreach ($_POST['id'] as $index => $user_id)
- {
- if($user_id != $_user['user_id'])
- {
- if(UserManager :: delete_user($user_id))
- {
- $number_of_deleted_users++;
- }
- }
- }
- }
- if($number_of_selected_users == $number_of_deleted_users)
- {
- Display :: display_normal_message(get_lang('SelectedUsersDeleted'));
- }
- else
- {
- Display :: display_error_message(get_lang('SomeUsersNotDeleted'));
- }
- }
- break;
- }
- Security::clear_token();
- }
- }
- // Create a search-box
- $form = new FormValidator('search_simple','get','','',null,false);
- $renderer =& $form->defaultRenderer();
- $renderer->setElementTemplate('{element} ');
- $form->addElement('text','keyword',get_lang('keyword'));
- $form->addElement('style_submit_button', 'submit',get_lang('Search'),'class="search"');
- $form->addElement('static','search_advanced_link',null,''.get_lang('AdvancedSearch').'');
- echo '';
- if (isset ($_GET['keyword'])) {
- $parameters = array ('keyword' => Security::remove_XSS($_GET['keyword']));
- } elseif (isset ($_GET['keyword_firstname'])) {
- $parameters['keyword_firstname'] = Security::remove_XSS($_GET['keyword_firstname']);
- $parameters['keyword_lastname'] = Security::remove_XSS($_GET['keyword_lastname']);
- $parameters['keyword_email'] = Security::remove_XSS($_GET['keyword_email']);
- $parameters['keyword_officialcode'] = Security::remove_XSS($_GET['keyword_officialcode']);
- $parameters['keyword_status'] = Security::remove_XSS($_GET['keyword_status']);
- $parameters['keyword_active'] = Security::remove_XSS($_GET['keyword_active']);
- $parameters['keyword_inactive'] = Security::remove_XSS($_GET['keyword_inactive']);
- }
- // Create a sortable table with user-data
- $parameters['sec_token'] = Security::get_token();
-
- // get the list of all admins to mark them in the users list
- $admin_table = Database::get_main_table(TABLE_MAIN_ADMIN);
- $sql_admin = "SELECT user_id FROM $admin_table";
- $res_admin = Database::query($sql_admin);
- $_admins_list = array();
- while ($row_admin = Database::fetch_row($res_admin)) {
- $_admins_list[] = $row_admin[0];
- }
-
- $table = new SortableTable('users', 'get_number_of_users', 'get_user_data', (api_is_western_name_order() xor api_sort_by_first_name()) ? 3 : 2);
- $table->set_additional_parameters($parameters);
- $table->set_header(0, '', false);
- $table->set_header(1, get_lang('OfficialCode'));
- if (api_is_western_name_order()) {
- $table->set_header(2, get_lang('FirstName'));
- $table->set_header(3, get_lang('LastName'));
- } else {
- $table->set_header(2, get_lang('LastName'));
- $table->set_header(3, get_lang('FirstName'));
- }
- $table->set_header(4, get_lang('LoginName'));
- $table->set_header(5, get_lang('Email'));
- $table->set_header(6, get_lang('Status'));
- $table->set_header(7, get_lang('Active'));
- $table->set_header(8, get_lang('Modify'));
- $table->set_column_filter(5, 'email_filter');
- $table->set_column_filter(6, 'status_filter');
- $table->set_column_filter(7, 'active_filter');
- $table->set_column_filter(8, 'modify_filter');
- if (api_is_platform_admin())
- $table->set_form_actions(array ('delete' => get_lang('DeleteFromPlatform')));
- $table->display();
-}
-/*
-==============================================================================
- FOOTER
-==============================================================================
-*/
-Display :: display_footer();
-?>
+';
+$htmlHeadXtra[] = '';
+$htmlHeadXtra[] = '';
+
+$this_section = SECTION_PLATFORM_ADMIN;
+api_protect_admin_script(true);
+
+/**
+* Make sure this function is protected because it does NOT check password!
+*
+* This function defines globals.
+* @param int User ID
+* @return bool False on failure, redirection on success
+* @author Evie Embrechts
+* @author Yannick Warnier
+*/
+function login_user($user_id) {
+ //init ---------------------------------------------------------------------
+ //Load $_user to be sure we clean it before logging in
+ global $uidReset, $loginFailed, $_configuration, $_user;
+
+ $main_user_table = Database :: get_main_table(TABLE_MAIN_USER);
+ $main_admin_table = Database :: get_main_table(TABLE_MAIN_ADMIN);
+ $track_e_login_table = Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_LOGIN);
+
+ //logic --------------------------------------------------------------------
+ unset($_user['user_id']); // uid not in session ? prevent any hacking
+ if (!isset ($user_id)) {
+ $uidReset = true;
+ return;
+ }
+ if ($user_id != strval(intval($user_id))) {
+ return false;
+ }
+
+ $sql_query = "SELECT * FROM $main_user_table WHERE user_id='$user_id'";
+ $sql_result = Database::query($sql_query, __FILE__, __LINE__);
+ $result = Database :: fetch_array($sql_result);
+
+ // check if the user is allowed to 'login_as'
+ $can_login_as = (api_is_platform_admin() OR (api_is_session_admin() && $result['status'] == 5 ));
+ if (!$can_login_as) { return false; }
+
+ $firstname = $result['firstname'];
+ $lastname = $result['lastname'];
+ $user_id = $result['user_id'];
+
+ //$message = "Attempting to login as ".api_get_person_name($firstname, $lastname)." (id ".$user_id.")";
+ if (api_is_western_name_order()) {
+ $message = sprintf(get_lang('AttemptingToLoginAs'),$firstname,$lastname,$user_id);
+ } else {
+ $message = sprintf(get_lang('AttemptingToLoginAs'), $lastname, $firstname, $user_id);
+ }
+
+ $loginFailed = false;
+ $uidReset = false;
+
+ if ($user_id) { // a uid is given (log in succeeded)
+ if ($_configuration['tracking_enabled']) {
+ $sql_query = "SELECT user.*, a.user_id is_admin,
+ UNIX_TIMESTAMP(login.login_date) login_date
+ FROM $main_user_table
+ LEFT JOIN $main_admin_table a
+ ON user.user_id = a.user_id
+ LEFT JOIN $track_e_login_table login
+ ON user.user_id = login.login_user_id
+ WHERE user.user_id = '".$user_id."'
+ ORDER BY login.login_date DESC LIMIT 1";
+ } else {
+ $sql_query = "SELECT user.*, a.user_id is_admin
+ FROM $main_user_table
+ LEFT JOIN $main_admin_table a
+ ON user.user_id = a.user_id
+ WHERE user.user_id = '".$user_id."'";
+ }
+
+ $sql_result = Database::query($sql_query, __FILE__, __LINE__);
+
+
+ if (Database::num_rows($sql_result) > 0) {
+ // Extracting the user data
+
+ $user_data = Database::fetch_array($sql_result);
+
+ //Delog the current user
+
+ LoginDelete($_SESSION["_user"]["user_id"]);
+
+ // Cleaning session variables
+ unset($_SESSION['_user']);
+ unset($_SESSION['is_platformAdmin']);
+ unset($_SESSION['is_allowedCreateCourse']);
+ unset($_SESSION['_uid']);
+
+
+ $_user['firstName'] = $user_data['firstname'];
+ $_user['lastName'] = $user_data['lastname'];
+ $_user['mail'] = $user_data['email'];
+ $_user['lastLogin'] = $user_data['login_date'];
+ $_user['official_code'] = $user_data['official_code'];
+ $_user['picture_uri'] = $user_data['picture_uri'];
+ $_user['user_id'] = $user_data['user_id'];
+ $_user['status'] = $user_data['status'];
+
+ $is_platformAdmin = (bool) (!is_null($user_data['is_admin']));
+ $is_allowedCreateCourse = (bool) ($user_data['status'] == 1);
+
+ // Filling session variables with new data
+ $_SESSION['_uid'] = $user_id;
+ $_SESSION['_user'] = $_user;
+ $_SESSION['is_platformAdmin'] = $is_platformAdmin;
+ $_SESSION['is_allowedCreateCourse'] = $is_allowedCreateCourse;
+ $_SESSION['login_as'] = true; // will be usefull later to know if the user is actually an admin or not (example reporting)s
+
+ $target_url = api_get_path(WEB_PATH)."user_portal.php";
+ //$message .= "
Login successful. Go to $target_url";
+ $message .= '
'.sprintf(get_lang('LoginSuccessfulGoToX'),''.$target_url.'');
+ Display :: display_header(get_lang('UserList'));
+ Display :: display_normal_message($message,false);
+ Display :: display_footer();
+ exit;
+ } else {
+ exit ("
WARNING UNDEFINED UID !! ");
+ }
+ }
+}
+/**
+ * Get the total number of users on the platform
+ * @see SortableTable#get_total_number_of_items()
+ */
+function get_number_of_users()
+{
+ $user_table = Database :: get_main_table(TABLE_MAIN_USER);
+ $sql = "SELECT COUNT(u.user_id) AS total_number_of_items FROM $user_table u";
+
+ // adding the filter to see the user's only of the current access_url
+ global $_configuration;
+ if ((api_is_platform_admin() || api_is_session_admin()) && $_configuration['multiple_access_urls']==true && api_get_current_access_url_id()!=-1) {
+ $access_url_rel_user_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
+ $sql.= " INNER JOIN $access_url_rel_user_table url_rel_user ON (u.user_id=url_rel_user.user_id)";
+ }
+
+ if ( isset ($_GET['keyword'])) {
+ $keyword = Database::escape_string($_GET['keyword']);
+ $sql .= " WHERE (u.firstname LIKE '%".$keyword."%' OR u.lastname LIKE '%".$keyword."%' OR u.username LIKE '%".$keyword."%' OR u.email LIKE '%".$keyword."%' OR u.official_code LIKE '%".$keyword."%') ";
+ } elseif (isset ($_GET['keyword_firstname'])) {
+ $admin_table = Database :: get_main_table(TABLE_MAIN_ADMIN);
+ $keyword_firstname = Database::escape_string($_GET['keyword_firstname']);
+ $keyword_lastname = Database::escape_string($_GET['keyword_lastname']);
+ $keyword_email = Database::escape_string($_GET['keyword_email']);
+ $keyword_officialcode = Database::escape_string($_GET['keyword_officialcode']);
+ $keyword_username = Database::escape_string($_GET['keyword_username']);
+ $keyword_status = Database::escape_string($_GET['keyword_status']);
+ $query_admin_table = '';
+ $keyword_admin = '';
+ if ($keyword_status == SESSIONADMIN) {
+ $keyword_status = '%';
+ $query_admin_table = " , $admin_table a ";
+ $keyword_admin = ' AND a.user_id = u.user_id ';
+ }
+ $keyword_active = isset($_GET['keyword_active']);
+ $keyword_inactive = isset($_GET['keyword_inactive']);
+ $sql .= $query_admin_table .
+ " WHERE (u.firstname LIKE '%".$keyword_firstname."%' " .
+ "AND u.lastname LIKE '%".$keyword_lastname."%' " .
+ "AND u.username LIKE '%".$keyword_username."%' " .
+ "AND u.email LIKE '%".$keyword_email."%' " .
+ "AND u.official_code LIKE '%".$keyword_officialcode."%' " .
+ "AND u.status LIKE '".$keyword_status."'" .
+ $keyword_admin;
+ if($keyword_active && !$keyword_inactive) {
+ $sql .= " AND u.active='1'";
+ } elseif($keyword_inactive && !$keyword_active) {
+ $sql .= " AND u.active='0'";
+ }
+ $sql .= " ) ";
+ }
+
+ // adding the filter to see the user's only of the current access_url
+ if ((api_is_platform_admin() || api_is_session_admin()) && $_configuration['multiple_access_urls']==true && api_get_current_access_url_id()!=-1) {
+ $sql.= " AND url_rel_user.access_url_id=".api_get_current_access_url_id();
+ }
+
+ $res = Database::query($sql, __FILE__, __LINE__);
+ $obj = Database::fetch_object($res);
+ return $obj->total_number_of_items;
+}
+/**
+ * Get the users to display on the current page (fill the sortable-table)
+ * @param int offset of first user to recover
+ * @param int Number of users to get
+ * @param int Column to sort on
+ * @param string Order (ASC,DESC)
+ * @see SortableTable#get_table_data($from)
+ */
+function get_user_data($from, $number_of_items, $column, $direction)
+{
+ $user_table = Database :: get_main_table(TABLE_MAIN_USER);
+ $admin_table = Database :: get_main_table(TABLE_MAIN_ADMIN);
+ $sql = "SELECT
+ u.user_id AS col0,
+ u.official_code AS col1,
+ ".(api_is_western_name_order()
+ ? "u.firstname AS col2,
+ u.lastname AS col3,"
+ : "u.lastname AS col2,
+ u.firstname AS col3,")."
+ u.username AS col4,
+ u.email AS col5,
+ u.status AS col6,
+ u.active AS col7,
+ u.user_id AS col8 ".
+ ", u.expiration_date AS exp ".
+ " FROM $user_table u ";
+
+ // adding the filter to see the user's only of the current access_url
+ global $_configuration;
+ if ((api_is_platform_admin() || api_is_session_admin()) && $_configuration['multiple_access_urls']==true && api_get_current_access_url_id()!=-1) {
+ $access_url_rel_user_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
+ $sql.= " INNER JOIN $access_url_rel_user_table url_rel_user ON (u.user_id=url_rel_user.user_id)";
+ }
+
+ if (isset ($_GET['keyword'])) {
+ $keyword = Database::escape_string($_GET['keyword']);
+ $sql .= " WHERE (u.firstname LIKE '%".$keyword."%' OR u.lastname LIKE '%".$keyword."%' OR u.username LIKE '%".$keyword."%' OR u.official_code LIKE '%".$keyword."%' OR u.email LIKE '%".$keyword."%' )";
+ } elseif (isset ($_GET['keyword_firstname'])) {
+ $keyword_firstname = Database::escape_string($_GET['keyword_firstname']);
+ $keyword_lastname = Database::escape_string($_GET['keyword_lastname']);
+ $keyword_email = Database::escape_string($_GET['keyword_email']);
+ $keyword_officialcode = Database::escape_string($_GET['keyword_officialcode']);
+ $keyword_username = Database::escape_string($_GET['keyword_username']);
+ $keyword_status = Database::escape_string($_GET['keyword_status']);
+ $query_admin_table = '';
+ $keyword_admin = '';
+
+ if ($keyword_status == SESSIONADMIN) {
+ $keyword_status = '%';
+ $query_admin_table = " , $admin_table a ";
+ $keyword_admin = ' AND a.user_id = u.user_id ';
+ }
+ $keyword_active = isset($_GET['keyword_active']);
+ $keyword_inactive = isset($_GET['keyword_inactive']);
+ $sql .= $query_admin_table." WHERE (u.firstname LIKE '%".$keyword_firstname."%' " .
+ "AND u.lastname LIKE '%".$keyword_lastname."%' " .
+ "AND u.username LIKE '%".$keyword_username."%' " .
+ "AND u.email LIKE '%".$keyword_email."%' " .
+ "AND u.official_code LIKE '%".$keyword_officialcode."%' " .
+ "AND u.status LIKE '".$keyword_status."'" .
+ $keyword_admin;
+
+ if ($keyword_active && !$keyword_inactive) {
+ $sql .= " AND u.active='1'";
+ } elseif($keyword_inactive && !$keyword_active) {
+ $sql .= " AND u.active='0'";
+ }
+ $sql .= " ) ";
+ }
+
+ // adding the filter to see the user's only of the current access_url
+ if ((api_is_platform_admin() || api_is_session_admin()) && $_configuration['multiple_access_urls']==true && api_get_current_access_url_id()!=-1) {
+ $sql.= " AND url_rel_user.access_url_id=".api_get_current_access_url_id();
+ }
+
+ if (!in_array($direction, array('ASC','DESC'))) {
+ $direction = 'ASC';
+ }
+ $column = intval($column);
+ $from = intval($from);
+ $number_of_items = intval($number_of_items);
+
+ $sql .= " ORDER BY col$column $direction ";
+ $sql .= " LIMIT $from,$number_of_items";
+ $res = Database::query($sql, __FILE__, __LINE__);
+
+ $users = array ();
+ $t = time();
+ while ($user = Database::fetch_row($res)) {
+ if ($user[7] == 1 && $user[9] != '0000-00-00 00:00:00') {
+ // check expiration date
+ $expiration_time = convert_mysql_date($user[9]);
+ // if expiration date is passed, store a special value for active field
+ if ($expiration_time < $t) {
+ $user[7] = '-1';
+ }
+ }
+ // forget about the expiration date field
+ $users[] = array($user[0],$user[1],$user[2],$user[3],$user[4],$user[5],$user[6],$user[7],$user[8]);
+ }
+ return $users;
+}
+/**
+* Returns a mailto-link
+* @param string $email An email-address
+* @return string HTML-code with a mailto-link
+*/
+function email_filter($email)
+{
+ return Display :: encrypted_mailto_link($email, $email);
+}
+/**
+ * Build the modify-column of the table
+ * @param int The user id
+ * @param string URL params to add to table links
+ * @param array Row of elements to alter
+ * @return string Some HTML-code with modify-buttons
+ */
+function modify_filter($user_id,$url_params,$row)
+{
+ global $charset;
+ global $_user;
+ global $_admins_list;
+ $is_admin = in_array($user_id,$_admins_list);
+ $statusname = api_get_status_langvars();
+ $user_is_anonymous = false;
+ if ($row['6'] == $statusname[ANONYMOUS]) {
+ $user_is_anonymous =true;
+ }
+ if (!$user_is_anonymous) {
+ $result .= '
+
+
+ ';
+ } else {
+ $result .= Display::return_icon('course_na.gif',get_lang('Courses')).' ';
+ }
+
+ if (api_is_platform_admin()) {
+ if (!$user_is_anonymous) {
+ $result .= ''.Display::return_icon('synthese_view.gif', get_lang('Info')).' ';
+ } else {
+ $result .= Display::return_icon('synthese_view_na.gif', get_lang('Info')).' ';
+ }
+ }
+
+ //only allow platform admins to login_as, or session admins only for students (not teachers nor other admins)
+ if (api_is_platform_admin() || (api_is_session_admin() && $row['6'] == $statusname[STUDENT])) {
+ if (!$user_is_anonymous) {
+ $result .= ''.Display::return_icon('login_as.gif', get_lang('LoginAs')).' ';
+ } else {
+ $result .= Display::return_icon('login_as_na.gif', get_lang('LoginAs')).' ';
+ }
+ } else {
+ $result .= Display::return_icon('login_as_na.gif', get_lang('LoginAs')).' ';
+ }
+ if ($row['6'] != $statusname[STUDENT]) {
+ $result .= Display::return_icon('statistics_na.gif', get_lang('Reporting')).' ';
+ } else {
+ $result .= ''.Display::return_icon('statistics.gif', get_lang('Reporting')).' ';
+ }
+
+ if (api_is_platform_admin()) {
+ if (!$user_is_anonymous) {
+ $result .= ''.Display::return_icon('edit.gif', get_lang('Edit')).' ';
+ } else {
+ $result .= Display::return_icon('edit_na.gif', get_lang('Edit')).' ';
+ }
+
+ if ($row[0]<>$_user['user_id'] && $user_is_anonymous == false) {
+ // you cannot lock yourself out otherwise you could disable all the accounts including your own => everybody is locked out and nobody can change it anymore.
+ $result .= ''.Display::return_icon('delete.gif', get_lang('Delete')).'';
+ } else {
+ $result .= Display::return_icon('delete_na.gif', get_lang('Delete'));
+ }
+ }
+ if ($is_admin) {
+ $result .= Display::return_icon('admin_star.png', get_lang('IsAdministrator'),array('width'=> 22, 'heigth'=> 22));
+
+ } else {
+ $result .= Display::return_icon('admin_star_na.png', get_lang('IsNotAdministrator'));
+ }
+ return $result;
+}
+
+
+/**
+ * Build the active-column of the table to lock or unlock a certain user
+ * lock = the user can no longer use this account
+ * @author Patrick Cool , Ghent University
+ * @param int $active the current state of the account
+ * @param int $user_id The user id
+ * @param string $url_params
+ * @return string Some HTML-code with the lock/unlock button
+ */
+function active_filter($active, $url_params, $row) {
+ global $_user;
+
+ if ($active=='1') {
+ $action='lock';
+ $image='right';
+ } elseif ($active=='-1') {
+ $action='edit';
+ $image='expired';
+ } elseif ($active=='0') {
+ $action='unlock';
+ $image='wrong';
+ }
+
+ if ($action=='edit') {
+ $result = Display::return_icon($image.'.gif', get_lang('AccountExpired'));
+ }elseif ($row['0']<>$_user['user_id']) { // you cannot lock yourself out otherwise you could disable all the accounts including your own => everybody is locked out and nobody can change it anymore.
+ $result = ''.Display::return_icon($image.'.gif', get_lang(ucfirst($action))).'';
+ }
+ return $result;
+}
+
+/**
+ * Lock or unlock a user
+ * @author Patrick Cool , Ghent University
+ * @param int $status, do we want to lock the user ($status=lock) or unlock it ($status=unlock)
+ * @param int $user_id The user id
+ * @return language variable
+ */
+function lock_unlock_user($status,$user_id)
+{
+ $user_table = Database :: get_main_table(TABLE_MAIN_USER);
+ if ($status=='lock')
+ {
+ $status_db='0';
+ $return_message=get_lang('UserLocked');
+ }
+ if ($status=='unlock')
+ {
+ $status_db='1';
+ $return_message=get_lang('UserUnlocked');
+ }
+
+ if(($status_db=='1' OR $status_db=='0') AND is_numeric($user_id))
+ {
+ $sql="UPDATE $user_table SET active='".Database::escape_string($status_db)."' WHERE user_id='".Database::escape_string($user_id)."'";
+ $result = Database::query($sql, __FILE__, __LINE__);
+ }
+
+ if ($result)
+ {
+ return $return_message;
+ }
+}
+
+/**
+ * Instead of displaying the integer of the status, we give a translation for the status
+ *
+ * @param integer $status
+ * @return string translation
+ *
+ * @version march 2008
+ * @author Patrick Cool , Ghent University, Belgium
+ */
+function status_filter($status)
+{
+ $statusname = api_get_status_langvars();
+ return $statusname[$status];
+}
+
+
+/**
+==============================================================================
+ INIT SECTION
+==============================================================================
+*/
+$action = $_GET["action"];
+$login_as_user_id = $_GET["user_id"];
+
+
+
+// Login as ...
+if ($_GET['action'] == "login_as" && isset ($login_as_user_id))
+{
+ login_user($login_as_user_id);
+}
+
+if (isset ($_GET['search']) && $_GET['search'] == 'advanced')
+{
+ $interbreadcrumb[] = array ("url" => 'index.php', "name" => get_lang('PlatformAdmin'));
+ $interbreadcrumb[] = array ("url" => 'user_list.php', "name" => get_lang('UserList'));
+ $tool_name = get_lang('SearchAUser');
+ Display :: display_header($tool_name);
+ //api_display_tool_title($tool_name);
+ $form = new FormValidator('advanced_search','get');
+ $form->addElement('header', '', $tool_name);
+ $form->add_textfield('keyword_firstname',get_lang('FirstName'),false);
+ $form->add_textfield('keyword_lastname',get_lang('LastName'),false);
+ $form->add_textfield('keyword_username',get_lang('LoginName'),false);
+ $form->add_textfield('keyword_email',get_lang('Email'),false);
+ $form->add_textfield('keyword_officialcode',get_lang('OfficialCode'),false);
+ $status_options = array();
+ $status_options['%'] = get_lang('All');
+ $status_options[STUDENT] = get_lang('Student');
+ $status_options[COURSEMANAGER] = get_lang('Teacher');
+ $status_options[SESSIONADMIN] = get_lang('Administrator');//
+ $form->addElement('select','keyword_status',get_lang('Status'),$status_options);
+ $active_group = array();
+ $active_group[] = $form->createElement('checkbox','keyword_active','',get_lang('Active'));
+ $active_group[] = $form->createElement('checkbox','keyword_inactive','',get_lang('Inactive'));
+ $form->addGroup($active_group,'',get_lang('ActiveAccount'),'
',false);
+ $form->addElement('style_submit_button', 'submit',get_lang('SearchUsers'),'class="search"');
+ $defaults['keyword_active'] = 1;
+ $defaults['keyword_inactive'] = 1;
+ $form->setDefaults($defaults);
+ $form->display();
+}
+else
+{
+ $interbreadcrumb[] = array ("url" => 'index.php', "name" => get_lang('PlatformAdmin'));
+ $tool_name = get_lang('UserList');
+ Display :: display_header($tool_name, "");
+
+ //api_display_tool_title($tool_name);
+ if (isset ($_GET['action'])) {
+ $check = Security::check_token('get');
+ if($check) {
+ switch ($_GET['action']) {
+ case 'show_message' :
+ if (!empty($_GET['warn'])) {
+ // to prevent too long messages
+ if ($_GET['warn'] == 'session_message'){
+ $_GET['warn'] = $_SESSION['session_message_import_users'];
+ }
+ Display::display_warning_message(urldecode($_GET['warn']),false);
+ }
+ if (!empty($_GET['message'])) {
+ Display :: display_confirmation_message(stripslashes($_GET['message']));
+ }
+ break;
+ case 'delete_user' :
+ if (api_is_platform_admin()) {
+ if ($user_id != $_user['user_id'] && UserManager :: delete_user($_GET['user_id'])) {
+ Display :: display_normal_message(get_lang('UserDeleted'));
+ } else {
+ Display :: display_error_message(get_lang('CannotDeleteUserBecauseOwnsCourse'));
+ }
+ }
+ break;
+ case 'lock' :
+ $message=lock_unlock_user('lock',$_GET['user_id']);
+ Display :: display_normal_message($message);
+ break;
+ case 'unlock';
+ $message=lock_unlock_user('unlock',$_GET['user_id']);
+ Display :: display_normal_message($message);
+ break;
+
+ }
+ Security::clear_token();
+ }
+ }
+ if (isset ($_POST['action']))
+ {
+ $check = Security::check_token('get');
+ if($check)
+ {
+ switch ($_POST['action'])
+ {
+ case 'delete' :
+ if (api_is_platform_admin()) {
+ $number_of_selected_users = count($_POST['id']);
+ $number_of_deleted_users = 0;
+ if (is_array($_POST['id'])) {
+ foreach ($_POST['id'] as $index => $user_id)
+ {
+ if($user_id != $_user['user_id'])
+ {
+ if(UserManager :: delete_user($user_id))
+ {
+ $number_of_deleted_users++;
+ }
+ }
+ }
+ }
+ if($number_of_selected_users == $number_of_deleted_users)
+ {
+ Display :: display_normal_message(get_lang('SelectedUsersDeleted'));
+ }
+ else
+ {
+ Display :: display_error_message(get_lang('SomeUsersNotDeleted'));
+ }
+ }
+ break;
+ }
+ Security::clear_token();
+ }
+ }
+ // Create a search-box
+ $form = new FormValidator('search_simple','get','','',null,false);
+ $renderer =& $form->defaultRenderer();
+ $renderer->setElementTemplate('{element} ');
+ $form->addElement('text','keyword',get_lang('keyword'));
+ $form->addElement('style_submit_button', 'submit',get_lang('Search'),'class="search"');
+ $form->addElement('static','search_advanced_link',null,''.get_lang('AdvancedSearch').'');
+ echo '';
+ if (isset ($_GET['keyword'])) {
+ $parameters = array ('keyword' => Security::remove_XSS($_GET['keyword']));
+ } elseif (isset ($_GET['keyword_firstname'])) {
+ $parameters['keyword_firstname'] = Security::remove_XSS($_GET['keyword_firstname']);
+ $parameters['keyword_lastname'] = Security::remove_XSS($_GET['keyword_lastname']);
+ $parameters['keyword_email'] = Security::remove_XSS($_GET['keyword_email']);
+ $parameters['keyword_officialcode'] = Security::remove_XSS($_GET['keyword_officialcode']);
+ $parameters['keyword_status'] = Security::remove_XSS($_GET['keyword_status']);
+ $parameters['keyword_active'] = Security::remove_XSS($_GET['keyword_active']);
+ $parameters['keyword_inactive'] = Security::remove_XSS($_GET['keyword_inactive']);
+ }
+ // Create a sortable table with user-data
+ $parameters['sec_token'] = Security::get_token();
+
+ // get the list of all admins to mark them in the users list
+ $admin_table = Database::get_main_table(TABLE_MAIN_ADMIN);
+ $sql_admin = "SELECT user_id FROM $admin_table";
+ $res_admin = Database::query($sql_admin);
+ $_admins_list = array();
+ while ($row_admin = Database::fetch_row($res_admin)) {
+ $_admins_list[] = $row_admin[0];
+ }
+
+ $table = new SortableTable('users', 'get_number_of_users', 'get_user_data', (api_is_western_name_order() xor api_sort_by_first_name()) ? 3 : 2);
+ $table->set_additional_parameters($parameters);
+ $table->set_header(0, '', false);
+ $table->set_header(1, get_lang('OfficialCode'));
+ if (api_is_western_name_order()) {
+ $table->set_header(2, get_lang('FirstName'));
+ $table->set_header(3, get_lang('LastName'));
+ } else {
+ $table->set_header(2, get_lang('LastName'));
+ $table->set_header(3, get_lang('FirstName'));
+ }
+ $table->set_header(4, get_lang('LoginName'));
+ $table->set_header(5, get_lang('Email'));
+ $table->set_header(6, get_lang('Status'));
+ $table->set_header(7, get_lang('Active'));
+ $table->set_header(8, get_lang('Action'));
+ $table->set_column_filter(5, 'email_filter');
+ $table->set_column_filter(6, 'status_filter');
+ $table->set_column_filter(7, 'active_filter');
+ $table->set_column_filter(8, 'modify_filter');
+ if (api_is_platform_admin())
+ $table->set_form_actions(array ('delete' => get_lang('DeleteFromPlatform')));
+ $table->display();
+}
+/*
+==============================================================================
+ FOOTER
+==============================================================================
+*/
+Display :: display_footer();
+?>
From e0a4c7660a2e48cf3062c01205f1720ca8787b2d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Juan=20Carlos=20Ra=C3=B1a?=
Date: Wed, 28 Oct 2009 01:01:56 +0100
Subject: [PATCH 2/8] disable sorting in action column
---
main/admin/user_list.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/main/admin/user_list.php b/main/admin/user_list.php
index a2eb221e3e..ffc8eeeaaa 100644
--- a/main/admin/user_list.php
+++ b/main/admin/user_list.php
@@ -761,7 +761,7 @@ else
$table->set_header(5, get_lang('Email'));
$table->set_header(6, get_lang('Status'));
$table->set_header(7, get_lang('Active'));
- $table->set_header(8, get_lang('Action'));
+ $table->set_header(8, get_lang('Action'), false);
$table->set_column_filter(5, 'email_filter');
$table->set_column_filter(6, 'status_filter');
$table->set_column_filter(7, 'active_filter');
From 47bf2f3a0b87b36fc1e6de2bb18ce807548feab9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Juan=20Carlos=20Ra=C3=B1a?=
Date: Wed, 28 Oct 2009 01:20:55 +0100
Subject: [PATCH 3/8] fix lang var
---
main/admin/calendar.lib.php | 4 ++--
main/admin/course_list.php | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/main/admin/calendar.lib.php b/main/admin/calendar.lib.php
index 2545c24fc4..5e5c3ff374 100644
--- a/main/admin/calendar.lib.php
+++ b/main/admin/calendar.lib.php
@@ -796,7 +796,7 @@ function display_agenda_items()
Display::display_icon('agenda.gif', get_lang('Agenda'));
if ($myrow['to_group_id']!=='0')
{
- echo Display::return_icon('group.gif', get_lang('Group'));
+ echo Display::return_icon('group.gif', get_lang('AllUsersOfThePlatform'));
}
echo " ".$myrow['title']."\n";
echo "\t\t\n";
@@ -812,7 +812,7 @@ function display_agenda_items()
{
if( ! (api_is_course_coach() && !api_is_element_in_the_session(TOOL_AGENDA, $myrow['id'] ) ) )
{ // a coach can only delete an element belonging to his session
- echo ''.get_lang('Modify');
+ echo ' | '.get_lang('Actions');
echo ' | ';
}
}
diff --git a/main/admin/course_list.php b/main/admin/course_list.php
index eed31ec8c8..fbb4f1516a 100644
--- a/main/admin/course_list.php
+++ b/main/admin/course_list.php
@@ -286,7 +286,7 @@ else
$table->set_header(6, get_lang('UnsubscriptionAllowed'));
$table->set_header(7, get_lang('IsVirtualCourse'));
$table->set_header(8, get_lang('Teacher'));
- $table->set_header(9, get_lang('Modify'), false,'width="120px"');
+ $table->set_header(9, get_lang('Action'), false,'width="120px"');
$table->set_column_filter(9,'modify_filter');
$table->set_form_actions(array ('delete_courses' => get_lang('DeleteCourse')),'course');
$table->display();
From bd4c5edfa4728521a1bc05f5ab81c25d91d58136 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Juan=20Carlos=20Ra=C3=B1a?=
Date: Wed, 28 Oct 2009 01:27:41 +0100
Subject: [PATCH 4/8] fix display messages
---
main/admin/system_announcements.php | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/main/admin/system_announcements.php b/main/admin/system_announcements.php
index 5b6dfd1f02..256060f52d 100644
--- a/main/admin/system_announcements.php
+++ b/main/admin/system_announcements.php
@@ -123,7 +123,7 @@ if (isset ($_POST['action']))
if (isset ($_GET['action']) && $_GET['action'] == 'delete')
{
SystemAnnouncementManager :: delete_announcement($_GET['id']);
- Display :: display_normal_message(get_lang('AnnouncementDeleted'));
+ Display :: display_confirmation_message(get_lang('AnnouncementDeleted'));
}
// Delete selected announcements
if (isset ($_POST['action']) && $_POST['action'] == 'delete_selected')
@@ -132,7 +132,7 @@ if (isset ($_POST['action']) && $_POST['action'] == 'delete_selected')
{
SystemAnnouncementManager :: delete_announcement($id);
}
- Display :: display_normal_message(get_lang('AnnouncementDeleted'));
+ Display :: display_confirmation_message(get_lang('AnnouncementDeleted'));
$action_todo = false;
}
// Add an announcement
@@ -237,7 +237,7 @@ if ($action_todo)
case 'add':
if(SystemAnnouncementManager::add_announcement($values['title'],$values['content'],$values['start'],$values['end'],$values['visible_teacher'],$values['visible_student'],$values['visible_guest'], $values['lang'],$values['send_mail']))
{
- Display :: display_normal_message(get_lang('AnnouncementAdded'));
+ Display :: display_confirmation_message(get_lang('AnnouncementAdded'));
}
else
{
@@ -248,7 +248,7 @@ if ($action_todo)
case 'edit':
if (SystemAnnouncementManager::update_announcement($values['id'],$values['title'],$values['content'],$values['start'],$values['end'],$values['visible_teacher'],$values['visible_student'],$values['visible_guest'], $values['lang'],$values['send_mail']))
{
- Display :: display_normal_message(get_lang('AnnouncementUpdated'));
+ Display :: display_confirmation_message(get_lang('AnnouncementUpdated'));
}
else
{
From 89dca451a0ea6e3c218b4d35cf09edaa5398d964 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Juan=20Carlos=20Ra=C3=B1a?=
Date: Wed, 28 Oct 2009 21:55:35 +0100
Subject: [PATCH 5/8] fix lang var
---
main/admin/system_announcements.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/main/admin/system_announcements.php b/main/admin/system_announcements.php
index 256060f52d..479a5b7726 100644
--- a/main/admin/system_announcements.php
+++ b/main/admin/system_announcements.php
@@ -77,7 +77,7 @@ Display :: display_header($tool_name);
if($_GET['action'] != 'add' && $_GET['action'] != 'edit')
{
echo '';
}
$form_action = "";
From 34c80dcb3af6800d7b25110baf30bc380edc67dd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Juan=20Carlos=20Ra=C3=B1a?=
Date: Wed, 28 Oct 2009 22:06:29 +0100
Subject: [PATCH 6/8] update lang
---
main/lang/catalan/course_home.inc.php | 3 +
main/lang/catalan/help.inc.php | 5 +-
main/lang/catalan/wiki.inc.php | 151 ++++++++++++
main/lang/english/admin.inc.php | 2 +-
main/lang/italian/admin.inc.php | 2 +
main/lang/italian/course_home.inc.php | 3 +
main/lang/portuguese/myagenda.inc.php | 2 +-
main/lang/portuguese/notebook.inc.php | 24 +-
main/lang/portuguese/notification.inc.php | 44 ++--
main/lang/portuguese/pedaSuggest.inc.php | 32 +--
main/lang/portuguese/registration.inc.php | 272 +++++++++++-----------
main/lang/spanish/admin.inc.php | 40 ++--
main/lang/spanish/tracking.inc.php | 4 +-
main/lang/spanish/trad4all.inc.php | 2 +-
14 files changed, 389 insertions(+), 197 deletions(-)
mode change 100755 => 100644 main/lang/catalan/course_home.inc.php
mode change 100755 => 100644 main/lang/catalan/help.inc.php
mode change 100755 => 100644 main/lang/italian/course_home.inc.php
mode change 100755 => 100644 main/lang/portuguese/myagenda.inc.php
mode change 100755 => 100644 main/lang/portuguese/notebook.inc.php
mode change 100755 => 100644 main/lang/portuguese/notification.inc.php
mode change 100755 => 100644 main/lang/portuguese/pedaSuggest.inc.php
mode change 100755 => 100644 main/lang/portuguese/registration.inc.php
diff --git a/main/lang/catalan/course_home.inc.php b/main/lang/catalan/course_home.inc.php
old mode 100755
new mode 100644
index 10431f2878..983061e85a
--- a/main/lang/catalan/course_home.inc.php
+++ b/main/lang/catalan/course_home.inc.php
@@ -24,4 +24,7 @@ $Authoring = "Creaci
$Administration = "Administració";
$IntroductionTextUpdated = "El text d\'introducció ha estat actualitzat";
$IntroductionTextDeleted = "El text d\'introducció ha estat eliminat";
+$SessionIdentifier = "Identificador de la sesión";
+$SessionName = "Nom de la sessió ";
+$SessionCategory = "Categoria de la sessió ";
?>
\ No newline at end of file
diff --git a/main/lang/catalan/help.inc.php b/main/lang/catalan/help.inc.php
old mode 100755
new mode 100644
index 9e9ce7c741..87a26bb3ee
--- a/main/lang/catalan/help.inc.php
+++ b/main/lang/catalan/help.inc.php
@@ -2,15 +2,16 @@
for more information: see languages.txt in the lang folder.
*/
$langHFor = "Ajuda: Fòrums";
-$langForContent = "El fòrum és una eina de discussió asíncrona per escrit. A diferència del correu-e, el fòrum situa la discussió en un espai públic o semi públic (a molts).
Per utilitzar l\'eina del fòrum, els membres només tenen necessitat del navegador web, sense necessitat d\'eines de correu-e.
Per organitzar els fòrums, cliqueu a \'administrar\'. Els intercanvis s\'organitzen de manera jeràrquica segons l\'arborescència següent:
Categoria > Fòrum > Tema > Resposta
Per permetre als membres discutir de manera estructurada, és indispensable organitzar els intercanvis en categories i fòrums (i deixar-los que creïn els temes i les respostes). Per defecte, el fòrum conté únicament la categoria Public, un tema d\'exemple i un missatge d\'exemple. Podreu afegir fòrums a la categoria Public, o bé modificar el seu títol o inclús crear altres categories en les quals necessitareu llavors crear nous fòrums. Una categoria que no conté cap fòrum no es mostra ni és utilitzable.
Fòrums de grups Per crear fòrums de grups, utilitzeu l\'eina Grups i no Fòrums. Això us permetrà crear fòrums privatius (no accessibles als membres d\'altres grups) i de donar-los alhora un espai de documents als grups.
Astúcies pedagògiques
Un fòrum d\'aprenentatge no és idèntic als fòrums que es troben habitualment a internet. D\'una part, pels alumnes no és possible modificar els missatges una vegada publicats ja que el curs segueix una lògica d\'arxivament i pot ser utilitzat per verificar el que s\'ha dit anteriorment. A més, els fòrums Dokeos permeten algunes utilitzacions particularment pertinents en un context d\'aprenentatge. D\'aquesta manera professors/formadors publiquen directament en els fòrums les seves correccions: - Un alumne és convidat a publicar un informe directament al fòrum,
- El professor el corregeix clicant a Editar (llapis groc) després introdueix les correccions a ajuda de l\'editor gràfic: color, subratllat etc.,
- Finalment, els altres alumnes aprofiten la correcció que se li ha fet a un altre entre ells,
- Tingueu present que aquest mateix principi pot ser utilitzat d\'un alumne a un altres, però s\'haurà de copiar/enganxar el missatge del seu company ja que els estudiants no poden editar els missatges dels seus companys.
";
+$langForContent = " Un fòrum és una eina de debat asíncrona. Mentre que un correu electrònic permet un diàleg privat entre dues persones, en els fòrums aquest diàleg serà públic o semipúblic i podran intervenir més persones.Des del punt de vista tècnic, els usuaris només necessiten un navegador d\'Internet per a usar els fòrums de la Plataforma.Per a organitzar els fòrums de debat, premi en \'Administració dels fòrums\'. Els debats s\'organitzen en categories i subcategories tal com segueix:Categoria > Fòrum > Temi > RespostesPer a estructurar els debats dels seus usuaris, és necessari organitzar per endavant les categories i els fòrums, deixant que ells siguin els quals creuen els temes i les possibles respostes. Per defecte, els fòrums de cada curs contenen dues categories: una reservada als grups del curs \'Fòrums de grups\' i altra comuna al curs, denominada per defecte\'Principal\' (encara que aquest nom pot canviar-se); dintre d\'aquesta última hi ha creat un \'Fòrum de proves\' amb un tema d\'exemple.El primer que ha de fer és esborrar el tema d\'exemple i canviar el nom del fòrum de proves. Després pot crear, en la categoria públic, altres fòrums, bé sigui per grups o temes, per a ajustar-se als requisits de la seva proposta d\'aprenentatge.No confongui les categories amb els fòrums, ni aquests amb els temes, i no oblidi que una categoria buida (sense fòrums) no apareixerà en la vista de l\'usuari.Finalment, cada fòrum pot tenir una descripció que pot consistir en la llista dels seus membres, els seus objectius, temàtica...Els fòrums dels grups no han de crear-se a través de l\'eina \'Fòrums\', sinó mitjançant l\'eina \'Grups\'; en aquesta última podrà decidir si els fòrums del grup seran privats o públics.Ús pedagògic avançatAlguns professors utilitzen el fòrum per a realitzar correccions. Un estudiant publica un document. El professor ho corregeix usant el botó marcador de l\'editor HTML (marca amb un color la correcció o els errors), de manera que altres estudiants i professors podran beneficiar-se d\'elles.";
$langHDropbox = "Ajuda: Compartició de fitxers";
-$langDropboxContent = "L\'eina de compartició de fitxers us mostra els fitxers que us han enviat (carpeta Rebuts) i els que heu enviat a d\'altres usuaris (carpeta Enviats). Si envieu dues vegades un fitxers amb el mateix nom, podeu triar esborrar el primer enviament pel segont.
Com usuari, podeu enviar fitxers només al responsable del curs, a menys que el gestor del sistema hagi activat l\'enviament entre usuaris.
Un responsable pot triar enviar un fitxer a tots el usuaris del curs.
L\'administrador del sistema pot activar l\'enviament de fitxers sense destinatari.
Si la llista de fitxers és molt llarga, podeu suprimir alguns o tots els fitxers. El fitxer en ell mateix no és esborrat pels altres usuaris que hi tenen accés, a menys que l\'esborrin.
";
+$langDropboxContent = "Compartir documents és una eina de gestió de continguts dirigida a l\'intercanvi de dades entre iguals (p2p). Qualsevol tipus de fitxer és acceptat: Word, Excel, PDF, etc. Generarà diferents versions en els enviaments, amb el que evitarà la destrucció d\'un document quan s\'enviï altre amb el mateix nom..Els documents compartits mostren els arxius que li han enviat (carpeta d\'arxius rebuts) i els arxius que Vè. ha enviat a altres membres d\'aquest curs (carpeta d\'arxius enviats)Si la llista d\'arxius rebuts o enviats es fa massa llarga, pot suprimir tots o alguns arxius de la mateixa. L\'arxiu sí mateix no s\'elimina mentre l\'altre usuari ho mantingui en la seva.Per a enviar un document a més d\'una persona, ha d\'utilitzar CTRL+clic per a seleccionar-los en la caixa de selecció múltiple. La caixa de selecció múltiple és el formulari que mostra la llista de membres.";
$langHHome = "Ajuda: Pàgina inicial";
$langHomeContent = "La pàgina inicial del vostre curs presenta una sèrie d\'eines: un text d\'introducció, una descripció del curs, una eina de publicació de Documents, etc. Aquesta pàgina és modular. Podeu visualitzar o ocultar cadascún dels elements clicant + o - (a vegades l\'icona Ull tancat, Ull obert).
NavegacióPer moure\'s pel curs, disposa de dues eines de navegació: una a la part superior esqueera, que mostra el lloc en el qual es troba el curs, l\'altra en la part superior dreta que li permet accedir a qualsevol eina mitjançant un clic en la seva icona. Si selecciona \'Curs actual\' a l\'esquerra o l\'icona en forma de casa situat a la dreta, anirà a la pàgina principal del curs.
MetodologiaÉs important que dinamitzeu el vostre espai a fi que els alumnes percebin que hi ha algú darrera la pantalla. D\'aquesta manera podeu modificar regularment el text d\'introducció (clicant sobre el llapis groc) per indicar els esdeveniments del curs o recordar-ne les etapes.
Per construir el vostre curs, una manera clàssica de treballar és procedir com segueix:
- A propietats de curs, marqueu Accés: privat i Inscripció: refusada per tal d\'impedir qualsevol visita durant la creació del curs,
- Mostreu totes les eines clicant sobre el vincle gris \'Mostrar\' sota el nom de les eines marcades,
- Utilitzeu les eines per omplir el vostre curs de continguts, esdeveniments, grups, etc.,
- Desactiveu totes les eines
- Utilitzeu l\'eina Itinerari per construir un itinerari a través de les altres eines
- Poseu l\'Itinerari creat visible. Cliqueu sobre \'Vista alumne\" per veure el curs des del punt de vista d\'aquell qui el segueix.
";
$langHOnline = "Ajuda: Sistema de conferència en directe";
$langOnlineContent = "Dokeos Live Conferencing Dokeos Live Conferencing (DLC) és una eina de videoconferència basada sobre el web i que utilitza la tecnologia Flash. Us permet organitzar facilament reunions virtuals entre 2, 3 o 4 llocs distants així com classes virtuals (interacció entre un formador i fins a 500 alumnes).
Per organitzar una reunió virtual, comenceu per importar una presentació PowerPoint sota la pestanya Presentació (zona inferior esquerra), a continuació fixeu una trobada per la reunió utilitzant l\'Agenda de Dokeos. En el moment de la reunió, haureu de disposar d\'una webcam i uns auriculars amb micròfon. El so, en particular el del micròfon, haurà d\'estar ben configurat. La configuració es pot realitzar a través de l\'eina de paràmetres d\'audio del vostre ordinador, així com per un clic dret sobre la zona dels videos a DLC i Paràmetres de Flash.
DLC requereix com a mínim Flash 9 i una connexió internet equivalent a l\'ADSL. Tingueu en compte que es poden produir problemes d\'interrupció a causa del FireWall de la vostra organització. Contacteu amb l\'Administrador del Sistema.
En mode Reunió Virtual (quatre a quatre), cadascú pot esdevenir moderador, difondre la seva presentació PowerPoint, escriure o dibuixar i fer-se escoltar pels altres. En mode Classe Virtual (ú a molts), hi ha un mestre que dirigeix les operacions, difon la informació i és vist i sentit per tothom. Els altres segueixen passivament, pregunten pel xat o demanen la paraula. En mode Classe Virtual, només el formador té necessitat de webcam.
";
$langHClar = "Ajuda: Dokeos";
$langHDoc = "Ajuda: Documents";
+$langDocContent = "Els professors poden crear pàgines web simples (\'Crear un document HTML\') o transferir a aquesta secció, arxius de qualsevol tipus (HTML, *Word, *PowerPoint, *Excel, PDF, *Flash, *QuickTime, etc.). Tingui en compte que no tots els arxius que enviï podran ser vists pels altres usuaris, qui haurien de disposar de les eines apropiades per a obrir-los, en cas contrari, al fer clic sobre el nom de l\'arxiu tan sols podran descarregar-lo. Aquesta descàrrega sempre serà possible si premen sobre la icona . No oblidi revisar prèviament amb un antivirus els fitxers que s\'enviï al servidor.Els documents es presenten en la pantalla per ordre alfabètic. Si desitja que els documents s\'ordenin de manera diferent, pot *renombrarlos fent que vagin precedits d\'un nombre (01, 02, 03, ...). També pot usar l\'eina lliçons per a presentar una sofisticada taula de continguts. Tingui en compte que quan transfereix documents al servidor, pot decidir no mostrar la secció \'Documents\' i només mostrar una pàgina d\'inici (afegir un enllaç a la pàgina web principal de l\'activitat) i/o unes Lliçons que contingui només algun dels arxius de la secció Documents. Transferència de documents1. Situï\'s en la carpeta del mòdul \' Documents\' on vol enviar els arxius (per defecte al directori arrel del curs).2. Premi sobre l\'opció \'Enviar un document\'; això li durà a una pantalla en la qual seleccionarà el document del seu ordinador amb l\'ajuda del botó .3. Transfereixi el document a la web del curs prement el botó .4. Si el nom del document conté accents o altres caràcters especials pot ser que hagi de *renombrarlo perquè s\'obri correctament.• També és possible enviar diversos documents en un arxiu comprimit en format *zip i ordenar, si així ho desitja, que es descomprimeixi automàticament en el servidor.• A més d\'arxius *zip convencionals es poden enviar arxius *SCORM comprimits, que també tindran l\'extensió *zip. Els continguts *SCORM són tutorials especials que han estat dissenyats d\'acord amb una norma internacional: *SCORM. És un format especial perquè els continguts educatius puguin executar-se i intercanviar-se lliurement entre diferents Sistemes de Gestió del Coneixement (*LMS= *Learning *Management *Systems). En altres paraules, els materials *SCORM són independents de la plataforma, sent la seva importació i exportació molt simple. La gestió d\'aquests arxius es realitza a través de l\'eina Lliçons.• Tingui en compte que l\'administrador de la plataforma ha definit una grandària màxima per a qualsevol arxiu que transfereixi. Si desitja enviar arxius majors (per ex., vídeos...) posi\'s en contacte amb ell.• Observacions especials per a l\'enviament de pàgines web.L\'enviament de pàgines web simples no planteja cap problema, encara que si la seva complexitat és major pot ser que no tinguin el funcionament esperat. En aquests casos es recomana empaquetar les seves pàgines web com arxius *SCORM comprimits i usar l\'eina Lliçons (veure més amunt).Gestió de directoris i arxius• Crear una carpeta.Això li permetrà organitzar el contingut de la secció \'Documents\' guardant els documents en diferents carpetes o directoris. Pot crear tantes *subcarpetas com desitgi.1. Fer clic sobre \'Crear un directori\', situat en la part superior2. Introdueixi el nom del nou directori.3. Validi fent clic en .• Esborrar un directori o un arxiu.1. Faci clic en el botó de la columna \'Modificar\'.• Canviar el nom d\'un directori o d\'un arxiu.1. Faci clic en el botó de la columna \'Modificar\'.2. Introdueixi el nou nom.3. Validi fent clic en .• Moure un directori o un arxiu a altre directori.1. Faci clic sobre el botó de la columna \'Modificar\'2. Esculli la carpeta a la qual vol moure el document, fent clic sobre el menú desplegable (la paraula \"arrel\" en aquest menú representa el directori principal de la secció \'Documents\').3. Validi fent clic en .• Afegir un comentari a un document o a una carpeta1. Faci clic en el botó de la columna \'Modificar\'2. Introdueixi, modifiqui o esborri el comentari en la zona prevista.3. Validi fent clic en .• Ocultar una carpeta o un document als membres de l\'activitat.1. Faci clic en el botó de la columna \'Modificar\'• El document o el directori continua existint, però ja no serà visible per als membres de l\'activitat.• Si desitja que aquest element torni a ser visible, faci clic en el botó .• Veure una carpeta o un arxiu.Per a veure el contingut d\'una carpeta bastarà prémer sobre el seu nom. En el cas d\'un arxiu, el procediment és similar, encara que hauríem de tenir instal·lats els programes necessaris per a la seva visualització, en cas contrari intentarà descarregar-los. S\'ha de tenir especial cura amb els arxius d\'extensions executables, els quals recomanem siguin escanejats amb un antivirus quan es descarreguin.Veure diverses imatges com una presentacióQuan el sistema detecta l\'existència d\'imatges en una carpeta, s\'activa l\'opció ‘Mostrar presentació\', al costat de l\'Ajuda. Aquesta permet veure aquestes imatges de forma seqüencial. Com en qualsevol presentació, convé recordar que les imatges no només poden consistir en fotos, sinó també esquemes, mapes conceptuals, etc.Creació i edició de documents en format HTMLPot crear i editar directament en el servidor un document en format HTML sense sortir del seu navegador.• Per a crear un document web, faci clic sobre \' Crear un document\', doni-li un nom (eviti que el nom contingui accents o altres caràcters especials), i utilitzi l\'editor per a compondre el document.• Per a modificar el contingut d\'un document web, faci clic en el botó de la columna \'Modificar\', i es presentarà un editor web a més de les possibilitats de *renombrar i afegir un comentari al document.Sobre l\'editor HTML de la Plataforma.L\'editor de documents HTML és del tipus *WYSIWYG (*What *You *See *Is *What *You *Get=Ho que vés és el que obtindrà), el que permet compondre\'ls sense haver d\'emplenar línies de codi HTML, encara que podrà veure el codi prement sobre el botó \' Un menú amb diversos botons li facilitarà l\'elecció del tipus i grandària de lletra, sagnar, fer llistes, acolorir, crear enllaços, taules, inserir imatges, etc. També és possible tallar i pegar. Es tracta d\'un editor elemental, però que no precisa de cap altre programa addicional al seu navegador.Crear una LliçóAquesta utilitat li permet construir lliçons amb el contingut de les activitats. El resultat formarà una taula de matèries, però amb més possibilitats. Per a més informació, anar al módul";
$langHUser = "Ajuda: Usuaris";
$langHExercise = "Ajuda: Exercicis";
$langHPath = "Ajuda: Itineraris formatius";
diff --git a/main/lang/catalan/wiki.inc.php b/main/lang/catalan/wiki.inc.php
index d6e2d36dfc..a2bd876dea 100644
--- a/main/lang/catalan/wiki.inc.php
+++ b/main/lang/catalan/wiki.inc.php
@@ -25,4 +25,155 @@ $DifferencesOld = "Respecte a la versio de";
$Differences = "Diferències";
$MostRecentVersion = "Vista de la versió més recent de les seleccionades ";
$Legend = "Llegenda";
+$ShowDifferences = "Comparar versions ";
+$SearchPages = "Cercar pàgines";
+$Discuss = "Discutir";
+$History = "Historial ";
+$ShowThisPage = "Veure aquesta pàgina";
+$DeleteThisPage = "Eliminar aquesta pàgina";
+$DiscussThisPage = "Discutir aquesta pàgina";
+$HomeWiki = "Portada";
+$DeleteWiki = "Eliminar el Wiki";
+$WikiDeleted = "Wiki eliminat";
+$WikiPageDeleted = "La pàgina ha estat eliminada juntament amb tot el seu historial ";
+$NumLine = "Núm. de línia";
+$DeletePageHistory = "Eliminar aquesta pàgina i totes les seues versions";
+$OnlyAdminDeleteWiki = "Només els professors del curs poden esborrar el Wiki";
+$OnlyAdminDeletePageWiki = "Només els professors del curs poden esborrar una pàgina";
+$OnlyAddPagesGroupMembers = "Només els professors del curs poden afegir pàgines al Wiki del grup";
+$OnlyEditPagesGroupMembers = "Només els professors del curs i els membres d\'aquest grup poden editar les pàgines del Wiki del grup ";
+$ConfirmDeleteWiki = "Està segur de voler eliminar aquest Wiki?";
+$ConfirmDeletePage = "Està segur de voler eliminar aquesta pàgina i totes les seves versions? ";
+$AlsoSearchContent = "Buscar també en el contingut";
+$PageLocked = "Pàgina protegida ";
+$PageUnlocked = "Pàgina no protegida ";
+$PageLockedExtra = "Aquesta pàgina està protegida. Només els professors del curs poden modificar-la ";
+$PageUnlockedExtra = "Aquesta pàgina no està protegida pel que tots els membres del curs, o si escau del grup, poden modificar-la ";
+$ShowAddOption = "Activar afegir ";
+$HideAddOption = "Desactivar afegir ";
+$AddOptionProtected = "La possibilitat d\'afegir pàgines ha estat desactivada. Ara només els professors del curs poden afegir pàgines en aquest Wiki. No obstant això, la resta dels usuaris podrà seguir editant les pàgines ja existents ";
+$AddOptionUnprotected = "La possibilitat d\'afegir pàgines està habilitada per a tots els membres del Wiki ";
+$NotifyChanges = "Notificar-me canvis ";
+$NotNotifyChanges = "No notificar-me canvis ";
+$NotifyByEmail = "La notificació per correu electrònic de les modificacions de la pàgina està habilitada ";
+$CancelNotifyByEmail = "La notificació per correu electrònic de les modificacions de la pàgina està deshabilitada ";
+$MostRecentVersionBy = "L\'última versió d\'aquesta pàgina va ser realitzada per ";
+$Rating = "Puntuació";
+$RatingMedia = "L\'última versió d\'aquesta pàgina va ser realitzada per ";
+$NumComments = "El nombre de comentaris a aquesta pàgina és ";
+$NumCommentsScore = "El nombre de comentaris que l\'han avaluat és ";
+$AddPagesLocked = "L\'opció afegir pàgines ha estat desactivada temporalment pel professor ";
+$LinksPages = "Referències";
+$ShowLinksPages = "Mostra les pàgines que tenen enllaços a aquesta pàgina ";
+$MoreWikiOptions = "Més opcions del Wiki";
+$DefaultTitle = "Portada";
+$DiscussNotAvailable = "Discussió no disponible ";
+$Print = "Imprimir";
+$Version = "Versió";
+$EditPage = "Editar";
+$AddedBy = "Afegida per";
+$EditedBy = "editada per";
+$DeletedBy = "eliminada per";
+$WikiStandardMode = "Modo wiki";
+$GroupTutorAndMember = "Tutor i membre del grup";
+$GroupTutor = "Tutor del grup";
+$GroupStandardMember = "Membre del grup";
+$AssignmentMode = "Modo tasca individual";
+$ConfigDefault = "Configuració per defecte";
+$UnlockPage = "Desprotegir";
+$LockPage = "Protegir";
+$NotifyDiscussChanges = "Notificar-me comentaris";
+$NotNotifyDiscussChanges = "No notificar-me comentaris";
+$AssignmentWork = "Pàgina de l\'alumne";
+$AssignmentDesc = "Pàgina del professor";
+$WikiDiffAddedTex = "Text afegit";
+$WikiDiffDeletedTex = "Text eliminat";
+$WordsDiff = "paraula a paraula";
+$LinesDiff = "línia a línia";
+$MustSelectPage = "Primer ha de seleccionar una pàgina";
+$Export2ZIP = "Exportar a un fitxer ZIP";
+$HidePage = "Ocultar pàgina ";
+$ShowPage = "Mostrar pàgina ";
+$GoAndEditMainPage = "Per a iniciar el Wiki vagi a la pàgina principal i editi-la ";
+$DiscussNotAvailable = "Discussió no disponible ";
+$UnlockDiscuss = "Desbloquejar discussió";
+$LockDiscuss = "Bloquejar discussió";
+$HideDiscuss = "Ocultar discussió";
+$ShowDiscuss = "Mostrar discussió";
+$UnlockRatingDiscuss = "Activar puntuar";
+$LockRatingDiscuss = "Desactivar puntuar";
+$EditAssignmentWarning = "Pot editar aquesta pàgina però les pàgines dels seus alumnes no és modificaran";
+$ExportToDocArea = "Exportar l\'última versió de la pàgina a l\'àrea de documents del curs";
+$LockByTeacher = "Desactivat per el professor";
+$LinksPagesFrom = "Pàgines que enllacen la pàgina ";
+$DefineAssignmentPage = "Definir aquesta pàgina com una tasca individual";
+$AssignmentDescription = "Descripció de la tasca";
+$UnlockRatingDiscussExtra = "Ara tots els membres poden puntuar la pàgina ";
+$LockRatingDiscussExtra = "Ara només els professors del curs poden puntuar la pàgina ";
+$HidePageExtra = "La pàgina ara només és visible pels professors del curs ";
+$ShowPageExtra = "La pàgina ara és visible per tots els usuaris ";
+$OnlyEditPagesCourseManager = "La pàgina principal del Wiki del curs només pot ser modificada per un professor ";
+$AssignmentLinktoTeacherPage = "Accés a la pàgina del professor ";
+$HideDiscussExtra = "La discussió ara només és visible pels professors del curs";
+$ShowDiscussExtra = "La discussió ara és visible per tots els usuaris";
+$LockDiscussExtra = "En aquest moment, solament els professors poden discutir la pàgina ";
+$UnlockDiscussExtra = "Ara tots els membres poden afegir comentaris a aquesta discussió";
+$AssignmentDescExtra = "Aquesta pàgina és una tasca proposada per un professor ";
+$AssignmentWorkExtra = "Aquesta pàgina és el treball d\'un alumne ";
+$NoAreSeeingTheLastVersion = "Atenció no aquesta veient l\'última versió de la pàgina";
+$AssignmentFirstComToStudent = "Modifica aquesta pàgina per a realitzar la teva tasca sobre la tasca proposada ";
+$AssignmentLinkstoStudentsPage = "Accés a les tasques realitzades pels alumnes sobre la tasca proposada en aquesta pàgina ";
+$AllowLaterSends = "Permetre enviaments retardats ";
+$WikiStandBy = "El Wiki està a l\'espera que un professor ho inicialitzi";
+$NotifyDiscussByEmail = "La notificació per correu electrònic de nous comentaris sobre la pàgina està habilitada ";
+$CancelNotifyDiscussByEmail = "La notificació per correu electrònic de nous comentaris sobre la pàgina està deshabilitada ";
+$EmailWikiChanges = "Notificació de canvis en el Wiki";
+$EmailWikipageModified = "S\'ha modificat la pàgina ";
+$EmailWikiPageAdded = "La pàgina ha estat afegida.";
+$EmailWikipageDedeleted = "Una pàgina ha estat esborrada del Wiki ";
+$EmailWikiPageDiscAdded = "Una nova intervenció s\'ha produït en la discussió de la pàgina ";
+$FullNotifyByEmail = "Actualment se li està enviant una notificació per correu electrònic cada vegada que es produïx un canvi en el Wiki";
+$FullCancelNotifyByEmail = "Actualment no se li estan enviant notificacions per correu electrònic cada vegada que es produïx un canvi en el Wiki";
+$EmailWikiChangesExt_1 = "Aquesta notificació s\'ha realitzat d\'acord amb el seu desig de vigilar els canvis del Wiki. Aquesta opció Vè. la va activar mitjançant el botó ";
+$EmailWikiChangesExt_2 = "Si desitja deixar de rebre notificacions sobre els canvis que es produeixin en el Wiki, seleccioni les pestanyes Canvis recents strong>, Pàgina actual strong>, Discussió strong> segons el cas i després premi el botó ";
+$Visits = "visites";
+$OrphanedPages = "Pàgines òrfenes";
+$WantedPages = "Pàgines sol·licitades ";
+$MostVisitedPages = "Pàgines més visitades";
+$MostChangedPages = "Pàgines amb més canvi";
+$Changes = "Canvis";
+$MostActiveUsers = "Usuaris més actius";
+$Contributions = "contribucions";
+$UserContributions = "Contribucions de l\'usuari";
+$MostActiveUsers = " Usuaris més actius ";
+$WarningDeleteMainPage = "No es recomana l\'eliminació de la Pàgina principal del Wiki, ja que és el principal accés a la seva estructura jeràrquica.
Si de totes maneres necessita esborrar-la, no oblidi tornar a crear aquesta Pàgina principal doncs fins que no ho faci altres usuaris no podran afegir noves pàgines al Wiki.";
+$ConvertToLastVersion = "Per a convertir aquesta versió en l\'última faci clic en";
+$Restore = "Restaurar";
+$CurrentVersion = "Versió actual";
+$LastVersion = "Última versió";
+$PageRestored = "La pàgina ha estat restaurada. Pot veure-la fent clic en ";
+$RestoredFromVersion = "Pàgina restaurada des de la versió";
+$HWiki = "Ajuda: Wiki";
+$FirstSelectOnepage = "Primer seleccioni una pàgina";
+$DefineTask = "Si escriu algun contingut en la descripció, la pàgina es considerarà com una pàgina especial per a realitzar una tasca ";
+$ThisPageisBeginEditedBy = "En aquest moment aquesta pàgina està sent editada per ";
+$ThisPageisBeginEditedTryLater = "Per favor, intenti\'l més tard. Si l\'usuari que actualment està editant la pàgina no la guarda, aquesta pàgina quedarà disponible en un màxim de";
+$EditedByAnotherUser = "Els seus canvis no seran guardats degut al fet que altre usuari va modificar la pàgina mentre Vè. l\'editava";
+$WarningMaxEditingTime = "Té 20 minuts per a editar aquesta pàgina. Transcorregut aquest temps, si Vè. no ha guardat la pàgina, altre usuari podrà modificar-la i Vè. podrà perdre els seus canvis ";
+$TheTaskDoesNotBeginUntil = "Encara no és la data d\'inici";
+$TheDeadlineHasBeenCompleted = "Ha sobrepassat la data límit ";
+$HasReachedMaxNumWords = "Ha sobrepassat el nombre de paraules permeses ";
+$HasReachedMaxiNumVersions = "Ha sobrepassat el nombre de versions permeses ";
+$DescriptionOfTheTask = "Descripció de la tasca ";
+$OtherSettings = "Altres requeriments ";
+$NMaxWords = "Nombre màxim de paraules";
+$NMaxVersion = "Nombre màxim de versions ";
+$Feedback = "Orientacions";
+$AddFeedback = "Afegir missatges d\'orientació associats al progrés en la pàgina";
+$Feedback1 = "Primer missatge ";
+$Feedback2 = "Segon missatge ";
+$Feedback3 = "Tercer missatge ";
+$FProgress = "Progrés";
+$PutATimeLimit = "Establir una limitació temporal";
+$StandardTask = "Tasca estàndard";
?>
\ No newline at end of file
diff --git a/main/lang/english/admin.inc.php b/main/lang/english/admin.inc.php
index 3b37df128c..c6e25abe3e 100644
--- a/main/lang/english/admin.inc.php
+++ b/main/lang/english/admin.inc.php
@@ -1088,5 +1088,5 @@ $InsertTabs = "Add Tabs";
$EditTabs = "Edit Tabs";
$Coachs = "Coachs";
$IsAdministrator = "Is administrator";
-$IsNotAdministrator = "Is not administrador";
+$IsNotAdministrator = "Is not administrator";
?>
\ No newline at end of file
diff --git a/main/lang/italian/admin.inc.php b/main/lang/italian/admin.inc.php
index 26b64f2e49..c90d654327 100644
--- a/main/lang/italian/admin.inc.php
+++ b/main/lang/italian/admin.inc.php
@@ -1087,4 +1087,6 @@ $EditTopRegister = "Modifica appunto";
$InsertTabs = "Aggiungi separatore";
$EditTabs = "Modifica separatore";
$Coachs = "Tutor";
+$IsAdministrator = "E\' amministratore";
+$IsNotAdministrator = "Non è amministratore";
?>
\ No newline at end of file
diff --git a/main/lang/italian/course_home.inc.php b/main/lang/italian/course_home.inc.php
old mode 100755
new mode 100644
index a530c61cfe..b0cf7cc619
--- a/main/lang/italian/course_home.inc.php
+++ b/main/lang/italian/course_home.inc.php
@@ -24,4 +24,7 @@ $Authoring = "Contenuti";
$Administration = "Gestione";
$IntroductionTextUpdated = "Testo introduttivo modificato";
$IntroductionTextDeleted = "Testo introduttivo eliminato";
+$SessionIdentifier = "Identificatore della sessione";
+$SessionName = "Nome della sessione";
+$SessionCategory = "Categoria della sessione";
?>
\ No newline at end of file
diff --git a/main/lang/portuguese/myagenda.inc.php b/main/lang/portuguese/myagenda.inc.php
old mode 100755
new mode 100644
index e1eab48c1f..1941e6a72d
--- a/main/lang/portuguese/myagenda.inc.php
+++ b/main/lang/portuguese/myagenda.inc.php
@@ -1,6 +1,6 @@
\ No newline at end of file
diff --git a/main/lang/portuguese/notebook.inc.php b/main/lang/portuguese/notebook.inc.php
old mode 100755
new mode 100644
index 2235f06d6c..8a23dc69e9
--- a/main/lang/portuguese/notebook.inc.php
+++ b/main/lang/portuguese/notebook.inc.php
@@ -6,17 +6,29 @@ $Note = "Nota";
$NoteDeleted = "Nota eliminada";
$NoteUpdated = "Nota actualizada";
$NoteCreated = "Nota criada";
-$YouMustWriteANote = "Escrever uma nota, por favor.";
+$YouMustWriteANote = "Por favor escrever uma nota.";
$SaveNote = "Guardar nota";
-$SearchByTitle = "Procurar por título";
-$WriteTheTitleHere = "Escrever o título aqui";
-$UpdateDate = "Última alteração";
+$WriteYourNoteHere = "Cliique aqui para escrever uma nova nota";
+$SearchByTitle = "Pesquisar por título";
+$WriteTheTitleHere = "Escreva aqui o título";
+$UpdateDate = "Última modificação";
+$NoteAddNew = "Adicionar uma nova nota no meus bloco de notas pessoal";
$OrderByCreationDate = "Ordenar por data de criação";
+$OrderByModificationDate = "Ordenar por data da última modificação";
$OrderByTitle = "Ordenar por título";
$NoteTitle = "Título da nota";
-$NoteComment = "Comentários da nota";
+$NoteComment = "Detalhes da nota";
$NoteAdded = "Nota acrescentada";
+$NoteConfirmDelete = "Tema certeza que deseja eliminar esta nota";
$AddNote = "Criar nota";
+$ModifyNote = "Editar a minha nota pessoal";
$BackToNoteList = "Voltar à lista das notas";
-$NotebookManagement = "Gerir bloco de notas";
+$NotebookManagement = "Gestão do bloco de notas";
+$BackToNotesList = "Regressar à lista das notas";
+$NotesSortedByTitleAsc = "Notas ordenadas de forma ascendente pelo título";
+$NotesSortedByTitleDESC = "Notas ordenadas de forma descendente pelo título";
+$NotesSortedByUpdateDateAsc = "Notas ordenadas de forma ascendente pela data de actualização";
+$NotesSortedByUpdateDateDESC = "Notas ordenadas de forma descendente pela data de actualização";
+$NotesSortedByCreationDateAsc = "Notas ordenadas de forma ascendente pela data de criação";
+$NotesSortedByCreationDateDESC = "Notas ordenadas de forma descendente pela data de criação";
?>
\ No newline at end of file
diff --git a/main/lang/portuguese/notification.inc.php b/main/lang/portuguese/notification.inc.php
old mode 100755
new mode 100644
index d6dd68d2b1..06d1f1a5eb
--- a/main/lang/portuguese/notification.inc.php
+++ b/main/lang/portuguese/notification.inc.php
@@ -1,21 +1,35 @@
\ No newline at end of file
diff --git a/main/lang/portuguese/pedaSuggest.inc.php b/main/lang/portuguese/pedaSuggest.inc.php
old mode 100755
new mode 100644
index 9adddebb52..7b0a60d075
--- a/main/lang/portuguese/pedaSuggest.inc.php
+++ b/main/lang/portuguese/pedaSuggest.inc.php
@@ -1,25 +1,25 @@
\ No newline at end of file
diff --git a/main/lang/portuguese/registration.inc.php b/main/lang/portuguese/registration.inc.php
old mode 100755
new mode 100644
index 107269edbf..13bfc7da71
--- a/main/lang/portuguese/registration.inc.php
+++ b/main/lang/portuguese/registration.inc.php
@@ -1,173 +1,179 @@
Primeiro nome Último nome Nome de utilizador Senha Correio Electrónico separados por tabuladores e nesta ordem.Os utilizadores receberão uma mensagem de confirmação com o seu nome de utilizador e a sua senha através do correio electrónico indicado.";
-$langUserMany = "Importar lista de utilizadores contida num ficheiro CSV /XML";
-$langOneByOne = "Acrescentar um utilizador de forma manual";
+$langDownloadUserList = "Enviar a lista";
+$langSend = "Enviar pedido de uma nova senha/password";
+$langUserAddExplanation = "Cada linha do ficheiro para enviar deve necessáriamente conter apenas os 5 campos seguintes: Primeiro nome Último nome Login/acesso Senha/password E-mail separados por tabulações e nessa ordem. Os utilizadores receberão um e-mail de confirmação com o login/acesso e a senha/password.";
+$langUserMany = "Importar uma lista de utilizadores";
+$langOneByOne = "Adicionar manualmente um utilizador";
$langNow = "agora";
-$langTutor = "Orientador";
+$langTutor = "Tutor";
$langTitular = "Autor";
-$langAddHereSomeCourses = "Alterar a lista de cursos
Escolha os cursos em que deseja inscrever-se.
Apague a marca de selecção dos cursos em que não deseja continuar inscrito.
Depois carregue no botão \'Validar\' da lista";
-$langStudent = "estudante";
+$langAddHereSomeCourses = "Editar lista de cursos
Seleccione os cursos em que deseja inscrever-se.
Desceleccione os cursos em que não deseja continuar inscrito.
Em seguida, clique em OK na parte inferior da lista";
+$langStudent = "aluno";
$langImportUserList = "Importar lista de Utilizadores";
-$langAddAU = "Acrescentar um utilizador";
-$langAddedU = "foi acrescentado. Se já tiver fornecido a sua morada de correio electrónico ser-lhe-á enviada uma mensagem para o informar do seu nome de utilizador";
+$langAddAU = "Adicionar um utilizador";
+$langAddedU = "foi adicionado. Foi enviado um e-mail ao utilizador para lhe comunicar o login/acesso";
$langTheU = "O utilizador";
-$langRegYou = "inscreveu-o neste curso";
+$langRegYou = "registou-o neste curso";
$langOneResp = "Um dos administradores do curso";
-$langTaken = "já está a ser usado por outro utilizador. Escolha outro diferente.";
-$langUserNo = "O nome de utilizador que escolheu";
-$langFilled = "Não preencheu todos os campos.";
+$langTaken = "já está a ser utilizado. Escolha um outro diferente.";
+$langUserNo = "O login/acesso que escolheu";
+$langFilled = "Deixou alguns campos por preencher.";
$langInC = "neste curso";
-$langRole = "Estatuto";
-$UserPicture = "Foto";
-$langProfileReg = "O seu novo perfil de utilizador foi guardado com sucesso";
-$langEmailWrong = "A morada de correio electrónico que escreveu não está completa ou contém caracteres não válidos";
-$langUserTaken = "O nome de utilizador que escolheu já está a ser usado por outro utilizador.";
-$langFields = "Não preencheu todos os campos";
-$langAgain = "Tente de novo!";
-$langPassTwo = "Não escreveu a mesma senha as duas vezes.";
-$langViewProfile = "Meu perfil";
-$langModifProfile = "Alterar o meu perfil";
-$langIsReg = "As mudanças que efectuou foram guardadas com sucesso";
-$langNowGoCreateYourCourse = "agora pode criar o seu curso";
-$langNowGoChooseYourCourses = "agora pode escolher na lista os cursos a que deseja aceder.";
-$langMailHasBeenSent = "Foi enviado um email com o nome de utilizador e senha para guardar e recordar.";
-$langPersonalSettings = "Os seus dados pessoais foram registados e foi enviada uma mensagem à sua caixa de correio electrónico para lhe lembrar o seu nome de utilizador e a sua senha.Escolha na lista os cursos a que deseja aceder.";
-$langManager = "Administrador";
+$langRole = "Descrição";
+$UserPicture = "Imagem";
+$langProfileReg = "O seu novo perfil foi guardado";
+$langEmailWrong = "O endereço de e-mail está incompleto ou contém alguns caracteres inválidos";
+$langUserTaken = "Este login/acesso já se encontra em utilização";
+$langFields = "Deixou alguns campos por preencher";
+$langAgain = "Tente novamente!";
+$langPassTwo = "Introduziu duas senhas/passwords diferentes.";
+$langViewProfile = "Visualizar o meu e-portfolio";
+$langModifProfile = "Editar perfil";
+$langIsReg = "As suas modificações foram registadas";
+$langNowGoCreateYourCourse = "Pode agora ir criar o seu curso";
+$langNowGoChooseYourCourses = "Pode agora ir seleccionar, na lista, os cursos a que deseja ter acesso";
+$langMailHasBeenSent = "Foi enviado um e-mail para o ajudar a lembrar o seu login/acesso e a sua senha/password";
+$langPersonalSettings = "As suas configurações pessoais foram registadas";
+$langManager = "Gestor";
$langFormula = "Com os melhores cumprimentos";
-$langProblem = "Caso tenha algum problema, não hesite em nos contactar.";
+$langProblem = "Em caso de problemas, entre em contacto connosco.";
$langIs = "é";
$langAddress = "A morada de";
-$langSettings = "com os seguintes parâmetros:Nome de utilizador:";
-$langYouAreReg = "Foi inscrito em";
+$langSettings = "com as seguintes configurações: \\n Login/acesso :";
+$langYouAreReg = "Encontra-se registado em";
$langDear = "Caro(a)";
-$langYourReg = "A sua inscrição em";
-$langUserFree = "O nome de utilizador que escolheu já está a ser usado por outro utilizador.Utilize o botão de Regressar do seu navegador e escolha outro diferente.";
-$langEmptyFields = "Não preencheu todos os campos.Utilize o botão de Regressar do seu navegador e tente de novo.";
-$langPassTwice = "Não escreveu a mesma senha as duas vezes.Utilize o botão de Regressar do seu navegador e tente de novo.";
-$langRegAdmin = "Criar cursos (professor)";
-$langRegStudent = "Inscrever-se em cursos (estudante)";
-$langConfirmation = "Confirmação";
-$langPass = "Senha";
+$langYourReg = "O seu registo em";
+$langUserFree = "Este login/acesso já não se encontra disponível. Utilize o botão de voltar atrás do seu browser/navegador e escolha um outro diferente.";
+$langEmptyFields = "Deixou alguns campos por preencher. Utilize o botão de voltar atrás do seu browser/navegador e tente novamente.";
+$langPassTwice = "Introduziu duas senhas/passwords diferentes. Utilize o botão de voltar atrás do seu browser/navegador e tente novamente.";
+$langRegAdmin = "Criar curso";
+$langRegStudent = "Acompanhar curso";
+$langConfirmation = "Confirmar senha/password";
+$langPass = "Senha/pass";
$langSurname = "Último nome";
-$langRegistration = "Inscrição";
-$langYourAccountParam = "Estes são o seu nome de utilizador e a sua senha";
-$langLoginRequest = "Pedido do nome de utilizador";
-$langDefineHeadings = "Definir cabeçalhos";
-$langCourseAdministratorOnly = "Reservado a professores";
-$langLostPassword = "Senha perdida";
-$langAdminOfCourse = "Administrador do curso";
+$langRegistration = "Inscrição/registo";
+$langYourAccountParam = "Esta é a sua informação para aceder a";
+$langLoginRequest = "Pedido de login/acesso";
+$langDefineHeadings = "Definir posições/cabeçalhos";
+$langCourseAdministratorOnly = "Apenas instrutores";
+$langLostPassword = "Senha/password perdida";
+$langAdminOfCourse = "Admin";
$langSimpleUserOfCourse = "Utilizador do curso";
-$langIsTutor = "É tutor";
-$langParamInTheCourse = "Parâmetros do curso";
-$langMember = "Membro";
-$langLock = "Bloquear";
-$langUnlock = "Desbloquear";
-$langHaveNoCourse = "Não tem cursos";
-$langManage = "Gerir";
-$langAdministrationTools = "Ferramentas";
-$langUserProfileReg = "Perfil do utilizador";
-$lang_no_user_account_with_this_email_address = "Não existe nenhum utilizador com este endereço de email.";
-$langCourses4User = "Cursos deste utilizador";
+$langIsTutor = "Tutor";
+$langParamInTheCourse = "Estado do curso";
+$langMember = "membro";
+$langLock = "bloqueado";
+$langUnlock = "desbloqueado";
+$langHaveNoCourse = "nenhum curso";
+$langManage = "Gerir o portal";
+$langAdministrationTools = "Ferramentas de Administração";
+$langUserProfileReg = "Foi registado o e-portfolio do utilizador ";
+$lang_no_user_account_with_this_email_address = "Não existe nenhum utilizador com este endereço de e-mail.";
+$langCourses4User = "Cursos do utilizador";
$langCoursesByUser = "Cursos por utilizador";
-$langSubscribeUserToCourse = "Inscrever utilizador num curso";
-$langPreced100 = "100 Anteriores";
-$langAddmore = "Adiciona usuários registrados";
-$langAddback = "Ir para a lista de usuários";
-$langreg = "Registar";
-$langQuit = "Sair";
-$your_password_has_been_reset = "A senha foi reiniciada";
+$langSubscribeUserToCourse = "Inscrever utilizadores no curso";
+$langPreced100 = "Anteriores 100";
+$langAddmore = "Adicionar utilizadores registados";
+$langAddback = "Ir para a lista de utilizadores";
+$langreg = "Registar-se";
+$langQuit = "Abandonar/Sair";
+$your_password_has_been_reset = "Sua senha/password foi redefinida";
$langSex = "Sexo";
$langClass = "Turma";
$langEdit = "Editar";
-$required = "Campos obrigatórios";
+$required = "obrigatório";
$langOptionalTextFields = "Campos opcionais";
-$langMyProductions = "Trabalhos pessoais";
-$langFileDeleted = "O ficheiro foi apagado.";
+$langMyProductions = "Minhas produções/trabalhos";
+$langFileDeleted = "O ficheiro foi eliminado.";
$FullUserName = "Nome completo";
-$SearchForUser = "Procurar por utilizador";
-$SearchButton = "Procurar";
-$SearchNoResultsFound = "Nenhum resultado encontrado";
-$UsernameWrong = "O nome de utilizador só pode conter letras, números e os seguintes carecteres _.-";
-$PasswordRequestFrom = "Pedido de envio de senha para o seu endereço de e-mail";
-$CorrespondsToAccount = "Este endereço de e-mail corresponde ao seguinte utilizador:";
-$CorrespondsToAccounts = "Este endereço de e-mail corresponde aos seguintes utilizadores:";
-$AccountExternalAuthSource = "Dokeos não pode autorizar o pedido automaticamente porque a conta tem uma fonte de autorização externa. Por favor, tome as medidas apropiadas e notifique-as ao utilizador.";
-$AccountsExternalAuthSource = "Dokeos não pode realizar automaticamente a solicitação porque pelo menos uma das contas tem uma fonte de autorização externa. Por favor, tome as medidas apropiadas em todas as contas (incluindo as que tem autorização da plataforma) e notifique-as ao utilizador.";
-$RequestSentToPlatformAdmin = "Dokeos não pode realizar seu pedido automaticamente para este tipo de conta. O seu pedido foi enviado para o administrador da plataforma, que tomará as medidas apropiadas e notificá-lo-á.";
+$SearchForUser = "Pesquisar utilizador";
+$SearchButton = "Pesquisa";
+$SearchNoResultsFound = "Nenhum resultado encontrado na pesquisa";
+$UsernameWrong = "O login/acesso só pode conter apenas letras, números e _.-";
+$PasswordRequestFrom = "Este é um pedido de senha/password para o endereço de e-mail ";
+$CorrespondsToAccount = "Este endereço de e-mail corresponde à seguinte conta de utilizador.";
+$CorrespondsToAccounts = "Este endereço de e-mail corresponde às seguintes contas de utilizador.";
+$AccountExternalAuthSource = "O Dokeos não consegue responder automaticamente ao pedido porque a conta possui uma fonte de autenticação externa. Por favor, tome as medidas adequadas e notifique o utilizador.";
+$AccountsExternalAuthSource = "O Dokeos não consegue responder automaticamente ao pedido porque pelo menos uma das contas possui uma fonte de autenticação externa. Por favor, tome as medidas adequadas para todos os utilizadores (incluindo os que possuem autenticação da plataforma) e notifique o utilizador.";
+$RequestSentToPlatformAdmin = "O Dokeos não consegue responder automaticamente ao pedido para este género/tipo de conta. O seu pedido foi enviado para o administrador da plataforma/sistema, que irá tomar as medidas apropriadas e notificá-lo posteriormente dos resultados.";
$langphone = "Telefone";
-$Unreg = "Desinscrever";
-$MyProgress = "Meu progresso";
-$ProgressIntroduction = "Comece por seleccionar uma sessão do curso abaixo.
Depois pode ver o seu progresso para cada curso em que está inscrito.";
-$Select = "Seleccionar";
+$Unreg = "Anular/cancelar registo";
+$MyProgress = "Progresso";
+$ProgressIntroduction = "Comece por seleccionar uma sessão do curso abaixo.
Poderá visualizar o seu progresso em cada um dos cursos que estiver inscrito.";
+$Select = "Validar";
$NeverExpires = "Nunca expira";
-$On = "a";
+$On = "A";
$ExpirationDate = "Data de expiração";
-$ActiveAccount = "Activação de conta";
-$YourAccountHasToBeApproved = "O seu registo tem de ser aprovado";
-$ApprovalForNewAccount = "Aprovação para um novo registo";
+$ActiveAccount = "Conta";
+$YourAccountHasToBeApproved = "A sua conta tem de ser aprovada";
+$ApprovalForNewAccount = "Aprovação de nova conta";
$ManageUser = "Gerir utilizador";
-$SubscribeUserToCourseAsTeacher = "Inscrever utilizador(es) para este curso como professor(es)";
+$SubscribeUserToCourseAsTeacher = "Inscrever instrutores";
$SendMessage = "Enviar mensagem";
-$PasswordEncryptedForSecurity = "A sua senha está encriptada por razões de segurança. Assim, depois de clicar na ligação será enviado um email para si com a password.";
-$UsersUnsubscribed = "Os utilizadores seleccionados foram desinscritos do curso";
-$SystemUnableToSendEmailContact = "Não foi possível enviar a senha perdida/esquecida. Contactar o administrador da plataforma clicando no seguinte link: ";
-$OpenIDCouldNotBeFoundPleaseRegister = "Este OpenID não foi encontrado na nossa base de dados. Por favor, registe-se novamente. Se já está registado, conecte-se, edite o seu perfil no interior da sua conta e acrescente este OpenID.";
-$UsernameMaxXCharacters = "O Nome de Utilizador só pode ter um máximo de %s caracteres";
-$PictureUploaded = "A foto foi enviada";
-$ProductionUploaded = "O ficheiro foi enviado";
-$FolderUpdated = "Pasta actualizada";
-$UsersRegistered = "Estes utilizadores foram inscritos no curso";
-$UserAlreadyRegisterByOtherCreator = "O utilizador já foi registado por outro professor";
-$UserCreatedPlatform = "Utilizador criado na plataforma";
-$UserInSession = "Utilizador acrescentado à sessão";
-$UserNotAdded = "Utilizador não acrescentado";
+$PasswordEncryptedForSecurity = "A sua senha/password encontra-se encriptada por razões de segurança. Assim, após clicar na ligação/link ser-lhe-á enviado um e-mail com a sua password.";
+$UsersUnsubscribed = "As inscrições dos utilizadores seleccionados no curso foram canceladas/anuladas ";
+$SystemUnableToSendEmailContact = "Não foi possível ao Portal enviar o e-mail de contacto";
+$OpenIDCouldNotBeFoundPleaseRegister = "Este OpenID não foi encontrado na nossa base-de-dados. Por favor, registe-se com uma nova conta. Se já possui uma conta, por favor edite o seu perfil na área da sua conta para adicionar este OpenID";
+$UsernameMaxXCharacters = "O login/acesso só pode conter um máximo de %s caracteres";
+$PictureUploaded = "A sua imagem foi enviada";
+$ProductionUploaded = "O seu ficheiro de produção/trabalho foi enviado";
+$FolderUpdated = "Pasta/directório actualizada";
+$UsersRegistered = "Estes utilizadores foram registados no curso";
+$UserAlreadyRegisterByOtherCreator = "Utilizador já registado por outro tutor.";
+$UserCreatedPlatform = "Utilizador criado no portal";
+$UserInSession = "Utilizador adicionado na sessão";
+$UserNotAdded = "Utilizador não adicionado.";
$NoSessionId = "A sessão não foi identificada";
$NoUsersRead = "Por favor verifique o seu ficheiro XML/CVS";
-$UserImportFileMessage = "Se no ficheiro XML/CVS os nomes de utilizadores estão em falta, o primeiro e o último nome serão utilizados para recriar um Nome de Utilizador; por ex.: para o nome Julio Montoya, o Nome de Utilizador será jmontoya";
-$UserAlreadyRegisteredByOtherCreator = "Utilizador já resgistado por outro professor";
-$NewUserInTheCourse = "Novo utilizador registado no curso";
-$MessageNewUserInTheCourse = "Há um novo utilizador no curso";
+$UserImportFileMessage = "Se no ficheiro XML/CVS os logins/acessos estiverem em falta, o primeiro e o último nome serão utilizados para criar um login/acesso, p. ex.: Julio Montoya em jmontoya";
+$UserAlreadyRegisteredByOtherCreator = "Utilizador já registado por outro tutor.";
+$NewUserInTheCourse = "Novo utilizador no curso";
+$MessageNewUserInTheCourse = "Existe um novo utilizador no curso";
$EditNormalProfile = "Editar perfil normal";
-$EditExtendProfile = "Editar perfil ampliado";
+$EditExtendProfile = "Editar perfil alargado/extendido";
$EditInformation = "Editar perfil";
-$RegisterUser = "Registar utilizador";
+$RegisterUser = "Registar-se";
+$IHaveReadAndAgree = "Li e concordo com";
+$ByClickingRegisterYouAgreeTermsAndConditions = "Ao clicar abaixo em \'Registar-se\' concorda com os Termos e Condições";
+$User = "Utilizador";
+$LostPass = "Esqueceu-se da sua senha/password ?";
+$EnterEmailUserAndWellSendYouPassword = "Introduza o nome de utilizador ou o endereço de e-mail com os quais se registou para podermos enviar-lhe a sua senha/password.";
+$NoUserAccountWithThisEmailAddress = "Não existe nenhuma conta com este utilizador e/ou endereço de e-mail";
?>
\ No newline at end of file
diff --git a/main/lang/spanish/admin.inc.php b/main/lang/spanish/admin.inc.php
index 559c2fc711..7d47b2ec84 100644
--- a/main/lang/spanish/admin.inc.php
+++ b/main/lang/spanish/admin.inc.php
@@ -214,7 +214,7 @@ $langCourseCreationSucceeded = "El curso ha sido creado.";
$langYourDokeosUses = "Su instalación de Dokeos actualmente usa";
$langOnTheHardDisk = "en el disco duro";
$langIsVirtualCourse = "Curso virtual";
-$langSystemAnnouncements = "Noticias de la plataforma";
+$langSystemAnnouncements = "Anuncios de la plataforma";
$langAddAnnouncement = "Añadir un anuncio";
$langAnnouncementAdded = "El anuncio ha sido añadido";
$langAnnouncementUpdated = "El anuncio ha sido actualizado";
@@ -478,8 +478,8 @@ $ServerStatistics = "Estad
$langServerStatisticsDescription = "AWStats le permite consultar las estadísticas de su plataforma: visitantes, páginas vistas, referenciadores...";
$SearchEngine = "Buscador de texto completo";
$langSearchEngineDescription = "El buscador de texto completo le permite buscar una palabra a través de toda la plataforma. La indización diaria de los contenidos le asegura la calidad de los resultados.";
-$langListSession = "Lista de sesiones";
-$AddSession = "Añadir una sesion";
+$langListSession = "Lista de sesiones de formación";
+$AddSession = "Añadir una sesión de formación";
$langImportSessionListXMLCSV = "Importar sesiones en formato XML/CSV";
$ExportSessionListXMLCSV = "Exportar sesiones en formato XML/CSV";
$SessionName = "Nombre de la sesión";
@@ -488,7 +488,7 @@ $DateStart = "Fecha inicial";
$DateEnd = "Fecha final";
$CoachName = "Nombre del tutor";
$NoTimeLimits = "Sin límite de tiempo";
-$SessionList = "Lista de sesiones";
+$SessionList = "Lista de sesiones de formación";
$SessionNameIsRequired = "Debe dar un nombre a la sesión";
$NextStep = "Siguiente elemento";
$keyword = "Palabra clave";
@@ -512,7 +512,7 @@ $ExampleMaterialCourseCreationTitle = "Material de ejemplo para la creaci
$ExampleMaterialCourseCreationComment = "Crear automáticamente material de ejemplo al crear un nuevo curso";
$AccountValidDurationTitle = "Validez de la cuenta";
$AccountValidDurationComment = "Una cuenta de usuario es válida durante este número de días a partir de su creación";
-$UseSessionModeTitle = "Usar el modo sesión";
+$UseSessionModeTitle = "Usar sesiones de formación";
$UseSessionModeComment = "Las sesiones ofrecen una forma diferente de tratar los cursos, donde el curso tiene un creador, un tutor y unos estudiantes. Cada tutor imparte un curso por un perido de tiempo, llamado *sesión*, a un conjunto de estudiantes";
$HomepageViewActivity = "Ver la actividad";
$HomepageView2column = "Visualización en dos columnas";
@@ -540,12 +540,12 @@ $PublicPagesComplyToWAIComment = "WAI (Web Accessibility Initiative) es una inic
$VersionCheck = "Comprobar versión";
$Active = "Activo";
$Inactive = "No activo";
-$SessionOverview = "Resumen de la sesión";
+$SessionOverview = "Resumen de la sesión de formación";
$SubscribeUserIfNotAllreadySubscribed = "Inscribir un usuario en el caso de que ya no lo esté";
$UnsubscribeUserIfSubscriptionIsNotInFile = "Dar de baja a un usuario si no está en el fichero";
$DeleteSelectedSessions = "Eliminar las sesiones seleccionadas";
$CourseListInSession = "Lista de cursos en esta sesión";
-$UnsubscribeCoursesFromSession = "Dar de baja a los cursos seleccionados de esta sesión";
+$UnsubscribeCoursesFromSession = "Cancelar la inscripción en la sesión de los cursos seleccionados";
$NbUsers = "Usuarios";
$SubscribeUsersToSession = "Inscribir usuarios en esta sesión";
$UserListInPlatform = "Lista de usuarios de la plataforma";
@@ -615,12 +615,12 @@ $CourseTeachers = "Profesores del curso";
$UnknownTeacher = "Profesor desconocido";
$HideDLTTMarkup = "Ocultar las marcas DLTT";
$ListOfCoursesOfSession = "Lista de cursos de la sesión";
-$UnsubscribeSelectedUsersFromSession = "Cancelar las inscripción de los usuarios seleccionados en la sesión";
+$UnsubscribeSelectedUsersFromSession = "Cancelar la inscripción en la sesión de los usuarios seleccionados";
$ShowDifferentCourseLanguageComment = "Mostrar el idioma de cada curso, después de su título, en la lista los cursos de la página principal";
$ShowEmptyCourseCategoriesComment = "Mostrar las categorías de cursos en la página principal, aunque estén vacías";
$ShowEmptyCourseCategories = "Mostrar las categorías de cursos vacías";
$XMLNotValid = "El documento XML no es válido";
-$ForTheSession = "para la sesión";
+$ForTheSession = "de la sesión";
$AllowEmailEditorTitle = "Activar el editor de correo electrónico en línea";
$AllowEmailEditorComment = "Si se activa esta opción, al hacer clic en un correo electrónico, se abrirá un editor en línea. ";
$AddCSVHeader = "¿ Añadir la linea de cabecera del CSV ?";
@@ -651,7 +651,7 @@ $EphorusDescription = "Comenzar a usar en Dokeos el servicio antiplagio de Ephor
$EphorusLeadersInAntiPlagiarism = "Líderes en
antiplagio ";
$EphorusClickHereForInformationsAndPrices = "Haga clic aquí para más información y precios";
$NameOfTheSession = "Nombre de la sesión";
-$NoSessionsForThisUser = "Este usuario no está inscrito en una sesión";
+$NoSessionsForThisUser = "Este usuario no está inscrito en ninguna sesión de formación";
$DisplayCategoriesOnHomepageTitle = "Mostrar categorías en la página principal";
$DisplayCategoriesOnHomepageComment = "Esta opción mostrará u ocultará las categorías de cursos en la página principal de la plataforma";
$ShowTabsTitle = "Pestañas en la cabecera";
@@ -950,7 +950,7 @@ $YouMustImportAFileAccordingToSelectedOption = "Debe importar un archivo de acue
$ShowEmailOfTeacherOrTutorTitle = "Correo electrónico del profesor o del tutor en el pie";
$ShowEmailOfTeacherOrTutorComent = "¿ Mostrar el correo electrónico del profesor o del tutor en el pie de página ?";
$Created = "Creado";
-$AddSystemAnnouncement = "Añadir anuncio del sistema";
+$AddSystemAnnouncement = "Añadir un anuncio del sistema";
$EditSystemAnnouncement = "Editar anuncio del sistema";
$LPProgressScore = "Progreso total por lección";
$TotalTimeByCourse = "Tiempo total por lección";
@@ -978,7 +978,7 @@ $SilverLine = "L
$SoberBrown = "Marrón sobrio";
$SteelGrey = "Gris acero";
$TastyOlive = "Sabor oliva";
-$AddNews = "Agregar noticias";
+$AddNews = "Crear anuncio";
$SearchDatabaseOpeningError = "No se pudo abrir la base de datos del motor de indexación,pruebe añadir un nuevo recurso (ejercicio,enlace,lección,etc) el cual será indexado al buscador";
$SearchDatabaseVersionError = "La base de datos está en un formato no soportado";
$SearchDatabaseModifiedError = "La base de datos ha sido modificada(alterada)";
@@ -1031,9 +1031,9 @@ $TermAndConditionNotSaved = "T
$TheSubLanguageHasBeenRemoved = "El sub-idioma ha sido eliminado";
$AddTermsAndConditions = "Añadir términos y condiciones";
$TermAndConditionSaved = "Términos y condiciones guardados.";
-$Visibility = "Visible";
+$Visibility = "Visibilidad";
$SessionCategory = "Categoría de la sesión";
-$ListSessionCategory = "Lista de categoría de sesiones";
+$ListSessionCategory = "Categorías de sesiones de formación";
$AddSessionCategory = "Añadir categoría";
$SessionCategoryName = "Nombre de la categoría";
$EditSessionCategory = "Editar categoría de sesión";
@@ -1045,9 +1045,9 @@ $ThereIsNotStillASession = "No hay a
$SelectASession = "Seleccione una sesión";
$OriginCoursesFromSession = "Cursos de origen de la sesión";
$DestinationCoursesFromSession = "Cursos de destino de la sesión";
-$CopyCourseFromSessionToSessionExplanation = "Si quieres copiar un curso de una sesión a otro curso de otra sesión debes seleccionar primero un curso de la lista cursos de origen de la sesión. Puedes copiar contenidos de las herramientas descripción del curso, documentos, glosario, enlaces, ejercicios y lecciones de forma directa o seleccionando los componentes del curso";
+$CopyCourseFromSessionToSessionExplanation = "Si desea copiar un curso de una sesión a otro curso de otra sesión, primero debe seleccionar un curso de la lista cursos de origen de la sesión. Puedes copiar contenidos de las herramientas descripción del curso, documentos, glosario, enlaces, ejercicios y lecciones, de forma directa o seleccionando los componentes del curso";
$TypeOfCopy = "Tipo de copia";
-$CopyFromCourseInSessionToAnotherSession = "Copiar cursos de una sesion a otra";
+$CopyFromCourseInSessionToAnotherSession = "Copiar cursos de una sesión a otra";
$YouMustSelectACourseFromOriginalSession = "Debe seleccionar un curso de la lista original y una sesión de la lista de destino";
$MaybeYouWantToDeleteThisUserFromSession = "Tal vez desea eliminar al usuario de la sesión en lugar de eliminarlo de todos los cursos.";
$EditSessionCoursesByUser = "Editar cursos por usuario";
@@ -1055,7 +1055,7 @@ $CoursesUpdated = "Cursos actualizados";
$CurrentCourses = "Cursos del usuario";
$CoursesToAvoid = "Cursos a evitar";
$EditSessionCourses = "Editar cursos";
-$SessionVisibility = "Visibilidad después de la fecha de fin";
+$SessionVisibility = "Visibilidad después de la fecha de finalización";
$BlockCoursesForThisUser = "Bloquear cursos a este usuario";
$LanguageFile = "Archivo de idioma";
$ShowCoursesDescriptionsInCatalogTitle = "Mostrar las descripciones de los cursos en el catálogo";
@@ -1071,13 +1071,13 @@ $SpecialLetMeSelectItems = "Seleccionar los componentes";
$CreateBackup = "Crear copia de seguridad";
$AllowCoachsToEditInsideTrainingSessions = "Permitir a los tutores editar dentro de los cursos de las sesiones";
$AllowCoachsToEditInsideTrainingSessionsComment = "Permitir a los tutores editar comentarios dentro de los cursos de las sesiones";
-$ShowSessionDataTitle = "Mostrar datos del período de la sesion";
+$ShowSessionDataTitle = "Mostrar datos del período de la sesión";
$ShowSessionDataComment = "Mostrar comentarios de datos de la sesion";
-$SubscribeSessionsToCategory = "Inscribir sesiones a una categoría";
+$SubscribeSessionsToCategory = "Inscribir sesiones en una categoría";
$SessionListInPlatform = "Lista de sesiones de la plataforma";
$SessionListInCategory = "Lista de sesiones en la categoría";
$ToExportSpecialSelect = "Si quiere exportar cursos que contenga sessiones, tendría que asegurarse de que estos sean incluidos en la exportación; para eso tendría que haberlos seleccionado en la lista.";
-$ErrorMsgSpecialExport = "No se encontraron cursos registrado o es posible que no se haya realizado la asociación con las sesiones";
+$ErrorMsgSpecialExport = "No se encontraron cursos registrados o es posible que no se haya realizado su asociación con las sesiones";
$ConfigureInscription = "Configuración de la página de registro";
$MsgErrorSessionCategory = "Debe seleccionar una categoría y las sessiones";
$NumberOfSession = "Número de sesiones";
diff --git a/main/lang/spanish/tracking.inc.php b/main/lang/spanish/tracking.inc.php
index 99f7884322..79099f9f99 100644
--- a/main/lang/spanish/tracking.inc.php
+++ b/main/lang/spanish/tracking.inc.php
@@ -70,7 +70,7 @@ $langLast31days = "En los
$langLast7days = "En los últimos 7 días";
$langThisday = "Este día";
$langLogins = "Logins";
-$langLoginsExplaination = "Esta es la lista de sus accesos, junto con las herramientas que ha visitado en esas sesiones.";
+$langLoginsExplaination = "Este es el listado de sus accesos junto con las herramientas que ha visitado en esas sesiones.";
$langExercicesResults = "Resultados de los ejercicios realizados";
$langVisits = "visitas";
$langAt = "en";
@@ -220,7 +220,7 @@ $Duration = "Duraci
$WrongDatasForTimeSpentOnThePlatform = "Datos sobre del usuario que estaba registrado cuando el cálculo de su tiempo de permanencia en la plataforma no era posible.";
$DisplayCoaches = "Sumario de tutores";
$DisplayUserOverview = "Sumario de usuarios";
-$ExportUserOverviewOptions = "Opciónes en la exportación del sumario de usuarios";
+$ExportUserOverviewOptions = "Opciones en la exportación del sumario de usuarios";
$FollowingFieldsWillAlsoBeExported = "Los siguientes campos también serán exportados";
$TotalExercisesScoreObtained = "Puntuación total del ejercicio";
$TotalExercisesScorePossible = "Máxima puntuación total posible";
diff --git a/main/lang/spanish/trad4all.inc.php b/main/lang/spanish/trad4all.inc.php
index 6aea98eba4..efa9918a45 100644
--- a/main/lang/spanish/trad4all.inc.php
+++ b/main/lang/spanish/trad4all.inc.php
@@ -389,7 +389,7 @@ $Progression = "Progreso";
$NoCourse = "El curso no puede ser encontrado";
$Teachers = "Profesores";
$Session = "Sesión";
-$Sessions = "Sesiones";
+$Sessions = "Sesiones de formación";
$NoSession = "La sesión no puede ser encontrada";
$NoStudent = "El estudiante no puede ser encontrado";
$Students = "Estudiantes";
From 39b797c8d6f1d7f336bb04f8ec8d5344313c3413 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Juan=20Carlos=20Ra=C3=B1a?=
Date: Wed, 28 Oct 2009 22:17:30 +0100
Subject: [PATCH 7/8] change normal to confirmation message
---
main/admin/session_category_list.php | 462 +++++++++++++--------------
1 file changed, 231 insertions(+), 231 deletions(-)
diff --git a/main/admin/session_category_list.php b/main/admin/session_category_list.php
index e30a6f3432..0a713fadb3 100644
--- a/main/admin/session_category_list.php
+++ b/main/admin/session_category_list.php
@@ -1,232 +1,232 @@
-
-
- function selectAll(idCheck,numRows,action) {
-
- for(i=0;i';
-
-$tbl_session_category = Database::get_main_table(TABLE_MAIN_SESSION_CATEGORY);
-$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
-
-$page=intval($_GET['page']);
-$action= Security::remove_XSS($_REQUEST['action']);
-$sort=in_array($_GET['sort'],array('name','nbr_session','date_start','date_end'))? Security::remove_XSS($_GET['sort']) : 'name';
-$idChecked = Security::remove_XSS($_REQUEST['idChecked']);
-$order = (isset($_REQUEST['order']))? Security::remove_XSS($_REQUEST['order']): 'ASC';
-
-if ($action == 'delete_on_session' || $action == 'delete_off_session') {
- $delete_session = ($action == 'delete_on_session')? true: false;
- SessionManager::delete_session_category($idChecked, $delete_session);
- header('Location: '.api_get_self().'?sort='.$sort.'&action=show_message&message='.urlencode(get_lang('SessionCategoryDelete')));
- exit();
-}
-
-$interbreadcrumb[]=array("url" => "index.php","name" => get_lang('PlatformAdmin'));
-
-if (isset ($_GET['search']) && $_GET['search'] == 'advanced') {
- $interbreadcrumb[] = array ("url" => 'session_category_list.php', "name" => get_lang('ListSessionCategory'));
- $tool_name = get_lang('SearchASession');
- Display :: display_header($tool_name);
- $form = new FormValidator('advanced_search','get');
- $form->addElement('header', '', $tool_name);
- $active_group = array();
- $active_group[] = $form->createElement('checkbox','active','',get_lang('Active'));
- $active_group[] = $form->createElement('checkbox','inactive','',get_lang('Inactive'));
- $form->addGroup($active_group,'',get_lang('ActiveSession'),'
',false);
-
- $form->addElement('style_submit_button', 'submit',get_lang('SearchUsers'),'class="search"');
- $defaults['active'] = 1;
- $defaults['inactive'] = 1;
- $form->setDefaults($defaults);
- $form->display();
-} else {
- $limit = 20;
- $from = $page * $limit;
- //if user is crfp admin only list its sessions
- if(!api_is_platform_admin()) {
- $where .= (empty($_REQUEST['keyword']) ? " " : " WHERE name LIKE '%".addslashes($_REQUEST['keyword'])."%'");
- }
- else {
- $where .= (empty($_REQUEST['keyword']) ? " " : " WHERE name LIKE '%".addslashes($_REQUEST['keyword'])."%'");
- }
-
- $query = "SELECT sc.*, (select count(id) FROM $tbl_session WHERE session_category_id = sc.id) as nbr_session
- FROM $tbl_session_category sc
- $where
- ORDER BY $sort $order
- LIMIT $from,".($limit+1);
-
- $query_rows = "SELECT count(*) as total_rows
- FROM $tbl_session_category sc $where ";
-
- $order = ($order == 'ASC')? 'DESC': 'ASC';
- $result_rows = Database::query($query_rows,__FILE__,__LINE__);
- $recorset = Database::fetch_array($result_rows);
- $num = $recorset['total_rows'];
- $result = Database::query($query,__FILE__,__LINE__);
- $Sessions = Database::store_result($result);
- $nbr_results = sizeof($Sessions);
- $tool_name = get_lang('ListSessionCategory');
- Display::display_header($tool_name);
- api_display_tool_title($tool_name);
-
- if (!empty($_GET['warn'])) {
- Display::display_warning_message(urldecode($_GET['warn']),false);
- }
- if(isset($_GET['action'])) {
- Display::display_normal_message(stripslashes($_GET['message']),false);
- }
- ?>
-
- ';
- ?>
-
-