ofaj
Alex Aragon 9 years ago
commit 4959ff9236
  1. 4
      index.php
  2. 57
      load_search.php
  3. 65
      main/auth/inscription.php
  4. 8
      main/inc/lib/api.lib.php
  5. 4
      main/inc/lib/certificate.lib.php
  6. 50
      main/inc/lib/course.lib.php
  7. 16
      main/inc/lib/extra_field.lib.php
  8. 10
      main/inc/lib/extra_field_value.lib.php
  9. 9
      main/inc/lib/pear/HTML/QuickForm/select.php
  10. 13
      main/inc/lib/usermanager.lib.php
  11. 16
      main/inc/lib/userportal.lib.php
  12. 63
      main/inc/local.inc.php
  13. 23
      main/mySpace/myStudents.php
  14. 6
      main/template/rainbow/layout/layout_2_col.tpl

@ -150,6 +150,10 @@ $controller->tpl->assign('navigation_course_links', $controller->return_navigati
$controller->tpl->assign('notice_block', $controller->return_notice()); $controller->tpl->assign('notice_block', $controller->return_notice());
//$controller->tpl->assign('main_navigation_block', $controller->return_navigation_links()); //$controller->tpl->assign('main_navigation_block', $controller->return_navigation_links());
$controller->tpl->assign('help_block', $controller->return_help()); $controller->tpl->assign('help_block', $controller->return_help());
$controller->tpl->assign('total_users', UserManager::getCountActiveUsers());
$controller->tpl->assign('total_courses', CourseManager::getCountOpenCourses());
$controller->tpl->assign('total_exercises', CourseManager::getCountExercisesFromOpenCourse());
if (api_is_platform_admin() || api_is_drh()) { if (api_is_platform_admin() || api_is_drh()) {
$controller->tpl->assign('skills_block', $controller->return_skills_links()); $controller->tpl->assign('skills_block', $controller->return_skills_links());

@ -276,8 +276,44 @@ $extra = $extraFieldUser->addElements(
// Session fields // Session fields
$showOnlyThisFields = [ $showOnlyThisFields = [
'access_start_date', 'access_start_date',
'access_end_date', 'access_end_date'
//'heures_disponibilite_par_semaine', this is only for user ];
$extra = $extraField->addElements(
$form,
'',
[],
false, //filter
true,
$showOnlyThisFields,
$showOnlyThisFields,
$defaults,
[],
false, //$orderDependingDefaults
true, // force
[], // $separateExtraMultipleSelect
[]
);
$fieldsToShow = [
'heures_disponibilite_par_semaine',
];
$extra = $extraFieldUser->addElements(
$form,
$userToLoad,
[],
$filter,
true,
$fieldsToShow,
$fieldsToShow,
[],
[],
false,
$forceShowFields //$forceShowFields = false
);
$showOnlyThisFields = [
'domaine', 'domaine',
'filiere', 'filiere',
$theme, $theme,
@ -335,7 +371,6 @@ $column_model = $result['column_model'];
$form->setDefaults($defaults); $form->setDefaults($defaults);
/** @var HTML_QuickForm_select $element */ /** @var HTML_QuickForm_select $element */
$domaine1 = $form->getElementByName('extra_domaine[0]'); $domaine1 = $form->getElementByName('extra_domaine[0]');
$domaine2 = $form->getElementByName('extra_domaine[1]'); $domaine2 = $form->getElementByName('extra_domaine[1]');
@ -453,7 +488,17 @@ if ($form->validate()) {
} }
if ($save) { if ($save) {
$userData = $params;
// Update extra_heures_disponibilite_par_semaine
$extraFieldValue = new ExtraFieldValue('user');
$userDataToSave = [
'item_id' => $userToLoad,
'extra_heures_disponibilite_par_semaine' => isset($userData['extra_heures_disponibilite_par_semaine']) ? $userData['extra_heures_disponibilite_par_semaine'] : ''
];
$extraFieldValue->saveFieldValues($userDataToSave, true, false, ['heures_disponibilite_par_semaine']);
// Save session search
/** @var \Chamilo\UserBundle\Entity\User $user */ /** @var \Chamilo\UserBundle\Entity\User $user */
$user = $em->getRepository('ChamiloUserBundle:User')->find($userToLoad); $user = $em->getRepository('ChamiloUserBundle:User')->find($userToLoad);
$extraFieldValueSession = new ExtraFieldValue('session'); $extraFieldValueSession = new ExtraFieldValue('session');
@ -476,17 +521,11 @@ if ($form->validate()) {
'extra_ecrire' 'extra_ecrire'
]; ];
$userData = $params;
foreach ($userData as $key => $value) { foreach ($userData as $key => $value) {
$found = strpos($key, '__persist__'); $found = strpos($key, '__persist__');
if ($found === false) { if ($found === false) {
continue; continue;
} }
} }
if (isset($userData['extra_filiere_want_stage']) && if (isset($userData['extra_filiere_want_stage']) &&

@ -670,38 +670,57 @@ if (api_get_setting('allow_terms_conditions') == 'true') {
} }
} }
$language = api_get_interface_language(); // Ofaj
$language = api_get_language_id($language); if (!api_is_anonymous()) {
$term_preview = LegalManager::get_last_condition($language); $language = api_get_interface_language();
if (!$term_preview) {
//we load from the platform
$language = api_get_setting('platformLanguage');
$language = api_get_language_id($language); $language = api_get_language_id($language);
$term_preview = LegalManager::get_last_condition($language); $term_preview = LegalManager::get_last_condition($language);
//if is false we load from english
if (!$term_preview) { if (!$term_preview) {
$language = api_get_language_id('english'); //this must work //we load from the platform
$language = api_get_setting('platformLanguage');
$language = api_get_language_id($language);
$term_preview = LegalManager::get_last_condition($language); $term_preview = LegalManager::get_last_condition($language);
}
}
// Version and language //if is false we load from english
$form->addElement('hidden', 'legal_accept_type', $term_preview['version'].':'.$term_preview['language_id']); if (!$term_preview) {
$form->addElement('hidden', 'legal_info', $term_preview['id'].':'.$term_preview['language_id']); $language = api_get_language_id('english'); //this must work
$term_preview = LegalManager::get_last_condition($language);
}
}
if ($term_preview['type'] == 1) { // Version and language
$form->addElement( $form->addElement(
'checkbox', 'hidden',
'legal_accept', 'legal_accept_type',
null, $term_preview['version'].':'.$term_preview['language_id']
get_lang('IHaveReadAndAgree').'&nbsp;<a href="inscription.php?legal" target="_blank">'.get_lang('TermsAndConditions').'</a>'
); );
$form->addRule('legal_accept', get_lang('ThisFieldIsRequired'), 'required'); $form->addElement(
} else { 'hidden',
$preview = LegalManager::show_last_condition($term_preview); 'legal_info',
$form->addElement('label', null, $preview); $term_preview['id'].':'.$term_preview['language_id']
);
if ($term_preview['type'] == 1) {
$form->addElement(
'checkbox',
'legal_accept',
null,
get_lang(
'IHaveReadAndAgree'
).'&nbsp;<a href="inscription.php?legal" target="_blank">'.get_lang(
'TermsAndConditions'
).'</a>'
);
$form->addRule(
'legal_accept',
get_lang('ThisFieldIsRequired'),
'required'
);
} else {
$preview = LegalManager::show_last_condition($term_preview);
$form->addElement('label', null, $preview);
}
} }
} }

@ -2564,7 +2564,7 @@ function api_get_user_platform_status($user_id = null) {
case 5: case 5:
$course_status['status'] = 'student'; $course_status['status'] = 'student';
//check if tutor //check if tutor
$tutor_course_status = CourseManager::get_tutor_in_course_status($user_id, $course_code); $tutor_course_status = CourseManager::get_tutor_in_course_status($user_id, $course_id);
if ($tutor_course_status) { if ($tutor_course_status) {
$course_status['status'] = 'tutor'; $course_status['status'] = 'tutor';
} }
@ -6979,7 +6979,7 @@ function api_detect_user_roles($user_id, $courseId, $session_id = 0)
if (CourseManager::is_course_teacher($user_id, $course_code)) { if (CourseManager::is_course_teacher($user_id, $course_code)) {
$user_roles[] = COURSEMANAGER; $user_roles[] = COURSEMANAGER;
} }
if (CourseManager::get_tutor_in_course_status($user_id, $course_code)) { if (CourseManager::get_tutor_in_course_status($user_id, $courseInfo['real_id'])) {
$user_roles[] = COURSE_TUTOR; $user_roles[] = COURSE_TUTOR;
} }
@ -8249,3 +8249,7 @@ function api_remove_uploaded_file($type, $file)
} }
} }
function api_student_boss_access_to_course_and_session()
{
return true;
}

@ -316,9 +316,11 @@ class Certificate extends Model
$path_certificate $path_certificate
) { ) {
$table_certificate = Database::get_main_table(TABLE_MAIN_GRADEBOOK_CERTIFICATE); $table_certificate = Database::get_main_table(TABLE_MAIN_GRADEBOOK_CERTIFICATE);
$now = api_get_utc_datetime();
if (!UserManager::is_user_certified($cat_id, $user_id)) { if (!UserManager::is_user_certified($cat_id, $user_id)) {
$sql = 'UPDATE '.$table_certificate.' SET $sql = 'UPDATE '.$table_certificate.' SET
path_certificate="'.Database::escape_string($path_certificate).'" path_certificate="'.Database::escape_string($path_certificate).'",
created_at = "'.$now.'"
WHERE cat_id="'.intval($cat_id).'" AND user_id="'.intval($user_id).'" '; WHERE cat_id="'.intval($cat_id).'" AND user_id="'.intval($user_id).'" ';
Database::query($sql); Database::query($sql);
} }

@ -343,14 +343,14 @@ class CourseManager
* *
* @return mixed * @return mixed
*/ */
public static function get_tutor_in_course_status($user_id, $course_code) public static function get_tutor_in_course_status($user_id, $courseId)
{ {
$result = Database::fetch_array( $result = Database::fetch_array(
Database::query(" Database::query("
SELECT is_tutor SELECT is_tutor
FROM " . Database::get_main_table(TABLE_MAIN_COURSE_USER) . " FROM " . Database::get_main_table(TABLE_MAIN_COURSE_USER) . "
WHERE WHERE
course_code = '" . Database::escape_string($course_code) . "' AND c_id = '" . Database::escape_string($courseId) . "' AND
user_id = " . intval($user_id) user_id = " . intval($user_id)
) )
); );
@ -2481,7 +2481,7 @@ class CourseManager
public static function course_exists($course_code) public static function course_exists($course_code)
{ {
$sql = 'SELECT 1 FROM ' . Database::get_main_table(TABLE_MAIN_COURSE) . ' $sql = 'SELECT 1 FROM ' . Database::get_main_table(TABLE_MAIN_COURSE) . '
WHERE code="' . Database::escape_string($course_code) . '"'; WHERE code="' . Database::escape_string($course_code) . '"';
return Database::num_rows(Database::query($sql)); return Database::num_rows(Database::query($sql));
} }
@ -6190,4 +6190,48 @@ class CourseManager
$courseFieldValue = new ExtraFieldValue('course'); $courseFieldValue = new ExtraFieldValue('course');
$courseFieldValue->saveFieldValues($params); $courseFieldValue->saveFieldValues($params);
} }
/**
* @return int
*/
public static function getCountOpenCourses()
{
$visibility = [
COURSE_VISIBILITY_REGISTERED,
COURSE_VISIBILITY_OPEN_PLATFORM,
COURSE_VISIBILITY_OPEN_WORLD
];
$table = Database::get_main_table(TABLE_MAIN_COURSE);
$sql = "SELECT count(id) count
FROM $table
WHERE visibility IN (".implode(',', $visibility).")";
$result = Database::query($sql);
$row = Database::fetch_array($result);
return $row['count'];
}
/**
* @return int
*/
public static function getCountExercisesFromOpenCourse()
{
$visibility = [
COURSE_VISIBILITY_REGISTERED,
COURSE_VISIBILITY_OPEN_PLATFORM,
COURSE_VISIBILITY_OPEN_WORLD
];
$table = Database::get_main_table(TABLE_MAIN_COURSE);
$tableExercise = Database::get_course_table(TABLE_QUIZ_TEST);
$sql = "SELECT count(e.iid) count
FROM $table c INNER JOIN $tableExercise e
ON (c.id = e.c_id)
WHERE e.active <> -1 AND visibility IN (".implode(',', $visibility).")";
$result = Database::query($sql);
$row = Database::fetch_array($result);
return $row['count'];
}
} }

