Browse Source

Add option to manage the links to Session Index page - refs BT#10195

Angel Fernando Quiroz Campos 9 years ago
parent
commit
37afe0074a
3 changed files with 20 additions and 13 deletions
  1. 5 2
      main/inc/lib/userportal.lib.php
  2. 5 0
      main/install/configuration.dist.php
  3. 10 11
      main/session/index.php

+ 5 - 2
main/inc/lib/userportal.lib.php

@@ -1043,6 +1043,9 @@ class IndexManager
         $sessions_with_category = '';
         $sessions_with_no_category = '';
 
+        $sessionTitleLink = api_get_configuration_value('courses_list_session_title_link');
+        $sessionTitleLink = $sessionTitleLink === false ? 1 : $sessionTitleLink;
+
         if (is_array($session_categories)) {
             foreach ($session_categories as $session_category) {
                 $session_category_id = $session_category['session_category']['id'];
@@ -1147,7 +1150,7 @@ class IndexManager
                                 : null;
 
                             $params['extra_fields'] = $session_box['extra_fields'];
-                            $params['show_link_to_session'] = api_is_drh() ? false : true;
+                            $params['show_link_to_session'] = !api_is_drh() && $sessionTitleLink;
                             $params['title'] = $session_box['title'];
                             $params['subtitle'] = $extra_info;
                             $params['show_actions'] = api_is_platform_admin() ? true : false;
@@ -1260,7 +1263,7 @@ class IndexManager
                             if ($count > 0) {
                                 $session_box = Display:: get_session_title_box($session_id);
                                 $sessionParams['id'] = $session_id;
-                                $sessionParams['show_link_to_session'] = !api_is_drh();
+                                $sessionParams['show_link_to_session'] = !api_is_drh() && $sessionTitleLink;
                                 $sessionParams['title'] = $session_box['title'];
                                 $sessionParams['subtitle'] = (!empty($session_box['coach'])
                                     ? $session_box['coach'] . ' | '

+ 5 - 0
main/install/configuration.dist.php

@@ -219,3 +219,8 @@ $_configuration['system_stable'] = NEW_VERSION_STABLE;
 //$_configuration['lp_fixed_encoding'] = 'false';
 // Fix urls changing http with https in scorm packages.
 //$_configuration['lp_replace_http_to_https'] = false;
+// Manage the links to Session Index page
+// 1 = Default. Works as it is now (default is to link to the special session page)
+// 0 = No link (not clickable)
+// 2 = Link to the course if there is only one course
+//$_configuration['courses_list_session_title_link'] = 1;

+ 10 - 11
main/session/index.php

@@ -239,20 +239,19 @@ if (!api_is_allowed_to_session_edit()) {
 $entityManager = Database::getManager();
 $session = $entityManager->find('ChamiloCoreBundle:Session', $session_id);
 
-if (!empty($session)) {
-    $sessionCourses = $session->getCourses();
+$sessionTitleLink = api_get_configuration_value('courses_list_session_title_link');
 
-    if (count($sessionCourses) === 1) {
-        $sessionCourse = $sessionCourses[0]->getCourse();
+if ($sessionTitleLink == 2 && $session->getNbrCourses() === 1) {
+    $sessionCourses = $session->getCourses();
+    $sessionCourse = $sessionCourses[0]->getCourse();
 
-        $courseUrl = $sessionCourse->getDirectory() . '/index.php?';
-        $courseUrl .= http_build_query([
-            'id_session' => $session->getId()
-        ]);
+    $courseUrl = $sessionCourse->getDirectory() . '/index.php?';
+    $courseUrl .= http_build_query([
+        'id_session' => $session->getId()
+    ]);
 
-        header('Location: ' . api_get_path(WEB_COURSE_PATH) . $courseUrl);
-        exit;
-    }
+    header('Location: ' . api_get_path(WEB_COURSE_PATH) . $courseUrl);
+    exit;
 }
 
 Display::display_header(get_lang('Session'));