Browse Source

Create tpl for sessions with category on User Portal page - refs BT#9885 #TMI

Angel Fernando Quiroz Campos 9 years ago
parent
commit
356f012f25

+ 0 - 6
main/inc/lib/course.lib.php

@@ -3246,12 +3246,6 @@ class CourseManager
         return '<div class="panel panel-default">' . $main_content . $sub_content . $sub_sub_content . '</div>';
     }
 
-
-    public static function session_item_parent($main_content, $sub_content, $sub_sub_content = null)
-    {
-        return '<div class="panel panel-default"><div class="panel-body">' . $main_content . $sub_content . $sub_sub_content . '</div></div>';
-    }
-
     /**
      * Display special courses (and only these) as several HTML divs of class userportal-course-item
      *

+ 35 - 69
main/inc/lib/userportal.lib.php

@@ -1260,7 +1260,7 @@ class IndexManager
 
                             $this->tpl->assign('session', $params);
                             $sessions_with_no_category .= $this->tpl->fetch(
-                                "{$this->tpl->templateFolder}/user_portal/sessions_without_category.tpl"
+                                "{$this->tpl->templateFolder}/user_portal/session.tpl"
                             );
 
                             $sessionCount++;
@@ -1285,7 +1285,7 @@ class IndexManager
                             $coachAccessEndDate = $session['coach_access_end_date'];
 
                             $session_now = time();
-                            $html_courses_session = '';
+                            $html_courses_session = [];
                             $count = 0;
 
                             foreach ($session['courses'] as $course) {
@@ -1329,68 +1329,38 @@ class IndexManager
                                             $session_id,
                                             'session_course_item'
                                         );
-                                        $html_courses_session .= $c[1];
+                                        $html_courses_session[] = $c[1];
                                     }
                                     $count_courses_session++;
                                     $count++;
                                 }
                             }
 
-                            $params = array();
+                            $sessionParams = array();
                             //Category
                             if ($count > 0) {
                                 $session_box = Display:: get_session_title_box(
                                     $session_id
                                 );
-                                $params['icon'] = Display::return_icon(
-                                        'window_list.png',
-                                        $session_box['title'],
-                                        array('id' => 'session_img_' . $session_id),
-                                        ICON_SIZE_MEDIUM
-                                    );
-
-                                if (api_is_drh()) {
-                                    $session_link = $session_box['title'];
-                                    $params['link'] = null;
-                                } else {
-                                    $session_link = Display::tag(
-                                        'a',
-                                        $session_box['title'],
-                                        array(
-                                            'href' => api_get_path(WEB_CODE_PATH) . 'session/index.php?session_id=' . $session_id
-                                        )
-                                    );
-                                    $params['link'] = api_get_path(WEB_CODE_PATH) . 'session/index.php?session_id=' . $session_id;
-                                }
-
-                                $params['title'] = $session_link;
-                                $params['subtitle'] = (!empty($session_box['coach']) ? $session_box['coach'] . ' | ' : '') . $session_box['dates'];
-
-                                if (api_is_platform_admin()) {
-                                    $params['right_actions'] = '<div class="pull-right"><a href="' . api_get_path(WEB_CODE_PATH) . 'admin/resume_session.php?id_session=' . $session_id . '">' .
-                                        Display::return_icon(
-                                            'edit.png',
-                                            get_lang('Edit'),
-                                            array('align' => 'absmiddle'),
-                                            ICON_SIZE_SMALL
-                                        ) . '</a></div>';
-                                }
-                                /* Icon Session in category */
-                                $parentInfo = '<div class="panel panel-default">';
-                                $parentInfo .= '<div class="panel-heading">'.$params['title'].$params['right_actions'].'</div>';
-                                $parentInfo .= '<div class="panel-body">';
-                                $parentInfo .= $html_courses_session;
-                                $parentInfo .= '</div>';
-                                $parentInfo .= '</div>';
-
-                                if (isset($_configuration['show_simple_session_info']) && $_configuration['show_simple_session_info']) {
-                                    $params['title'] = $session_box['title'];
-                                    $parentInfo = CourseManager::course_item_html_no_icon(
-                                        $params
-                                    );
+                                $sessionParams['id'] = $session_id;
+                                $sessionParams['show_link_to_session'] = !api_is_drh();
+                                $sessionParams['title'] = $session_box['title'];
+                                $sessionParams['subtitle'] = (!empty($session_box['coach']) ? $session_box['coach'] . ' | ' : '') . $session_box['dates'];
+                                $sessionParams['show_actions'] = api_is_platform_admin();
+                                $sessionParams['courses'] = $html_courses_session;
+                                $sessionParams['show_simple_session_info'] = false;
+
+                                if (
+                                    isset($_configuration['show_simple_session_info']) &&
+                                    $_configuration['show_simple_session_info']
+                                ) {
+                                    $sessionParams['show_simple_session_info'] = true;
                                 }
 
-                                $html_sessions .= $parentInfo;
+                                $this->tpl->assign('session', $sessionParams);
+                                $html_sessions .= $this->tpl->fetch(
+                                    "{$this->tpl->templateFolder}/user_portal/session.tpl"
+                                );
 
                                 $sessionCount++;
                             }