@ -1196,13 +1196,27 @@ class ExtraField extends Model
); );
} }
} else { } else {
// Ofaj
$attributes = array('multiple' => 'multiple', 'id' => 'extra_'.$field_details['variable']);
$chosenSelect = [
'ecouter',
'lire',
'participer_a_une_conversation',
's_exprimer_oralement_en_continu',
'ecrire'
];
if (in_array($field_details['variable'], $chosenSelect)) {
$attributes['select_chosen'] = true;
}
// default behaviour // default behaviour
$form->addElement( $form->addElement(
'select', 'select',
'extra_'.$field_details['variable'], 'extra_'.$field_details['variable'],
$field_details['display_text'], $field_details['display_text'],
$options, $options,
array('multiple' => 'multiple', 'id' => 'extra_'.$field_details['variable']) $attributes
); );
} }

@ -77,10 +77,11 @@ class ExtraFieldValue extends Model
* @param array $params array for the insertion into the *_field_values table * @param array $params array for the insertion into the *_field_values table
* @param bool $forceSave * @param bool $forceSave
* @param bool $showQuery * @param bool $showQuery
* @param array $saveOnlyThisFields
* @return mixed false on empty params, void otherwise * @return mixed false on empty params, void otherwise
* @assert (array()) === false * @assert (array()) === false
*/ */
public function saveFieldValues($params, $forceSave = false, $showQuery = false) public function saveFieldValues($params, $forceSave = false, $showQuery = false, $saveOnlyThisFields = [])
{ {
foreach ($params as $key => $value) { foreach ($params as $key => $value) {
$found = strpos($key, '__persist__'); $found = strpos($key, '__persist__');
@ -113,6 +114,13 @@ class ExtraFieldValue extends Model
} }
$field_variable = $fieldDetails['variable']; $field_variable = $fieldDetails['variable'];
if (!empty($saveOnlyThisFields)) {
if (!in_array($field_variable, $saveOnlyThisFields)) {
continue;
}
}
if (isset($params['extra_'.$field_variable])) { if (isset($params['extra_'.$field_variable])) {
$value = $params['extra_'.$field_variable]; $value = $params['extra_'.$field_variable];
} else { } else {

@ -78,8 +78,17 @@ class HTML_QuickForm_select extends HTML_QuickForm_element
if (!empty($attributes['class'])) { if (!empty($attributes['class'])) {
$oldClass = $attributes['class']; $oldClass = $attributes['class'];
} }
$attributes['class'] = $oldClass . ' selectpicker show-tick form-control'; $attributes['class'] = $oldClass . ' selectpicker show-tick form-control';
$attributes['data-live-search'] = 'true'; $attributes['data-live-search'] = 'true';
// Ofaj
if (isset($attributes['disable_select_effect']) && $attributes['disable_select_effect']) {
$attributes['class'] = 'form-control';
}
// Ofaj
if (isset($attributes['select_chosen']) && $attributes['select_chosen']) {
$attributes['class'] = 'chzn-select';
}
if (isset($attributes['placeholder'])) { if (isset($attributes['placeholder'])) {
$addBlank = $attributes['placeholder']; $addBlank = $attributes['placeholder'];

@ -5557,4 +5557,17 @@ SQL;
return Display::tabsOnlyLink($headers, $optionSelected); return Display::tabsOnlyLink($headers, $optionSelected);
} }
} }
/**
* @return int
*/
public static function getCountActiveUsers()
{
$table = Database::get_main_table(TABLE_MAIN_USER);
$sql = "SELECT count(id) count FROM $table WHERE active = 1";
$result = Database::query($sql);
$row = Database::fetch_array($result);
return $row['count'];
}
} }

