/** * 调用文章显示数据标签 * * @version $Id: getarclist.lib.php netman * @package Stourweb.Taglib * @copyright Copyright (c) 2007 - 2011, Stourweb, Inc. * @link http://www.stourweb.com */ function lib_getarclist(&$ctag, &$refObj) { global $dsql; include SLINEDATA . "/webinfo.php"; $attlist = "row|8,flag|,type|top,limit|0,haspic|,attrid|0,attrname|"; FillAttsDefault($ctag->CAttribute->Items, $attlist); extract($ctag->CAttribute->Items, EXTR_SKIP); $webid = empty($sys_webid) ? 0 : $sys_webid; $innertext = trim($ctag->GetInnertext()); $revalue = ''; $basefield = 'a.id,a.aid,a.webid,a.title,a.seotitle,a.shownum,a.content,a.addtime,a.webid,a.attrid,a.litpic as litpic,a.kindlist,a.author'; //是否有图片 $picwhere = !empty($haspic) ? " and (a.litpic is not null and a.litpic!='') and a.ishidden=0 " : ''; $picwhere2 = !empty($haspic) ? " where (a.litpic is not null and a.litpic!='') and a.ishidden=0 " : ''; if ($type == 'mdd') { if ($flag == 'recommend') { $orderby = 'order by case when c.displayorder is null then 9999 end,c.displayorder asc'; } else { if ($flag == 'hot') { $orderby = 'order by case when c.displayorder is null then 9999 end,c.displayorder asc'; } else { if ($flag == 'new') { $orderby = 'order by a.addtime desc'; } else { if ($flag == 'imagehot') { $orderby = " and a.litpic!='' order by case when c.displayorder is null then 9999 end,c.displayorder asc"; } else { $orderby = 'order by case when c.displayorder is null then 9999 end,c.displayorder asc'; } } } } $orderby .= ",a.modtime desc,a.addtime desc"; $sonid = isset($definekind) ? $definekind : $refObj->Fields['kindid']; //这里增加子站的判断 if ($GLOBALS['sys_child_webid'] != 0) { $dest_id = $GLOBALS['sys_child_webid']; } $sonid = $sonid ? $sonid : $dest_id; if (isset($sonid)) { $number = isset($refObj->Fields['shownumber']) ? $refObj->Fields['shownumber'] : $row; //如果模块设置了显示数量则使用. $where = " FIND_IN_SET({$sonid},a.kindlist) and a.ishidden=0 "; $where .= !empty($haspic) ? " and a.litpic is not null" : ''; $sql = "select {$basefield} from #@__article as a left join #@__kindorderlist as c on (c.classid={$sonid} and a.id=c.aid and c.typeid=4) where {$where} {$orderby} limit {$limit},{$number}"; } else { return ''; } } else { if ($type == 'theme') { $themeid = $refObj->Fields['themeid']; if (empty($themeid)) { return ''; } $sql = "select a.* from #@__article a where FIND_IN_SET({$themeid},a.themelist) {$picwhere} order by a.modtime desc,a.addtime desc limit {$limit},{$row}"; } else { if ($type == 'pinlun') { $sql = "select a.*,b.id as plid,b.memberid,b.content as plcontent,b.addtime as pltime from #@__article a inner join #@__comment b on (a.id = b.articleid) order by b.addtime desc limit {$limit},{$row}"; } else { if ($flag == 'specical') { $sql = "select {$basefield} from #@__article a where ishidden=0 and isindex =1 {$picwhere} order by modtime desc,addtime desc limit {$limit},{$row}"; } else { if ($flag == 'recommend') { $sql = "select {$basefield},b.isjian,b.isding as isding,b.displayorder from #@__article a left join #@__allorderlist b on (a.id=b.aid and b.typeid=4) {$picwhere2} order by case when b.displayorder is null then 9999 end,b.displayorder asc,a.modtime desc,a.addtime desc limit {$limit},{$row}"; } else { if ($flag == 'kindrecommend') { $kid = $refObj->Fields['kid']; $sql = "select {$basefield} from #@__article a where a.ishidden=0 and FIND_IN_SET({$kid},a.kindlist) {$picwhere} order by a.displayorder asc, a.modtime desc,a.addtime desc limit {$limit},{$row}"; } else { if ($flag == 'isindex') { $sql = "select {$basefield} from #@__article a where a.isindex=1 {$picwhere} order by a.modtime desc,a.addtime desc limit {$limit},{$row}"; } else { if ($flag == 'new') { $sql = "select {$basefield} from #@__article a {$picwhere2} order by a.modtime desc,a.addtime desc limit {$limit},{$row}"; } else { if ($flag == 'hot') { $sql = "select {$basefield} from #@__article a where a.webid IS NOT NULL {$picwhere} order by a.shownum desc,a.modtime desc,a.addtime desc limit {$limit},{$row}"; } else { if ($flag == 'photo') { $sql = "select {$basefield} from #@__article a where webid IS NOT NULL and a.litpic !='' {$picwhere} order by a.modtime desc,a.addtime desc limit {$limit},{$row}"; } else { if ($flag == 'jieban') { $getsql = "select id from #@__article_attr where aid=0 and webid=0"; $arr = $dsql->GetOne($getsql); $jiebanid = $arr['id']; //获取id $sql = "select {$basefield},b.isding,b.displayorder,b.isjian from #@__article a left join #@__attrorderlist b on a.aid=b.aid and a.webid=b.webid where FIND_IN_SET({$jiebanid},a.attrid) {$picwhere} order by b.displayorder asc, a.modtime desc,a.addtime desc limit {$limit},{$row}"; } else { if ($flag == 'relative') { $kindlist = $refObj->Fields['kindlist']; $maxkindid = array_remove_value($kindlist); //最后一级. $destid = $GLOBALS['dest_id']; if (empty($destid)) { $maxkindid = array_remove_value($kindlist); //最后一级. $maxkindid = empty($maxkindid) ? 0 : $maxkindid; } else { $maxkindid = $destid; } $where = " FIND_IN_SET({$maxkindid},a.kindlist) "; //排序顺序:置顶+tag关联》排序+ tag关联》最新更新+tag关联 $sql = "select a.* from #@__article a left join #@__kindorderlist b on (a.id=b.aid and b.typeid=4 and b.classid='{$maxkindid}') where {$where} order by ifnull(b.displayorder,9999) asc,a.modtime desc,a.addtime desc limit {$limit},{$row} "; } else { if ($flag == 'attr') { $attrid = $refObj->Fields['attrid']; $sql = "select a.* from #@__article a where FIND_IN_SET({$attrid},a.attrid) and a.ishidden=0 order by a.modtime desc,a.addtime desc limit {$limit},{$row}"; } else { if ($flag == 'byattr') { if (!empty($attrid)) { $where = " (find_in_set({$attrid},a.attrid)" . loc_getsubattrid($attrid) . ')'; $sql = "select a.* from #@__article a left join #@__attrorderlist b on a.aid=b.aid and a.webid=b.webid where {$where} {$picwhere} order by b.displayorder asc, a.modtime desc,a.modtime desc limit {$limit},{$row}"; } else { if (!empty($attrname)) { $temp_one = $dsql->GetOne("select id from #@__article_attr where attrname='{$attrname}'"); if (empty($temp_one)) { return; } else { $sql = "select a.* from #@__article a where FIND_IN_SET({$temp_one['id']},a.attrid) and a.ishidden=0 order by a.modtime desc,a.modtime desc limit {$limit},{$row}"; } } } } else { return ''; } } } } } } } } } } } } } } $dsql->SetQuery($sql); $dsql->Execute(); $ctp = new STTagParse(); $ctp->SetNameSpace("field", "[", "]"); $ctp->LoadSource($innertext); $GLOBALS['autoindex'] = 0; while ($row = $dsql->GetArray()) { $GLOBALS['autoindex']++; $webroot = GetWebURLByWebid($row['webid']); $sonid = $refObj->Fields['sonid']; $row['url'] = $webroot . "/raiders/show_{$row['aid']}.html"; $row['haspic'] = empty($row['litpic']) ? 0 : 1; $litpic = getUploadFileUrl($row['litpic']); $row['lit240'] = getUploadFileUrl(str_replace('litimg', 'lit240', $row['litpic'])); $row['lit160'] = getUploadFileUrl(str_replace('litimg', 'lit160', $row['litpic'])); $row['litpic'] = $litpic; if ($row['allow'] == "usecontentpic" && !empty($row['litpic'])) { $row['imgtitle'] = $row['title'] . '<img src="' . $GLOBALS['cfg_templets_skin'] . '/images/gl_yt.gif" />'; } else { $row['imgtitle'] = $row['title']; } $row['title'] = $row['title']; $row['attrname'] = getAttrname($row['attrid']); $row['attrnamearr'] = getAttrname($row['attrid'], true); $row['destname'] = Helper_Archive::getBelongDestName($row['kindlist']); //所属目的地 $row['destid'] = array_remove_value($row['kindlist']); $row['pinyin'] = Helper_Archive::getDestPinyin($row['destid']); //最新评论及评论数量 $row['commentnum'] = Helper_Archive::getCommentNum($row['id'], 4); if ($type == 'pinlun') { $userinfo = $GLOBALS['User']->getInfoByMid($row['memberid']); $row['commentlitpic'] = getUploadFileUrl($userinfo['litpic']); $row['commentnickname'] = empty($userinfo['nickname']) ? '匿名' : $userinfo['nickname']; $row['commentid'] = $row['plid']; $row['commentcontent'] = $row['plcontent']; $row['commentaddtime'] = $row['pltime']; } //攻略首页读取评论 if ($type == 'pinlun') { $row['pinlun'] = getArticlePinLun($row['id']); } foreach ($ctp->CTags as $tagid => $ctag) { if ($ctag->GetName() == 'array') { $ctp->Assign($tagid, $row); } else { if (isset($row[$ctag->GetName()])) { $ctp->Assign($tagid, $row[$ctag->GetName()]); } } } $revalue .= $ctp->GetResult(); } return $revalue; }
$row['keyword'] = !empty($row['keyword']) ? "<meta name=\"keywords\" content=\"" . $row['keyword'] . "\"/>" : ""; $row['subname'] = $row['title']; $row['commentnum'] = Helper_Archive::getCommentNum($row['id'], 4); $row['commenthomeid'] = $row['id']; $row['id'] = strlen($row['id']) == 1 ? "0" . $row['id'] : $row['id']; $row['pkname'] = get_par_value($row['kindlist'], $typeid); $row['yesjian'] = is_null($row['yesjian']) ? 0 : $row['yesjian']; $row['destid'] = array_remove_value($row['kindlist']); $row['pinyin'] = Helper_Archive::getDestPinyin($row['destid']); $row['destname'] = !empty($row['destid']) ? '[<a href="/raiders/' . $row['pinyin'] . '">' . Helper_Archive::getBelongDestName($row['kindlist']) . '</a>]' : ''; //所属目的地 $row['destarcnum'] = getArticleNum($row['destid']); $row['attrlist'] = getArticleAttrlist($row['attrid']); $row['summary'] = empty($row['summary']) ? cutstr_html($row['content'], 140) : $row['summary']; $row['kindid'] = $row['destid']; $row['dest_html'] = !empty($row['destid']) ? "<div class=\"page_top\">" . "<a href=\"/raiders/{$row['pinyin']}\">" . Helper_Archive::getBelongDestName($row['kindlist']) . "</a><span>旅游攻略</span>共{$row['destarcnum']}篇</div>" : ''; //是否设置了目的地条件,便于展示推荐线路 if (!empty($row['destid'])) { $GLOBALS['condition']['_hasdest'] = 1; } foreach ($row as $k => $v) { $pv->Fields[$k] = $v; } } //获取上级开启了导航的目的地 getTopNavDest($row['kindlist']); $typename = GetTypeName($typeid); //获取栏目名称. $pv->Fields['typename'] = $typename; $pv->Fields['title'] = $row['title']; $pv->Fields['seotitle'] = $row['seotitle'];
/** * 调用团购显示数据标签 * * @version $Id: gettuanlist.lib.php netman * @package Stourweb.Taglib * @copyright Copyright (c) 2007 - 2011, Stourweb, Inc. * @link http://www.stourweb.com */ function lib_gettuanlist(&$ctag, &$refObj) { global $dsql; include SLINEDATA . "/webinfo.php"; $attlist = "row|8,flag|,type|top,limit|0,haspic|1,day|"; FillAttsDefault($ctag->CAttribute->Items, $attlist); extract($ctag->CAttribute->Items, EXTR_SKIP); $innertext = trim($ctag->GetInnertext()); $revalue = ''; $basefield = 'a.*'; $time = time(); if ($type == 'mdd') { if ($flag == 'recommend') { $orderby = 'order by case when c.displayorder is null then 9999 end,c.displayorder asc,a.addtime desc'; } else { if ($flag == 'hot') { $orderby = 'order by case when c.displayorder is null then 9999 end,c.displayorder asc,a.addtime desc'; } else { if ($flag == 'new') { $orderby = 'order by a.addtime desc'; } else { $orderby = 'order by case when c.displayorder is null then 9999 end,c.displayorder asc,a.addtime desc'; } } } if (isset($refObj->Fields['kindid'])) { $sonid = $refObj->Fields['kindid']; $number = isset($refObj->Fields['shownumber']) ? $refObj->Fields['shownumber'] : $row; //如果模块设置了显示数量则使用. $where = "a.ishidden=0 and FIND_IN_SET({$sonid},a.kindlist) and a.endtime>{$time} and a.starttime<={$time}"; $where .= !empty($haspic) ? " and a.litpic is not null" : ''; $sql = "select {$basefield} from #@__tuan as a left join #@__kindorderlist as c on (c.classid={$sonid} and a.id=c.aid and c.typeid=4) where {$where} {$orderby} limit {$limit},{$number}"; } else { return ''; } } else { if ($type == 'daytime') { if (!empty($day)) { $day = date('Y-m-d', strtotime($day)); $day = strtotime($day); $sql = "select {$basefield} from #@__tuan a where a.ishidden=0 and starttime={$day} and endtime!='' order by a.addtime asc,a.endtime asc limit {$limit},{$row}"; } else { $sql = "select {$basefield} from #@__tuan a where a.ishidden=0 and endtime>{$time} and endtime!='' and a.starttime>{$time} order by a.starttime asc,a.addtime desc limit {$limit},{$row}"; } } else { if ($flag == 'recommend') { $sql = "select {$basefield},b.isjian,b.isding as isding,b.displayorder from #@__tuan a left join #@__allorderlist b on (a.id=b.aid and b.typeid=13) where a.ishidden=0 and a.endtime>{$time} order by case when b.displayorder is null then 9999 end,b.displayorder asc,a.addtime desc limit {$limit},{$row}"; } else { if ($flag == 'new') { $sql = "select {$basefield} from #@__tuan a where a.ishidden=0 and endtime>{$time} and endtime!='' and a.starttime<={$time} order by a.addtime desc limit {$limit},{$row}"; } else { if ($flag == 'hot') { $sql = "select {$basefield} from #@__tuan a where a.ishidden=0 and endtime>{$time} and endtime!='' and a.starttime<={$time} order by a.shownum desc,a.addtime desc limit {$limit},{$row}"; } else { if ($flag == 'byendtime') { $sql = "select {$basefield} from #@__tuan a where a.ishidden=0 and endtime>{$time} and endtime!='' and a.starttime<={$time} order by a.endtime asc,a.addtime desc limit {$limit},{$row}"; } else { if ($flag == 'photo') { $sql = "select {$basefield} from #@__tuan a where a.ishidden=0 and a.litpic !='' and endtime>{$time} and endtime!='' and a.starttime<={$time} order by a.addtime desc limit {$limit},{$row}"; } else { if ($flag == 'nostart') { $sql = "select {$basefield} from #@__tuan a where a.ishidden=0 and endtime>{$time} and endtime!='' and a.starttime>{$time} order by a.starttime asc,a.addtime desc limit {$limit},{$row}"; } else { if ($flag == 'relative') { $kindlist = $refObj->Fields['kindlist']; $maxkindid = get_exist_kind($kindlist); //最后一级. $maxkindid = empty($maxkindid) ? 0 : $maxkindid; $where = " FIND_IN_SET({$maxkindid},a.kindlist) "; //排序顺序:置顶+tag关联》排序+ tag关联》最新更新+tag关联 $sql = "select a.* from #@__tuan a where find_in_set('{$attrid}',a.attrid) where a.ishidden=0 and endtime>{$time} and endtime!='' and a.starttime<={$time} order by a.displayorder asc,a.modtime desc,a.addtime desc limit {$limit},{$row} "; } else { if ($type == 'theme') { $themeid = $refObj->Fields['themeid']; if (empty($themeid)) { return ''; } $sql = "select a.* from #@__tuan a where a.ishidden=0 and FIND_IN_SET({$themeid},a.themelist) and endtime>{$time} and endtime!='' and a.starttime<={$time} order by a.displayorder asc,a.modtime desc,a.addtime desc limit {$limit},{$row}"; } else { return ''; } } } } } } } } } } $dsql->SetQuery($sql); $dsql->Execute(); $ctp = new STTagParse(); $ctp->SetNameSpace("field", "[", "]"); $ctp->LoadSource($innertext); $GLOBALS['autoindex'] = 0; while ($row = $dsql->GetArray()) { $GLOBALS['autoindex']++; $webroot = GetWebURLByWebid($row['webid']); $sonid = $refObj->Fields['sonid']; $row['url'] = $webroot . "/tuan/show_{$row['aid']}.html"; $row['litpic'] = getUploadFileUrl($row['litpic']); $row['lit240'] = str_replace('litimg', 'lit240', $row['litpic']); $row['lit160'] = str_replace('litimg', 'lit160', $row['litpic']); $row['attrname'] = getTuanAttrname($row['attrid']); $row['attrnamearr'] = getTuanAttrname($row['attrid'], true); $row['destname'] = Helper_Archive::getBelongDestName($row['kindlist']); //所属目的地 $row['destid'] = array_remove_value($row['kindlist']); $row['discount'] = floor($row['price'] / $row['sellprice'] * 100) / 10; //折扣 $row['booknum'] = Helper_Archive::getSellNum($row['id'], 13) + $row['virtualnum']; $row['satisfyscore'] = Helper_Archive::getSatisfyScore($row['id'], 13); //满意度 $row['price'] = $row['price']; foreach ($ctp->CTags as $tagid => $ctag) { if ($ctag->GetName() == 'array') { $ctp->Assign($tagid, $row); } else { if (isset($row[$ctag->GetName()])) { $ctp->Assign($tagid, $row[$ctag->GetName()]); } } } $revalue .= $ctp->GetResult(); } return $revalue; }