@@ -1398,18 +1368,13 @@ class IndexManager
                     }
 
                     if ($count_courses_session > 0) {
-                        $params = array();
-                        $params['icon'] = Display::return_icon('sessions_category.png', $session_category['session_category']['name'], array(), ICON_SIZE_LARGE);
-
-                        if (api_is_platform_admin()) {
-                            $params['right_actions'] = '<a href="'.api_get_path(WEB_CODE_PATH).'admin/session_category_edit.php?&id='.$session_category['session_category']['id'].'">'.Display::return_icon('edit.png', get_lang('Edit'), array(), ICON_SIZE_SMALL).'</a>';
-                        }
-
-                        $params['title'] = $session_category['session_category']['name'];
-
-                        if (api_is_platform_admin()) {
-                            $params['link']   = api_get_path(WEB_CODE_PATH).'session/session_category_edit.php?&id='.$session_category['session_category']['id'];
-                        }
+                        $categoryParams = array(
+                            'id' => $session_category['session_category']['id'],
+                            'title' => $session_category['session_category']['name'],
+                            'show_actions' => api_is_platform_admin(),
+                            'subtitle' => null,
+                            'sessions' => $html_sessions
+                        );
 
                         $session_category_start_date = $session_category['session_category']['date_start'];
                         $session_category_end_date = $session_category['session_category']['date_end'];
@@ -1419,7 +1384,7 @@ class IndexManager
                             !empty($session_category_end_date) &&
                             $session_category_end_date != '0000-00-00'
                         ) {
-                            $params['subtitle'] = sprintf(
+                            $categoryParams['subtitle'] = sprintf(
                                 get_lang('FromDateXToDateY'),
                                 $session_category['session_category']['date_start'],
                                 $session_category['session_category']['date_end']
@@ -1428,18 +1393,19 @@ class IndexManager
                             if (!empty($session_category_start_date) &&
                                 $session_category_start_date != '0000-00-00'
                             ) {
-                                 $params['subtitle'] = get_lang('From').' '.$session_category_start_date;
+                                 $categoryParams['subtitle'] = get_lang('From').' '.$session_category_start_date;
                             }
 
                             if (!empty($session_category_end_date) &&
                                 $session_category_end_date != '0000-00-00'
                             ) {
-                                $params['subtitle'] = get_lang('Until').' '.$session_category_end_date;
+                                $categoryParams['subtitle'] = get_lang('Until').' '.$session_category_end_date;
                             }
                         }
-                         $sessions_with_category .= CourseManager::session_item_parent(
-                            CourseManager::course_item_html($params, true),
-                            $html_sessions
+
+                        $this->tpl->assign('session_category', $categoryParams);
+                        $sessions_with_category .= $this->tpl->fetch(
+                            "{$this->tpl->templateFolder}/user_portal/session_category.tpl"
                         );
                     }
                 }

+ 0 - 0
main/template/default/user_portal/sessions_without_category.tpl → main/template/default/user_portal/session.tpl


+ 33 - 0
main/template/default/user_portal/session_category.tpl

@@ -0,0 +1,33 @@
+<div class="panel panel-default">
+    <div class="panel-body">
+        <div class="row">
+            <div class="col-md-2">
+                {% if session_category.show_actions %}
+                    <a href="{{ _p.web_main ~ 'session/session_category_edit.php?id=' ~ session_category.id }}" class="thumbnail">
+                        <img src="{{ "sessions_category.png"|icon(48) }}" alt="{{ session_category.title }}" title="{{ session_category.title }}">
+                    </a>
+                {% else %}
+                    <img src="{{ "sessions_category.png"|icon(48) }}" alt="{{ session_category.title }}" title="{{ session_category.title }}">
+                {% endif %}
+            </div>
+            <div class="col-md-10">
+                {% if session_category.show_actions %}
+                    <div class="pull-right">
+                        <a href="{{ _p.web_main ~ 'session/session_category_edit.php?id=' ~ session_category.id }}">
+                            <img src="{{ "edit.png"|icon(22) }}" alt="{{ "Edit"|get_lang }}" title="{{ "Edit"|get_lang }}">
+                        </a>
+                    </div>
+                {% endif %}
+
+                <h4 class="title">{{ session_category.title }}</h4>
+
+                {% if session_category.subtitle %}
+                    <div class="subtitle-session">{{ session_category.subtitle }}</div>
+                {% endif %}
+            </div>
+        </div>
+
+        {# session_category.sessions is generated with the session.tpl #}
+        {{ session_category.sessions }}
+    </div>
+</div>