@ -380,6 +380,22 @@ class IndexManager
$searchItem = null; $searchItem = null;
$myCertificate = GradebookUtils::get_certificate_by_user_id(
0,
$this->user_id
);
if ($myCertificate) {
$content .= Display::tag(
'li',
Display::url(
Display::return_icon('skill-badges.png', get_lang('MyGeneralCertificate'), null, ICON_SIZE_SMALL).get_lang('MyGeneralCertificate'),
api_get_path(WEB_CODE_PATH).'social/my_skills_report.php?a=generate_custom_skill'
)
);
}
if (api_get_setting('allow_public_certificates') == 'true') { if (api_get_setting('allow_public_certificates') == 'true') {
$searchItem = Display::tag( $searchItem = Display::tag(
'li', 'li',

@ -1101,6 +1101,7 @@ $is_courseCoach = false; //course coach
$is_courseAdmin = false; $is_courseAdmin = false;
$is_courseTutor = false; $is_courseTutor = false;
$is_courseMember = false; $is_courseMember = false;
$bossHasAccess = false;
if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) { if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) {
if (isset($_cid) && $_cid) { if (isset($_cid) && $_cid) {
@ -1190,7 +1191,6 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) {
} }
if (isset($user_id) && $user_id && isset($_real_cid) && $_real_cid) { if (isset($user_id) && $user_id && isset($_real_cid) && $_real_cid) {
//Check if user is subscribed in a course //Check if user is subscribed in a course
$course_user_table = Database::get_main_table(TABLE_MAIN_COURSE_USER); $course_user_table = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$sql = "SELECT * FROM $course_user_table $sql = "SELECT * FROM $course_user_table
@ -1209,6 +1209,23 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) {
$is_courseMember = true; $is_courseMember = true;
} }
// Ofaj - student boss can access course if he follows the user
if (isset($_user) && isset($_user['status']) && $_user['status'] == STUDENT_BOSS) {
if (isset($_REQUEST['log_as_user'])) {
$isBoss = UserManager::userIsBossOfStudent($_user['user_id'], $_REQUEST['log_as_user']);
$isUserFollowedInCourse = CourseManager::is_user_subscribed_in_course(
$_REQUEST['log_as_user'],
$_course['code'],
false
);
if ($isBoss && $isUserFollowedInCourse) {
$is_courseMember = true;
$bossHasAccess = true;
}
}
}
// We are in a session course? Check session permissions // We are in a session course? Check session permissions
if (!empty($session_id)) { if (!empty($session_id)) {
// I'm not the teacher of the course // I'm not the teacher of the course
@ -1236,19 +1253,22 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) {
// Am I a session admin? // Am I a session admin?
if (isset($row) && isset($row[0]) && $row[0]['session_admin_id'] == $user_id) { if (isset($row) && isset($row[0]) && $row[0]['session_admin_id'] == $user_id) {
$is_courseMember = false; $is_courseMember = false;
$is_courseTutor = false; $is_courseTutor = false;
$is_courseAdmin = false; $is_courseAdmin = false;
$is_courseCoach = false; $is_courseCoach = false;
$is_sessionAdmin = true; $is_sessionAdmin = true;
} else { } else {
// Am I a session coach for this session? // Am I a session coach for this session?
$sql = "SELECT session.id, session.id_coach FROM $tbl_session session $sql = "SELECT session.id, session.id_coach
FROM $tbl_session session
INNER JOIN $tbl_session_course sc INNER JOIN $tbl_session_course sc
ON sc.session_id = session.id ON sc.session_id = session.id
WHERE session.id = $session_id WHERE
AND session.id_coach = $user_id session.id = $session_id AND
AND sc.c_id = '$_real_cid'"; session.id_coach = $user_id AND
sc.c_id = '$_real_cid'
";
$result = Database::query($sql); $result = Database::query($sql);
if (Database::num_rows($result)) { if (Database::num_rows($result)) {
@ -1310,6 +1330,26 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) {
$is_sessionAdmin = false; $is_sessionAdmin = false;
$is_courseCoach = false; $is_courseCoach = false;
} }
// Boss validation
if (isset($_REQUEST['log_as_user'])) {
$isBoss = UserManager::userIsBossOfStudent($user_id, $_REQUEST['log_as_user']);
$isUserFollowedInCourse = CourseManager::is_user_subscribed_in_course(
$_REQUEST['log_as_user'],
$_course['code'],
true,
$session_id
);
if ($isBoss && $isUserFollowedInCourse) {
$is_courseMember = true;
$is_courseTutor = false;
$is_courseAdmin = false;
$is_courseCoach = false;
$is_sessionAdmin = false;
$bossHasAccess = true;
}
}
} }
} }
@ -1345,7 +1385,6 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) {
$is_allowed_in_course = false; $is_allowed_in_course = false;
if (isset($_course) && isset($_course['visibility'])) { if (isset($_course) && isset($_course['visibility'])) {
switch ($_course['visibility']) { switch ($_course['visibility']) {
case COURSE_VISIBILITY_OPEN_WORLD: //3 case COURSE_VISIBILITY_OPEN_WORLD: //3
$is_allowed_in_course = true; $is_allowed_in_course = true;
@ -1357,7 +1396,7 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) {
$courseCode, $courseCode,
$session_id $session_id
); );
if (isset($user_id) && ($is_platformAdmin || $isUserSubscribedInCourse === true) && !api_is_anonymous($user_id)) { if (isset($user_id) && ($is_platformAdmin || $isUserSubscribedInCourse === true || $bossHasAccess) && !api_is_anonymous($user_id)) {
$is_allowed_in_course = true; $is_allowed_in_course = true;
} }
break; break;

@ -18,7 +18,7 @@ if (!api_is_allowed_to_create_course() &&
// Check if the user is tutor of the course // Check if the user is tutor of the course
$user_course_status = CourseManager::get_tutor_in_course_status( $user_course_status = CourseManager::get_tutor_in_course_status(
api_get_user_id(), api_get_user_id(),
api_get_course_id() api_get_course_int_id()
); );
if ($user_course_status != 1) { if ($user_course_status != 1) {
api_not_allowed(true); api_not_allowed(true);
@ -42,10 +42,6 @@ $student_id = intval($_GET['student']);
// time spent on the course // time spent on the course
$courseInfo = api_get_course_info($course_code); $courseInfo = api_get_course_info($course_code);
if (empty($sessionId)) {
$sessionId = api_get_session_id();
}
if ($export) { if ($export) {
ob_start(); ob_start();
} }
@ -761,8 +757,13 @@ if (!empty($student_id)) {
$scoretotal_display $scoretotal_display
); );
$extraParam = '';
if (api_is_student_boss()) {
$extraParam = '&log_as_user='.$student_id;
}
echo '<tr> echo '<tr>
<td ><a href="' .$courseInfoItem['course_public_url'] .'?id_session=' . $sId . '">'. <td ><a href="' .$courseInfoItem['course_public_url'] .'?id_session=' . $sId . $extraParam.'">'.
$courseInfoItem['title'].'</a></td> $courseInfoItem['title'].'</a></td>
<td >'.$time_spent_on_course .'</td> <td >'.$time_spent_on_course .'</td>
<td >'.$progress.'</td> <td >'.$progress.'</td>
@ -1077,6 +1078,12 @@ if (!empty($student_id)) {
$result_exercices = Database::query($sql); $result_exercices = Database::query($sql);
$i = 0; $i = 0;
$extraParam = '';
if (api_is_student_boss()) {
$extraParam = '&log_as_user='.$student_id;
}
if (Database :: num_rows($result_exercices) > 0) { if (Database :: num_rows($result_exercices) > 0) {
while ($exercices = Database :: fetch_array($result_exercices)) { while ($exercices = Database :: fetch_array($result_exercices)) {
$exercise_id = intval($exercices['id']); $exercise_id = intval($exercices['id']);
@ -1156,14 +1163,14 @@ if (!empty($student_id)) {
if (Database :: num_rows($result_last_attempt) > 0) { if (Database :: num_rows($result_last_attempt) > 0) {
$id_last_attempt = Database :: result($result_last_attempt, 0, 0); $id_last_attempt = Database :: result($result_last_attempt, 0, 0);
if ($count_attempts > 0) if ($count_attempts > 0)
echo '<a href="../exercise/exercise_show.php?id=' . $id_last_attempt . '&cidReq='.$course_code.'&session_id='.$sessionId.'&student='.$student_id.'&origin='.(empty($origin)?'tracking':$origin).'"> echo '<a href="../exercise/exercise_show.php?id=' . $id_last_attempt . $extraParam.'&cidReq='.$course_code.'&session_id='.$sessionId.'&student='.$student_id.'&origin='.(empty($origin)?'tracking':$origin).'">
'.Display::return_icon('quiz.gif').' '.Display::return_icon('quiz.gif').'
</a>'; </a>';
} }
echo '</td>'; echo '</td>';
echo '<td>'; echo '<td>';
$all_attempt_url = "../exercise/exercise_report.php?exerciseId=$exercise_id&cidReq=$course_code&filter_by_user=$student_id&id_session=$sessionId"; $all_attempt_url = "../exercise/exercise_report.php?exerciseId=".$exercise_id.$extraParam."&cidReq=$course_code&filter_by_user=$student_id&id_session=$sessionId";
echo Display::url(Display::return_icon('test_results.png', get_lang('AllAttempts'), array(), ICON_SIZE_SMALL), $all_attempt_url ); echo Display::url(Display::return_icon('test_results.png', get_lang('AllAttempts'), array(), ICON_SIZE_SMALL), $all_attempt_url );
echo '</td></tr>'; echo '</td></tr>';

@ -42,7 +42,7 @@
<ul class="items"> <ul class="items">
<li><i class="fa fa-user fa-4x icon-color" aria-hidden="true"></i></li> <li><i class="fa fa-user fa-4x icon-color" aria-hidden="true"></i></li>
<li> <li>
<h2 class="number">450+</h2> <h2 class="number">{{ total_users }}</h2>
<p class="text">{{ "RegisteredUsers"|get_lang }}</p> <p class="text">{{ "RegisteredUsers"|get_lang }}</p>
</li> </li>
</ul> </ul>
@ -51,7 +51,7 @@
<ul class="items"> <ul class="items">
<li><i class="fa fa-book fa-4x icon-color" aria-hidden="true"></i></li> <li><i class="fa fa-book fa-4x icon-color" aria-hidden="true"></i></li>
<li> <li>
<h2 class="number">30</h2> <h2 class="number">{{ total_courses }}</h2>
<p class="text">{{ "OpenCourses"|get_lang }}</p> <p class="text">{{ "OpenCourses"|get_lang }}</p>
</li> </li>
</ul> </ul>
@ -60,7 +60,7 @@
<ul class="items"> <ul class="items">
<li><i class="fa fa-signal fa-4x icon-color" aria-hidden="true"></i></li> <li><i class="fa fa-signal fa-4x icon-color" aria-hidden="true"></i></li>
<li> <li>
<h2 class="number">300+</h2> <h2 class="number">{{ total_exercises }}</h2>
<p class="text">{{ "Certificates"|get_lang }}</p> <p class="text">{{ "Certificates"|get_lang }}</p>
</li> </li>
</ul> </ul>

Loading…
Cancel
Save