Merge pull request #3159 from sebastiendu/16821mescours

Display category and selected extra fields in "My Courses"
pull/3167/head
Nicolas Ducoulombier 6 years ago committed by GitHub
commit 46d0ab159b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 28
      main/inc/lib/course.lib.php
  2. 3
      main/inc/lib/userportal.lib.php
  3. 5
      main/install/configuration.dist.php
  4. 12
      main/template/default/user_portal/classic_courses_without_category.tpl
  5. 12
      main/template/default/user_portal/classic_session.tpl

@ -3282,6 +3282,31 @@ class CourseManager
return null;
}
/**
* Gets extra field value data and formatted values of a course
* for extra fields listed in configuration.php in My_course_course_extrafields_to_be_presented
* (array of variables as value of key 'fields')
*
* @param $courseId int The numeric identifier of the course
* @return array of data and formatted values as returned by ExtraField::getDataAndFormattedValues
*/
public static function getExtraFieldsToBePresented($courseId) {
$extraFields = [];
$fields = api_get_configuration_sub_value('My_course_course_extrafields_to_be_presented/fields');
if (!empty($fields) && is_array($fields)) {
$extraFieldManager = new ExtraField('course');
$dataAndFormattedValues = $extraFieldManager->getDataAndFormattedValues($courseId);
foreach($fields as $variable) {
foreach($dataAndFormattedValues as $value) {
if ($value['variable'] === $variable && !empty($value['value'])) {
$extraFields[] = $value;
}
}
}
}
return $extraFields;
}
/**
* Lists details of the course description.
*
@ -3787,6 +3812,8 @@ class CourseManager
);
}
$params['extrafields'] = CourseManager::getExtraFieldsToBePresented($course_info['real_id']);
if ($showCustomIcon === 'true') {
$params['thumbnails'] = $course_info['course_image'];
$params['image'] = $course_info['course_image_large'];
@ -4084,6 +4111,7 @@ class CourseManager
$params['category'] = $course_info['categoryName'];
$params['category_code'] = $course_info['categoryCode'];
$params['teachers'] = $teachers;
$params['extrafields'] = CourseManager::getExtraFieldsToBePresented($course_info['real_id']);
$params['real_id'] = $course_info['real_id'];
if ($course_info['visibility'] != COURSE_VISIBILITY_CLOSED) {

@ -1917,6 +1917,9 @@ class IndexManager
}
}
}
$course_session['extrafields'] = CourseManager::getExtraFieldsToBePresented($course['real_id']);
$html_courses_session[] = $course_session;
}
}

@ -1442,6 +1442,11 @@ $_configuration['course_catalog_settings'] = [
];
*/
// Page "My Courses" shows specific course extra fields (CourseManager::getExtraFieldsToBePresented)
/*$_configuration['My_course_course_extrafields_to_be_presented'] = [
'fields' => ['mots_cles', 'duree_en_min', 'format'],
];*/
// KEEP THIS AT THE END
// -------- Custom DB changes
// Add user activation by confirmation email

@ -89,6 +89,18 @@
{% endif %}
{% endif %}
</div>
<div class="category">
{{ item.category }}
</div>
<div class="course_extrafields">
{% if item.extrafields|length > 0 %}
{% for extrafield in item.extrafields %}
{% set counter = counter + 1 %}
{% if counter > 1 %} | {% endif %}
{{ extrafield.text }} : <strong>{{ extrafield.value }}</strong>
{% endfor %}
{% endif %}
</div>
</div>
</div>
</div>

@ -117,6 +117,18 @@
{% endfor %}
{% endif %}
</div>
<div class="category">
{{ item.category }}
</div>
<div class="course_extrafields">
{% if item.extrafields|length > 0 %}
{% for extrafield in item.extrafields %}
{% set counter = counter + 1 %}
{% if counter > 1 %} | {% endif %}
{{ extrafield.text }} : <strong>{{ extrafield.value }}</strong>
{% endfor %}
{% endif %}
</div>
</div>
{% if item.student_info %}

Loading…
Cancel
Save