diff --git a/app/Http/Web/Controllers/CourseController.php b/app/Http/Web/Controllers/CourseController.php
index bf8918b9..a49a8e00 100644
--- a/app/Http/Web/Controllers/CourseController.php
+++ b/app/Http/Web/Controllers/CourseController.php
@@ -14,6 +14,7 @@ use App\Services\Frontend\Course\RelatedList as CourseRelatedListService;
use App\Services\Frontend\Course\ReviewList as CourseReviewListService;
use App\Services\Frontend\Course\TeacherList as CourseTeacherListService;
use App\Services\Frontend\Course\TopicList as CourseTopicListService;
+use Phalcon\Mvc\View;
/**
* @RoutePrefix("/course")
@@ -70,6 +71,18 @@ class CourseController extends Controller
$packages = $service->handle($id);
+ $service = new CourseReviewListService();
+
+ $reviews = $service->handle($id);
+
+ $reviews->items = kg_array_object($reviews->items);
+
+ $service = new CourseConsultListService();
+
+ $consults = $service->handle($id);
+
+ $consults->items = kg_array_object($consults->items);
+
$service = new CourseTeacherListService();
$teachers = $service->handle($id);
@@ -89,6 +102,8 @@ class CourseController extends Controller
$this->view->setVar('course', $course);
$this->view->setVar('chapters', $chapters);
$this->view->setVar('packages', $packages);
+ $this->view->setVar('consults', $consults);
+ $this->view->setVar('reviews', $reviews);
$this->view->setVar('teachers', $teachers);
$this->view->setVar('topics', $topics);
$this->view->setVar('recommended_courses', $recommendedCourses);
@@ -130,7 +145,12 @@ class CourseController extends Controller
$pager = $service->handle($id);
- return $this->jsonPaginate($pager);
+ $pager->target = $this->request->get('target', 'trim', 'tab-consults');
+
+ $pager->items = kg_array_object($pager->items);
+
+ $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
+ $this->view->setVar('pager', $pager);
}
/**
@@ -142,7 +162,12 @@ class CourseController extends Controller
$pager = $service->handle($id);
- return $this->jsonPaginate($pager);
+ $pager->target = $this->request->get('target', 'trim', 'tab-reviews');
+
+ $pager->items = kg_array_object($pager->items);
+
+ $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
+ $this->view->setVar('pager', $pager);
}
/**
diff --git a/app/Http/Web/Views/course/consults.volt b/app/Http/Web/Views/course/consults.volt
new file mode 100644
index 00000000..5437eca7
--- /dev/null
+++ b/app/Http/Web/Views/course/consults.volt
@@ -0,0 +1,22 @@
+{% if pager.total_pages > 0 %}
+
+ {% for item in pager.items %}
+ {% set user_url = url({'for':'web.user.show','id':item.id}) %}
+
+
+
+
{{ item.question }}
+
{{ item.answer }}
+
+
+
+ {% endfor %}
+
+ {{ partial('partials/pager_ajax') }}
+{% endif %}
\ No newline at end of file
diff --git a/app/Http/Web/Views/course/list.volt b/app/Http/Web/Views/course/list.volt
index 8e382625..900fcbd3 100644
--- a/app/Http/Web/Views/course/list.volt
+++ b/app/Http/Web/Views/course/list.volt
@@ -3,15 +3,20 @@
{% block content %}
{{ partial('partials/macro_course') }}
-
{{ partial('course/list_filter') }}
-
- {% for item in pager.items %}
- {{ course_card(item) }}
- {% endfor %}
-
-
- {{ partial('partials/pager') }}
+ {% if pager.total_pages > 0 %}
+
+ {% for item in pager.items %}
+ {{ course_card(item) }}
+ {% endfor %}
+
+ {{ partial('partials/pager') }}
+ {% else %}
+
+ {% endif %}
{% endblock %}
\ No newline at end of file
diff --git a/app/Http/Web/Views/course/list_filter.volt b/app/Http/Web/Views/course/list_filter.volt
index 33756cd9..8df0f506 100644
--- a/app/Http/Web/Views/course/list_filter.volt
+++ b/app/Http/Web/Views/course/list_filter.volt
@@ -1,9 +1,10 @@
-
+
方向
+ {% set tc_val = request.get('tc','int','all') %}
{% for category in top_categories %}
- {% set class = request.get('tc','int','all') == category.id ? 'layui-btn layui-btn-xs' : 'none' %}
+ {% set class = tc_val == category.id ? 'layui-btn layui-btn-xs' : 'none' %}
{{ category.name }}
{% endfor %}
@@ -12,8 +13,9 @@
分类
+ {% set sc_val = request.get('sc','int','all') %}
{% for category in sub_categories %}
- {% set class = request.get('sc','int','all') == category.id ? 'layui-btn layui-btn-xs' : 'none' %}
+ {% set class = sc_val == category.id ? 'layui-btn layui-btn-xs' : 'none' %}
{{ category.name }}
{% endfor %}
@@ -22,8 +24,9 @@
类型
+ {% set model_val = request.get('model','trim','all') %}
{% for model in models %}
- {% set class = request.get('model','trim','all') == model.id ? 'layui-btn layui-btn-xs' : 'none' %}
+ {% set class = model_val == model.id ? 'layui-btn layui-btn-xs' : 'none' %}
{{ model.name }}
{% endfor %}
@@ -31,8 +34,9 @@
难度
+ {% set level_val = request.get('level','trim','all') %}
{% for level in levels %}
- {% set class = request.get('level','trim','all') == level.id ? 'layui-btn layui-btn-xs' : 'none' %}
+ {% set class = level_val == level.id ? 'layui-btn layui-btn-xs' : 'none' %}
{{ level.name }}
{% endfor %}
@@ -40,8 +44,9 @@
排序
+ {% set sort_val = request.get('sort','trim','score') %}
{% for sort in sorts %}
- {% set class = request.get('sort','trim','score') == sort.id ? 'layui-btn layui-btn-xs' : 'none' %}
+ {% set class = sort_val == sort.id ? 'layui-btn layui-btn-xs' : 'none' %}
{{ sort.name }}
{% endfor %}
diff --git a/app/Http/Web/Views/course/reviews.volt b/app/Http/Web/Views/course/reviews.volt
new file mode 100644
index 00000000..59bd45e8
--- /dev/null
+++ b/app/Http/Web/Views/course/reviews.volt
@@ -0,0 +1,29 @@
+{%- macro star_info(rating) %}
+ {% set stars = [1,2,3,4,5] %}
+ {% for val in stars if val <= rating %}
+
+ {% endfor %}
+{%- endmacro %}
+
+{% if pager.total_pages > 0 %}
+
+ {% for item in pager.items %}
+ {% set user_url = url({'for':'web.user.show','id':item.id}) %}
+
+
+
+
{{ star_info(item.rating) }}
+
{{ item.content }}
+
+
+
+ {% endfor %}
+
+ {{ partial('partials/pager_ajax') }}
+{% endif %}
\ No newline at end of file
diff --git a/app/Http/Web/Views/course/show.volt b/app/Http/Web/Views/course/show.volt
index 0e393370..5f48f29c 100644
--- a/app/Http/Web/Views/course/show.volt
+++ b/app/Http/Web/Views/course/show.volt
@@ -24,7 +24,7 @@
-
+
- 详情
- 目录
@@ -42,7 +42,7 @@
-
+
{% if course.model == 'vod' %}
{{ partial('course/chapters_vod') }}
{% elseif course.model == 'live' %}
@@ -52,13 +52,17 @@
{% endif %}
{% if show_packages == 1 %}
-
{{ partial('course/packages') }}
+
+ {{ partial('course/packages') }}
+
{% endif %}
{% if show_consults == 1 %}
-
咨询
+ {% set consult_url = url({'for':'web.course.consults','id':course.id}) %}
+
{% endif %}
{% if show_reviews == 1 %}
-
评价
+ {% set review_url = url({'for':'web.course.reviews','id':course.id}) %}
+
{% endif %}
@@ -67,19 +71,36 @@
{% if teachers %}
{{ partial('course/sidebar_teachers') }}
{% endif %}
-
{% if topics %}
{{ partial('course/sidebar_topics') }}
{% endif %}
-
{% if recommended_courses %}
{{ partial('course/sidebar_recommended') }}
{% endif %}
-
{% if related_courses %}
{{ partial('course/sidebar_related') }}
{% endif %}
+{% endblock %}
+
+{% block inline_js %}
+
+
+
{% endblock %}
\ No newline at end of file
diff --git a/app/Http/Web/Views/index/index.volt b/app/Http/Web/Views/index/index.volt
index 4923f48f..748a01d8 100644
--- a/app/Http/Web/Views/index/index.volt
+++ b/app/Http/Web/Views/index/index.volt
@@ -2,6 +2,8 @@
{% block content %}
+ {{ partial('partials/macro_course') }}
+
{%- macro category_courses(courses) %}
@@ -14,31 +16,9 @@
{% for category in courses %}
{% set class = loop.first ? 'layui-tab-item layui-show' : 'layui-tab-item' %}
-
+
{% for course in category.courses %}
-
-
-
-
- {% if course.market_price > 0 %}
- ¥{{ course.market_price }}
- 中级
- {{ course.lesson_count }}节课
- {{ course.user_count }}人购买
- {% else %}
- 免费
- 中级
- {{ course.lesson_count }}节课
- {{ course.user_count }}人报名
- {% endif %}
-
-
+ {{ course_card(course) }}
{% endfor %}
@@ -47,7 +27,7 @@
{%- endmacro %}
-
+
{% for slide in slides %}
@@ -61,21 +41,21 @@
-
+
{{ category_courses(new_courses) }}
-
+
{{ category_courses(free_courses) }}
-
+
{{ category_courses(vip_courses) }}
diff --git a/app/Http/Web/Views/partials/macro_course.volt b/app/Http/Web/Views/partials/macro_course.volt
index eca02472..3194950d 100644
--- a/app/Http/Web/Views/partials/macro_course.volt
+++ b/app/Http/Web/Views/partials/macro_course.volt
@@ -25,11 +25,11 @@
{% if course.market_price > 0 %}
@@ -51,11 +51,11 @@
{% set course_url = url({'for':'web.course.show','id':course.id}) %}