Bug #3646 and Issue #306 - Assesments (gradebook) tool, part 2: Fixing person name order and sorting to be dependable on the internationalization settings.

skala
Ivan Tcholakov 17 years ago
parent d30739e9ee
commit 3185aba8b4
  1. 2
      main/gradebook/gradebook.php
  2. 5
      main/gradebook/gradebook_result.class.php
  3. 55
      main/gradebook/gradebook_view_result.php
  4. 16
      main/gradebook/lib/fe/displaygradebook.php
  5. 20
      main/gradebook/lib/fe/evalform.class.php
  6. 40
      main/gradebook/lib/fe/flatviewtable.class.php
  7. 31
      main/gradebook/lib/fe/resulttable.class.php
  8. 2
      main/gradebook/lib/fe/scoredisplayform.class.php
  9. 9
      main/gradebook/lib/fe/userform.class.php
  10. 3
      main/gradebook/lib/gradebook_functions_users.inc.php
  11. 2
      main/gradebook/user_info.php
  12. 2
      main/gradebook/user_stats.php

@ -292,7 +292,7 @@ if ($course_to_crsind && !isset($_GET['confirm'])) {
: '&moveeval=' . Security::remove_XSS($_GET['moveeval']) )
.'&selectcat=' . Security::remove_XSS($_GET['selectcat'])
.'&targetcat=' . Security::remove_XSS($_GET['targetcat']).'">
<input type="submit" value="'.get_lang('Ok').'">
<input type="submit" value="'.' '.get_lang('Ok').' '.'">
</form>';
$warning_message = get_lang('MoveWarning').'<br><br>'.$button;

@ -116,13 +116,13 @@ class GradeBookResult
if (empty($user_id)) {
//get all results (ourself and the others) as an admin should see them
//AND exe_user_id <> $_user['user_id'] clause has been removed
$sql="SELECT CONCAT(lastname,' ',firstname),ce.title, te.exe_result ,
$sql="SELECT ".(api_is_western_name_order() ? "CONCAT(firstname,' ',lastname)" : "CONCAT(lastname,' ',firstname)").", ce.title, te.exe_result ,
te.exe_weighting, UNIX_TIMESTAMP(te.exe_date),te.exe_id, user.email, user.user_id
FROM $TBL_EXERCISES ce , $TBL_TRACK_EXERCISES te, $TBL_USER user
WHERE te.exe_exo_id = ce.id AND user_id=te.exe_user_id AND te.exe_cours_id='$cid'
ORDER BY te.exe_cours_id ASC, ce.title ASC, te.exe_date ASC";
$hpsql="SELECT CONCAT(tu.lastname,' ',tu.firstname), tth.exe_name,
$hpsql="SELECT ".(api_is_western_name_order() ? "CONCAT(tu.firstname,' ',tu.lastname)" : "CONCAT(tu.lastname,' ',tu.firstname)").", tth.exe_name,
tth.exe_result , tth.exe_weighting, UNIX_TIMESTAMP(tth.exe_date), tu.email, tu.user_id
FROM $TBL_TRACK_HOTPOTATOES tth, $TBL_USER tu
WHERE tu.user_id=tth.exe_user_id AND tth.exe_cours_id = '".$cid."'
@ -139,7 +139,6 @@ class GradeBookResult
FROM $TBL_TRACK_HOTPOTATOES
WHERE exe_user_id = '".$user_id."' AND exe_cours_id = '".$cid."'
ORDER BY exe_cours_id ASC, exe_date ASC";
}
$results=getManyResultsXCol($sql,8);

