Pārlūkot izejas kodu

Merge branch '1.11.x' of https://github.com/chamilo/chamilo-lms into socialTest

José Loguercio 8 gadi atpakaļ
vecāks
revīzija
1c1e97043b

+ 24 - 5
app/Resources/public/css/base.css

@@ -4741,7 +4741,21 @@ div#chat-remote-video video {
     display: inline-block;
 }
 /* list my course user*/
-
+.session .info-session{
+    margin-bottom: 10px;
+    font-size: 12px;
+}
+.session .info-session span{
+    margin-right: 10px;
+}
+.session .teachers{
+    font-size: 12px;
+}
+.session .sessions-items .courses{
+    padding-bottom: 10px;
+    padding-top: 10px;
+    border-bottom: 1px solid #ECF0F1;
+}
 .grid-courses .items{
     /* position: relative; */
     vertical-align: top;
@@ -4759,18 +4773,22 @@ div#chat-remote-video video {
 }
 .grid-courses .items .title{
     line-height: 1.4;
-    font-size: 13px;
-    min-height: 40px;
+    font-size: 14px;
     padding: 0px;
     margin: 5px;
 }
 .grid-courses .items .toolbar{
     text-align: right;
 }
-.grid-courses .session-date{
+.grid-courses .items .toolbar .info{
+    float: left;
+    font-size: 12px;
+}
+.grid-courses .session-date,
+.grid-courses .session-info{
     color: #fff;
     font-size: 12px;
-    padding: 10px;
+    padding: 5px 10px;
 }
 .grid-courses .items .image{
     position: relative;
@@ -4874,6 +4892,7 @@ div#chat-remote-video video {
     color: #fff;
 }
 /* Catalog session */
+
 .search-session{
     margin-bottom: 30px;
     margin-top: 25px;

+ 1 - 1
main/auth/courses.php

@@ -18,7 +18,7 @@ require_once '../inc/global.inc.php';
 $ctok = Security::get_existing_token();
 
 // Get Limit data
-$limit = CourseCategory::getLimitArray();
+$limit = CourseCategory::getLimitFilterFromArray();
 
 // Section for the tabs.
 $this_section = SECTION_CATALOG;

+ 23 - 24
main/inc/lib/course.lib.php

@@ -3936,9 +3936,11 @@ class CourseManager
         $params = array();
         $params['icon'] = Display::return_icon(
             'blackboard_blue.png',
-            api_htmlentities($course_info['name']),
+            null,
             array(),
-            ICON_SIZE_LARGE
+            ICON_SIZE_LARGE,
+            null,
+            true  
         );
 
         // Display the "what's new" icons
@@ -3965,7 +3967,7 @@ class CourseManager
 
                 if ($user_in_course_status == COURSEMANAGER || $sessionCourseAvailable) {
                     $session_url = $course_info['course_public_url'] . '?id_session=' . $course_info['id_session'];
-                    $session_title = '<h4><a href="' . $session_url. '">'. $course_info['name'] . '</a>'.$notifications.'</h4>';
+                    $session_title = '<a href="' . $session_url. '">'. $course_info['name'] . '</a>'.$notifications;
                 } else {
                     $session_title = $course_info['name'];
                 }
@@ -3977,37 +3979,33 @@ class CourseManager
         } else {
             $session_title = $course_info['name'];
         }
-
+        
         $showCustomIcon = api_get_setting('course_images_in_courses_list');
         $iconName = basename($course_info['course_image']);
         if ($showCustomIcon === 'true' && $iconName != 'course.png') {
-            $params['icon'] = Display::img(
-                $course_info['course_image'],
-                api_htmlentities($course_info['name']),
-                array()
-            );
+            $params['icon'] = $course_info['course_image_large'];
         }
 
         $params['link'] = $session_url;
         $params['title'] = $session_title;
-        $params['right_actions'] = '';
-
+        $params['edit_actions'] = '';
+        $params['document'] = '';
+        
         if ($course_visibility != COURSE_VISIBILITY_CLOSED &&
             $course_visibility != COURSE_VISIBILITY_HIDDEN
         ) {
+            if (api_is_platform_admin()) {
+                $params['edit_actions'] .= api_get_path(WEB_CODE_PATH) . 'course_info/infocours.php?cidReq=' . $course_info['code'];
             if ($load_dirs) {
-                $params['right_actions'] .= '<a id="document_preview_' . $course_info['real_id'] . '_' . $course_info['id_session'] . '" class="document_preview" href="javascript:void(0);">' .
-                    Display::return_icon('folder.png',
-                        get_lang('Documents'),
-                        array('align' => 'absmiddle'),
-                        ICON_SIZE_SMALL
-                    ) . '</a>';
-                $params['right_actions'] .= Display::div('', array(
+                $params['document'] .= '<a id="document_preview_' . $course_info['real_id'] . '_' . $course_info['id_session'] . '" class="document_preview btn btn-default btn-sm" href="javascript:void(0);">' .
+                    Display::returnFontAwesomeIcon('folder-open') . '</a>';
+                $params['document'] .= Display::div('', array(
                     'id' => 'document_result_' . $course_info['real_id'] . '_' . $course_info['id_session'],
                     'class' => 'document_preview_container'
                 ));
             }
         }
+        }
 
         if (api_get_setting('display_coursecode_in_courselist') == 'true') {
             $session_title .= ' (' . $course_info['visual_code'] . ') ';
@@ -4015,23 +4013,24 @@ class CourseManager
 
         if (api_get_setting('display_teacher_in_courselist') === 'true') {
 
-            $teacher_list = CourseManager::get_teacher_list_from_course_code_to_string(
-                $course_info['code'],
-                self::USER_SEPARATOR,
-                true
+            $teacher_list = CourseManager::getTeachersFromCourseByCode(
+                $course_info['code']
             );
+            
             $course_coachs = self::get_coachs_from_course(
                 $course_info['id_session'],
                 $course_info['real_id']
             );
 
-            if ($course_info['status'] == COURSEMANAGER ||
+            /* if ($course_info['status'] == COURSEMANAGER ||
                 ($course_info['status'] == STUDENT && empty($course_info['id_session'])) ||
                 empty($course_info['status'])
             ) {
                 $params['teachers'] = $teacher_list;
             }
-
+            */
+            $params['teachers'] = $teacher_list;
+            
             if (($course_info['status'] == STUDENT && !empty($course_info['id_session'])) ||
                 ($is_coach && $course_info['status'] != COURSEMANAGER)
             ) {

+ 11 - 12
main/inc/lib/display.lib.php

@@ -1523,9 +1523,11 @@ class Display
             $rs = Database::query($sql);
             $session_info = Database::store_result($rs, 'ASSOC');
             $session_info = $session_info[0];
-
+            
             $session = array();
+            $session['category_id'] = $session_info['session_category_id'];
             $session['title'] = $session_info['name'];
+            $session['id_coach'] = $session_info['id_coach'];
             $session['coach'] = '';
             $session['dates'] =  '';
 
@@ -1578,14 +1580,11 @@ class Display
                     $session_info['access_end_date'] = $session_info['access_end_date'];
                 }
                 if ($start && $stop) {
-                    $session['dates'] = Display::tag(
-                        'em',
-                        sprintf(
+                    $session['dates'] = sprintf(
                             get_lang('FromDateXToDateY'),
                             api_format_date($start_buffer),
                             api_format_date($stop_buffer)
-                        )
-                    );
+                        );
                 } else {
                     $start_buffer = $stop_buffer = null;
 
@@ -1603,14 +1602,12 @@ class Display
                         );
                     }
 
-                    $session['dates'] = Display::tag(
-                        'em',
-                        "$start_buffer $stop_buffer"
-                    );
+                    $session['dates'] = $start_buffer . " " . $stop_buffer;
+                   
                 }
 
                 if ( api_get_setting('show_session_coach') === 'true' ) {
-                    $session['coach'] = get_lang('GeneralCoach') . ': ' . api_get_person_name(
+                    $session['coach'] = api_get_person_name(
                         $session_info['firstname'],
                         $session_info['lastname']
                     );
@@ -1619,7 +1616,9 @@ class Display
             }
             $session['active'] = $active;
             $session['session_category_id'] = $session_info['session_category_id'];
-
+            $session['visibility'] = $session_info['visibility'];
+            $session['num_users'] = $session_info['nbr_users'];
+            $session['num_courses'] = $session_info['nbr_courses'];
             $session['description'] = $session_info['description'];
             $session['show_description'] = $session_info['show_description'];
 

+ 38 - 26
main/inc/lib/userportal.lib.php

@@ -1205,29 +1205,35 @@ class IndexManager
                             );
                             $session_box = Display::get_session_title_box($session_id);
 
-                            $extra_info = !empty($session_box['coach']) ? $session_box['coach'] : null;
-                            $extra_info .= !empty($session_box['coach'])
-                                ? ' - ' . $session_box['dates']
-                                : $session_box['dates'];
-                            $extra_info .= isset($session_box['duration'])
-                                ? ' ' . $session_box['duration']
-                                : null;
-
-                            $params['extra_fields'] = $session_box['extra_fields'];
-                            $params['course_list_session_style'] = $coursesListSessionStyle;
-
-                            $params['title'] = $session_box['title'];
-                            $params['subtitle'] = $extra_info;
-                            $params['show_actions'] = api_is_platform_admin() ? true : false;
-
-                            if (api_get_setting('hide_courses_in_sessions') == 'false') {
-                                // $params['extra'] .=  $html_courses_session;
+                            $actions = null;
+                            if (api_is_platform_admin()) {
+                                $actions = api_get_path(WEB_CODE_PATH) .'session/resume_session.php?id_session='.$session_id;
                             }
-
-                            $params['description'] = $session_box['description'];
+                            
+                            $coachId = $session_box['id_coach'];
+                            $extraFieldValue = new ExtraFieldValue('session');
+                            $imageField = $extraFieldValue->get_values_by_handler_and_field_variable($session_id, 'image');
+                            
+                            $params['category_id'] = $session_box['category_id'];
+                            $params['title'] = $session_box['title'];
+                            //$params['subtitle'] = $extra_info;
+                            $params['id_coach'] = $coachId;
+                            $params['coach_url'] = api_get_path(WEB_AJAX_PATH) . 'user_manager.ajax.php?a=get_user_popup&user_id=' . $coachId;
+                            $params['coach_name'] = !empty($session_box['coach']) ? $session_box['coach'] : null;
+                            $params['coach_avatar'] =UserManager::getUserPicture($coachId, USER_IMAGE_SIZE_SMALL);
+                            $params['date'] =  $session_box['dates'];
+                            $params['image'] = isset($imageField['value']) ? $imageField['value'] : null;
+                            $params['duration'] = isset($session_box['duration']) ? ' ' . $session_box['duration'] : null;
+                            $params['edit_actions'] = $actions;
                             $params['show_description'] = $session_box['show_description'];
-                            $params['courses'] = $html_courses_session;
+                            $params['description'] = $session_box['description'];   
+                            $params['visibility'] = $session_box['visibility'];
                             $params['show_simple_session_info'] = false;
+                            $params['course_list_session_style'] = $coursesListSessionStyle;                          
+                            $params['num_users'] = $session_box['num_users'];
+                            $params['num_courses'] = $session_box['num_courses'];
+                            $params['courses'] = $html_courses_session;
+                            //$params['extra_fields'] = $session_box['extra_fields'];
 
                             if (
                                 isset($_configuration['show_simple_session_info']) &&
@@ -1241,14 +1247,20 @@ class IndexManager
                                 $params['progress'] = GamificationUtils::getSessionProgress($params['id'], $this->user_id);
                                 $params['points'] = GamificationUtils::getSessionPoints($params['id'], $this->user_id);
                             }
-
-                            $this->tpl->assign('session', $params);
+                            $listSession[] = $params;
+                            $this->tpl->assign('session', $listSession);
+                            $this->tpl->assign('show_tutor', (api_get_setting('show_session_coach')==='true' ? true : false));
                             $this->tpl->assign('gamification_mode', $gamificationModeIsActive);
 
-                            $sessions_with_no_category .= $this->tpl->fetch(
-                                $this->tpl->get_template('/user_portal/session.tpl')
-                            );
-
+                            if (api_get_configuration_value('view_grid_courses')){
+                                $sessions_with_no_category = $this->tpl->fetch(
+                                    $this->tpl->get_template('/user_portal/grid_session.tpl')
+                                );
+                            } else {
+                                $sessions_with_no_category = $this->tpl->fetch(
+                                    $this->tpl->get_template('/user_portal/session.tpl')
+                                );
+                            }
                             $sessionCount++;
                         }
                     }

+ 4 - 0
main/template/default/auth/session_catalog.tpl

@@ -99,6 +99,10 @@
                         </a>
                     </h4>
                     <div class="toolbar">
+                        <div class="info">
+                            <span><i class="fa fa-book" aria-hidden="true"></i> {{ item.nbr_courses }} {{ 'Courses'|get_lang }}</span>
+                            <span><i class="fa fa-user" aria-hidden="true"></i> {{ item.nbr_users }} {{ 'NbUsers'|get_lang }} </span>
+                        </div>
                         {% if not _u.logged %}
                             &nbsp;
                         {% else %}

+ 91 - 0
main/template/default/user_portal/grid_session.tpl

@@ -0,0 +1,91 @@
+{% for row in session %}
+<div id="session-{{ item.id }}" class="session panel panel-default">
+    <div class="panel-heading">
+        <img id="session_img_{{ row.id }}" src="{{ "window_list.png"|icon(32) }}" width="32" height="32" alt="{{ row.title }}" title="{{ row.title }}" /> {{ row.title }}
+        
+        {% if row.edit_actions != '' %}
+        <div class="pull-right">
+            <a class="btn btn-default btn-sm" href="{{ row.edit_actions }}">
+                <i class="fa fa-pencil" aria-hidden="true"></i>
+            </a>
+        </div>
+        {% endif %}
+    </div>
+    <div class="panel-body">
+        {% if row.description != '' %}
+            {{ row.description }}
+        {% endif %}
+        <div class="info-session">
+            <span><i class="fa fa-user" aria-hidden="true"></i>
+            {{ row.coach_name }}
+            </span>
+            <span><i class="fa fa-calendar" aria-hidden="true"></i>
+            {{ row.date }}
+            </span>
+        </div>
+        <div class="grid-courses">
+            <div class="row">
+            {% for item in row.courses %}
+            <div class="col-md-4 col-sm-4 col-xs-6">
+                <div class="items">
+                    <div class="image">
+                        <img src="{{ item.icon }}" class="img-responsive">
+                        {% if item.category != '' %}
+                        <span class="category">{{ item.category }}</span>
+                        <div class="cribbon"></div>
+                        {% endif %}
+                        <div class="black-shadow">
+                            <div class="author-card">  
+                            {% for teacher in item.teachers %}
+                                {% set counter = counter + 1 %}
+                                {% if counter <= 3 %}
+                                <a href="{{ teacher.url }}" class="ajax" data-title="{{ teacher.firstname }} {{ teacher.lastname }}">
+                                    <img src="{{ teacher.avatar }}"/>
+                                </a>
+                                <div class="teachers-details">
+                                     <h5>
+                                        <a href="{{ teacher.url }}" class="ajax" data-title="{{ teacher.firstname }} {{ teacher.lastname }}">
+                                            {{ teacher.firstname }} {{ teacher.lastname }}
+                                        </a>
+                                     </h5>
+                                </div>       
+                                {% endif %}
+                            {% endfor %}
+                            </div>
+                        </div>
+                        {% if item.edit_actions != '' %}
+                            <div class="admin-actions">
+                                {% if item.document == '' %}
+                                    <a class="btn btn-default btn-sm" href="{{ item.edit_actions }}">
+                                        <i class="fa fa-pencil" aria-hidden="true"></i>
+                                    </a>
+                                {% else %}
+                                    <div class="btn-group" role="group">
+                                        <a class="btn btn-default btn-sm" href="{{ item.edit_actions }}">
+                                            <i class="fa fa-pencil" aria-hidden="true"></i>
+                                        </a>
+                                        {{ item.document }}
+                                    </div> 
+                                {% endif %}
+                            </div>
+                        {% endif %}
+                    </div>
+                    <div class="description">
+                        <h4 class="title">
+                            {% if item.visibility == constant('COURSE_VISIBILITY_CLOSED') %}
+                                {{ item.title }} {{ item.code_course }}
+                            {% else %}
+                                <a href="{{ item.link }}">{{ item.title }} {{ item.code_course }}</a>
+                            {% endif %}
+                        </h4>
+                        <div class="notifications">{{ item.notifications }}</div>
+
+                    </div>
+                </div>
+            </div>
+        {% endfor %}
+        </div>
+        </div>
+    </div>
+</div>
+{% endfor %}

+ 0 - 3
main/template/default/user_portal/index.tpl

@@ -1,3 +0,0 @@
-{% for item in items %}
-    {{ item }}
-{% endfor %}

+ 0 - 5
main/template/default/user_portal/index_grid.tpl

@@ -1,5 +0,0 @@
-{% for item in items %}
-    <div class="well">
-        {{ item }}
-    </div>
-{% endfor %}

+ 57 - 53
main/template/default/user_portal/session.tpl

@@ -1,30 +1,30 @@
-
+{% for row in session %}
 <div class="panel panel-default">
-    {% if not session.show_simple_session_info %}
+    {% if not row.show_simple_session_info %}
         {% set collapsable = '' %}
         <div class="panel-heading">
-        {% if session.course_list_session_style == 1 %}
+        {% if row.course_list_session_style == 1 %}
             {# Classic #}
-                <a href="{{ _p.web_main ~ 'session/index.php?session_id=' ~ session.id }}">
-                <img id="session_img_{{ session.id }}" src="{{ "window_list.png"|icon(32) }}" width="32" height="32" alt="{{ session.title }}" title="{{ session.title }}" />
-                    {{ session.title }}
+                <a href="{{ _p.web_main ~ 'session/index.php?session_id=' ~ row.id }}">
+                <img id="session_img_{{ row.id }}" src="{{ "window_list.png"|icon(32) }}" width="32" height="32" alt="{{ row.title }}" title="{{ row.title }}" />
+                    {{ row.title }}
                 </a>
-        {% elseif session.course_list_session_style == 2 %}
+        {% elseif row.course_list_session_style == 2 %}
             {# No link #}
-            <img id="session_img_{{ session.id }}" src="{{ "window_list.png"|icon(32) }}" width="32" height="32" alt="{{ session.title }}" title="{{ session.title }}" />
-                {{ session.title }}
-        {% elseif session.course_list_session_style == 3 %}
+            <img id="session_img_{{ row.id }}" src="{{ "window_list.png"|icon(32) }}" width="32" height="32" alt="{{ row.title }}" title="{{ row.title }}" />
+                {{ row.title }}
+        {% elseif row.course_list_session_style == 3 %}
             {# Foldable #}
-            <a role="button" data-toggle="collapse" data-parent="#page-content" href="#collapse_{{ session.id }}" aria-expanded="false" >
-                <img id="session_img_{{ session.id }}" src="{{ "window_list.png"|icon(32) }}" width="32" height="32" alt="{{ session.title }}" title="{{ session.title }}" />
-                {{ session.title }}
+            <a role="button" data-toggle="collapse" data-parent="#page-content" href="#collapse_{{ row.id }}" aria-expanded="false" >
+                <img id="session_img_{{ row.id }}" src="{{ "window_list.png"|icon(32) }}" width="32" height="32" alt="{{ row.title }}" title="{{ row.title }}" />
+                {{ row.title }}
             </a>
             {% set collapsable = 'collapse' %}
             {% endif %}
 
-            {% if session.show_actions %}
+            {% if row.show_actions %}
                 <div class="pull-right">
-                    <a href="{{ _p.web_main ~ "session/resume_session.php?id_session=" ~ session.id }}">
+                    <a href="{{ _p.web_main ~ "session/resume_session.php?id_session=" ~ row.id }}">
                     <img src="{{ "edit.png"|icon(22) }}" width="22" height="22" alt="{{ "Edit"|get_lang }}" title="{{ "Edit"|get_lang }}" />
                     </a>
                 </div>
@@ -32,35 +32,30 @@
         </div>
     {% endif %}
 
-    <div class="sessions panel-body {{ collapsable }}" id="collapse_{{ session.id }}">
-    {% if session.show_simple_session_info %}
+    <div class="session panel-body {{ collapsable }}" id="collapse_{{ row.id }}">
+    {% if row.show_simple_session_info %}
         <div class="row">
             <div class="col-md-7">
-                <h3>
-                    {{ session.title ~ session.notifications }}
-                </h3>
-                {% if session.show_description %}
-                    <div>
-                        {{ session.description }}
-                    </div>
-                {% endif %}
-
-                {% if session.subtitle %}
-                    <small>{{ session.subtitle }}</small>
-                {% endif %}
-
-                {% if session.teachers %}
-                    <h5 class="teacher-name">{{ "teacher.png"|icon(16) ~ session.teachers }}</h5>
+                {% if row.description != '' %}
+                    {{ row.description }}
                 {% endif %}
+                <div class="info-session">
+                    <span><i class="fa fa-user" aria-hidden="true"></i>
+                    {{ row.coach_name }}
+                    </span>
+                    <span><i class="fa fa-calendar" aria-hidden="true"></i>
+                    {{ row.date }}
+                    </span>
+                </div>
 
-                {% if session.coaches %}
-                    <h5 class="teacher-name">{{ "teacher.png"|icon(16) ~ session.coaches }}</h5>
+                {% if row.coaches %}
+                    <h5 class="teacher-name">{{ "teacher.png"|icon(16) ~ row.coaches }}</h5>
                 {% endif %}
             </div>
 
-            {% if session.show_actions %}
+            {% if row.show_actions %}
                 <div class="col-md-5 text-right">
-                    <a href="{{ _p.web_main ~ "session/resume_session.php?id_session=" ~ session.id }}">
+                    <a href="{{ _p.web_main ~ "session/resume_session.php?id_session=" ~ row.id }}">
                         <img src="{{ "edit.png"|icon(22) }}" width="22" height="22" alt="{{ "Edit"|get_lang }}" title="{{ "Edit"|get_lang }}">
                     </a>
                 </div>
@@ -69,39 +64,47 @@
     {% else %}
         <div class="row">
             <div class="col-md-12">
-                {% if session.subtitle %}
-                    <div class="subtitle-session">
-                        <em class="fa fa-clock-o"></em> {{ session.subtitle }}
-                    </div>
-                {% endif %}
-                {% if session.show_description %}
-                    <div class="description-session">
-                        {{ session.description }}
-                    </div>
+                {% if row.description != '' %}
+                    {{ row.description }}
                 {% endif %}
-                <div class="sessions-items">
-                    {% for item in session.courses %}
+                <div class="info-session">
+                    <span><i class="fa fa-user" aria-hidden="true"></i>
+                    {{ row.coach_name }}
+                    </span>
+                    <span><i class="fa fa-calendar" aria-hidden="true"></i>
+                    {{ row.date }}
+                    </span>
+                </div>
+                <div class="sessions-items"> 
+                    {% for item in row.courses %}
+                    <div class="courses">
                         <div class="row">
                             <div class="col-md-2">
                                 {% if item.link %}
-                                    <a href="{{ item.link }}" class="thumbnail">{{ item.icon }}</a>
+                                    <a href="{{ item.link }}" class="thumbnail">
+                                        <img class="img-responsive" src="{{ item.icon }}">
+                                    </a>
                                 {% else %}
-                                    {{ item.icon }}
+                                    {{ 'blackboard.png' | img(48, item.title ) }}
                                 {% endif %}
                             </div>
                             <div class="col-md-10">
-                                {{ item.title }}
-                                {% if item.coaches|length > 0 %}
+                                <h4>{{ item.title }}</h4>
+                                <div class="teachers">
+                                {% if item.teachers|length > 0 %}
                                     <img src="{{ 'teacher.png'|icon(16) }}" width="16" height="16">
-                                    {% for coach in item.coaches %}
+                                    {% for coach in item.teachers %}
                                         {{ loop.index > 1 ? ' | ' }}
                                         <a href="{{ _p.web_ajax ~ 'user_manager.ajax.php?' ~ {'a': 'get_user_popup', 'user_id': coach.user_id}|url_encode() }}" data-title="{{ coach.full_name }}" class="ajax">
-                                            {{ coach.full_name }}
+                                            {{ coach.firstname }},
+                                            {{ coach.lastname }}
                                         </a>
                                     {% endfor %}
                                 {% endif %}
+                                </div>
                             </div>
                         </div>
+                    </div>
                     {% endfor %}
                 </div>
             </div>
@@ -109,3 +112,4 @@
     {% endif %}
     </div>
 </div>
+{% endfor %}