Add collapsable category course link in user_portal see BT#15126

pull/2827/head
Julio Montoya 7 years ago
parent 7d7d55a8a2
commit 9651d52a48
  1. 14
      main/auth/courses.php
  2. 2
      main/inc/lib/auth.lib.php
  3. 19
      main/inc/lib/course.lib.php
  4. 10
      main/template/default/user_portal/classic_courses_with_category.tpl

@ -179,6 +179,8 @@ switch ($action) {
exit;
}
}
$courseController->courseList($action);
break;
case 'subscribe_course':
if (api_is_anonymous()) {
@ -235,9 +237,6 @@ switch ($action) {
case 'createcoursecategory':
$courseController->categoryList();
break;
case 'deletecoursecategory':
$courseController->courseList($action);
break;
case 'sortmycourses':
$courseController->courseList($action);
break;
@ -374,6 +373,8 @@ switch ($action) {
$userId = api_get_user_id();
$categoryId = isset($_REQUEST['categoryid']) ? (int) $_REQUEST['categoryid'] : 0;
$option = isset($_REQUEST['option']) ? (int) $_REQUEST['option'] : 0;
$redirect = isset($_REQUEST['redirect']) ? $_REQUEST['redirect'] : 0;
if (empty($userId) || empty($categoryId)) {
api_not_allowed(true);
@ -385,6 +386,13 @@ switch ($action) {
WHERE user_id = $userId AND id = $categoryId";
Database::query($sql);
Display::addFlash(Display::return_message(get_lang('Updated')));
if ($redirect === 'home') {
$url = api_get_path(WEB_PATH).'user_portal.php';
header('Location: '.$url);
exit;
}
$url = api_get_path(WEB_CODE_PATH).'auth/courses.php?action=sortmycourses';
header('Location: '.$url);
exit;

@ -80,7 +80,7 @@ class Auth
/**
* This function get all the courses in the particular user category;.
*
* @return string The name of the user defined course category
* @return array
*/
public function get_courses_in_category()
{

@ -3828,7 +3828,7 @@ class CourseManager
$load_dirs = false,
$useUserLanguageFilterIfAvailable = true
) {
$user_id = intval($user_id);
$user_id = (int) $user_id;
if (empty($user_id)) {
$user_id = api_get_user_id();
}
@ -3844,6 +3844,7 @@ class CourseManager
'not_category' => [],
];
$collapsable = api_get_configuration_value('allow_user_course_category_collapsable');
$stok = Security::get_token();
while ($row = Database::fetch_array($result)) {
// We simply display the title of the category.
$courseInCategory = self::returnCoursesCategories(
@ -3854,13 +3855,29 @@ class CourseManager
);
$collapsed = 0;
$collapsableLink = '';
if ($collapsable) {
$url = api_get_path(WEB_CODE_PATH).
'auth/courses.php?categoryid='.$row['id'].'&sec_token='.$stok.'&redirect=home';
$collapsed = isset($row['collapsed']) && $row['collapsed'] ? 1 : 0;
if ($collapsed === 0) {
$collapsableLink = Display::url(
'<i class="fa fa-folder-open"></i>',
$url.'&action=set_collapsable&option=1'
);
} else {
$collapsableLink = Display::url(
'<i class="fa fa-folder"></i>',
$url.'&action=set_collapsable&option=0'
);
}
}
$params = [
'id_category' => $row['id'],
'title_category' => $row['title'],
'collapsed' => $collapsed,
'collapsable_link' => $collapsableLink,
'courses' => $courseInCategory,
];
$listItems['in_category'][] = $params;

@ -5,7 +5,6 @@
{% for category in categories %}
{% if category.courses %}
{% set course_content %}
{% for item in category.courses %}
<div class="row">
<div class="col-md-2">
@ -95,7 +94,14 @@
{% endfor %}
{% endset %}
{{ display.collapse('course_category_' ~ category.id_category, category.title_category, course_content, false, category.collapsed == 0) }}
{{ display.collapse(
'course_category_' ~ category.id_category,
category.title_category ~ '<div class="pull-right">'~ category.collapsable_link~ "</div>",
course_content,
false,
category.collapsed == 0
)
}}
{% endif %}
{% endfor %}
</div>

Loading…
Cancel
Save