wangtengyu
2018-12-07 f459412e0dac4ed94106da043b4c6f8576bfe496
commit | author | age
3e083b 1 <?php
B 2
3 /**
4  *  首页文件
5 */
6
7 define('IN_ECS', true);
8
9 require(dirname(__FILE__) . '/includes/init.php');
10
bac5bc 11 // 2018-11-28 根据openid模拟登陆 chenlei start
C 12 $openid = $_REQUEST['openid'];
13 if (!empty($openid)) {
14     $Loaction = 'index.php';
15     if (exist_user_info($openid)) {
16         ecs_header("Location: $Loaction\n");
17     } else {
18         // 获取全局变量
19         $user = $GLOBALS['user'];
20
21         $user->logout();
22         ecs_header("Location: $Loaction\n");
23     }
24 }
25 // 2018-11-28 根据openid模拟登陆 chenlei end
26
3e083b 27 if ((DEBUG_MODE & 2) != 2)
B 28 {
29     $smarty->caching = true;
30 }
31  
32 if (isset($_REQUEST['is_c']))
33 {
34     $is_c = intval($_REQUEST['is_c']);
35 }
36 if($is_c == 1){
37
38 }else
39 {
40 //$ua = strtolower($_SERVER['HTTP_USER_AGENT']);
41
42 //$uachar = "/(nokia|sony|ericsson|mot|samsung|sgh|lg|philips|panasonic|alcatel|lenovo|cldc|midp|mobile)/i";
43
44 //if(($ua == '' || preg_match($uachar, $ua))&& !strpos(strtolower($_SERVER['REQUEST_URI']),'wap'))
45 $ua = strtolower($_SERVER['HTTP_USER_AGENT']);
46
47 $uachar = "/(nokia|sony|ericsson|mot|samsung|sgh|lg|philips|panasonic|alcatel|lenovo|cldc|midp|mobile)/i";
48 $smartuachar = "/(ipad)/i";
49     
50 //if(($ua == '' || preg_match($uachar, $ua))&& !strpos(strtolower($_SERVER['REQUEST_URI']),'wap'))
51 if(!(preg_match($smartuachar, $ua)) && ($ua == '' || preg_match($uachar, $ua))&& !strpos(strtolower($_SERVER['REQUEST_URI']),'wap'))
52 {
53     $Loaction = 'mobile/';
54
55     if (!empty($Loaction))
56     {
57         ecs_header("Location: $Loaction\n");
58
59         exit;
60     }
61
62 }
63  
64 }
65 /*------------------------------------------------------ */
66 //-- 系统地址转换
67 /*------------------------------------------------------ */
68 if (!empty($_GET['gOo']))
69 {
70     if (!empty($_GET['gcat']))
71     {
72         /* 商品分类。*/
73         $Loaction = 'category.php?id=' . $_GET['gcat'];
74     }
75     elseif (!empty($_GET['acat']))
76     {
77         /* 文章分类。*/
78         $Loaction = 'article_cat.php?id=' . $_GET['acat'];
79     }
80     elseif (!empty($_GET['goodsid']))
81     {
82         /* 商品详情。*/
83         $Loaction = 'goods.php?id=' . $_GET['goodsid'];
84     }
85     elseif (!empty($_GET['articleid']))
86     {
87         /* 文章详情。*/
88         $Loaction = 'article.php?id=' . $_GET['articleid'];
89     }
90
91     if (!empty($Loaction))
92     {
93         ecs_header("Location: $Loaction\n");
94
95         exit;
96     }
97 }
98
99 //判断是否有ajax请求
100 $act = !empty($_GET['act']) ? $_GET['act'] : '';
101 if ($act == 'cat_rec')
102 {
103     $rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
104     $rec_type = !empty($_REQUEST['rec_type']) ? intval($_REQUEST['rec_type']) : '1';
105     $cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';
106     include_once('includes/cls_json.php');
107     $json = new JSON;
108     $result   = array('error' => 0, 'content' => '', 'type' => $rec_type, 'cat_id' => $cat_id);
109
110     $children = get_children($cat_id);
111     $smarty->assign($rec_array[$rec_type] . '_goods',      get_category_recommend_goods($rec_array[$rec_type], $children));    // 推荐商品
112     $smarty->assign('cat_rec_sign', 1);
113     $result['content'] = $smarty->fetch('library/recommend_' . $rec_array[$rec_type] . '.lbi');
114     die($json->encode($result));
115 }
116
117 /*------------------------------------------------------ */
118 //-- 判断是否存在缓存,如果存在则调用缓存,反之读取相应内容
119 /*------------------------------------------------------ */
120 /* 缓存编号 */
121 $cache_id = sprintf('%X', crc32($_SESSION['user_rank'] . '-' . $_CFG['lang']));
122
123 if (!$smarty->is_cached('index.dwt', $cache_id))
124 {
125     assign_template();
126
127     $position = assign_ur_here();
128     $smarty->assign('page_title',      $position['title']);    // 页面标题
129     $smarty->assign('ur_here',         $position['ur_here']);  // 当前位置
130
131     /* meta information */
132     $smarty->assign('keywords',        htmlspecialchars($_CFG['shop_keywords']));
133     $smarty->assign('description',     htmlspecialchars($_CFG['shop_desc']));
134     $smarty->assign('flash_theme',     $_CFG['flash_theme']);  // Flash轮播图片模板
135
136     $smarty->assign('feed_url',        ($_CFG['rewrite'] == 1) ? 'feed.xml' : 'feed.php'); // RSS URL
137
138     $smarty->assign('categories',      get_categories_tree()); // 分类树
139     $smarty->assign('helps',           get_shop_help());       // 网店帮助
140     $smarty->assign('top_goods',       get_top10());           // 销售排行
141     ///llx添加start
142     $smarty->assign('top_goods1',        get_top10(16));   
143     $smarty->assign('top_goods2',        get_top10(81));   
144     $smarty->assign('top_goods3',        get_top10(17));   
145     $smarty->assign('top_goods4',        get_top10(93));   
146      ///llx添加end
147
148     $smarty->assign('best_goods',      get_recommend_goods('best'));    // 推荐商品
149     $smarty->assign('new_goods',       get_recommend_goods('new'));     // 最新商品
150     $smarty->assign('hot_goods',       get_recommend_goods('hot'));     // 热点文章
151     $smarty->assign('promotion_goods', get_promote_goods()); // 特价商品
152     $smarty->assign('brand_list',      get_brands());
153     $smarty->assign('promotion_info',  get_promotion_info()); // 增加一个动态显示所有促销信息的标签栏
154
155     $smarty->assign('invoice_list',    index_get_invoice_query());  // 发货查询
156     $smarty->assign('new_articles',    index_get_new_articles());   // 最新文章
157     $smarty->assign('group_buy_goods', index_get_group_buy());      // 团购商品
158     $smarty->assign('auction_list',    index_get_auction());        // 拍卖活动
159     $smarty->assign('shop_notice',     $_CFG['shop_notice']);       // 商店公告
160     $smarty->assign('cat_goods_list',  get_cat_goods_list());
161
162     /* 首页主广告设置 */
163     $smarty->assign('index_ad',     $_CFG['index_ad']);
164     if ($_CFG['index_ad'] == 'cus')
165     {
166         $sql = 'SELECT ad_type, content, url FROM ' . $ecs->table("ad_custom") . ' WHERE ad_status = 1';
167         $ad = $db->getRow($sql, true);
168         $smarty->assign('ad', $ad);
169     }
170
171     /* links */
172     $links = index_get_links();
173     $smarty->assign('img_links',       $links['img']);
174     $smarty->assign('txt_links',       $links['txt']);
175     $smarty->assign('data_dir',        DATA_DIR);       // 数据目录
176     
177         
178 /* 添加首页幻灯插件*/    
179 $smarty->assign("flash",get_flash_xml());
180 $smarty->assign('flash_count',count(get_flash_xml()));
181
182     /* 首页推荐分类 */
183     $cat_recommend_res = $db->getAll("SELECT c.cat_id, c.cat_name, cr.recommend_type FROM " . $ecs->table("cat_recommend") . " AS cr INNER JOIN " . $ecs->table("category") . " AS c ON cr.cat_id=c.cat_id");
184     if (!empty($cat_recommend_res))
185     {
186         $cat_rec_array = array();
187         foreach($cat_recommend_res as $cat_recommend_data)
188         {
189             $cat_rec[$cat_recommend_data['recommend_type']][] = array('cat_id' => $cat_recommend_data['cat_id'], 'cat_name' => $cat_recommend_data['cat_name']);
190         }
191         $smarty->assign('cat_rec', $cat_rec);
192     }
193
194     /* 页面中的动态内容 */
195     assign_dynamic('index');
196 }
197 //$pro_goods=get_promote_goods();
198 //echo "<pre>";
199 //print_r($pro_goods);
200 //线上红包
201 $sql = "SELECT * FROM " .$GLOBALS['ecs']->table('bonus_type') .
202             " WHERE send_type = '4'";
203     $row = $GLOBALS['db']->GetAll($sql);
204     $time=time();
205     date_default_timezone_set('PRC');
206     $smarty->assign('time',$time);
207     $smarty->assign('online_bonus',$row);
208
209 //判断 弹框登陆 验证码是否显示
210 $captcha = intval($_CFG['captcha']);
211 if(($captcha & CAPTCHA_LOGIN) && (! ($captcha & CAPTCHA_LOGIN_FAIL) || (($captcha & CAPTCHA_LOGIN_FAIL) && $_SESSION['login_fail'] > 2)) && gd_version() > 0)
212 {
213     $GLOBALS['smarty']->assign('enabled_captcha', 1);
214     $GLOBALS['smarty']->assign('rand', mt_rand());
215 }
216
217
218 $smarty->display('index.dwt', $cache_id);
219
220 /*------------------------------------------------------ */
221 //-- PRIVATE FUNCTIONS
222 /*------------------------------------------------------ */
223
224 /**
225  * 调用发货单查询
226  *
227  * @access  private
228  * @return  array
229  */
230 function index_get_invoice_query()
231 {
232     $sql = 'SELECT o.order_sn, o.invoice_no, s.shipping_code FROM ' . $GLOBALS['ecs']->table('order_info') . ' AS o' .
233             ' LEFT JOIN ' . $GLOBALS['ecs']->table('shipping') . ' AS s ON s.shipping_id = o.shipping_id' .
234             " WHERE invoice_no > '' AND shipping_status = " . SS_SHIPPED .
235             ' ORDER BY shipping_time DESC LIMIT 10';
236     $all = $GLOBALS['db']->getAll($sql);
237
238     foreach ($all AS $key => $row)
239     {
240         $plugin = ROOT_PATH . 'includes/modules/shipping/' . $row['shipping_code'] . '.php';
241
242         if (file_exists($plugin))
243         {
244             include_once($plugin);
245
246             $shipping = new $row['shipping_code'];
247             $all[$key]['invoice_no'] = $shipping->query((string)$row['invoice_no']);
248         }
249     }
250
251     clearstatcache();
252
253     return $all;
254 }
255
256 /**
257  * 获得最新的文章列表。
258  *
259  * @access  private
260  * @return  array
261  */
262 function index_get_new_articles()
263 {
264     $sql = 'SELECT a.article_id, a.title, ac.cat_name, a.add_time, a.file_url, a.open_type, ac.cat_id, ac.cat_name ' .
265             ' FROM ' . $GLOBALS['ecs']->table('article') . ' AS a, ' .
266                 $GLOBALS['ecs']->table('article_cat') . ' AS ac' .
267             ' WHERE a.is_open = 1 AND a.cat_id = ac.cat_id AND ac.cat_type = 1' .
268             ' ORDER BY a.article_type DESC, a.add_time DESC LIMIT ' . $GLOBALS['_CFG']['article_number'];
269     $res = $GLOBALS['db']->getAll($sql);
270
271     $arr = array();
272     foreach ($res AS $idx => $row)
273     {
274         $arr[$idx]['id']          = $row['article_id'];
275         $arr[$idx]['title']       = $row['title'];
276         $arr[$idx]['short_title'] = $GLOBALS['_CFG']['article_title_length'] > 0 ?
277                                         sub_str($row['title'], $GLOBALS['_CFG']['article_title_length']) : $row['title'];
278         $arr[$idx]['cat_name']    = $row['cat_name'];
279         $arr[$idx]['add_time']    = local_date($GLOBALS['_CFG']['date_format'], $row['add_time']);
280         $arr[$idx]['url']         = $row['open_type'] != 1 ?
281                                         build_uri('article', array('aid' => $row['article_id']), $row['title']) : trim($row['file_url']);
282         $arr[$idx]['cat_url']     = build_uri('article_cat', array('acid' => $row['cat_id']), $row['cat_name']);
283     }
284
285     return $arr;
286 }
287
288 /**
289  * 获得最新的团购活动
290  *
291  * @access  private
292  * @return  array
293  */
294 function index_get_group_buy()
295 {
296     $time = gmtime();
297     $limit = get_library_number('group_buy', 'index');
298     
299     $group_buy_list = array();
300     if ($limit > 0)
301     {
302         $sql = 'SELECT gb.*,g.*,gb.act_id AS group_buy_id, gb.goods_id, gb.ext_info, gb.goods_name, g.goods_thumb, g.goods_img ' .
303                 'FROM ' . $GLOBALS['ecs']->table('goods_activity') . ' AS gb, ' .
304                     $GLOBALS['ecs']->table('goods') . ' AS g ' .
305                 "WHERE gb.act_type = '" . GAT_GROUP_BUY . "' " .
306                 "AND g.goods_id = gb.goods_id " .
307                 "AND gb.start_time <= '" . $time . "' " .
308                 "AND gb.end_time >= '" . $time . "' " .
309                 "AND g.is_delete = 0 " .
310                 "ORDER BY gb.act_id DESC " .
311                 "LIMIT $limit" ;
312                 
313         $res = $GLOBALS['db']->query($sql);
314
315         while ($row = $GLOBALS['db']->fetchRow($res))
316         {
317             /* 如果缩略图为空,使用默认图片 */
318             $row['goods_img'] = get_image_path($row['goods_id'], $row['goods_img']);
319             $row['thumb'] = get_image_path($row['goods_id'], $row['goods_thumb'], true);
320
321             /* 根据价格阶梯,计算最低价 */
322             $ext_info = unserialize($row['ext_info']);
323             $price_ladder = $ext_info['price_ladder'];
324             if (!is_array($price_ladder) || empty($price_ladder))
325             {
326                 $row['last_price'] = price_format(0);
327             }
328             else
329             {
330                 foreach ($price_ladder AS $amount_price)
331                 {
332                     $price_ladder[$amount_price['amount']] = $amount_price['price'];
333                 }
334             }
335             ksort($price_ladder);
336             $row['last_price'] = price_format(end($price_ladder));
337             $row['url'] = build_uri('group_buy', array('gbid' => $row['group_buy_id']));
338             $row['short_name']   = $GLOBALS['_CFG']['goods_name_length'] > 0 ?
339                                            sub_str($row['goods_name'], $GLOBALS['_CFG']['goods_name_length']) : $row['goods_name'];
340             $row['short_style_name']   = add_style($row['short_name'],'');
341             
342             $stat = group_buy_stat($row['act_id'], $row['deposit']);
343             $row['valid_goods'] = $stat['valid_goods'];
344             $group_buy_list[] = $row;
345         }
346     }
347
348     return $group_buy_list;
349 }
350
351 /**
352  * 取得拍卖活动列表
353  * @return  array
354  */
355 function index_get_auction()
356 {
357     $now = gmtime();
358     $limit = get_library_number('auction', 'index');
359     $sql = "SELECT a.act_id, a.goods_id, a.goods_name, a.ext_info, g.goods_thumb ".
360             "FROM " . $GLOBALS['ecs']->table('goods_activity') . " AS a," .
361                       $GLOBALS['ecs']->table('goods') . " AS g" .
362             " WHERE a.goods_id = g.goods_id" .
363             " AND a.act_type = '" . GAT_AUCTION . "'" .
364             " AND a.is_finished = 0" .
365             " AND a.start_time <= '$now'" .
366             " AND a.end_time >= '$now'" .
367             " AND g.is_delete = 0" .
368             " ORDER BY a.start_time DESC" .
369             " LIMIT $limit";
370     $res = $GLOBALS['db']->query($sql);
371
372     $list = array();
373     while ($row = $GLOBALS['db']->fetchRow($res))
374     {
375         $ext_info = unserialize($row['ext_info']);
376         $arr = array_merge($row, $ext_info);
377         $arr['formated_start_price'] = price_format($arr['start_price']);
378         $arr['formated_end_price'] = price_format($arr['end_price']);
379         $arr['thumb'] = get_image_path($row['goods_id'], $row['goods_thumb'], true);
380         $arr['url'] = build_uri('auction', array('auid' => $arr['act_id']));
381         $arr['short_name']   = $GLOBALS['_CFG']['goods_name_length'] > 0 ?
382                                            sub_str($arr['goods_name'], $GLOBALS['_CFG']['goods_name_length']) : $arr['goods_name'];
383         $arr['short_style_name']   = add_style($arr['short_name'],'');
384         $list[] = $arr;
385     }
386
387     return $list;
388 }
389
390 /**
391  * 获得所有的友情链接
392  *
393  * @access  private
394  * @return  array
395  */
396 function index_get_links()
397 {
398     $sql = 'SELECT link_logo, link_name, link_url FROM ' . $GLOBALS['ecs']->table('friend_link') . ' ORDER BY show_order';
399     $res = $GLOBALS['db']->getAll($sql);
400
401     $links['img'] = $links['txt'] = array();
402
403     foreach ($res AS $row)
404     {
405         if (!empty($row['link_logo']))
406         {
407             $links['img'][] = array('name' => $row['link_name'],
408                                     'url'  => $row['link_url'],
409                                     'logo' => $row['link_logo']);
410         }
411         else
412         {
413             $links['txt'][] = array('name' => $row['link_name'],
414                                     'url'  => $row['link_url']);
415         }
416     }
417
418     return $links;
419 }
420
421
422 function get_flash_xml()
423 {
424     $flashdb = array();
425     if (file_exists(ROOT_PATH . DATA_DIR . '/flash_data.xml'))
426     {
427
428          
429         if (!preg_match_all('/item_url="([^"]+)"\slink="([^"]+)"\stext="([^"]*)"\ssort="([^"]*)"/', file_get_contents(ROOT_PATH . DATA_DIR . '/flash_data.xml'), $t, PREG_SET_ORDER))
430         {
431             preg_match_all('/item_url="([^"]+)"\slink="([^"]+)"\stext="([^"]*)"/', file_get_contents(ROOT_PATH . DATA_DIR . '/flash_data.xml'), $t, PREG_SET_ORDER);
432         }
433
434         if (!empty($t))
435         {
436             foreach ($t as $key => $val)
437             {
438                 $val[4] = isset($val[4]) ? $val[4] : 0;
439                 $flashdb[] = array('src'=>$val[1],'url'=>$val[2],'text'=>$val[3],'sort'=>$val[4]);
440                 
441                 //print_r($flashdb);
442             }
443         }
444     }
445     return $flashdb;
446 }
447
448  
449 function get_hot_cat_goods($type = '',$cat_id, $num = 7)
450 {
451     $children = get_children($cat_id);
452
453     $sql = 'SELECT g.goods_id,g.cat_id, g.goods_name, g.market_price, g.shop_price AS org_price, ' .
454     "IFNULL(mp.user_price, g.shop_price * '$_SESSION[discount]') AS shop_price, ".
455     'g.promote_price, promote_start_date, promote_end_date, g.goods_brief, g.goods_thumb, g.goods_img ' .
456     "FROM " . $GLOBALS['ecs']->table('goods') . ' AS g '.
457     "LEFT JOIN " . $GLOBALS['ecs']->table('member_price') . " AS mp ".
458     "ON mp.goods_id = g.goods_id AND mp.user_rank = '$_SESSION[user_rank]' ".
459     'WHERE g.is_on_sale = 1 AND g.is_alone_sale = 1 AND  g.is_delete = 0' ;
460
461     switch ($type)
462     {
463         case 'best':
464             $sql .= ' AND is_best = 1';
465             break;
466         case 'new':
467             $sql .= ' AND is_new = 1';
468             break;
469         case 'hot':
470             $sql .= ' AND is_hot = 1';
471             break;
472         case 'promote':
473             $time = gmtime();
474             $sql .= " AND is_promote = 1 AND promote_start_date <= '$time' AND promote_end_date >= '$time'";
475             break;
476     }
477
478     $sql.=' AND (' . $children . 'OR ' . get_extension_goods($children) . ') ' .'ORDER BY g.sort_order, g.goods_id DESC';
479
480
481
482     if ($num > 0)
483     {
484         $sql .= ' LIMIT ' . $num;
485     }
486
487     //echo $sql;
488
489     $res = $GLOBALS['db']->getAll($sql);
490
491     $goods = array();
492     foreach ($res AS $idx => $row)
493     {
494         if ($row['promote_price'] > 0)
495         {
496             $promote_price = bargain_price($row['promote_price'], $row['promote_start_date'], $row['promote_end_date']);
497             $goods[$idx]['promote_price'] = $promote_price > 0 ? price_format($promote_price) : '';
498         }
499         else
500         {
501             $goods[$idx]['promote_price'] = '';
502         }
503
504         $temp=$row['cat_id'];
505         $cat_info=get_hot_cat_info($temp);
506
507         $goods[$idx]['id']           = $row['goods_id'];
508         $goods[$idx]['cat_id']       = $row['cat_id'];
509         $goods[$idx]['cat_name']     = $cat_info['name'];
510         $goods[$idx]['cat_url']     = $cat_info['url'];
511
512
513         $goods[$idx]['name']         = $row['goods_name'];
514         $goods[$idx]['brief']        = $row['goods_brief'];
515         $goods[$idx]['market_price'] = price_format($row['market_price']);
516         $goods[$idx]['short_name']   = $GLOBALS['_CFG']['goods_name_length'] > 0 ?
517         sub_str($row['goods_name'], $GLOBALS['_CFG']['goods_name_length']) : $row['goods_name'];
518         $goods[$idx]['shop_price']   = price_format($row['shop_price']);
519         $goods[$idx]['thumb']        = empty($row['goods_thumb']) ? $GLOBALS['_CFG']['no_picture'] : $row['goods_thumb'];
520         $goods[$idx]['goods_img']    = empty($row['goods_img']) ? $GLOBALS['_CFG']['no_picture'] : $row['goods_img'];
521         $goods[$idx]['url']          = build_uri('goods', array('gid' => $row['goods_id']), $row['goods_name']);
522     }
523
524     return $goods;
525 }
526
527 function get_hot_cat_info($cat_id)
528 {
529     /* 分类信息 */
530     $sql = 'SELECT cat_name FROM ' . $GLOBALS['ecs']->table('category') . " WHERE cat_id = '$cat_id'";
531     $cat['name'] = $GLOBALS['db']->getOne($sql);
532     $cat['url']  = build_uri('category', array('cid' => $cat_id), $cat['name']);
533     $cat['id']   = $cat_id;
534
535     return $cat;
536 }
537
538
539
540
541  
542 /**
543  * ============================================================================
544  * 文章自定义数据调用函数
545  * ============================================================================
546 */
547 //取得文章里面的图片
548 function GetImageSrc($body) {
549    if( !isset($body) ) {
550            return '';
551    }
552    else {
553         preg_match_all ("/<(img|IMG)(.*)(src|SRC)=[\"|'|]{0,}([h|\/].*(jpg|JPG|gif|GIF|png|PNG))[\"|'|\s]{0,}/isU",$body,$out);
554         return $out[4];
555    }
556 }
557
558 //提取文里面的URL
559 function GetArticleUrl($body) {
560     if( !isset($body) ) {
561         return '';
562     }
563     else {
564         preg_match_all("/<(a|A)(.*)(href|HREF)=[\"|'|](.*)[\"|'|\s]{0,}>(.*)<\/(a|A)>/isU",$body,$out);
565         return $out;
566     }
567 }
568
569 function get_article_children_new ($cat = 0)
570 {
571     return db_create_in(array_unique(array_merge(array($cat), array_keys(article_cat_list($cat, 0, false)))), 'a.cat_id');
572 }
573
574 /**
575 * 按文章ID号/分类ID/商品ID号/商品分类ID号取得文章
576 * @param  array    $id       文章ID或文章分类ID
577 * @param  string   $getwhat  以何种方式取文章其中可选参数有:
578                                 [1]art_cat(以文章分类ID获取)    [2]art_id(以文章ID获取)
579                                 [3]goods_cat(以商品分类ID获取)  [4]goods_id(以商品ID获取)
580                                 其中的[3]和[4]必须有商品关联文章或文章关联商品
581 * @param  integer  $num      控制显示多少条文章.当参数为0时则全部显示
582 * @param  integer  $start    从第几条数据开始取
583 * @param  boolean  $isrand   是否随机显示文章(默认为不显示)
584 * @param  boolean  $showall   是否显示隐藏的文章(黑认为不显示隐藏文章)
585 * @return array
586 */
587 function get_article_new( $id = array(0), $getwhat = 'art_id', $num = 0, $isrand = false, $showall = true, $start = 0 ) {
588     $sql = '';
589     $findkey = '';
590     $search = '';
591     $wherestr = '';
592     
593     for( $i=0; $i<count($id); $i++ ) {
594         if( $i<count($id)-1 ) {
595             $findkey .= $id[$i] .',';
596         }
597         else {
598             $findkey .= $id[$i];
599         }
600     }
601     
602     if( $getwhat == 'art_cat' ){
603         for( $i=0; $i<count($id); $i++ ) {
604             if( $i<count($id)-1 ) {
605                 $search .= get_article_children_new($id[$i]) . ' OR ';
606             }
607             else {
608                 $search .= get_article_children_new($id[$i]);
609             }
610         }
611     }
612     elseif($getwhat == 'goods_cat') {
613         for( $i=0; $i<count($id); $i++) {
614             if( $i<count($id)-1 ) {
615                 $search .= get_children($id[$i]) . ' OR ';
616             }
617             else {
618                 $search .= get_children($id[$i]);
619             }
620         }
621     }
622     elseif( $getwhat == 'art_id' ) {
623         $search = 'a.article_id IN' . '(' . $findkey . ')';
624     }
625     elseif( $getwhat == 'goods_id' ) {
626         $search = 'g.goods_id IN' . '(' . $findkey . ')';
627     }
628     $wherestr = '(' . $search . ')';
629     
630     if( $getwhat == 'art_cat' || $getwhat == 'art_id' ) {
631         $sql = 'SELECT a.*,ac.cat_id,ac.cat_name,ac.keywords as cat_keywords,ac.cat_desc 
632         FROM ' . $GLOBALS['ecs']->table('article') . ' AS a, ' .
633          $GLOBALS['ecs']->table('article_cat') . ' AS ac' .
634         ' WHERE (a.cat_id = ac.cat_id) AND ' . $wherestr;
635     }
636     elseif( $getwhat == 'goods_cat' || $getwhat == 'goods_id' ) {
637         $sql = 'SELECT DISTINCT a.*,ac.cat_id,ac.cat_name,ac.keywords as cat_keywords,ac.cat_desc FROM ' . 
638         $GLOBALS['ecs']->table('goods') .' AS g ' .
639         'LEFT JOIN ' . $GLOBALS['ecs']->table('goods_article') . ' AS ga ON g.goods_id=ga.goods_id INNER JOIN ' . 
640         $GLOBALS['ecs']->table('article') . ' AS a ON ga.article_id = a.article_id, ' .
641         $GLOBALS['ecs']->table('article_cat') . 'AS ac ' .
642         'WHERE (a.cat_id = ac.cat_id) AND ' . $wherestr;    
643     }
644     
645     
646     if( ($showall == false) && ( $getwhat == 'art_cat' || $getwhat == 'art_id' ) ) {
647         $sql .= ' AND a.is_open=1';
648     }
649     elseif( ($showall == false) && ( $getwhat == 'goods_cat' || $getwhat == 'goods_id' ) ) {
650         $sql .= ' AND a.is_open=1';
651     }
652     
653     if( $isrand == true ) {
654         $sql .= ' ORDER BY rand()';
655     }
656     elseif( ($isrand == false) && ( $getwhat == 'art_cat' || $getwhat == 'art_id' ) ) {
657         $sql .= ' ORDER BY a.add_time DESC, a.article_id DESC';
658     }
659     elseif( ($isrand == false) && ( $getwhat == 'goods_cat' || $getwhat == 'goods_id' ) ) {
660         $sql .= ' ORDER BY a.add_time DESC, a.article_id DESC';
661     }
662     
663     if( $start == 0 && $num>0 ) {
664         $sql .= ' LIMIT ' . $num;
665     }
666     elseif( $start>0 && $num>0 ) {
667         $sql .= ' LIMIT ' . $start . ',' . $num;
668     }
669     
670     //开始查询
671     $arr = $GLOBALS['db']->getAll($sql);
672     $articles = array();
673     foreach ($arr AS $id => $row) {
674         $articles[$id]['cat_id']       = $row['cat_id'];
675         $articles[$id]['cat_name']     = $row['cat_name'];
676         $articles[$id]['cat_url']      = build_uri('article_cat', array('acid' => $row['cat_id']));
677         $articles[$id]['cat_keywords'] = $row['cat_keywords'];
678         $articles[$id]['cat_desc']     = $row['cat_desc'];
679         $articles[$id]['title']        = $row['title'];
680         $articles[$id]['url']          = build_uri('article', array('aid'=>$row['article_id']), $row['title']);
681         $articles[$id]['author']       = $row['author'];
682         $articles[$id]['content']      = $row['content'];
683         $articles[$id]['keywords']     = $row['keywords'];
684         $articles[$id]['description']     = $row['description'];
685         $articles[$id]['file_url']     = $row['file_url'];
686         $articles[$id]['link']         = $row['link'];
687         $articles[$id]['addtime']      = date($GLOBALS['_CFG']['date_format'], $row['add_time']);
688         $articles[$id]['content']      = $row['content'];
689         $imgsrc                        = GetImageSrc($row['content']);
690         $articles[$id]['img']          = $imgsrc;                         //提取文章中所有的图片    
691         $link                          = GetArticleUrl($row['content']);
692         $articles[$id]['link_url']     = $link[4];                        //提取文章中所有的链接地址
693         $articles[$id]['link_title']   = $link[5];                        //提取文章中所有的链接名称
694     }
695     return $articles;
696 }
697
698  
699 make_html();
700  
701 ?>