@ -305,12 +305,22 @@ if ($export_result_form->validate()) {
));
$datagen = new ResultsDataGenerator ($eval[0],$allresults);
$data_array = $datagen->get_data(ResultsDataGenerator :: RDG_SORT_LASTNAME,0,null,true);
if (api_sort_by_first_name()) {
$data_array = $datagen->get_data(ResultsDataGenerator :: RDG_SORT_FIRSTNAME, 0, null, true);
} else {
$data_array = $datagen->get_data(ResultsDataGenerator :: RDG_SORT_LASTNAME,0,null,true);
}
$newarray = array();
$is_western_name_order = api_is_western_name_order();
foreach ($data_array as $data) {
$newitem = array();
$newitem[] = $data['lastname'];
$newitem[] = $data['firstname'];
if ($is_western_name_order) {
$newitem[] = $data['firstname'];
$newitem[] = $data['lastname'];
} else {
$newitem[] = $data['lastname'];
$newitem[] = $data['firstname'];
}
$newitem[] = $data['score'];
if ($displayscore->is_custom())
$newitem[] = $data['display'];
@ -318,10 +328,18 @@ if ($export_result_form->validate()) {
}
$pdf->ezSetY(650);
if ($displayscore->is_custom()) {
$header_names = array(get_lang('LastName'),get_lang('FirstName'),get_lang('Score'),get_lang('Display'));
}else {
$header_names = array(get_lang('LastName'),get_lang('FirstName'),get_lang('Score'));
}
if ($is_western_name_order) {
$header_names = array(get_lang('FirstName'),get_lang('LastName'),get_lang('Score'),get_lang('Display'));
} else {
$header_names = array(get_lang('LastName'),get_lang('FirstName'),get_lang('Score'),get_lang('Display'));
}
} else {
if ($is_western_name_order) {
$header_names = array(get_lang('FirstName'),get_lang('LastName'),get_lang('Score'));
} else {
$header_names = array(get_lang('LastName'),get_lang('FirstName'),get_lang('Score'));
}
}
$pdf->ezTable($newarray,$header_names,'',array('showHeadings'=>1,'shaded'=>1,'showLines'=>1,'rowGap'=>3,'width'=> 500));
$pdf->ezStream();
@ -372,16 +390,27 @@ if (isset ($_POST['action'])) {
}
}
} // TODO - what if selecteval not set ?
$addparams= array (
'selecteval' => $eval[0]->get_id());
$addparams = array ('selecteval' => $eval[0]->get_id());
if (isset ($_GET['print'])) {
$datagen = new ResultsDataGenerator ($eval[0],$allresults);
$data_array = $datagen->get_data(ResultsDataGenerator :: RDG_SORT_LASTNAME,0,null,true);
if ($displayscore->is_custom()) {
if (api_sort_by_first_name()) {
$data_array = $datagen->get_data(ResultsDataGenerator :: RDG_SORT_FIRSTNAME, 0, null, true);
} else {
$data_array = $datagen->get_data(ResultsDataGenerator :: RDG_SORT_LASTNAME,0,null,true);
}
if ($displayscore->is_custom()) {
if (api_is_western_name_order()) {
$header_names = array(get_lang('FirstName'),get_lang('LastName'),get_lang('Score'),get_lang('Display'));
} else {
$header_names = array(get_lang('LastName'),get_lang('FirstName'),get_lang('Score'),get_lang('Display'));
}
} else {
if (api_is_western_name_order()) {
$header_names = array(get_lang('FirstName'),get_lang('LastName'),get_lang('Score'));
}else {
$header_names = array(get_lang('LastName'),get_lang('FirstName'),get_lang('Score'));
}
}
$newarray = array();
foreach ($data_array as $data) {
$newarray[] = array_slice($data, 2);
@ -479,7 +508,7 @@ if (isset ($_GET['importoverwritescore'])) {
if (isset ($_GET['import_user_error'])) {
$userinfo= get_user_info_from_id($_GET['import_user_error']);
Display :: display_warning_message(get_lang('UserInfoDoesNotMatch') . ' ' . $userinfo['lastname'] . ' ' . $userinfo['firstname']);
Display :: display_warning_message(get_lang('UserInfoDoesNotMatch') . ' ' . api_get_person_name($userinfo['firstname'], $userinfo['lastname']));
}
if (isset ($_GET['allresdeleted'])) {
Display :: display_confirmation_message(get_lang('AllResultDeleted'));
@ -487,7 +516,7 @@ if (isset ($_GET['allresdeleted'])) {
if (isset ($_GET['import_score_error'])) {
$userinfo= get_user_info_from_id($_GET['import_score_error']);
Display :: display_warning_message(get_lang('ScoreDoesNotMatch') . ' ' . $userinfo['lastname'] . ' ' . $userinfo['firstname']);
Display :: display_warning_message(get_lang('ScoreDoesNotMatch') . ' ' . api_get_person_name($userinfo['firstname'], $userinfo['lastname']));
}
if ($file_type == null) { //show the result header
if (isset ($export_result_form) && !(isset ($edit_res_form))) {

@ -135,7 +135,7 @@ class DisplayGradebook
*/
function display_header_reduce_flatview($catobj, $showeval, $showlink,$simple_search_form) {
$header = '<div class="actions">';
$header .= '<span><a class="quiz_export_link" href="#" onclick="document.form1b.submit();">'.Display::return_icon('excel.gif', get_lang('ExportAsXLS')).' '.get_lang('ExportAsXLS').'</a></span>';
$header .= '<span><a class="quiz_export_link" href="javascript: void(0);" onclick="javascript: document.form1b.submit();">'.Display::return_icon('excel.gif', get_lang('ExportAsXLS')).' '.get_lang('ExportAsXLS').'</a></span>';
$header .= '<a href="'.$_SESSION['gradebook_dest'].'?'.api_get_cidreq().'">'. Display::return_icon('folder_document.gif',get_lang('FolderView')) . get_lang('FolderView') . '</a>';
// $header .= '<td style="vertical-align: top;"><a href="' . api_get_self() . '?exportpdf=&offset='.Security::remove_XSS($_GET['offset']).'&search=' . Security::remove_XSS($_GET['search']).'&selectcat=' . $catobj->get_id() . '"><img src=../img/file_pdf.gif alt=' . get_lang('ExportPDF') . '/> ' . get_lang('ExportPDF') . '</a>';
@ -158,7 +158,7 @@ class DisplayGradebook
echo '<input type="hidden" name="export_format" value="xls">';
echo '</form>';
//$header .= '<a class="quiz_export_link" href="#" onclick="document.form1a.submit();">'.Display::return_icon('csv.gif', get_lang('ExportAsCSV')).' '.get_lang('ExportAsCSV').'</a>';
//$header .= '<a class="quiz_export_link" href="javascript: void(0);" onclick="javascript: document.form1a.submit();">'.Display::return_icon('csv.gif', get_lang('ExportAsCSV')).' '.get_lang('ExportAsCSV').'</a>';
$header .= '<a href="' . api_get_self() . '?print=&selectcat=' . $catobj->get_id() . '" target="_blank">'.Display::return_icon('printmgr.gif', get_lang('Print')).' ' . get_lang('Print') . '</a>';
$header .= '<a href="' . api_get_self() . '?exportpdf=&selectcat=' . $catobj->get_id() . '" >'.Display::return_icon('file_pdf.gif', get_lang('ExportAsPDF')).' ' . get_lang('ExportToPDF') . '</a>';
//exportpdf
@ -224,9 +224,7 @@ class DisplayGradebook
$cattotal = Category :: load(0);
$scoretotal= $cattotal[0]->calc_score(api_get_user_id());
$scoretotal_display = (isset($scoretotal) ? $scoredisplay->display_score($scoretotal,SCORE_PERCENT) : get_lang('NoResultsAvailable'));
$scoreinfo = get_lang('StatsStudent') . ' :<b> '.$user['lastname'].' '.$user['firstname'].'</b><br />';
$scoreinfo = get_lang('StatsStudent') . ' :<b> '.api_get_person_name($user['firstname'], $user['lastname']).'</b><br />';
if ((!$catobj->get_id() == '0') && (!isset ($_GET['studentoverview'])) && (!isset ($_GET['search']))) {
$scoreinfo.= '<br />'.get_lang('Total') . ' : <b>' . $scorecourse_display . '</b>';
}
@ -347,7 +345,7 @@ class DisplayGradebook
$cattotal = Category :: load(0);
$scoretotal= $cattotal[0]->calc_score(api_get_user_id());
$scoretotal_display = (isset($scoretotal) ? $scoredisplay->display_score($scoretotal,SCORE_PERCENT) : get_lang('NoResultsAvailable'));
$scoreinfo = get_lang('StatsStudent') . ' :<b> '.$user['lastname'].' '.$user['firstname'].'</b><br />';
$scoreinfo = get_lang('StatsStudent') . ' :<b> '.api_get_person_name($user['firstname'], $user['lastname']).'</b><br />';
if ((!$catobj->get_id() == '0') && (!isset ($_GET['studentoverview'])) && (!isset ($_GET['search'])))
$scoreinfo.= '<br />'.get_lang('TotalForThisCategory') . ' : <b>' . $scorecourse_display . '</b>';
$scoreinfo.= '<br />'.get_lang('Total') . ' : <b>' . $scoretotal_display . '</b>';
@ -409,13 +407,13 @@ class DisplayGradebook
//Web path
$image_path = UserManager::get_user_picture_path_by_id($userid,'web',false,true);
$image_file = $image_path['dir'].$image_path['file'];
$img_attributes= 'src="' . $image_file . '?rand=' . time() . '" ' . 'alt="' . $user['lastname'] . ' ' . $user['firstname'] . '" ';
$img_attributes= 'src="' . $image_file . '?rand=' . time() . '" ' . 'alt="' . api_get_person_name($user['firstname'], $user['lastname']) . '" ';
if ($image_size[0] > 200) {
//limit display width to 200px
$img_attributes .= 'width="200" ';
}
$info = '<table width="100%" border=0 cellpadding=5><tr><td width="80%">';
$info.= get_lang('Name') . ' : <b>' . $user['lastname'] . ' ' . $user['firstname'] . '</b> ( <a href="user_info.php?userid=' . $userid . '&selectcat=' . Security::remove_XSS($_GET['selectcat']) . '">' . get_lang('MoreInfo') . '...</a> )<br>';
$info.= get_lang('Name') . ' : <b>' . api_get_person_name($user['firstname'], $user['lastname']) . '</b> ( <a href="user_info.php?userid=' . $userid . '&selectcat=' . Security::remove_XSS($_GET['selectcat']) . '">' . get_lang('MoreInfo') . '...</a> )<br>';
$info.= get_lang('Email') . ' : <b><a href="mailto:' . $user['email'] . '">' . $user['email'] . '</a></b><br><br>';
$info.= get_lang('TotalUser') . ' : <b>' . $scorecourse_display . '</b><br>';
$info.= '</td><td>';
@ -423,7 +421,7 @@ class DisplayGradebook
//--------------
//$scoreinfo = get_lang('StatsStudent') . ' :<b> '.$user['lastname'].' '.$user['firstname'].'</b><br />';
//$scoreinfo = get_lang('StatsStudent') . ' :<b> '.api_get_person_name($user['lastname'], $user['firstname']).'</b><br />';
//$scoreinfo.= '<br />'.get_lang('Total') . ' : <b>' . $scorecourse_display . '</b>';
//$scoreinfo.= '<br />'.get_lang('Total') . ' : <b>' . $scoretotal_display . '</b>';

@ -245,7 +245,7 @@ class EvalForm extends FormValidator
$userinfo= api_get_user_info($this->result_object->get_user_id());
$renderer =& $this->defaultRenderer();
$renderer->setElementTemplate('<span>{element}</span> ');
$this->addElement('static', null, null,$userinfo['lastName'] . ' ' . $userinfo['firstName']);
$this->addElement('static', null, null, api_get_person_name($userinfo['lastName'], $userinfo['firstName']));
$this->add_textfield('score', get_lang('Result'), false, array (
'size' => '4',
'maxlength' => '4'
@ -361,27 +361,31 @@ class EvalForm extends FormValidator
private function build_stud_label ($id, $lastname, $firstname) {
$opendocurl_start = '';
$opendocurl_end = '';
// evaluation's origin is a link
if ($this->evaluation_object->get_category_id() < 0) {
$link = LinkFactory :: get_evaluation_link ($this->evaluation_object->get_id());
$doc_url = $link->get_view_url($id);
if ($doc_url != null) {
$opendocurl_start .= '<a href="'. $doc_url . '" target="_blank">';
$opendocurl_end = '</a>';
}
}
return $opendocurl_start . $lastname . ' ' . $firstname . $opendocurl_end;
return $opendocurl_start . api_get_person_name($firstname, $lastname) . $opendocurl_end;
}
function sort_by_user ($item1, $item2) {
$user1 = $item1['user'];
$user2 = $item2['user'];
$result = api_strcmp($user1['lastname'], $user2['lastname']);
if ($result == 0) {
return api_strcmp($user1['firstname'], $user2['firstname']);
if (api_sort_by_first_name()) {
$result = api_strcmp($user1['firstname'], $user2['firstname']);
if ($result == 0) {
return api_strcmp($user1['lastname'], $user2['lastname']);
}
} else {
$result = api_strcmp($user1['lastname'], $user2['lastname']);
if ($result == 0) {
return api_strcmp($user1['firstname'], $user2['firstname']);
}
}
return $result;
}

@ -409,6 +409,8 @@ class FlatViewTable extends SortableTable
*/
function get_table_data ($from = 1) {
$is_western_name_order = api_is_western_name_order();
// create page navigation if needed
$totalitems = $this->datagen->get_total_items_count();
@ -463,8 +465,11 @@ class FlatViewTable extends SortableTable
// retrieve sorting type
$users_sorting = ($this->column == 0 ? FlatViewDataGenerator :: FVDG_SORT_LASTNAME
: FlatViewDataGenerator :: FVDG_SORT_FIRSTNAME);
if ($is_western_name_order) {
$users_sorting = ($this->column == 0 ? FlatViewDataGenerator :: FVDG_SORT_FIRSTNAME : FlatViewDataGenerator :: FVDG_SORT_LASTNAME);
} else {
$users_sorting = ($this->column == 0 ? FlatViewDataGenerator :: FVDG_SORT_LASTNAME : FlatViewDataGenerator :: FVDG_SORT_FIRSTNAME);
}
if ($this->direction == 'DESC') {
$users_sorting |= FlatViewDataGenerator :: FVDG_SORT_DESC;
} else {
@ -475,8 +480,13 @@ class FlatViewTable extends SortableTable
$header_names = $this->datagen->get_header_names($this->offset, $selectlimit);
$column = 0;
$this->set_header($column++, $header_names[0]);
$this->set_header($column++, $header_names[1]);
if ($is_western_name_order) {
$this->set_header($column++, $header_names[1]);
$this->set_header($column++, $header_names[0]);
} else {
$this->set_header($column++, $header_names[0]);
$this->set_header($column++, $header_names[1]);
}
while ($column < count($header_names)) {
$this->set_header($column, $header_names[$column], false);
@ -487,16 +497,22 @@ class FlatViewTable extends SortableTable
// step 2: generate rows: students
$data_array = $this->datagen->get_data($users_sorting,
$from, $this->per_page,
$this->offset, $selectlimit);
$data_array = $this->datagen->get_data($users_sorting, $from, $this->per_page, $this->offset, $selectlimit);
$table_data = array();
foreach ($data_array as $user_row) {
$table_row = array ();
$count = 0;
$table_row[]= $this->build_name_link($user_row[$count++], $user_row[$count++]);
$table_row[]= $user_row[$count++];
$user_id = $user_row[$count++];
$lastname = $user_row[$count++];
$firstname = $user_row[$count++];
if ($is_western_name_order) {
$table_row[] = $this->build_name_link($user_id, $firstname);
$table_row[] = $this->build_name_link($user_id, $lastname);
} else {
$table_row[] = $this->build_name_link($user_id, $lastname);
$table_row[] = $this->build_name_link($user_id, $firstname);
}
while ($count < count($user_row)) {
$table_row[] = $user_row[$count++];
}
@ -506,11 +522,9 @@ class FlatViewTable extends SortableTable
}
// Other functions
private function build_name_link ($user_id, $lastname) {
return '<a href="user_stats.php?userid='.$user_id.'&selectcat='.$this->selectcat->get_id().'">'.$lastname.'</a>';
private function build_name_link ($user_id, $name) {
return '<a href="user_stats.php?userid='.$user_id.'&selectcat='.$this->selectcat->get_id().'">'.$name.'</a>';
}
}

@ -62,8 +62,13 @@ class ResultTable extends SortableTable
'delete' => get_lang('Delete')
));
}
$this->set_header($column++, get_lang('LastName'));
$this->set_header($column++, get_lang('FirstName'));
if (api_is_western_name_order()) {
$this->set_header($column++, get_lang('FirstName'));
$this->set_header($column++, get_lang('LastName'));
} else {
$this->set_header($column++, get_lang('LastName'));
$this->set_header($column++, get_lang('FirstName'));
}
$this->set_header($column++, get_lang('Score'));
if ($scoredisplay->is_custom()) {
$this->set_header($column++, get_lang('Display'));
@ -87,6 +92,7 @@ class ResultTable extends SortableTable
*/
function get_table_data ($from = 1) {
$is_western_name_order = api_is_western_name_order();
$scoredisplay = ScoreDisplay :: instance();
// determine sorting type
@ -94,10 +100,18 @@ class ResultTable extends SortableTable
switch ($this->column) {
// Type
case (0 + $col_adjust):
$sorting = ResultsDataGenerator :: RDG_SORT_LASTNAME;
if ($is_western_name_order) {
$sorting = ResultsDataGenerator :: RDG_SORT_FIRSTNAME;
} else {
$sorting = ResultsDataGenerator :: RDG_SORT_LASTNAME;
}
break;
case (1 + $col_adjust):
$sorting = ResultsDataGenerator :: RDG_SORT_FIRSTNAME;
if ($is_western_name_order) {
$sorting = ResultsDataGenerator :: RDG_SORT_LASTNAME;
} else {
$sorting = ResultsDataGenerator :: RDG_SORT_FIRSTNAME;
}
break;
case (2 + $col_adjust):
$sorting = ResultsDataGenerator :: RDG_SORT_SCORE;
@ -122,8 +136,13 @@ class ResultTable extends SortableTable
if ($this->iscourse == '1') {
$row[] = $item['result_id'];
}
$row[] = $item['lastname'];
$row[] = $item['firstname'];
if ($is_western_name_order) {
$row[] = $item['firstname'];
$row[] = $item['lastname'];
} else {
$row[] = $item['lastname'];
$row[] = $item['firstname'];
}
$row[] = $item['score'];
if ($scoredisplay->is_custom()) {
$row[] = $item['display'];

@ -92,7 +92,7 @@ class ScoreDisplayForm extends FormValidator
if ($displayscore->is_custom()) {
$this->addElement('checkbox', 'includeupperlimit', null, get_lang('IncludeUpperLimit'), null);
$this->addElement('static', null, null, '<small>' . get_lang('ScoreInfo') . '</small>');
$this->addElement('static', null, null, get_lang('ScoreInfo'));
$scorenull[]= & $this->CreateElement('static', null, null, get_lang('Between'));
$this->setDefaults(array (
'beginscore' => '0'

@ -75,8 +75,13 @@ class UserForm extends FormValidator
}
protected function build_user_info_form() {
$this->addElement('static', 'fname', get_lang('FirstName'), $this->user_info['firstname']);
$this->addElement('static', 'lname', get_lang('LastName'), $this->user_info['lastname']);
if (api_is_western_name_order()) {
$this->addElement('static', 'fname', get_lang('FirstName'), $this->user_info['firstname']);
$this->addElement('static', 'lname', get_lang('LastName'), $this->user_info['lastname']);
} else {
$this->addElement('static', 'lname', get_lang('LastName'), $this->user_info['lastname']);
$this->addElement('static', 'fname', get_lang('FirstName'), $this->user_info['firstname']);
}
$this->addElement('static', 'uname', get_lang('UserName'), $this->user_info['username']);
$this->addElement('static', 'email', get_lang('Email'), '<a href="mailto:' . $this->user_info['email'] . '">' . $this->user_info['email'] . '</a>');
$this->addElement('static', 'ofcode', get_lang('OfficialCode'), $this->user_info['official_code']);

@ -34,12 +34,13 @@ function get_users_in_course($course_id) {
$tbl_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
$tbl_user = Database :: get_main_table(TABLE_MAIN_USER);
$order_clause = api_sort_by_first_name() ? ' ORDER BY firstname, lastname ASC' : ' ORDER BY lastname, firstname ASC';
$sql = 'SELECT user.user_id,lastname,firstname'
.' FROM '.$tbl_course_user.' as course_rel_user, '.$tbl_user.' as user'
.' WHERE course_rel_user.user_id=user.user_id'
.' AND course_rel_user.status='.STUDENT
." AND course_rel_user.course_code='".$course_id."'"
.' ORDER BY lastname ASC';
.$order_clause;
$result = api_sql_query($sql, __FILE__, __LINE__);
return get_user_array_from_sql_result($result);
}

@ -66,7 +66,7 @@ $image_path = UserManager::get_user_picture_path_by_id($user_id,'web',false,true
$image_file = $image_path['dir'].$image_path['file'];
$img_attributes = 'src="'.$image_file.'?rand='.time().'" '
.'alt="'.$user_data['lastname'].' '.$user_data['firstname'].'" '
.'alt="'.api_get_person_name($user_data['firstname'], $user_data['lastname']).'" '
.'style="float:left; padding:5px;" ';
if ($image_size[0] > 300) {

@ -73,7 +73,7 @@ if (isset ($_GET['exportpdf'])) {
$pdf->ezSetY(810);
$userinfo = get_user_info_from_id($my_user_id);
$pdf->ezText(get_lang('Results').' : '.$userinfo['lastname']. ' '. $userinfo['firstname'].' ('. date('j/n/Y g:i') .')',12,array('justification'=>'center'));
$pdf->ezText(get_lang('Results').' : '.api_get_person_name($userinfo['firstname'], $userinfo['lastname']).' ('. date('j/n/Y g:i') .')', 12, array('justification'=>'center'));
$pdf->line(50,790,550,790);
$pdf->line(50,40,550,40);

Loading…
Cancel
Save