zm
2020-09-11 80527f8035fb8e0a6b954f6f022a549d38ee422a
commit | author | age
1c88ba 1 <?php
Z 2 /**
3  * 微课堂搜索页
4  * ============================================================================
3e6546 5  * 版权所有 2015-2020 ,并保留所有权利。
Z 6  * 网站地址: 
1c88ba 7  * ----------------------------------------------------------------------------
3e6546 8
1c88ba 9  * ============================================================================
Z 10  */
11
12 if((!$userAgent && in_array('search', $login_visit)) || ($userAgent && !$comsetting['hidden_login'])){
13     checkauth();
14 }
15
16 $systemType = $site_common->checkSystenType();  /* 手机操作系统 */
17 $site_common->check_black_list('visit', $_W['member']['uid']);
18
19 /* 自定义字体 */
20 $index_page = $common['index_page'];
21 $already_study = $common['index_page']['studyNum'] ? $common['index_page']['studyNum'] : '人已学习';
22
23 /* 全部分类图标 */
24 $all_category_ico = $setting['category_ico'] ? $_W['attachurl'].$setting['category_ico'] : MODULE_URL."template/mobile/{$template}/images/ico-allcategory.png";
25
26 $pindex = max(1, intval($_GPC['page']));
27 $psize = 10;
28
29 /* 全部分类 */
30 $hot_category = pdo_fetchall("SELECT * FROM " . tablename($this -> table_category) . " WHERE uniacid=:uniacid AND is_hot=:is_hot AND search_show=:search_show ORDER BY displayorder DESC", array(':uniacid' => $uniacid, ':is_hot' => 1,':search_show'=>1));
31 $categorylist = pdo_fetchall("SELECT * FROM " . tablename($this -> table_category) . " WHERE uniacid=:uniacid AND parentid=:parentid AND search_show=:search_show ORDER BY displayorder DESC", array(':uniacid'=>$uniacid, ':parentid'=>0,':search_show'=>1));
32
33 foreach ($categorylist as $k => $v) {
34     $categorylist[$k]['child'] = pdo_fetchall("SELECT * FROM " . tablename($this -> table_category) . " WHERE uniacid=:uniacid AND parentid=:parentid AND search_show=:search_show ORDER BY displayorder DESC", array(':uniacid'=>$uniacid, ':parentid'=>$v['id'],':search_show'=>1));
35 }
36
ec46c1 37 /* 知识点分类 */
80527f 38 $hot_knowledge = pdo_fetchall("SELECT * FROM " . tablename("fy_lesson_knowledge_point") . " WHERE uniacid=:uniacid AND is_hot=:is_hot AND search_show=:search_show ORDER BY displayorder DESC", array(':uniacid' => $uniacid, ':is_hot' => 1,':search_show'=>1));
Z 39 $knowledgelist = pdo_fetchall("SELECT * FROM " . tablename("fy_lesson_knowledge_point") . " WHERE uniacid=:uniacid AND parentid=:parentid AND search_show=:search_show ORDER BY displayorder DESC", array(':uniacid'=>$uniacid, ':parentid'=>0,':search_show'=>1));
ec46c1 40
Z 41 foreach ($knowledgelist as $k => $v) {
80527f 42     $knowledgelist[$k]['child'] = pdo_fetchall("SELECT * FROM " . tablename("fy_lesson_knowledge_point") . " WHERE uniacid=:uniacid AND parentid=:parentid AND search_show=:search_show ORDER BY displayorder DESC", array(':uniacid'=>$uniacid, ':parentid'=>$v['id'],':search_show'=>1));
ec46c1 43 }
Z 44
1c88ba 45 if ($op == 'display') {
Z 46
47     $keyword = trim($_GPC['keyword']);
48     $pid = $_GPC['pid'];
49     $cat_id = $_GPC['cat_id'];
50     $sort = trim($_GPC['sort']);
51     $attr1 = $_GPC['attr1'];
52     $attr2 = $_GPC['attr2'];
80527f 53     $know_id = $_GPC['knowledge_id'];
1c88ba 54
Z 55     $condition = " a.uniacid = '{$uniacid}' AND a.status=1 ";
56     $order = " ORDER BY a.displayorder DESC, a.id DESC ";
57
58     if (!empty($keyword)) {
59         $condition .= " AND (a.bookname LIKE '%{$keyword}%' OR b.teacher LIKE '%{$keyword}%') ";
60     }
61     if ($cat_id > 0) {
62         $condition .= " AND (a.pid='{$cat_id}' OR a.cid='{$cat_id}')";
63         $nowcat = pdo_fetch("SELECT name FROM " . tablename($this -> table_category) . " WHERE uniacid='{$uniacid}' AND id='{$cat_id}'");
64         $catname = $nowcat['name'];
65     } else {
66         $catname = $common['page_title']['search'] ? $common['page_title']['search'] : '全部分类';
67     }
68
80527f 69     /* 按知识点搜索 */
Z 70     if ($know_id > 0) {
71         $condition .= " AND (a.knowledge_pid='{$know_id}' OR a.knowledge_id='{$know_id}')";
72         $nowknow = pdo_fetch("SELECT name FROM " . tablename("fy_lesson_knowledge_point") . " WHERE uniacid='{$uniacid}' AND id='{$know_id}'");
73         $knowledgename = $nowknow['name'];
74     } else {
75         $knowledgename = $common['page_title']['search'] ? $common['page_title']['search'] : '知识点';
76     }
77     
1c88ba 78     /* 综合排序 */
Z 79     if ($sort == 'general') {
80         $condition .= " AND a.lesson_type=0";
81         $sortname = '普通课程';
82     } elseif ($sort == 'apply') {
83         $condition .= " AND a.lesson_type=1";
84         $sortname = '报名课程';
85     } elseif ($sort == 'live') {
86         $condition .= " AND a.lesson_type=3";
87         $sortname = '直播课程';
80527f 88     } elseif ($sort == 'knowledge') {
Z 89         $condition .= " AND a.lesson_type=5";
90         $sortname = '知识点课';
1c88ba 91     } elseif ($sort == 'price') {
Z 92         $order = " ORDER BY a.price ASC, a.displayorder DESC ";
93         $sortname = '价格优先';
94     } elseif ($sort == 'price') {
95         $order = " ORDER BY a.price ASC, a.displayorder DESC ";
96         $sortname = '价格优先';
97     } elseif ($sort == 'hot') {
98         $order = " ORDER BY (a.buynum+a.virtual_buynum) DESC, a.displayorder DESC ";
99         $sortname = '人气优先';
100     } elseif ($sort == 'score') {
101         $order = " ORDER BY a.score DESC, a.displayorder DESC ";
102         $sortname = '好评优先';
103     } else {
104         $sortname = '综合排序';
105     }
106
107     /* 课程属性 */
108     $lesson_attribute = $common['lesson_attribute'];
109     $attribute1 = pdo_fetchall("SELECT * FROM " .tablename($this->table_attribute). " WHERE uniacid=:uniacid AND attr_type=:attr_type ORDER BY displayorder DESC", array(':uniacid'=>$uniacid,':attr_type'=>'attribute1'));
110     $attribute2 = pdo_fetchall("SELECT * FROM " .tablename($this->table_attribute). " WHERE uniacid=:uniacid AND attr_type=:attr_type ORDER BY displayorder DESC", array(':uniacid'=>$uniacid,':attr_type'=>'attribute2'));
111     if($attr1){
112         $condition .= " AND attribute1={$attr1}";
113         $now_attr1 = pdo_get($this->table_attribute, array('uniacid'=>$uniacid,'id'=>$attr1), array('name'));
114         $attr1_name = $now_attr1['name'];
115     }else{
116         $attr1_name = $lesson_attribute['attribute1'];
117     }
118     if($attr2){
119         $condition .= " AND attribute2={$attr2}";
120         $now_attr2 = pdo_get($this->table_attribute, array('uniacid'=>$uniacid,'id'=>$attr2), array('name'));
121         $attr2_name = $now_attr2['name'];
122     }else{
123         $attr2_name = $lesson_attribute['attribute2'];
124     }
125
126     $list = pdo_fetchall("SELECT a.* FROM " . tablename($this -> table_lesson_parent) . " a LEFT JOIN " . tablename($this -> table_teacher) . " b ON a.teacherid=b.id WHERE {$condition} {$order} LIMIT " . ($pindex - 1) * $psize . ',' . $psize);
127     foreach ($list as $k=>$v) {
128         $v['soncount'] = pdo_fetchcolumn("SELECT COUNT(*) FROM " . tablename($this -> table_lesson_son) . " WHERE parentid=:parentid", array(':parentid'=>$v['id']));
129         if($v['price']>0){
130             $v['buyTotal'] = $v['buynum'] + $v['virtual_buynum'] + $v['vip_number'] + $v['teacher_number'];
131         }else{
132             $v['buyTotal'] = $v['buynum'] + $v['virtual_buynum'] + $v['visit_number'] + $v['teacher_number'] + $v['vip_number'];
133         }
134
135         $v['score_rate'] = $v['score'] ? $v['score']*100 : '';
136         $v['score_rate'] = $v['score_rate']>100 ? 100 : $v['score_rate'];
137         
138         $v['discount'] = $site_common->getLessonDiscount($v['id']);
139         $v['price'] = round($v['price']*$v['discount'], 2);
140         if($v['discount']<1 && !$v['ico_name']){
141             $v['ico_name'] = 'ico-discount';
142         }
143
144         if($v['lesson_type']==3){
145             $live_info = json_decode($v['live_info'], true);
146             $starttime = strtotime($live_info['starttime']);
147             $endtime = strtotime($live_info['endtime']);
148             if(time() < $starttime){
149                 $v['icon_live_status'] = 'icon-live-nostart';
150             }elseif(time() > $endtime){
151                 $v['icon_live_status'] = 'icon-live-ended';
152             }elseif(time() > $starttime && time() < $endtime){
153                 $v['icon_live_status'] = 'icon-live-starting';
154             }
155             $v['learned_hide'] = 'hide';
156             unset($v['soncount']);
157         }
158
159         $list[$k] = $v;
160     }
161
162     $total = pdo_fetchcolumn("SELECT COUNT(*) FROM " . tablename($this->table_lesson_parent) . " a LEFT JOIN " .tablename($this->table_teacher). " b ON a.teacherid=b.id WHERE {$condition} ");
163
164     if (!empty($keyword)) {
165         $title = $keyword;
166     } else{
167         $title = $catname;
168     }
169
170     if($_W['isajax']){
171         $this->resultJson($list);
172     }
173
174 }elseif ($op == 'allcategory') {
175     $title = "全部分类";
176 }
177
178 include $this->template("../mobile/{$template}/search");