Browse Source

Bug #3646 and Issue #306 - Groups tool: Fixing person name order and sorting to be dependable on the internationalization settings. Other corrections about sortable tables with person names: Assigning the default (initial) field for sorting to be dependable on the internationalization settings.

Ivan Tcholakov 15 years ago
parent
commit
27e71d5b8b

+ 1 - 1
main/admin/ldap_users_list.php

@@ -237,7 +237,7 @@ if (isset($_GET['id_session']))
 // Create a sortable table with user-data
 
 $parameters['sec_token'] = Security::get_token();
-$table = new SortableTable('users', 'ldap_get_number_of_users', 'ldap_get_user_data',2);
+$table = new SortableTable('users', 'ldap_get_number_of_users', 'ldap_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('LoginName'));

+ 1 - 1
main/admin/user_list.php

@@ -724,7 +724,7 @@ else
 	}
 	// Create a sortable table with user-data
 	$parameters['sec_token'] = Security::get_token();
-	$table = new SortableTable('users', 'get_number_of_users', 'get_user_data',2);
+	$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'));

+ 1 - 1
main/gradebook/lib/fe/flatviewtable.class.php

@@ -44,7 +44,7 @@ class FlatViewTable extends SortableTable
 	 * Constructor
 	 */
 	function FlatViewTable ($selectcat, $users= array (), $evals= array (), $links= array (), $limit_enabled = false, $offset = 0, $addparams = null) {
-		parent :: __construct ('flatviewlist', null, null, 0);
+		parent :: __construct ('flatviewlist', null, null, (api_is_western_name_order() xor api_sort_by_first_name()) ? 1 : 0);
 		$this->datagen = new FlatViewDataGenerator($users, $evals, $links);
 		$this->selectcat = $selectcat;		
 		$this->limit_enabled = $limit_enabled;

+ 1 - 1
main/gradebook/lib/fe/resulttable.class.php

@@ -43,7 +43,7 @@ class ResultTable extends SortableTable
 	 * Constructor
 	 */
     function ResultTable ($evaluation, $results = array(), $iscourse, $addparams = null,$forprint = false) {
-    	parent :: __construct ('resultlist', null, null, 1);
+    	parent :: __construct ('resultlist', null, null, (api_is_western_name_order() xor api_sort_by_first_name()) ? 2 : 1);
 
 		$this->datagen = new ResultsDataGenerator($evaluation, $results, true);
 

+ 3 - 3
main/group/group.php

@@ -345,17 +345,17 @@ foreach ($group_cats as $index => $category)
 					$tutor = api_get_user_info($tutor_id);
 					if (api_get_setting("show_email_addresses") == "true")
 					{	
-						$tutor_info .= Display::encrypted_mailto_link($tutor['mail'],$tutor['firstName'].' '.$tutor['lastName']).', ';								
+						$tutor_info .= Display::encrypted_mailto_link($tutor['mail'], api_get_person_name($tutor['firstName'], $tutor['lastName'])).', ';								
 					}
 					else
 					{	
 						if (api_is_allowed_to_edit()=='true')
 						{
-							$tutor_info .= Display::encrypted_mailto_link($tutor['mail'],$tutor['firstName'].' '.$tutor['lastName']).', ';
+							$tutor_info .= Display::encrypted_mailto_link($tutor['mail'], api_get_person_name($tutor['firstName'], $tutor['lastName'])).', ';
 						}
 						else
 						{											
-							$tutor_info .= $tutor['firstName'].' '.$tutor['lastName'].', ';
+							$tutor_info .= api_get_person_name($tutor['firstName'], $tutor['lastName']).', ';
 						}
 					}					
 				}

+ 1 - 1
main/group/group_category.php

@@ -224,7 +224,7 @@ Display :: display_header($nameTools, "Group");
 
 // actions bar
 echo '<div class="actions">';
-echo '<a href="group.php">'.Display::return_icon('back.png',get_lang('BackTo').' '.strtolower(get_lang('GroupOverview'))).' '.get_lang('BackTo').' '.strtolower(get_lang('GroupOverview')).'</a>';
+echo '<a href="group.php">'.Display::return_icon('back.png',get_lang('BackTo').' '.api_strtolower(get_lang('GroupOverview'))).' '.get_lang('BackTo').' '.api_strtolower(get_lang('GroupOverview')).'</a>';
 echo '</div>';
 
 $defaults = $category;

+ 1 - 1
main/group/group_creation.php

@@ -185,7 +185,7 @@ elseif (isset ($_POST['number_of_groups']))
 	$tutor_options[0] = get_lang('GroupNoTutor');
 	foreach ($tutors as $index => $tutor)
 	{
-		$tutor_options[$tutor['user_id']] = $tutor['firstname'].' '.$tutor['lastname'];
+		$tutor_options[$tutor['user_id']] = api_get_person_name($tutor['firstname'], $tutor['lastname']);
 	}
 	$cat_options = array ();
 	*/

+ 22 - 8
main/group/group_edit.php

@@ -79,15 +79,29 @@ if (!api_is_allowed_to_edit(false,true)) {
  */
 
 function sort_users($user_a, $user_b) {
-	$cmp = api_strcmp($user_a['firstname'], $user_b['firstname']);
-	if ($cmp !== 0) {
-		return $cmp;
+	if (api_sort_by_first_name()) {
+		$cmp = api_strcmp($user_a['firstname'], $user_b['firstname']);
+		if ($cmp !== 0) {
+			return $cmp;
+		} else {
+			$cmp = api_strcmp($user_a['lastname'], $user_b['lastname']);
+			if ($cmp !== 0) {
+				return $cmp;
+			} else {
+				return api_strcmp($user_a['username'], $user_b['username']);
+			}
+		}
 	} else {
 		$cmp = api_strcmp($user_a['lastname'], $user_b['lastname']);
 		if ($cmp !== 0) {
 			return $cmp;
 		} else {
-			return api_strcmp($user_a['username'], $user_b['username']);
+			$cmp = api_strcmp($user_a['firstname'], $user_b['firstname']);
+			if ($cmp !== 0) {
+				return $cmp;
+			} else {
+				return api_strcmp($user_a['username'], $user_b['username']);
+			}
 		}
 	}
 }
@@ -137,7 +151,7 @@ $form->addElement('textarea', 'description', get_lang('GroupDescription'), array
 //$possible_tutors[0] = get_lang('GroupNoTutor');
 //foreach ($tutors as $index => $tutor)
 //{
-//	$possible_tutors[$tutor['user_id']] = $tutor['lastname'].' '.$tutor['firstname'];
+//	$possible_tutors[$tutor['user_id']] = api_get_person_name($tutor['lastname'], $tutor['firstname']);
 //}
 //$group = array ();
 //$group[] = & $form->createElement('select', 'tutor_id', null, $possible_tutors);
@@ -201,7 +215,7 @@ usort($complete_user_list, 'sort_users');
 
 $possible_users = array ();
 foreach ($complete_user_list as $index => $user) {
-	$possible_users[$user['user_id']] = $user['lastname'].' '.$user['firstname'].' ('.$user['username'].')';
+	$possible_users[$user['user_id']] = api_get_person_name($user['firstname'], $user['lastname']).' ('.$user['username'].')';
 }
 
 //print_r($complete_user_list2);
@@ -210,7 +224,7 @@ $group_tutor_list = GroupManager :: get_subscribed_tutors($current_group['id']);
 $selected_users = array ();
 $selected_tutors = array();
 foreach ($group_tutor_list as $index => $user) {
-	//$possible_users[$user['user_id']] = $user['lastname'].' '.$user['firstname'];
+	//$possible_users[$user['user_id']] = api_get_person_name($user['firstname'], .$user['lastname']);
 	$selected_tutors[] = $user['user_id'];
 }
 
@@ -232,7 +246,7 @@ $group_tutors_element->setElementTemplate('
 $group_member_list = GroupManager :: get_subscribed_users($current_group['id']);
 $selected_users = array ();
 foreach ($group_member_list as $index => $user) {
-	//$possible_users[$user['user_id']] = $user['lastname'].' '.$user['firstname'];
+	//$possible_users[$user['user_id']] = api_get_person_name($user['firstname'], $user['lastname']);
 	$selected_users[] = $user['user_id'];
 }
 $group_members_element = $form->addElement('advmultiselect', 'group_members', get_lang('GroupMembers'), $possible_users, 'style="width: 225px;"');

+ 1 - 1
main/group/group_overview.php

@@ -140,7 +140,7 @@ foreach($categories as $index => $category)
 		foreach($users as $index => $user)
 		{
 			$user_info = api_get_user_info($user);
-			echo '<li>'.$user_info['firstName'].' '.$user_info['lastName'].'</li>';
+			echo '<li>'.api_get_person_name($user_info['firstName'], $user_info['lastName']).'</li>';
 		}
 		echo '</ul>';
 		echo '</li>';	

+ 32 - 12
main/group/group_space.php

@@ -288,8 +288,8 @@ else
 		$image_path = UserManager::get_user_picture_path_by_id($tutor['user_id'],'web',false, true);				
 		$image_repository = $image_path['dir'];
 		$existing_image = $image_path['file'];
-		$photo= '<img src="'.$image_repository.$existing_image.'" align="absbottom" alt="'.$tutor['firstname'].' '.$tutor['lastname'].'"  width="32" height="32" title="'.$tutor['firstname'].' '.$tutor['lastname'].'" />';		
-		$tutor_info .= "<div style='margin-bottom: 5px;'><a href='../user/userInfo.php?origin=".$my_origin."&amp;uInfo=".$tutor['user_id']."'>".$photo."&nbsp;".$tutor['firstname']." ".$tutor['lastname']."</a></div>";
+		$photo= '<img src="'.$image_repository.$existing_image.'" align="absbottom" alt="'.api_get_person_name($tutor['firstname'], $tutor['lastname']).'"  width="32" height="32" title="'.api_get_person_name($tutor['firstname'], $tutor['lastname']).'" />';
+		$tutor_info .= "<div style='margin-bottom: 5px;'><a href='../user/userInfo.php?origin=".$my_origin."&amp;uInfo=".$tutor['user_id']."'>".$photo."&nbsp;".api_get_person_name($tutor['firstname'], $tutor['lastname'])."</a></div>";
 	}
 }
 
@@ -304,15 +304,20 @@ echo '<br/>';
  */
 echo '<b>'.get_lang("GroupMembers").':</b>';
 
-$table = new SortableTable('group_users', 'get_number_of_group_users', 'get_group_user_data',2);
+$table = new SortableTable('group_users', 'get_number_of_group_users', 'get_group_user_data', (api_is_western_name_order() xor api_sort_by_first_name()) ? 2 : 1);
 $my_cidreq=isset($_GET['cidReq']) ? Security::remove_XSS($_GET['cidReq']) : '';
 $my_origin=isset($_GET['origin']) ? Security::remove_XSS($_GET['origin']) : '';
 $my_gidreq=isset($_GET['gidReq']) ? Security::remove_XSS($_GET['gidReq']) : '';
 $parameters = array('cidReq' => $my_cidreq, 'origin'=> $my_origin, 'gidReq' => $my_gidreq);
 $table->set_additional_parameters($parameters);
 $table->set_header(0, '');
-$table->set_header(1, get_lang('LastName'));
-$table->set_header(2, get_lang('FirstName'));
+if (api_is_western_name_order()) {
+	$table->set_header(1, get_lang('FirstName'));
+	$table->set_header(2, get_lang('LastName'));
+} else {
+	$table->set_header(1, get_lang('LastName'));
+	$table->set_header(2, get_lang('FirstName'));
+}
 
 if (api_get_setting("show_email_addresses") == "true")
 {
@@ -380,8 +385,13 @@ function get_group_user_data($from, $number_of_items, $column, $direction)
 	
 		$sql = "SELECT 
 					user.user_id 	AS col0,
-					user.lastname 	AS col1,
-					user.firstname 	AS col2,
+				".(api_is_western_name_order() ?
+				"user.firstname 	AS col1,
+				user.lastname 	AS col2,"
+				:
+				"user.lastname 	AS col1,
+				user.firstname 	AS col2,"
+				)."
 					user.email		AS col3
 					FROM ".$table_user." user, ".$table_group_user." group_rel_user 
 					WHERE group_rel_user.user_id = user.user_id 
@@ -395,8 +405,13 @@ function get_group_user_data($from, $number_of_items, $column, $direction)
 		{
 			$sql = "SELECT 
 						user.user_id 	AS col0,
-						user.lastname 	AS col1,
-						user.firstname 	AS col2,
+						".(api_is_western_name_order() ?
+						"user.firstname 	AS col1,
+						user.lastname 	AS col2,"
+						:
+						"user.lastname 	AS col1,
+						user.firstname 	AS col2,"
+						)."
 						user.email		AS col3
 						FROM ".$table_user." user, ".$table_group_user." group_rel_user 
 						WHERE group_rel_user.user_id = user.user_id 
@@ -408,8 +423,13 @@ function get_group_user_data($from, $number_of_items, $column, $direction)
 		{
 			$sql = "SELECT 
 						user.user_id 	AS col0,
-						user.lastname 	AS col1,
-						user.firstname 	AS col2
+						". (api_is_western_name_order() ?
+						"user.firstname 	AS col1,
+						user.lastname 	AS col2,"
+						:
+						"user.lastname 	AS col1,
+						user.firstname 	AS col2,"
+						)."
 						FROM ".$table_user." user, ".$table_group_user." group_rel_user 
 						WHERE group_rel_user.user_id = user.user_id 
 						AND group_rel_user.group_id = '".Database::escape_string($current_group['id'])."'";
@@ -454,7 +474,7 @@ function user_icon_filter($user_id)
 	$image_path = UserManager::get_user_picture_path_by_id($user_id,'web',false, true);				
 	$image_repository = $image_path['dir'];
 	$existing_image = $image_path['file'];
-	$photo= '<center><img src="'.$image_repository.$existing_image.'" alt="'.$userinfo['lastname'].' '.$userinfo['firstname'].'"  width="22" height="22" title="'.$userinfo['lastname'].' '.$userinfo['firstname'].'" /></center>';		
+	$photo= '<center><img src="'.$image_repository.$existing_image.'" alt="'.api_get_person_name($userinfo['firstname'], $userinfo['lastname']).'"  width="22" height="22" title="'.api_get_person_name($userinfo['firstname'], $userinfo['lastname']).'" /></center>';
 	return "<a href='../user/userInfo.php?origin=".$origin."&amp;uInfo=".$user_id."'>".$photo;	
 }