function GetTotalArc($tid) { if (!is_array($this->CatalogNums)) { $this->UpdateCatalogNum(); } if (!isset($this->CatalogNums[$tid])) { return 0; } else { $totalnum = 0; $ids = explode(',', GetSonIds($tid)); foreach ($ids as $tid) { if (isset($this->CatalogNums[$tid])) { $totalnum += $this->CatalogNums[$tid]; } } return $totalnum; } }
require_once dirname(__FILE__) . "/config.php"; require_once DEDEINC . "/arc.caicai.class.php"; $sort = trim(empty($sort) ? 'lastpost' : preg_replace("#[^0-9a-z]#i", '', $sort)); if (!preg_match("#^(scores|badpost|goodpost)\$#", $sort)) { $sort = 'lastpost'; } $tid = isset($tid) ? intval($tid) : 0; $t1 = ExecTime(); $typequery = ''; $menutype = 'mydede'; $menutype_son = 'cc'; //获取栏目的子类、交叉分类 if ($tid != 0) { $arr = $dsql->GetOne("SELECT * FROM `#@__arctype` WHERE id='{$tid}' AND corank=0 "); if ($cfg_list_son == 'Y') { $CrossID = GetSonIds($tid, $arr['channeltype']); } else { $CrossID = $tid; } if ($arr['cross'] > 0) { $selquery = ''; if ($arr['cross'] == 1) { $selquery = "SELECT id,topid FROM `#@__arctype` WHERE typename LIKE '{$arr['typename']}' AND id<>'{$tid}' AND topid<>'{$tid}' "; } else { $arr['crossid'] = preg_replace("#[^0-9,]#", '', trim($arr['crossid'])); if ($arr['crossid'] != '') { $selquery = "SELECT id,topid FROM `#@__arctype` WHERE id in('{$arr['crossid']}') AND id<>'{$tid}' AND topid<>'{$tid}' "; } } if ($selquery != '') { $dsql->SetQuery($selquery);
function CountRecord() { $this->TotalResult = -1; if (isset($GLOBALS['TotalResult'])) { $this->TotalResult = $GLOBALS['TotalResult']; } if (isset($GLOBALS['PageNo'])) { $this->PageNo = $GLOBALS['PageNo']; } else { $this->PageNo = 1; } $ksql = $this->GetKeywordSql(); $ksqls = array(); if ($this->StartTime > 0) { $ksqls[] = " arc.senddate>'" . $this->StartTime . "' "; } if ($this->TypeID > 0) { $ksqls[] = " typeid in (" . GetSonIds($this->TypeID) . ") "; } if ($this->ChannelType > 0) { $ksqls[] = " arc.channel='" . $this->ChannelType . "'"; } if ($this->mid > 0) { $ksqls[] = " arc.mid = '" . $this->mid . "'"; } $ksqls[] = " arc.arcrank > -1 "; $this->AddSql = $ksql == '' ? join(' And ', $ksqls) : join(' And ', $ksqls) . " And ({$ksql})"; $cquery = "Select * From `#@__archives` arc where " . $this->AddSql; $hascode = md5($cquery); $row = $this->dsql->GetOne("Select * From `#@__arccache` where `md5hash`='" . $hascode . "' "); $uptime = time(); if (is_array($row) && time() - $row['uptime'] < 3600 * 24) { $aids = explode(',', $row['cachedata']); $this->TotalResult = count($aids) - 1; $this->RsFields = $row['cachedata']; } else { if ($this->TotalResult == -1) { $this->dsql->SetQuery($cquery); $this->dsql->execute(); $aidarr = array(); $aidarr[] = 0; while ($row = $this->dsql->getarray()) { $aidarr[] = $row['id']; } $nums = count($aidarr) - 1; $aids = implode(',', $aidarr); $delete = "Delete From `#@__arccache` where uptime<" . (time() - 3600 * 24); $this->dsql->SetQuery($delete); $this->dsql->executenonequery(); $insert = "insert into `#@__arccache` (`md5hash`, `uptime`, `cachedata`)\r\n\t\t\t\t values('{$hascode}', '{$uptime}', '{$aids}')"; $this->dsql->SetQuery($insert); $this->dsql->executenonequery(); $this->TotalResult = $nums; } } }
} //更改子栏目属性 if (!empty($upnext)) { $upquery = "Update `#@__arctype` set\r\n issend='{$issend}',\r\n defaultname='{$defaultname}',\r\n channeltype='{$channeltype}',\r\n tempindex='{$tempindex}',\r\n templist='{$templist}',\r\n temparticle='{$temparticle}',\r\n namerule='{$namerule}',\r\n namerule2='{$namerule2}',\r\n ishidden='{$ishidden}'\r\n where 1=1 And {$slinks}"; if (!$dsql->ExecuteNoneQuery($upquery)) { ShowMsg("更改当前栏目成功,但更改下级栏目属性时失败!", "-1"); exit; } } UpDateCatCache(); ShowMsg("成功更改一个分类!", "catalog_main.php"); exit; } else { if ($dopost == "savetime") { $uptopsql = ''; $slinks = " id in (" . GetSonIds($id) . ")"; //顶级栏目二级域名根目录处理 if ($topid == 0 && $moresite == 1) { $sitepath = $typedir; $uptopsql = " ,sitepath='{$sitepath}' "; if (ereg(',', $slinks)) { $upquery = "Update `#@__arctype` set sitepath='{$sitepath}' where {$slinks}"; $dsql->ExecuteNoneQuery($upquery); } } //如果选择子栏目可投稿,更新顶级栏目为可投稿 if ($topid > 0 && $issend == 1) { $dsql->ExecuteNoneQuery("Update `#@__arctype` set issend='{$issend}' where id='{$topid}'; "); } $upquery = "Update `#@__arctype` set\r\n issend='{$issend}',\r\n sortrank='{$sortrank}',\r\n typedir='{$typedir}',\r\n typename='{$typename}',\r\n \t isdefault='{$isdefault}',\r\n defaultname='{$defaultname}',\r\n ispart='{$ispart}',\r\n corank='{$corank}' {$uptopsql}\r\n\twhere id='{$id}' "; if (!$dsql->ExecuteNoneQuery($upquery)) {
/** * 动态模板channel标签 * * @version $Id: plus_ask.php 1 13:58 2010年7月5日Z tianya $ * @package DedeCMS.Tpllib * @copyright Copyright (c) 2007 - 2010, DesDev, Inc. * @license http://help.dedecms.com/usersguide/license.html * @link http://www.dedecms.com */ function plus_channel(&$atts, &$refObj, &$fields) { global $dsql, $_vars; $attlist = "typeid=0,reid=0,row=100,type=son,currentstyle="; FillAtts($atts, $attlist); FillFields($atts, $fields, $refObj); extract($atts, EXTR_OVERWRITE); $line = empty($row) ? 100 : $row; $reArray = array(); $reid = 0; $topid = 0; //如果属性里没指定栏目id,从引用类里获取栏目信息 if (empty($typeid)) { if (isset($refObj->TypeLink->TypeInfos['id'])) { $typeid = $refObj->TypeLink->TypeInfos['id']; $reid = $refObj->TypeLink->TypeInfos['reid']; $topid = $refObj->TypeLink->TypeInfos['topid']; } else { $typeid = 0; } } else { $row2 = $dsql->GetOne("SELECT * FROM `#@__arctype` WHERE id='{$typeid}' "); $typeid = $row2['id']; $reid = $row2['reid']; $topid = $row2['topid']; $issetInfos = true; } if ($type == '' || $type == 'sun') { $type = 'son'; } if ($type == 'top') { $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath\r\n FROM `#@__arctype` WHERE reid=0 AND ishidden<>1 ORDER BY sortrank ASC LIMIT 0, {$line} "; } else { if ($type == 'son') { if ($typeid == 0) { return $reArray; } $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath\r\n FROM `#@__arctype` WHERE reid='{$typeid}' AND ishidden<>1 ORDER BY sortrank ASC LIMIT 0, {$line} "; } else { if ($type == 'self') { if ($reid == 0) { return $reArray; } $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath\r\n FROM `#@__arctype` WHERE reid='{$reid}' AND ishidden<>1 ORDER BY sortrank ASC LIMIT 0, {$line} "; } } } //检查是否有子栏目,并返回rel提示(用于二级菜单) $needRel = true; if (empty($sql)) { return $reArray; } $dsql->Execute('me', $sql); $totalRow = $dsql->GetTotalRow('me'); //如果用子栏目模式,当没有子栏目时显示同级栏目 if ($type == 'son' && $reid != 0 && $totalRow == 0) { $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath\r\n FROM `#@__arctype` WHERE reid='{$reid}' AND ishidden<>1 ORDER BY sortrank ASC LIMIT 0, {$line} "; $dsql->Execute('me', $sql); } $GLOBALS['autoindex'] = 0; while ($row = $dsql->GetArray()) { $row['currentstyle'] = $row['sonids'] = $row['rel'] = ''; if ($needRel) { $row['sonids'] = GetSonIds($row['id'], 0, false); if ($row['sonids'] == '') { $row['rel'] = ''; } else { $row['rel'] = " rel='dropmenu{$row['id']}'"; } } //处理同级栏目中,当前栏目的样式 if (($row['id'] == $typeid || $topid == $row['id'] && $type == 'top') && $currentstyle != '') { $row['currentstyle'] = $currentstyle; } $row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row); $reArray[] = $row; $GLOBALS['autoindex']++; } //Loop for $i $dsql->FreeResult(); return $reArray; }
exit('Error!'); } require_once dirname(__FILE__) . "/include/datalistcp.class.php"; $row = $dsql->GetOne("Select typename,ishidden From `#@__arctype` where id='{$id}' "); if ($row['ishidden'] == 1) { exit; } $typename = ConvertStr($row['typename']); //当前栏目下级分类 $dsql->SetQuery("Select id,typename From `#@__arctype` where reid='{$id}' And channeltype=1 And ishidden=0 And ispart<>2 order by sortrank"); $dsql->Execute(); while ($row = $dsql->GetObject()) { $channellistnext .= "<a href='wap.php?action=list&id={$row->id}'>" . ConvertStr($row->typename) . "</a> "; } //栏目内容(分页输出) $sids = GetSonIds($id, 1, true); $varlist = "cfg_webname,typename,channellist,channellistnext,cfg_templeturl"; ConvertCharset($varlist); $dlist = new DataListCP(); $dlist->SetTemplet($cfg_templets_dir . "/wap/list.wml"); $dlist->pageSize = 10; $dlist->SetParameter("action", "list"); $dlist->SetParameter("id", $id); $dlist->SetSource("Select id,title,pubdate,click From `#@__archives` where typeid in({$sids}) And arcrank=0 order by id desc"); $dlist->Display(); exit; } else { if ($action == 'article') { //文档信息 $query = "\r\n\t Select tp.typename,tp.ishidden,arc.typeid,arc.title,arc.arcrank,arc.pubdate,arc.writer,arc.click,addon.body From `#@__archives` arc \r\n\t left join `#@__arctype` tp on tp.id=arc.typeid\r\n\t left join `#@__addonarticle` addon on addon.aid=arc.id\r\n\t where arc.id='{$id}'\r\n\t"; $row = $dsql->GetOne($query, MYSQL_ASSOC);
<?php require_once dirname(__FILE__) . '/config.php'; CheckPurview('a_List,a_AccList,a_MyList'); require_once DEDEINC . '/datalistcp.class.php'; if (empty($cid)) { $cid = '0'; $whereSql = ''; } if ($cid != 0) { require_once DEDEINC . '/channelunit.func.php'; $whereSql = " And arc.typeid in (" . GetSonIds($cid) . ")"; } $query = "SELECT arc.*,tp.typename FROM `#@__archives` AS arc\r\nLEFT JOIN #@__arctype AS tp ON arc.typeid = tp.id\r\nWHERE arc.arcrank = '-2' {$whereSql} order by arc.id desc"; $dlist = new DataListCP(); $dlist->SetTemplet(DEDEADMIN . "/templets/recycling.htm"); $dlist->SetSource($query); $dlist->display();
/** * arclist解析函数 * * @access public * @param object $refObj 引用对象 * @param object $ctag 标签 * @param int $typeid 栏目ID * @param int $row 调用行数 * @param int $titlelen 字符串长度 * @param int $infolen 描述信息长度 * @param int $imgwidth 图片宽度 * @param int $imgheight 图片高度 * @param string $listtype 列表类型 * @param string $orderby 排列顺序 * @param string $keyword 关键词 * @param string $innertext 底层模板 * @param int $arcid 文档ID * @param string $idlist ID列表 * @param int $channelid 频道ID * @param string $limit 限制 * @param string $att 属性 * @param string $order 排序类型 * @param int $subday 天内 * @param string $noflag 属性标记 * @param string $tagid 标签id * @param string $pagesize 显示条数 * @param string $isweight 是否需要对检索出来的内容按照weight排序 * @return string */ function lib_arclistDone(&$refObj, &$ctag, $typeid = 0, $row = 10, $col = 1, $titlelen = 30, $infolen = 160, $imgwidth = 120, $imgheight = 90, $listtype = 'all', $orderby = 'default', $keyword = '', $innertext = '', $arcid = 0, $idlist = '', $channelid = 0, $limit = '', $att = '', $order = 'desc', $subday = 0, $noflag = '', $tagid = '', $pagesize = 0, $isweight = 'N') { global $dsql, $PubFields, $cfg_keyword_like, $cfg_index_cache, $_arclistEnv, $envs, $cfg_cache_type, $cfg_digg_update; $row = AttDef($row, 10); $titlelen = AttDef($titlelen, 30); $infolen = AttDef($infolen, 160); $imgwidth = AttDef($imgwidth, 120); $imgheight = AttDef($imgheight, 120); $listtype = AttDef($listtype, 'all'); $arcid = AttDef($arcid, 0); $channelid = AttDef($channelid, 0); $orderby = AttDef($orderby, 'default'); $orderWay = AttDef($order, 'desc'); $subday = AttDef($subday, 0); $pagesize = AttDef($pagesize, 0); $line = $row; $orderby = strtolower($orderby); $keyword = trim($keyword); $innertext = trim($innertext); $tablewidth = $ctag->GetAtt('tablewidth'); $writer = $ctag->GetAtt('writer'); if ($tablewidth == "") { $tablewidth = 100; } if (empty($col)) { $col = 1; } $colWidth = ceil(100 / $col); $tablewidth = $tablewidth . "%"; $colWidth = $colWidth . "%"; //记录属性,以便分页样式统一调用 $attarray = compact("row", "titlelen", 'infolen', 'imgwidth', 'imgheight', 'listtype', 'arcid', 'channelid', 'orderby', 'orderWay', 'subday', 'pagesize', 'orderby', 'keyword', 'tablewidth', 'col', 'colWidth'); if ($innertext == '') { $innertext = GetSysTemplets('part_arclist.htm'); } if (@$ctag->GetAtt('getall') == 1) { $getall = 1; } else { $getall = 0; } if ($att == '0') { $att = ''; } if ($att == '3') { $att = 'f'; } if ($att == '1') { $att = 'h'; } $orwheres = array(); $maintable = '#@__archives'; //按不同情况设定SQL条件 排序方式 if ($idlist == '') { if ($orderby == 'near' && $cfg_keyword_like == 'N') { $keyword = ''; } if ($writer == 'this') { $wmid = isset($refObj->Fields['mid']) ? $refObj->Fields['mid'] : 0; $orwheres[] = " arc.mid = '{$wmid}' "; } //时间限制(用于调用最近热门文章、热门评论之类),这里的时间只能计算到天,否则缓存功能将无效 if ($subday > 0) { $ntime = gmmktime(0, 0, 0, gmdate('m'), gmdate('d'), gmdate('Y')); $limitday = $ntime - $subday * 24 * 3600; $orwheres[] = " arc.senddate > {$limitday} "; } //关键字条件 if ($keyword != '') { $keyword = str_replace(',', '|', $keyword); $orwheres[] = " CONCAT(arc.title,arc.keywords) REGEXP '{$keyword}' "; } //文档属性 if (preg_match('/commend/i', $listtype)) { $orwheres[] = " FIND_IN_SET('c', arc.flag)>0 "; } if (preg_match('/image/i', $listtype)) { $orwheres[] = " FIND_IN_SET('p', arc.flag)>0 "; } if ($att != '') { $flags = explode(',', $att); for ($i = 0; isset($flags[$i]); $i++) { $orwheres[] = " FIND_IN_SET('{$flags[$i]}', arc.flag)>0 "; } } if (!empty($typeid) && $typeid != 'top') { //指定了多个栏目时,不再获取子类的id if (preg_match('#,#', $typeid)) { //指定了getall属性或主页模板例外 if ($getall == 1 || empty($refObj->Fields['typeid'])) { $typeids = explode(',', $typeid); foreach ($typeids as $ttid) { $typeidss[] = GetSonIds($ttid); } $typeidStr = join(',', $typeidss); $typeidss = explode(',', $typeidStr); $typeidssok = array_unique($typeidss); $typeid = join(',', $typeidssok); } $orwheres[] = " arc.typeid IN ({$typeid}) "; } else { //处理交叉栏目 $CrossID = ''; if ($ctag->GetAtt('cross') == '1') { $arr = $dsql->GetOne("SELECT `id`,`topid`,`cross`,`crossid`,`ispart`,`typename` FROM `#@__arctype` WHERE id='{$typeid}' "); if ($arr['cross'] == 0 || $arr['cross'] == 2 && trim($arr['crossid'] == '')) { $orwheres[] = ' arc.typeid IN (' . GetSonIds($typeid) . ')'; } else { $selquery = ''; if ($arr['cross'] == 1) { $selquery = "SELECT id,topid FROM `#@__arctype` WHERE typename LIKE '{$arr['typename']}' AND id<>'{$typeid}' AND topid<>'{$typeid}' "; } else { $arr['crossid'] = preg_replace('#[^0-9,]#', '', trim($arr['crossid'])); if ($arr['crossid'] != '') { $selquery = "SELECT id,topid FROM `#@__arctype` WHERE id IN('{$arr['crossid']}') AND id<>'{$typeid}' AND topid<>'{$typeid}' "; } } if ($selquery != '') { $dsql->SetQuery($selquery); $dsql->Execute(); while ($arr = $dsql->GetArray()) { $CrossID .= $CrossID == '' ? $arr['id'] : ',' . $arr['id']; } } } } if ($CrossID == '') { $orwheres[] = ' arc.typeid IN (' . GetSonIds($typeid) . ')'; } else { $orwheres[] = ' arc.typeid IN (' . GetSonIds($typeid) . ',' . $CrossID . ')'; } } } //频道ID if (preg_match('#spec#i', $listtype)) { $channelid == -1; } if (!empty($channelid)) { $orwheres[] = " And arc.channel = '{$channelid}' "; } if (!empty($noflag)) { if (!preg_match('#,#', $noflag)) { $orwheres[] = " FIND_IN_SET('{$noflag}', arc.flag)<1 "; } else { $noflags = explode(',', $noflag); foreach ($noflags as $noflag) { if (trim($noflag) == '') { continue; } $orwheres[] = " FIND_IN_SET('{$noflag}', arc.flag)<1 "; } } } $orwheres[] = ' arc.arcrank > -1 '; //由于这个条件会导致缓存功能失去意义,因此取消 //if($arcid!=0) $orwheres[] = " arc.id<>'$arcid' "; } //文档排序的方式 $ordersql = ''; if ($orderby == 'hot' || $orderby == 'click') { $ordersql = " ORDER BY arc.click {$orderWay}"; } else { if ($orderby == 'sortrank' || $orderby == 'pubdate') { $ordersql = " ORDER BY arc.sortrank {$orderWay}"; } else { if ($orderby == 'id') { $ordersql = " ORDER BY arc.id {$orderWay}"; } else { if ($orderby == 'near') { $ordersql = " ORDER BY ABS(arc.id - " . $arcid . ")"; } else { if ($orderby == 'lastpost') { $ordersql = " ORDER BY arc.lastpost {$orderWay}"; } else { if ($orderby == 'scores') { $ordersql = " ORDER BY arc.scores {$orderWay}"; } else { if ($orderby == 'goodpost') { $ordersql = " order by arc.goodpost {$orderWay}"; } else { if ($orderby == 'badpost') { $ordersql = " order by arc.badpost {$orderWay}"; } else { if ($orderby == 'rand') { $ordersql = " ORDER BY rand()"; } else { $ordersql = " ORDER BY arc.sortrank {$orderWay}"; } } } } } } } } } //limit条件 $limit = trim(preg_replace('#limit#is', '', $limit)); if ($limit != '') { $limitsql = " LIMIT {$limit} "; $limitarr = explode(',', $limit); $line = isset($limitarr[1]) ? $limitarr[1] : $line; } else { $limitsql = " LIMIT 0,{$line} "; } $orwhere = ''; if (isset($orwheres[0])) { $orwhere = join(' And ', $orwheres); $orwhere = preg_replace("#^ And#is", '', $orwhere); $orwhere = preg_replace("#And[ ]{1,}And#is", 'And ', $orwhere); } if ($orwhere != '') { $orwhere = " WHERE {$orwhere} "; } //获取附加表信息 $addfield = trim($ctag->GetAtt('addfields')); $addfieldsSql = ''; $addfieldsSqlJoin = ''; if ($addfield != '' && !empty($channelid)) { $row = $dsql->GetOne("SELECT addtable FROM `#@__channeltype` WHERE id='{$channelid}' "); if (isset($row['addtable']) && trim($row['addtable']) != '') { $addtable = trim($row['addtable']); $addfields = explode(',', $addfield); $row['addtable'] = trim($row['addtable']); $addfieldsSql = ",addf." . join(',addf.', $addfields); $addfieldsSqlJoin = " LEFT JOIN `{$addtable}` addf ON addf.aid = arc.id "; } } $query = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,\r\n tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath\r\n {$addfieldsSql}\r\n FROM `{$maintable}` arc LEFT JOIN `#@__arctype` tp on arc.typeid=tp.id\r\n {$addfieldsSqlJoin}\r\n {$orwhere} {$ordersql} {$limitsql}"; //统一hash $taghash = md5(serialize($ctag) . $typeid); $needSaveCache = true; //进行tagid的默认处理 if ($pagesize > 0) { $tagid = AttDef($tagid, 'tag' . $taghash); } if ($idlist != '' || $GLOBALS['_arclistEnv'] == 'index' || $cfg_index_cache == 0) { $needSaveCache = false; } else { $idlist = GetArclistCache($taghash); if ($idlist != '') { $needSaveCache = false; } //如果使用的是内容缓存,直接返回结果 if ($cfg_cache_type == 'content' && $idlist != '') { $idlist = $idlist == 0 ? '' : $idlist; return $idlist; } } //指定了id或使用缓存中的id if ($idlist != '') { $query = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,\r\n tp.moresite,tp.siteurl,tp.sitepath\r\n {$addfieldsSql}\r\n FROM `{$maintable}` arc left join `#@__arctype` tp on arc.typeid=tp.id\r\n {$addfieldsSqlJoin}\r\n WHERE arc.id in({$idlist}) {$ordersql} "; } // 好评差评缓存更新 if ($cfg_digg_update > 0) { if ($orderby == 'goodpost' || $orderby == 'badpost') { $t1 = ExecTime(); $postsql = "SELECT arc.id,arc.goodpost,arc.badpost,arc.scores\r\n\t\t\t\tFROM `{$maintable}` arc\r\n\t\t\t\t{$orwhere} {$ordersql} {$limitsql}"; if ($idlist != '') { $postsql = "SELECT arc.id,arc.goodpost,arc.badpost,arc.scores\r\n\t\t\t\t\t FROM `{$maintable}` arc \r\n\t\t\t\t WHERE arc.id in({$idlist}) {$ordersql} "; } $dsql->SetQuery($query); $dsql->Execute('lit'); while ($row = $dsql->GetArray('lit')) { $prefix = 'diggCache'; $key = 'aid-' . $row['id']; $cacherow = GetCache($prefix, $key); $setsql = array(); if (!empty($cacherow['scores']) && $cacherow['scores'] != $row['scores']) { $setsql[] = "scores = {$cacherow['scores']}"; } if (!empty($cacherow['goodpost']) && $cacherow['goodpost'] != $row['goodpost']) { $setsql[] = "goodpost = {$cacherow['goodpost']}"; } if (!empty($cacherow['badpost']) && $cacherow['badpost'] != $row['badpost']) { $setsql[] = "badpost = {$cacherow['badpost']}"; } $setsql = implode(',', $setsql); $sql = "UPDATE `{$maintable}` SET {$setsql} WHERE id='{$row['id']}'"; if (!empty($setsql)) { $dsql->ExecuteNoneQuery($sql); } } //echo ExecTime()-$t1; } } $dsql->SetQuery($query); $dsql->Execute('al'); //$row = $dsql->GetArray("al"); $artlist = ''; if ($pagesize > 0) { $artlist .= " <div id='{$tagid}'>\r\n"; } if ($col > 1) { $artlist = "<table width='{$tablewidth}' border='0' cellspacing='0' cellpadding='0'>\r\n"; } $dtp2 = new DedeTagParse(); $dtp2->SetNameSpace('field', '[', ']'); $dtp2->LoadString($innertext); $GLOBALS['autoindex'] = 0; $ids = array(); $orderWeight = array(); for ($i = 0; $i < $line; $i++) { if ($col > 1) { $artlist .= "<tr>\r\n"; } for ($j = 0; $j < $col; $j++) { if ($col > 1) { $artlist .= " <td width='{$colWidth}'>\r\n"; } if ($row = $dsql->GetArray("al")) { $ids[] = $row['id']; //处理一些特殊字段 $row['info'] = $row['infos'] = cn_substr($row['description'], $infolen); $row['id'] = $row['id']; if ($row['corank'] > 0 && $row['arcrank'] == 0) { $row['arcrank'] = $row['corank']; } $row['filename'] = $row['arcurl'] = GetFileUrl($row['id'], $row['typeid'], $row['senddate'], $row['title'], $row['ismake'], $row['arcrank'], $row['namerule'], $row['typedir'], $row['money'], $row['filename'], $row['moresite'], $row['siteurl'], $row['sitepath']); $row['typeurl'] = GetTypeUrl($row['typeid'], $row['typedir'], $row['isdefault'], $row['defaultname'], $row['ispart'], $row['namerule2'], $row['moresite'], $row['siteurl'], $row['sitepath']); if ($row['litpic'] == '-' || $row['litpic'] == '') { $row['litpic'] = $GLOBALS['cfg_cmspath'] . '/images/defaultpic.gif'; } if (!preg_match("#^http:\\/\\/#i", $row['litpic']) && $GLOBALS['cfg_multi_site'] == 'Y') { $row['litpic'] = $GLOBALS['cfg_mainsite'] . $row['litpic']; } $row['picname'] = $row['litpic']; $row['stime'] = GetDateMK($row['pubdate']); $row['typelink'] = "<a href='" . $row['typeurl'] . "'>" . $row['typename'] . "</a>"; $row['image'] = "<img src='" . $row['picname'] . "' border='0' width='{$imgwidth}' height='{$imgheight}' alt='" . preg_replace("#['><]#", "", $row['title']) . "'>"; $row['imglink'] = "<a href='" . $row['filename'] . "'>" . $row['image'] . "</a>"; $row['fulltitle'] = $row['title']; $row['title'] = cn_substr($row['title'], $titlelen); if ($row['color'] != '') { $row['title'] = "<font color='" . $row['color'] . "'>" . $row['title'] . "</font>"; } if (preg_match('#b#', $row['flag'])) { $row['title'] = "<strong>" . $row['title'] . "</strong>"; } //$row['title'] = "<b>".$row['title']."</b>"; $row['textlink'] = "<a href='" . $row['filename'] . "'>" . $row['title'] . "</a>"; $row['plusurl'] = $row['phpurl'] = $GLOBALS['cfg_phpurl']; $row['memberurl'] = $GLOBALS['cfg_memberurl']; $row['templeturl'] = $GLOBALS['cfg_templeturl']; if (is_array($dtp2->CTags)) { foreach ($dtp2->CTags as $k => $ctag) { if ($ctag->GetName() == 'array') { //传递整个数组,在runphp模式中有特殊作用 $dtp2->Assign($k, $row); } else { if (isset($row[$ctag->GetName()])) { $dtp2->Assign($k, $row[$ctag->GetName()]); } else { $dtp2->Assign($k, ''); } } } $GLOBALS['autoindex']++; } if ($pagesize > 0) { if ($GLOBALS['autoindex'] <= $pagesize) { $liststr = $dtp2->GetResult(); $artlist .= $liststr . "\r\n"; } else { $artlist .= ""; $orderWeight[] = array('weight' => $row['weight'], 'arclist' => ''); } } else { $liststr = $dtp2->GetResult(); $artlist .= $liststr . "\r\n"; } $orderWeight[] = array('weight' => $row['weight'], 'arclist' => $liststr); } else { $artlist .= ''; } // 进行判断,如果启用排序则内容输出为重新排序后的内容 // var_dump($isweight=='y' && count($orderWeight) == $line); $isweight = strtolower($isweight); if ($isweight == 'y') { $artlist = ''; $orderWeight = list_sort_by($orderWeight, 'weight', 'asc'); foreach ($orderWeight as $vv) { $artlist .= $vv['arclist']; } } if ($col > 1) { $artlist .= " </td>\r\n"; } } //Loop Col if ($col > 1) { $i += $col - 1; } if ($col > 1) { $artlist .= " </tr>\r\n"; } } //loop line if ($col > 1) { $artlist .= " </table>\r\n"; } $dsql->FreeResult("al"); $idsstr = join(',', $ids); //分页特殊处理 if ($pagesize > 0) { $artlist .= " </div>\r\n"; $row = $dsql->GetOne("SELECT tagid FROM #@__arcmulti WHERE tagid='{$tagid}'"); $uptime = time(); $attstr = addslashes(serialize($attarray)); $innertext = addslashes($innertext); if (!is_array($row)) { $query = "\r\n INSERT INTO #@__arcmulti(tagid,uptime,innertext,pagesize,arcids,ordersql,addfieldsSql,addfieldsSqlJoin,attstr)\r\n VALUES('{$tagid}','{$uptime}','{$innertext}','{$pagesize}','{$idsstr}','{$ordersql}','{$addfieldsSql}','{$addfieldsSqlJoin}','{$attstr}');\r\n "; $dsql->ExecuteNoneQuery($query); } else { $query = "UPDATE `#@__arcmulti`\r\n SET\r\n uptime='{$uptime}',\r\n innertext='{$innertext}',\r\n pagesize='{$pagesize}',\r\n arcids='{$idsstr}',\r\n ordersql='{$ordersql}',\r\n addfieldsSql='{$addfieldsSql}',\r\n addfieldsSqlJoin='{$addfieldsSqlJoin}',\r\n attstr='{$attstr}'\r\n WHERE tagid='{$tagid}'\r\n "; $dsql->ExecuteNoneQuery($query); } } //保存ID缓存 if ($needSaveCache) { if ($idsstr == '') { $idsstr = '0'; } if ($cfg_cache_type == 'content' && $idsstr != '0') { $idsstr = addslashes($artlist); } $inquery = "INSERT INTO `#@__arccache`(`md5hash`,`uptime`,`cachedata`) VALUES ('" . $taghash . "','" . time() . "', '{$idsstr}'); "; $dsql->ExecuteNoneQuery("DELETE FROM `#@__arccache` WHERE md5hash='" . $taghash . "' "); $dsql->ExecuteNoneQuery($inquery); } return $artlist; }
function lib_arclistDone(&$refObj, &$ctag, $typeid = 0, $row = 10, $col = 1, $titlelen = 30, $infolen = 160, $imgwidth = 120, $imgheight = 90, $listtype = 'all', $orderby = 'default', $keyword = '', $innertext = '', $arcid = 0, $idlist = '', $channelid = 0, $limit = '', $att = '', $order = 'desc', $subday = 0, $noflag = '') { global $dsql, $PubFields, $cfg_keyword_like, $cfg_index_cache, $_arclistEnv, $envs, $cfg_cache_type; $row = AttDef($row, 10); $titlelen = AttDef($titlelen, 30); $infolen = AttDef($infolen, 160); $imgwidth = AttDef($imgwidth, 120); $imgheight = AttDef($imgheight, 120); $listtype = AttDef($listtype, 'all'); $arcid = AttDef($arcid, 0); $channelid = AttDef($channelid, 0); $orderby = AttDef($orderby, 'default'); $orderWay = AttDef($order, 'desc'); $subday = AttDef($subday, 0); $line = $row; $orderby = strtolower($orderby); $keyword = trim($keyword); $innertext = trim($innertext); $tablewidth = $ctag->GetAtt('tablewidth'); $writer = $ctag->GetAtt('writer'); if ($tablewidth == "") { $tablewidth = 100; } if (empty($col)) { $col = 1; } $colWidth = ceil(100 / $col); $tablewidth = $tablewidth . "%"; $colWidth = $colWidth . "%"; if ($innertext == '') { $innertext = GetSysTemplets('part_arclist.htm'); } if (@$ctag->GetAtt('getall') == 1) { $getall = 1; } else { $getall = 0; } if ($att == '0') { $att = ''; } if ($att == '3') { $att = 'f'; } if ($att == '1') { $att = 'h'; } $orwheres = array(); $maintable = '#@__archives'; //按不同情况设定SQL条件 排序方式 if ($idlist == '') { if ($orderby == 'near' && $cfg_keyword_like == 'N') { $keyword = ''; } if ($writer == 'this') { $wmid = isset($refObj->Fields['mid']) ? $refObj->Fields['mid'] : 0; $orwheres[] = " arc.mid = '{$wmid}' "; } //时间限制(用于调用最近热门文章、热门评论之类),这里的时间只能计算到天,否则缓存功能将无效 if ($subday > 0) { $ntime = gmmktime(0, 0, 0, gmdate('m'), gmdate('d'), gmdate('Y')); $limitday = $ntime - $subday * 24 * 3600; $orwheres[] = " arc.senddate > {$limitday} "; } //关键字条件 if ($keyword != '') { $keyword = str_replace(',', '|', $keyword); $orwheres[] = " CONCAT(arc.title,arc.keywords) REGEXP '{$keyword}' "; } //文档属性 if (eregi('commend', $listtype)) { $orwheres[] = " FIND_IN_SET('c', arc.flag)>0 "; } if (eregi('image', $listtype)) { $orwheres[] = " FIND_IN_SET('p', arc.flag)>0 "; } if ($att != '') { $flags = explode(',', $att); for ($i = 0; isset($flags[$i]); $i++) { $orwheres[] = " FIND_IN_SET('{$flags[$i]}', arc.flag)>0 "; } } if (!empty($typeid) && $typeid != 'top') { //指定了多个栏目时,不再获取子类的id if (ereg(',', $typeid)) { //指定了getall属性或主页模板例外 if ($getall == 1 || empty($refObj->Fields['typeid'])) { $typeids = explode(',', $typeid); foreach ($typeids as $ttid) { $typeidss[] = GetSonIds($ttid); } $typeidStr = join(',', $typeidss); $typeidss = explode(',', $typeidStr); $typeidssok = array_unique($typeidss); $typeid = join(',', $typeidssok); } $orwheres[] = " arc.typeid in ({$typeid}) "; } else { //处理交叉栏目 $CrossID = ''; if ($ctag->GetAtt('cross') == '1') { $arr = $dsql->GetOne("Select `id`,`topid`,`cross`,`crossid`,`ispart`,`typename` From `#@__arctype` where id='{$typeid}' "); if ($arr['cross'] == 0 || $arr['cross'] == 2 && trim($arr['crossid'] == '')) { $orwheres[] = ' arc.typeid in (' . GetSonIds($typeid) . ')'; } else { $selquery = ''; if ($arr['cross'] == 1) { $selquery = "Select id,topid From `#@__arctype` where typename like '{$arr['typename']}' And id<>'{$typeid}' And topid<>'{$typeid}' "; } else { $arr['crossid'] = ereg_replace('[^0-9,]', '', trim($arr['crossid'])); if ($arr['crossid'] != '') { $selquery = "Select id,topid From `#@__arctype` where id in('{$arr['crossid']}') And id<>'{$typeid}' And topid<>'{$typeid}' "; } } if ($selquery != '') { $dsql->SetQuery($selquery); $dsql->Execute(); while ($arr = $dsql->GetArray()) { $CrossID .= $CrossID == '' ? $arr['id'] : ',' . $arr['id']; } } } } if ($CrossID == '') { $orwheres[] = ' arc.typeid in (' . GetSonIds($typeid) . ')'; } else { $orwheres[] = ' arc.typeid in (' . GetSonIds($typeid) . ',' . $CrossID . ')'; } } } //频道ID if (eregi('spec', $listtype)) { $channelid == -1; } if (!empty($channelid)) { $orwheres[] = " And arc.channel = '{$channelid}' "; } if (!empty($noflag)) { if (!ereg(',', $noflag)) { $orwheres[] = " FIND_IN_SET('{$noflag}', arc.flag)<1 "; } else { $noflags = explode(',', $noflag); foreach ($noflags as $noflag) { if (trim($noflag) == '') { continue; } $orwheres[] = " FIND_IN_SET('{$noflag}', arc.flag)<1 "; } } } $orwheres[] = ' arc.arcrank > -1 '; //由于这个条件会导致缓存功能失去意义,因此取消 //if($arcid!=0) $orwheres[] = " arc.id<>'$arcid' "; } //文档排序的方式 $ordersql = ''; if ($orderby == 'hot' || $orderby == 'click') { $ordersql = " order by arc.click {$orderWay}"; } else { if ($orderby == 'sortrank' || $orderby == 'pubdate') { $ordersql = " order by arc.sortrank {$orderWay}"; } else { if ($orderby == 'id') { $ordersql = " order by arc.id {$orderWay}"; } else { if ($orderby == 'near') { $ordersql = " order by ABS(arc.id - " . $arcid . ")"; } else { if ($orderby == 'lastpost') { $ordersql = " order by arc.lastpost {$orderWay}"; } else { if ($orderby == 'scores') { $ordersql = " order by arc.scores {$orderWay}"; } else { if ($orderby == 'rand') { $ordersql = " order by rand()"; } else { $ordersql = " order by arc.sortrank {$orderWay}"; } } } } } } } //limit条件 $limit = trim(eregi_replace('limit', '', $limit)); if ($limit != '') { $limitsql = " limit {$limit} "; } else { $limitsql = " limit 0,{$line} "; } $orwhere = ''; if (isset($orwheres[0])) { $orwhere = join(' And ', $orwheres); $orwhere = ereg_replace("^ And", '', $orwhere); $orwhere = ereg_replace("And[ ]{1,}And", 'And ', $orwhere); } if ($orwhere != '') { $orwhere = " where {$orwhere} "; } //获取附加表信息 $addfield = trim($ctag->GetAtt('addfields')); $addfieldsSql = ''; $addfieldsSqlJoin = ''; if ($addfield != '' && !empty($channelid)) { $row = $dsql->GetOne("Select addtable From `#@__channeltype` where id='{$channelid}' "); if (isset($row['addtable']) && trim($row['addtable']) != '') { $addtable = trim($row['addtable']); $addfields = explode(',', $addfield); $row['addtable'] = trim($row['addtable']); $addfieldsSql = ",addf." . join(',addf.', $addfields); $addfieldsSqlJoin = " left join `{$addtable}` addf on addf.aid = arc.id "; } } $query = "Select arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,\r\n\t\ttp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath\r\n\t\t{$addfieldsSql}\r\n\t\tfrom `{$maintable}` arc left join `#@__arctype` tp on arc.typeid=tp.id\r\n\t\t{$addfieldsSqlJoin}\r\n\t\t{$orwhere} {$ordersql} {$limitsql}"; $md5hash = md5($query); $stylehash = $cfg_cache_type == 'content' ? md5($innertext) : ''; $needSaveCache = true; if ($idlist != '' || $GLOBALS['_arclistEnv'] == 'index' || $cfg_index_cache == 0) { $needSaveCache = false; } else { $idlist = GetArclistCache($md5hash, $stylehash); if ($idlist != '') { $needSaveCache = false; } //如果使用的是内容缓存,直接返回结果 if ($cfg_cache_type == 'content' && $idlist != '') { $idlist = $idlist == 0 ? '' : $idlist; return $idlist; } } //指定了id或使用缓存中的id if ($idlist != '') { $query = "Select arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,\r\n\t\t\ttp.moresite,tp.siteurl,tp.sitepath\r\n\t\t\t{$addfieldsSql}\r\n\t\t\t from `{$maintable}` arc left join `#@__arctype` tp on arc.typeid=tp.id\r\n\t\t\t {$addfieldsSqlJoin}\r\n\t\t where arc.id in({$idlist}) {$ordersql} "; } $dsql->SetQuery($query); $dsql->Execute('al'); $artlist = ''; if ($col > 1) { $artlist = "<table width='{$tablewidth}' border='0' cellspacing='0' cellpadding='0'>\r\n"; } $dtp2 = new DedeTagParse(); $dtp2->SetNameSpace('field', '[', ']'); $dtp2->LoadString($innertext); $GLOBALS['autoindex'] = 0; $ids = array(); for ($i = 0; $i < $line; $i++) { if ($col > 1) { $artlist .= "<tr>\r\n"; } for ($j = 0; $j < $col; $j++) { if ($col > 1) { $artlist .= "\t<td width='{$colWidth}'>\r\n"; } if ($row = $dsql->GetArray("al")) { $ids[] = $row['id']; //处理一些特殊字段 $row['info'] = $row['infos'] = cn_substr($row['description'], $infolen); $row['id'] = $row['id']; if ($row['corank'] > 0 && $row['arcrank'] == 0) { $row['arcrank'] = $row['corank']; } $row['filename'] = $row['arcurl'] = GetFileUrl($row['id'], $row['typeid'], $row['senddate'], $row['title'], $row['ismake'], $row['arcrank'], $row['namerule'], $row['typedir'], $row['money'], $row['filename'], $row['moresite'], $row['siteurl'], $row['sitepath']); $row['typeurl'] = GetTypeUrl($row['typeid'], $row['typedir'], $row['isdefault'], $row['defaultname'], $row['ispart'], $row['namerule2'], $row['moresite'], $row['siteurl'], $row['sitepath']); if ($row['litpic'] == '-' || $row['litpic'] == '') { $row['litpic'] = $GLOBALS['cfg_cmspath'] . '/images/defaultpic.gif'; } if (!eregi("^http://", $row['litpic']) && $GLOBALS['cfg_multi_site'] == 'Y') { $row['litpic'] = $GLOBALS['cfg_mainsite'] . $row['litpic']; } $row['picname'] = $row['litpic']; $row['stime'] = GetDateMK($row['pubdate']); $row['typelink'] = "<a href='" . $row['typeurl'] . "'>" . $row['typename'] . "</a>"; $row['image'] = "<img src='" . $row['picname'] . "' border='0' width='{$imgwidth}' height='{$imgheight}' alt='" . ereg_replace("['><]", "", $row['title']) . "'>"; $row['imglink'] = "<a href='" . $row['filename'] . "'>" . $row['image'] . "</a>"; $row['fulltitle'] = $row['title']; $row['title'] = cn_substr($row['title'], $titlelen); if ($row['color'] != '') { $row['title'] = "<font color='" . $row['color'] . "'>" . $row['title'] . "</font>"; } if (ereg('b', $row['flag'])) { $row['title'] = "<strong>" . $row['title'] . "</strong>"; } //$row['title'] = "<b>".$row['title']."</b>"; $row['textlink'] = "<a href='" . $row['filename'] . "'>" . $row['title'] . "</a>"; $row['plusurl'] = $row['phpurl'] = $GLOBALS['cfg_phpurl']; $row['memberurl'] = $GLOBALS['cfg_memberurl']; $row['templeturl'] = $GLOBALS['cfg_templeturl']; if (is_array($dtp2->CTags)) { foreach ($dtp2->CTags as $k => $ctag) { if ($ctag->GetName() == 'array') { //传递整个数组,在runphp模式中有特殊作用 $dtp2->Assign($k, $row); } else { if (isset($row[$ctag->GetName()])) { $dtp2->Assign($k, $row[$ctag->GetName()]); } else { $dtp2->Assign($k, ''); } } } $GLOBALS['autoindex']++; } $artlist .= $dtp2->GetResult() . "\r\n"; } else { $artlist .= ''; } if ($col > 1) { $artlist .= "\t</td>\r\n"; } } //Loop Col if ($col > 1) { $i += $col - 1; } if ($col > 1) { $artlist .= "\t</tr>\r\n"; } } //loop line if ($col > 1) { $artlist .= "\t</table>\r\n"; } $dsql->FreeResult("al"); //保存ID缓存 $idsstr = join(',', $ids); if ($needSaveCache) { if ($idsstr == '') { $idsstr = '0'; } if ($cfg_cache_type == 'content' && $idsstr != '0') { $idsstr = $artlist; } $inquery = "INSERT INTO `#@__arccache`(`md5hash`,`stylehash`,`uptime`,`cachedata`) VALUES ('" . $md5hash . "','{$stylehash}', '" . time() . "', '{$idsstr}'); "; $dsql->ExecuteNoneQuery("Delete From `#@__arccache` where md5hash='" . $md5hash . "' "); $dsql->ExecuteNoneQuery($inquery); } return $artlist; }
/** * 统计列表里的记录 * * @access public * @return void */ function CountRecord() { global $cfg_list_son; //统计数据库记录 $this->TotalResult = -1; if (isset($GLOBALS['TotalResult'])) { $this->TotalResult = $GLOBALS['TotalResult']; } if (isset($GLOBALS['PageNo'])) { $this->PageNo = $GLOBALS['PageNo']; } else { $this->PageNo = 1; } $this->addSql = " arc.arcrank > -1 "; //栏目id条件 if (!empty($this->TypeID)) { if ($cfg_list_son == 'N') { if ($this->CrossID == '') { $this->addSql .= " AND (arc.typeid='" . $this->TypeID . "') "; } else { $this->addSql .= " AND (arc.typeid IN({$this->CrossID},{$this->TypeID})) "; } } else { if ($this->CrossID == '') { $this->addSql .= " AND (arc.typeid IN (" . GetSonIds($this->TypeID, $this->Fields['channeltype']) . ") ) "; } else { $this->addSql .= " AND (arc.typeid IN (" . GetSonIds($this->TypeID, $this->Fields['channeltype']) . ",{$this->CrossID}) ) "; } } } $naddQuery = ''; //地区与信息类型条件 if (count($this->searchArr) > 0) { if (!empty($this->searchArr['nativeplace'])) { if ($this->searchArr['nativeplace'] % 500 == 0) { $naddQuery .= " AND arc.nativeplace >= '{$this->searchArr['nativeplace']}' AND arc.nativeplace < '" . ($this->searchArr['nativeplace'] + 500) . "'"; } else { $naddQuery .= "AND arc.nativeplace = '{$this->searchArr['nativeplace']}'"; } } if (!empty($this->searchArr['infotype'])) { if ($this->searchArr['infotype'] % 500 == 0) { $naddQuery .= " AND arc.infotype >= '{$this->searchArr['infotype']}' AND arc.infotype < '" . ($this->searchArr['infotype'] + 500) . "'"; } else { $naddQuery .= "AND arc.infotype = '{$this->searchArr['infotype']}'"; } } if (!empty($this->searchArr['keyword'])) { $naddQuery .= "AND arc.title like '%{$this->searchArr['keyword']}%' "; } } if ($naddQuery != '') { $this->sAddTable = true; $this->addSql .= $naddQuery; } if ($this->TotalResult == -1) { if ($this->sAddTable) { $cquery = "SELECT COUNT(*) AS dd FROM `{$this->AddTable}` arc WHERE " . $this->addSql; } else { $cquery = "SELECT COUNT(*) AS dd FROM `#@__arctiny` arc WHERE " . $this->addSql; } $row = $this->dsql->GetOne($cquery); if (is_array($row)) { $this->TotalResult = $row['dd']; } else { $this->TotalResult = 0; } } //初始化列表模板,并统计页面总数 $tempfile = $GLOBALS['cfg_basedir'] . $GLOBALS['cfg_templets_dir'] . "/" . $this->TypeLink->TypeInfos['templist']; $tempfile = str_replace("{tid}", $this->TypeID, $tempfile); $tempfile = str_replace("{cid}", $this->ChannelUnit->ChannelInfos['nid'], $tempfile); if (!file_exists($tempfile)) { $tempfile = $GLOBALS['cfg_basedir'] . $GLOBALS['cfg_templets_dir'] . "/" . $GLOBALS['cfg_df_style'] . "/list_default_sg.htm"; } if (!file_exists($tempfile) || !is_file($tempfile)) { echo "模板文件不存在,无法解析文档!"; exit; } $this->dtp->LoadTemplate($tempfile); $ctag = $this->dtp->GetTag("page"); if (!is_object($ctag)) { $ctag = $this->dtp->GetTag("list"); } if (!is_object($ctag)) { $this->PageSize = 20; } else { if ($ctag->GetAtt('pagesize') != '') { $this->PageSize = $ctag->GetAtt('pagesize'); } else { $this->PageSize = 20; } } $this->TotalPage = ceil($this->TotalResult / $this->PageSize); }
<?php /** * 回收站 * * @version $Id: recycling.php 1 15:46 2010年7月20日Z tianya $ * @package DedeCMS.Administrator * @copyright Copyright (c) 2007 - 2010, DesDev, Inc. * @license http://help.dedecms.com/usersguide/license.html * @link http://www.dedecms.com */ require_once dirname(__FILE__) . '/config.php'; CheckPurview('a_List,a_AccList,a_MyList'); require_once DEDEINC . '/datalistcp.class.php'; if (empty($cid)) { $cid = '0'; $whereSql = ''; } if ($cid != 0) { require_once DEDEINC . '/channelunit.func.php'; $whereSql = " AND arc.typeid IN (" . GetSonIds($cid) . ")"; } $query = "SELECT arc.*,tp.typename FROM `#@__archives` AS arc\nLEFT JOIN #@__arctype AS tp ON arc.typeid = tp.id\nWHERE arc.arcrank = '-2' {$whereSql} order by arc.id desc"; $dlist = new DataListCP(); $dlist->SetTemplet(DEDEADMIN . "/templets/recycling.htm"); $dlist->SetSource($query); $dlist->display();
function lib_channel(&$ctag, &$refObj) { global $dsql; $attlist = "typeid|0,reid|0,row|100,col|1,type|son,currentstyle|,cacheid|"; FillAttsDefault($ctag->CAttribute->Items, $attlist); extract($ctag->CAttribute->Items, EXTR_SKIP); $innertext = $ctag->GetInnerText(); $line = empty($row) ? 100 : $row; $likeType = ''; //读取固定的缓存块 $cacheid = trim($cacheid); if ($cacheid != '') { $likeType = GetCacheBlock($cacheid); if ($likeType != '') { return $likeType; } } $reid = 0; $topid = 0; //如果属性里没指定栏目id,从引用类里获取栏目信息 if (empty($typeid)) { if (isset($refObj->TypeLink->TypeInfos['id'])) { $typeid = $refObj->TypeLink->TypeInfos['id']; $reid = $refObj->TypeLink->TypeInfos['reid']; $topid = $refObj->TypeLink->TypeInfos['topid']; } else { $typeid = 0; } } else { $row2 = $dsql->GetOne("Select * From `#@__arctype` where id='{$typeid}' "); $typeid = $row2['id']; $reid = $row2['reid']; $topid = $row2['topid']; $issetInfos = true; } if ($type == '' || $type == 'sun') { $type = 'son'; } if ($innertext == '') { $innertext = GetSysTemplets("channel_list.htm"); } if ($type == 'top') { $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath\r\n\t\t From `#@__arctype` where reid=0 And ishidden<>1 order by sortrank asc limit 0, {$line} "; } else { if ($type == 'son') { if ($typeid == 0) { return ''; } $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath\r\n\t\t From `#@__arctype` where reid='{$typeid}' And ishidden<>1 order by sortrank asc limit 0, {$line} "; } else { if ($type == 'self') { if ($reid == 0) { return ''; } $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath\r\n\t\t\tFrom `#@__arctype` where reid='{$reid}' And ishidden<>1 order by sortrank asc limit 0, {$line} "; } } } //And id<>'$typeid' $needRel = false; $dtp2 = new DedeTagParse(); $dtp2->SetNameSpace('field', '[', ']'); $dtp2->LoadSource($innertext); //检查是否有子栏目,并返回rel提示(用于二级菜单) if (ereg(':rel', $innertext)) { $needRel = true; } if (empty($sql)) { return ''; } $dsql->SetQuery($sql); $dsql->Execute(); $totalRow = $dsql->GetTotalRow(); //如果用子栏目模式,当没有子栏目时显示同级栏目 if ($type == 'son' && $reid != 0 && $totalRow == 0) { $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath\r\n\t\t\tFrom `#@__arctype` where reid='{$reid}' And ishidden<>1 order by sortrank asc limit 0, {$line} "; $dsql->SetQuery($sql); $dsql->Execute(); } $GLOBALS['autoindex'] = 0; for ($i = 0; $i < $line; $i++) { if ($col > 1) { $likeType .= "<dl>\r\n"; } for ($j = 0; $j < $col; $j++) { if ($col > 1) { $likeType .= "<dd>\r\n"; } if ($row = $dsql->GetArray()) { $row['sonids'] = $row['rel'] = ''; if ($needRel) { $row['sonids'] = GetSonIds($row['id'], 0, false); if ($row['sonids'] == '') { $row['rel'] = ''; } else { $row['rel'] = " rel='dropmenu{$row['id']}'"; } } //处理同级栏目中,当前栏目的样式 if (($row['id'] == $typeid || $topid == $row['id'] && $type == 'top') && $currentstyle != '') { $linkOkstr = $currentstyle; $row['typelink'] = GetOneTypeUrlA($row); $linkOkstr = str_replace("~rel~", $row['rel'], $linkOkstr); $linkOkstr = str_replace("~id~", $row['id'], $linkOkstr); $linkOkstr = str_replace("~typelink~", $row['typelink'], $linkOkstr); $linkOkstr = str_replace("~typename~", $row['typename'], $linkOkstr); $likeType .= $linkOkstr; } else { $row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row); if (is_array($dtp2->CTags)) { foreach ($dtp2->CTags as $tagid => $ctag) { if (isset($row[$ctag->GetName()])) { $dtp2->Assign($tagid, $row[$ctag->GetName()]); } } } $likeType .= $dtp2->GetResult(); } } if ($col > 1) { $likeType .= "</dd>\r\n"; } $GLOBALS['autoindex']++; } //Loop Col if ($col > 1) { $i += $col - 1; $likeType .= "\t</dl>\r\n"; } } //Loop for $i $dsql->FreeResult(); if ($cacheid != '') { WriteCacheBlock($cacheid, $likeType); } return $likeType; }
$flagsArr .= $frow['att'] == $flag ? "<option value='{$frow['att']}' selected>{$frow['attname']}</option>\r\n" : "<option value='{$frow['att']}'>{$frow['attname']}</option>\r\n"; } if (!empty($userCatalogSql)) { $whereSql .= " AND " . $userCatalogSql; } if (!empty($mid)) { $whereSql .= " AND arc.mid = '{$mid}' "; } if ($keyword != '') { $whereSql .= " AND ( CONCAT(arc.title,arc.writer) LIKE '%{$keyword}%') "; } if ($flag != '') { $whereSql .= " AND FIND_IN_SET('{$flag}', arc.flag) "; } if ($cid != 0) { $whereSql .= ' AND arc.typeid IN (' . GetSonIds($cid) . ')'; } if ($arcrank != '') { $whereSql .= " AND arc.arcrank = '{$arcrank}' "; $CheckUserSend = "<input type='button' class='coolbg np' onClick=\"location='catalog_do.php?cid=" . $cid . "&dopost=listArchives&gurl=content_list.php';\" value='所有文档' />"; } else { $CheckUserSend = "<input type='button' class='coolbg np' onClick=\"location='catalog_do.php?cid=" . $cid . "&dopost=listArchives&arcrank=-1&gurl=content_list.php';\" value='稿件审核' />"; } $orderby = empty($orderby) ? 'id' : preg_replace("#[^a-z0-9]#", "", $orderby); $orderbyField = 'arc.' . $orderby; $query = "SELECT arc.id,arc.typeid,arc.senddate,arc.flag,arc.ismake,\narc.channel,arc.arcrank,arc.click,arc.title,arc.color,arc.litpic,arc.pubdate,arc.mid\nFROM `#@__archives` arc \n where arc.mid={$adminid}\nORDER BY {$orderbyField} DESC"; if (empty($f) || !preg_match("#form#", $f)) { $f = 'form1.arcid1'; } //初始化 $dlist = new DataListCP();
function GetList($limitstart, $ismake = 1) { global $cfg_list_son, $cfg_needsontype; $col = $this->ListObj->GetAtt('col'); if (empty($col)) { $col = 1; } $titlelen = $this->ListObj->GetAtt('titlelen'); $infolen = $this->ListObj->GetAtt('infolen'); $imgwidth = $this->ListObj->GetAtt('imgwidth'); $imgheight = $this->ListObj->GetAtt('imgheight'); $titlelen = AttDef($titlelen, 60); $infolen = AttDef($infolen, 250); $imgwidth = AttDef($imgwidth, 80); $imgheight = AttDef($imgheight, 80); $innertext = trim($this->ListObj->GetInnerText()); if (empty($innertext)) { $innertext = GetSysTemplets("list_fulllist.htm"); } $tablewidth = 100; if ($col == "") { $col = 1; } $colWidth = ceil(100 / $col); $tablewidth = $tablewidth . "%"; $colWidth = $colWidth . "%"; //按不同情况设定SQL条件 $orwhere = " arc.arcrank > -1 And channel>-1 "; $typeid = $this->ListObj->GetAtt('typeid'); $subday = $this->ListObj->GetAtt('subday'); $listtype = $this->ListObj->GetAtt('type'); $att = $this->ListObj->GetAtt('att'); $channelid = $this->ListObj->GetAtt('channel'); if (empty($channelid)) { $channelid = 0; } //是否指定栏目条件 if (!empty($typeid)) { if ($cfg_list_son == 'N') { $orwhere .= " And (arc.typeid='{$typeid}') "; } else { $orwhere .= " And arc.typeid in (" . GetSonIds($typeid, 0, true) . ") "; } } //自定义属性条件 if ($att != '') { $flags = explode(',', $att); for ($i = 0; isset($flags[$i]); $i++) { $orwhere .= " AND FIND_IN_SET('{$flags[$i]}',flag)>0 "; } } //文档的频道模型 if ($channelid > 0 && !eregi("spec", $listtype)) { $orwhere .= " And arc.channel = '{$channelid}' "; } //推荐文档 带缩略图 专题文档 if (eregi("commend", $listtype)) { $orwhere .= " And FIND_IN_SET('c',flag) > 0 "; } if (eregi("image", $listtype)) { $orwhere .= " And arc.litpic <> '' "; } if (eregi("spec", $listtype) || $channelid == -1) { $orwhere .= " And arc.channel = -1 "; } if (!empty($subday)) { $starttime = time() - $subday * 86400; $orwhere .= " And arc.senddate > {$starttime} "; } $keyword = $this->ListObj->GetAtt('keyword'); if (!empty($keyword)) { $orwhere .= " And CONCAT(arc.title,arc.keywords) REGEXP '{$keyword}' "; } $orderby = $this->ListObj->GetAtt('orderby'); $orderWay = $this->ListObj->GetAtt('orderway'); //排序方式 $ordersql = ""; if ($orderby == "senddate") { $ordersql = " order by arc.senddate {$orderWay}"; } else { if ($orderby == "pubdate") { $ordersql = " order by arc.pubdate {$orderWay}"; } else { if ($orderby == "id") { $ordersql = " order by arc.id {$orderWay}"; } else { if ($orderby == "hot" || $orderby == "click") { $ordersql = " order by arc.click {$orderWay}"; } else { if ($orderby == "lastpost") { $ordersql = " order by arc.lastpost {$orderWay}"; } else { if ($orderby == "scores") { $ordersql = " order by arc.scores {$orderWay}"; } else { if ($orderby == "rand") { $ordersql = " order by rand()"; } else { $ordersql = " order by arc.sortrank {$orderWay}"; } } } } } } } //获得附加表的相关信息 $addField = ""; $addJoin = ""; if (is_object($this->ChannelUnit)) { $addtable = $this->ChannelUnit->ChannelInfos['addtable']; if ($addtable != "") { $addJoin = " left join {$addtable} on arc.id = " . $addtable . ".aid "; $addField = ""; $fields = explode(",", $this->ChannelUnit->ChannelInfos['listfields']); foreach ($fields as $k => $v) { $nfields[$v] = $k; } foreach ($this->ChannelUnit->ChannelFields as $k => $arr) { if (isset($nfields[$k])) { if (!empty($arr['rename'])) { $addField .= "," . $addtable . "." . $k . " as " . $arr['rename']; } else { $addField .= "," . $addtable . "." . $k; } } } } } $query = "Select arc.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,\r\n\t\ttp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath\r\n\t\t{$addField}\r\n\t\tfrom {$this->maintable} arc\r\n\t\tleft join #@__arctype tp on arc.typeid=tp.id\r\n\t\t{$addJoin}\r\n\t\twhere {$orwhere} {$ordersql} limit {$limitstart}," . $this->PageSize; $this->dsql->SetQuery($query); $this->dsql->Execute("al"); $artlist = ""; if ($col > 1) { $artlist = "<table width='{$tablewidth}' border='0' cellspacing='0' cellpadding='0'>\r\n"; } $indtp = new DedeTagParse(); $indtp->SetNameSpace("field", "[", "]"); $indtp->LoadSource($innertext); $GLOBALS['autoindex'] = 0; for ($i = 0; $i < $this->PageSize; $i++) { if ($col > 1) { $artlist .= "<tr>\r\n"; } for ($j = 0; $j < $col; $j++) { if ($col > 1) { $artlist .= "<td width='{$colWidth}'>\r\n"; } if ($row = $this->dsql->GetArray("al")) { $GLOBALS['autoindex']++; //处理一些特殊字段 $row['id'] = $row['id']; $row['arcurl'] = $this->GetArcUrl($row['id'], $row['typeid'], $row['senddate'], $row['title'], $row['ismake'], $row['arcrank'], $row['namerule'], $row['typedir'], $row['money'], $row['filename'], $row['moresite'], $row['siteurl'], $row['sitepath']); $row['typeurl'] = GetTypeUrl($row['typeid'], $row['typedir'], $row['isdefault'], $row['defaultname'], $row['ispart'], $row['namerule2'], $row['siteurl'], $row['sitepath']); if ($ismake == 0 && $GLOBALS['cfg_multi_site'] == 'Y') { if ($row["siteurl"] == "") { $row["siteurl"] = $GLOBALS['cfg_mainsite']; } } $row['description'] = cn_substr($row['description'], $infolen); if ($row['litpic'] == '-' || $row['litpic'] == '') { $row['litpic'] = $GLOBALS['cfg_cmspath'] . '/images/defaultpic.gif'; } if (!eregi("^http://", $row['litpic']) && $GLOBALS['cfg_multi_site'] == 'Y') { $row['litpic'] = $GLOBALS['cfg_mainsite'] . $row['litpic']; } $row['picname'] = $row['litpic']; $row['info'] = $row['description']; $row['filename'] = $row['arcurl']; $row['stime'] = GetDateMK($row['pubdate']); $row['textlink'] = "<a href='" . $row['filename'] . "' title='" . str_replace("'", "", $row['title']) . "'>" . $row['title'] . "</a>"; $row['typelink'] = "<a href='" . $row['typeurl'] . "'>[" . $row['typename'] . "]</a>"; $row['imglink'] = "<a href='" . $row['filename'] . "'><img src='" . $row['picname'] . "' border='0' width='{$imgwidth}' height='{$imgheight}' alt='" . str_replace("'", "", $row['title']) . "'></a>"; $row['image'] = "<img src='" . $row['picname'] . "' border='0' width='{$imgwidth}' height='{$imgheight}' alt='" . str_replace("'", "", $row['title']) . "'>"; $row['plusurl'] = $row['phpurl'] = $GLOBALS['cfg_phpurl']; $row['memberurl'] = $GLOBALS['cfg_memberurl']; $row['templeturl'] = $GLOBALS['cfg_templeturl']; $row['title'] = cn_substr($row['title'], $titlelen); if ($row['color'] != "") { $row['title'] = "<font color='" . $row['color'] . "'>" . $row['title'] . "</font>"; } if (ereg('c', $row['flag'])) { $row['title'] = "<b>" . $row['title'] . "</b>"; } //编译附加表里的数据 if (is_object($this->ChannelUnit)) { foreach ($row as $k => $v) { if (ereg("[A-Z]", $k)) { $row[strtolower($k)] = $v; } } foreach ($this->ChannelUnit->ChannelFields as $k => $arr) { if (isset($row[$k])) { $row[$k] = $this->ChannelUnit->MakeField($k, $row[$k]); } } } //解析单条记录 if (is_array($indtp->CTags)) { foreach ($indtp->CTags as $k => $ctag) { $_f = $ctag->GetName(); if ($_f == 'array') { //传递整个数组,在runphp模式中有特殊作用 $indtp->Assign($k, $row); } else { if (isset($row[$_f])) { $indtp->Assign($k, $row[$_f]); } else { $indtp->Assign($k, ""); } } } } $artlist .= $indtp->GetResult(); } else { $artlist .= ""; } if ($col > 1) { $artlist .= "\t</td>\r\n"; } } //Loop Col if ($col > 1) { $i += $col - 1; } if ($col > 1) { $artlist .= "\t</tr>\r\n"; } } //Loop Line if ($col > 1) { $artlist .= "</table>\r\n"; } $this->dsql->FreeResult("al"); return $artlist; }
function lib_likearticle(&$ctag, &$refObj) { global $dsql; //属性处理 $attlist = "row|12,titlelen|28,infolen|150,col|1,tablewidth|100,mytypeid|0,byabs|0,imgwidth|120,imgheight|90"; FillAttsDefault($ctag->CAttribute->Items, $attlist); extract($ctag->CAttribute->Items, EXTR_SKIP); $revalue = ''; if (empty($tablewidth)) { $tablewidth = 100; } if (empty($col)) { $col = 1; } $colWidth = ceil(100 / $col); $tablewidth = $tablewidth . "%"; $colWidth = $colWidth . "%"; $ids = array(); $tids = array(); if (!empty($refObj->Fields['tags'])) { $keyword = $refObj->Fields['tags']; } else { $keyword = !empty($refObj->Fields['keywords']) ? $refObj->Fields['keywords'] : ''; } $typeid = !empty($mytypeid) ? $mytypeid : 0; if (empty($typeid)) { if (!empty($refObj->Typelink->TypeInfos['reid'])) { $typeid = $refObj->Typelink->TypeInfos['reid']; } else { if (!empty($refObj->Fields['typeid'])) { $typeid = $refObj->Fields['typeid']; } } } if (!empty($typeid) && !preg_match('#,#', $typeid)) { $typeid = GetSonIds($typeid); } $limitRow = $row - count($ids); $keyword = ''; if (!empty($refObj->Fields['keywords'])) { $keywords = explode(',', trim($refObj->Fields['keywords'])); $keyword = ''; $n = 1; foreach ($keywords as $k) { if ($n > 3) { break; } if (trim($k) == '') { continue; } else { $k = addslashes($k); } $keyword .= $keyword == '' ? " CONCAT(arc.keywords,' ',arc.title) LIKE '%{$k}%' " : " OR CONCAT(arc.keywords,' ',arc.title) LIKE '%{$k}%' "; $n++; } } $arcid = !empty($refObj->Fields['id']) ? $refObj->Fields['aid'] : 0; if (empty($arcid) || $byabs == 0) { $orderquery = " ORDER BY arc.id desc "; } else { $orderquery = " ORDER BY ABS(arc.id - " . $arcid . ") "; } if ($keyword != '') { if (!empty($typeid)) { $typeid = " AND arc.typeid IN({$typeid}) AND arc.id<>{$arcid} "; } $query = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,\r\n tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath\r\n FROM `#@__archives` arc LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id\r\n where arc.arcrank>-1 AND ({$keyword}) {$typeid} {$orderquery} limit 0, {$row}"; } else { if (!empty($typeid)) { $typeid = " arc.typeid IN({$typeid}) AND arc.id<>{$arcid} "; } $query = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,\r\n tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath\r\n FROM `#@__archives` arc LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id\r\n WHERE arc.arcrank>-1 AND {$typeid} {$orderquery} limit 0, {$row}"; } $innertext = trim($ctag->GetInnerText()); if ($innertext == '') { $innertext = GetSysTemplets('part_arclist.htm'); } $dsql->SetQuery($query); $dsql->Execute('al'); $artlist = ''; if ($col > 1) { $artlist = "<table width='{$tablewidth}' border='0' cellspacing='0' cellpadding='0'>\r\n"; } $dtp2 = new DedeTagParse(); $dtp2->SetNameSpace('field', '[', ']'); $dtp2->LoadString($innertext); $GLOBALS['autoindex'] = 0; $line = $row; for ($i = 0; $i < $line; $i++) { if ($col > 1) { $artlist .= "<tr>\r\n"; } for ($j = 0; $j < $col; $j++) { if ($col > 1) { $artlist .= " <td width='{$colWidth}'>\r\n"; } if ($row = $dsql->GetArray("al")) { $ids[] = $row['id']; //处理一些特殊字段 $row['info'] = $row['infos'] = cn_substr($row['description'], $infolen); $row['id'] = $row['id']; if ($row['corank'] > 0 && $row['arcrank'] == 0) { $row['arcrank'] = $row['corank']; } $row['filename'] = $row['arcurl'] = GetFileUrl($row['id'], $row['typeid'], $row['senddate'], $row['title'], $row['ismake'], $row['arcrank'], $row['namerule'], $row['typedir'], $row['money'], $row['filename'], $row['moresite'], $row['siteurl'], $row['sitepath']); $row['typeurl'] = GetTypeUrl($row['typeid'], $row['typedir'], $row['isdefault'], $row['defaultname'], $row['ispart'], $row['namerule2'], $row['moresite'], $row['siteurl'], $row['sitepath']); if ($row['litpic'] == '-' || $row['litpic'] == '') { $row['litpic'] = $GLOBALS['cfg_cmspath'] . '/images/defaultpic.gif'; } if (!preg_match("#^http:\\/\\/#i", $row['litpic']) && $GLOBALS['cfg_multi_site'] == 'Y') { $row['litpic'] = $GLOBALS['cfg_mainsite'] . $row['litpic']; } $row['picname'] = $row['litpic']; $row['stime'] = GetDateMK($row['pubdate']); $row['typelink'] = "<a href='" . $row['typeurl'] . "'>" . $row['typename'] . "</a>"; $row['image'] = "<img src='" . $row['picname'] . "' border='0' width='{$imgwidth}' height='{$imgheight}' alt='" . preg_replace("#['><]#", "", $row['title']) . "'>"; $row['imglink'] = "<a href='" . $row['filename'] . "'>" . $row['image'] . "</a>"; $row['fulltitle'] = $row['title']; $row['title'] = cn_substr($row['title'], $titlelen); if ($row['color'] != '') { $row['title'] = "<font color='" . $row['color'] . "'>" . $row['title'] . "</font>"; } if (preg_match('#b#', $row['flag'])) { $row['title'] = "<strong>" . $row['title'] . "</strong>"; } $row['textlink'] = "<a href='" . $row['filename'] . "'>" . $row['title'] . "</a>"; $row['plusurl'] = $row['phpurl'] = $GLOBALS['cfg_phpurl']; $row['memberurl'] = $GLOBALS['cfg_memberurl']; $row['templeturl'] = $GLOBALS['cfg_templeturl']; if (is_array($dtp2->CTags)) { foreach ($dtp2->CTags as $k => $ctag) { if ($ctag->GetName() == 'array') { $dtp2->Assign($k, $row); } else { if (isset($row[$ctag->GetName()])) { $dtp2->Assign($k, $row[$ctag->GetName()]); } else { $dtp2->Assign($k, ''); } } } $GLOBALS['autoindex']++; } $artlist .= $dtp2->GetResult() . "\r\n"; } else { $artlist .= ''; } if ($col > 1) { $artlist .= " </td>\r\n"; } } //Loop Col if ($col > 1) { $i += $col - 1; } if ($col > 1) { $artlist .= " </tr>\r\n"; } } //loop line if ($col > 1) { $artlist .= " </table>\r\n"; } $dsql->FreeResult("al"); return $artlist; }
/** * 获得文档列表 * * @access public * @param string $innertext 底层模板 * @return string */ function GetArcList($innertext = "") { $typeid = $this->TypeID; $innertext = trim($innertext); if ($innertext == "") { $innertext = GetSysTemplets("rss.htm"); } $orwhere = " arc.arcrank > -1 "; $orwhere .= " AND (arc.typeid in (" . GetSonIds($this->TypeID, $this->TypeFields['channeltype']) . ") ) "; $ordersql = " ORDER BY arc.id desc"; $query = "SELECT arc.*,tp.typedir,tp.typename,tp.isdefault,\r\n tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath\r\n FROM `#@__archives` arc LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id\r\n WHERE {$orwhere} {$ordersql} LIMIT 0," . $this->MaxRow; $this->dsql->SetQuery($query); $this->dsql->Execute('al'); $artlist = ''; $dtp2 = new DedeTagParse(); $dtp2->SetNameSpace('field', '[', ']'); $dtp2->LoadSource($innertext); while ($row = $this->dsql->GetArray('al')) { //处理一些特殊字段 if ($row['litpic'] == '-' || $row['litpic'] == '') { $row['litpic'] = $GLOBALS['cfg_cmspath'] . '/images/defaultpic.gif'; } if (!preg_match("/^http:\\/\\//", $row['litpic']) && $GLOBALS['cfg_multi_site'] == 'Y') { $row['litpic'] = $GLOBALS['cfg_mainsite'] . $row['litpic']; } $row['picname'] = $row['litpic']; $row["arcurl"] = GetFileUrl($row["id"], $row["typeid"], $row["senddate"], $row["title"], $row["ismake"], $row["arcrank"], $row["namerule"], $row["typedir"], $row["money"], $row['filename'], $row["moresite"], $row["siteurl"], $row["sitepath"]); $row["typeurl"] = GetTypeUrl($row["typeid"], $row["typedir"], $row["isdefault"], $row["defaultname"], $row["ispart"], $row["namerule2"], $row["moresite"], $row["siteurl"], $row["sitepath"]); $row["info"] = $row["description"]; $row["filename"] = $row["arcurl"]; $row["stime"] = GetDateMK($row["pubdate"]); $row["image"] = "<img src='" . $row["picname"] . "' border='0'>"; $row["fullurl"] = $GLOBALS["cfg_basehost"] . $row["arcurl"]; // 2011-6-20 启用多站点RSS输出存在的路径问题(by:织梦的鱼) if ($GLOBALS['cfg_multi_site'] == 'Y') { $row["fullurl"] = $row["arcurl"]; } $row["phpurl"] = $GLOBALS["cfg_plus_dir"]; $row["templeturl"] = $GLOBALS["cfg_templets_dir"]; if ($row["source"] == '') { $row["source"] = $GLOBALS['cfg_webname']; } if ($row["writer"] == '') { $row["writer"] = "秩名"; } foreach ($row as $k => $v) { $row[$k] = htmlspecialchars($v); } if (is_array($dtp2->CTags)) { foreach ($dtp2->CTags as $k => $ctag) { if ($ctag->GetName() == 'array') { //传递整个数组,在runphp模式中有特殊作用 $dtp2->Assign($k, $row); } else { if (isset($row[$ctag->GetName()])) { $dtp2->Assign($k, $row[$ctag->GetName()]); } else { $dtp2->Assign($k, ''); } } } } $artlist .= $dtp2->GetResult() . "\r\n"; } $this->dsql->FreeResult('al'); return $artlist; }
/** * 统计列表里的记录 * * @access public * @return string */ function CountRecord() { $this->TotalResult = -1; if (isset($GLOBALS['TotalResult'])) { $this->TotalResult = $GLOBALS['TotalResult']; $this->TotalResult = is_numeric($this->TotalResult) ? $this->TotalResult : ""; } if (isset($GLOBALS['PageNo'])) { $this->PageNo = intval($GLOBALS['PageNo']); } else { $this->PageNo = 1; } $ksql = $this->GetKeywordSql(); $ksqls = array(); if ($this->StartTime > 0) { $ksqls[] = " arc.senddate>'" . $this->StartTime . "' "; } if ($this->TypeID > 0) { $ksqls[] = " typeid IN (" . GetSonIds($this->TypeID) . ") "; } if ($this->ChannelType > 0) { $ksqls[] = " arc.channel='" . $this->ChannelType . "'"; } if ($this->mid > 0) { $ksqls[] = " arc.mid = '" . $this->mid . "'"; } $ksqls[] = " arc.arcrank > -1 "; $this->AddSql = $ksql == '' ? join(' AND ', $ksqls) : join(' AND ', $ksqls) . " AND ({$ksql})"; if ($this->ChannelType < 0 || $this->ChannelTypeid < 0) { if ($this->ChannelType == "0") { $id = $this->ChannelTypeid; } else { $id = $this->ChannelType; } $row = $this->dsql->GetOne("SELECT addtable FROM `#@__channeltype` WHERE id={$id}"); $addtable = trim($row['addtable']); $this->AddTable = $addtable; } else { $this->AddTable = "#@__archives"; } $cquery = "SELECT * FROM `{$this->AddTable}` arc WHERE " . $this->AddSql; //var_dump($cquery); $hascode = md5($cquery); $row = $this->dsql->GetOne("SELECT * FROM `#@__arccache` WHERE `md5hash`='" . $hascode . "' "); $uptime = time(); if (is_array($row) && time() - $row['uptime'] < 3600 * 24) { $aids = explode(',', $row['cachedata']); $this->TotalResult = count($aids) - 1; $this->RsFields = $row['cachedata']; } else { if ($this->TotalResult == -1) { $this->dsql->SetQuery($cquery); $this->dsql->execute(); $aidarr = array(); $aidarr[] = 0; while ($row = $this->dsql->getarray()) { if ($this->ChannelType < 0 || $this->ChannelTypeid < 0) { $aidarr[] = $row['aid']; } else { $aidarr[] = $row['id']; } } $nums = count($aidarr) - 1; $aids = implode(',', $aidarr); $delete = "DELETE FROM `#@__arccache` WHERE uptime<" . (time() - 3600 * 24); $this->dsql->SetQuery($delete); $this->dsql->executenonequery(); $insert = "INSERT INTO `#@__arccache` (`md5hash`, `uptime`, `cachedata`)\n VALUES('{$hascode}', '{$uptime}', '{$aids}')"; $this->dsql->SetQuery($insert); $this->dsql->executenonequery(); $this->TotalResult = $nums; } } }
} //更改子栏目属性 if (!empty($upnext)) { $upquery = "UPDATE `#@__arctype` SET\n issend='{$issend}',\n defaultname='{$defaultname}',\n channeltype='{$channeltype}',\n tempindex='{$tempindex}',\n templist='{$templist}',\n temparticle='{$temparticle}',\n namerule='{$namerule}',\n namerule2='{$namerule2}',\n ishidden='{$ishidden}'\n WHERE 1=1 AND {$slinks}"; if (!$dsql->ExecuteNoneQuery($upquery)) { ShowMsg("更改当前栏目成功,但更改下级栏目属性时失败!", "-1"); exit; } } UpDateCatCache(); ShowMsg("成功更改一个分类!", "catalog_main.php"); exit; } else { if ($dopost == "savetime") { $uptopsql = ''; $slinks = " id IN (" . GetSonIds($id) . ")"; //顶级栏目二级域名根目录处理 if ($topid == 0 && $moresite == 1) { $sitepath = $typedir; $uptopsql = " ,sitepath='{$sitepath}' "; if (preg_match("#,#", $slinks)) { $upquery = "UPDATE `#@__arctype` SET sitepath='{$sitepath}' WHERE {$slinks}"; $dsql->ExecuteNoneQuery($upquery); } } //如果选择子栏目可投稿,更新顶级栏目为可投稿 if ($topid > 0 && $issend == 1) { $dsql->ExecuteNoneQuery("UPDATE `#@__arctype` SET issend='{$issend}' WHERE id='{$topid}'; "); } $upquery = "UPDATE `#@__arctype` SET\n issend='{$issend}',\n sortrank='{$sortrank}',\n typedir='{$typedir}',\n typename='{$typename}',\n isdefault='{$isdefault}',\n defaultname='{$defaultname}',\n ispart='{$ispart}',\n\t picname='{$picname}',\n corank='{$corank}' {$uptopsql}\n WHERE id='{$id}' "; if (!$dsql->ExecuteNoneQuery($upquery)) {
} if (!isset($uppage)) { $uppage = 0; } if (empty($maxpagesize)) { $maxpagesize = 50; } $adminID = $cuserLogin->getUserID(); $isremote = empty($isremote) ? 0 : $isremote; $serviterm = empty($serviterm) ? "" : $serviterm; //检测获取所有栏目ID //普通生成或一键更新时更新所有栏目 if ($gotype == '' || $gotype == 'mkallct') { if ($upnext == 1 || $typeid == 0) { if ($typeid > 0) { $tidss = GetSonIds($typeid, 0); $idArray = explode(',', $tidss); } else { foreach ($cfg_Cs as $k => $v) { $idArray[] = $k; } } } else { $idArray = array(); $idArray[] = $typeid; } } else { if ($gotype == 'mkall') { $uppage = 1; $mkcachefile = DEDEDATA . "/mkall_cache_{$adminID}.php"; $idArray = array();
exit; } else { if ($job == 'check') { $query = "Update `#@__feedback` set ischeck=1 where id in({$ids}) "; $dsql->ExecuteNoneQuery($query); ShowMsg("成功审核指定评论!", $_COOKIE['ENV_GOBACK_URL'], 0, 500); exit; } else { $bgcolor = ''; $typeid = isset($typeid) && is_numeric($typeid) ? $typeid : 0; $aid = isset($aid) && is_numeric($aid) ? $aid : 0; $keyword = !isset($keyword) ? '' : $keyword; $ip = !isset($ip) ? '' : $ip; $tl = new TypeLink($typeid); $openarray = $tl->GetOptionArray($typeid, $admin_catalogs, 0); $addsql = $typeid != 0 ? " And typeid in (" . GetSonIds($typeid) . ")" : ''; $addsql .= $aid != 0 ? " And aid={$aid} " : ''; $addsql .= $ip != '' ? " And ip like '{$ip}' " : ''; $querystring = "select * from `#@__feedback` where msg like '%{$keyword}%' {$addsql} order by dtime desc"; $dlist = new DataListCP(); $dlist->pageSize = 15; $dlist->SetParameter('aid', $aid); $dlist->SetParameter('ip', $ip); $dlist->SetParameter('typeid', $typeid); $dlist->SetParameter('keyword', $keyword); $dlist->SetTemplate(DEDEADMIN . '/templets/feedback_main.htm'); $dlist->SetSource($querystring); $dlist->Display(); } } }
$row = $tl->dsql->GetOne("SELECT typename,addtable FROM `#@__channeltype` WHERE id='{$channelid}'"); $positionname = $row['typename'] . " > "; $listtable = $row['addtable']; } else { $positionname = str_replace($cfg_list_symbol, " > ", $tl->GetPositionName()) . " > "; } $optionarr = $tl->GetOptionArray($cid, $admin_catalogs, $channelid); $whereSql = $channelid == 0 ? " WHERE arc.channel < -1 " : " WHERE arc.channel = '{$channelid}' "; if (!empty($mid)) { $whereSql .= " AND arc.mid = '{$mid}' "; } if ($keyword != '') { $whereSql .= " AND (arc.title like '%{$keyword}%') "; } if ($cid != 0) { $whereSql .= " AND arc.typeid in (" . GetSonIds($cid) . ")"; } if ($arcrank != '') { $whereSql .= " AND arc.arcrank = '{$arcrank}' "; $CheckUserSend = "<input type='button' class='coolbg np' onClick=\"location='content_sg_list.php?cid={$cid}&channelid={$channelid}&dopost=listArchives';\" value='所有文档' />"; } else { $CheckUserSend = "<input type='button' class='coolbg np' onClick=\"location='content_sg_list.php?cid={$cid}&channelid={$channelid}&dopost=listArchives&arcrank=-1';\" value='稿件审核' />"; } $query = "SELECT arc.aid,arc.aid as id,arc.typeid,arc.arcrank,arc.flag,arc.senddate,arc.channel,arc.title,arc.mid,arc.click,tp.typename,ch.typename as channelname\nFROM `{$listtable}` arc\nLEFT JOIN `#@__arctype` tp ON tp.id=arc.typeid\nLEFT JOIN `#@__channeltype` ch ON ch.id=arc.channel\n{$whereSql}\nORDER BY arc.aid DESC"; $dlist = new DataListCP(); $dlist->pageSize = 20; $dlist->SetParameter("dopost", "listArchives"); $dlist->SetParameter("keyword", $keyword); $dlist->SetParameter("cid", $cid); $dlist->SetParameter("channelid", $channelid); $dlist->SetTemplate(DEDEADMIN . "/templets/content_sg_list.htm");
$jumpurl = "makehtml_archives_action.php?endid={$endid}&startid={$startid}"; $jumpurl .= "&typeid={$typeid}&pagesize=20&seltime={$seltime}"; $jumpurl .= "&stime=" . urlencode($starttime) . "&etime=" . urlencode($endtime); header("Location: {$jumpurl}"); exit; } $gwhere = " WHERE 1 "; if ($startid > 0) { $gwhere .= " AND id>= {$startid} "; } if ($endid > $startid) { $gwhere .= " AND id<= {$endid} "; } $idsql = ''; if ($typeid != 0) { $ids = GetSonIds($typeid); $gwhere .= " AND typeid IN({$ids}) "; } if ($seltime == 1) { $t1 = GetMkTime($starttime); $t2 = GetMkTime($endtime); $gwhere .= " AND (senddate >= {$t1} AND senddate <= {$t2}) "; } if (!empty($userid)) { $row = $dsql->GetOne("SELECT `mid` FROM #@__member WHERE `userid` LIKE '{$userid}'"); if (is_array($row)) { $gwhere .= " AND mid = {$row['mid']} "; } } //特殊操作 if (!empty($heightdone)) {
function lib_arclistsg(&$ctag, &$refObj) { global $dsql, $PubFields, $cfg_keyword_like, $cfg_index_cache, $_arclistEnv, $envs, $_sys_globals; //属性处理 $attlist = "typeid|0,row|10,col|1,flag|,titlelen|30,sort|default,keyword|,innertext|,arcid|0,idlist|,channelid|0,limit|,orderway|desc,subday|0"; FillAttsDefault($ctag->CAttribute->Items, $attlist); extract($ctag->CAttribute->Items, EXTR_SKIP); $line = $row; $orderby = strtolower($sort); if ($col == '') { $col = 1; } if (empty($imgwidth)) { $imgwidth = ""; } if (empty($imgheight)) { $imgheight = ""; } $innertext = trim($ctag->GetInnerText()); if ($innertext == '') { $innertext = GetSysTemplets("part_arclistsg.htm"); } if (empty($channelid) && isset($GLOBALS['envs']['channelid'])) { $channelid = $GLOBALS['envs']['channelid']; } if (empty($typeid) && !empty($envs['typeid'])) { $typeid = $envs['typeid']; } if (empty($typeid) && empty($channelid)) { return "No channel info!"; } if (!empty($channelid)) { $gquery = "SELECT addtable,listfields FROM `#@__channeltype` WHERE id='{$channelid}' "; } else { $gquery = "SELECT ch.addtable,listfields FROM `#@__arctype` tp LEFT JOIN `#@__channeltype` ch ON ch.id=tp.channeltype WHERE id='{$typeid}'"; } $row = $dsql->GetOne($gquery); $orwheres = array(); $maintable = trim($row['addtable']); if ($maintable == '') { return "No addtable info!"; } //列表调用字段 $listarcs = array('aid', 'typeid'); if (!empty($row['listfields'])) { $listfields = explode(',', $row['listfields']); foreach ($listfields as $v) { if (!in_array($v, $listarcs)) { $listarcs[] = $v; } } } $arclistquery = join(',', $listarcs); $arclistquery .= ",arc.aid AS id,arc.senddate AS pubdate"; //按不同情况设定SQL条件 排序方式 if ($idlist == '') { if ($orderby == 'near' && $cfg_keyword_like == 'N') { $keyword = ''; } //时间限制(用于调用最近热门文章、热门评论之类) if ($subday > 0) { //这里的时间只能计算到天,否则缓存功能将无效 $ntime = gmmktime(0, 0, 0, gmdate('m'), gmdate('d'), gmdate('Y')); $limitday = $ntime - $subday * 24 * 3600; $orwheres[] = " arc.senddate > {$limitday} "; } if ($flag != '') { $flags = explode(',', $flag); for ($i = 0; isset($flags[$i]); $i++) { $orwheres[] = " FIND_IN_SET('{$flags[$i]}',flag)>0 "; } } if (!empty($typeid)) { //指定了多个栏目时,不再获取子类的id if (preg_match('#,#', $typeid)) { $orwheres[] = " typeid IN ({$typeid}) "; } else { //处理交叉栏目 $CrossID = ''; if ((isset($envs['cross']) || $ctag->GetAtt('cross') == '1') && $ctag->GetAtt('nocross') != '1') { $arr = $dsql->GetOne("SELECT `id`,`topid`,`cross`,`crossid`,`ispart`,`typename` FROM `#@__arctype` WHERE id='{$typeid}' "); if ($arr['cross'] == 0 || $arr['cross'] == 2 && trim($arr['crossid'] == '')) { $orwheres[] = ' typeid IN (' . GetSonIds($typeid) . ')'; } else { $selquery = ''; if ($arr['cross'] == 1) { $selquery = "SELECT id,topid FROM `#@__arctype` WHERE typename like '{$arr['typename']}' AND id<>'{$typeid}' AND topid<>'{$typeid}' "; } else { $arr['crossid'] = preg_replace('#[^0-9,]#', '', trim($arr['crossid'])); if ($arr['crossid'] != '') { $selquery = "SELECT id,topid FROM `#@__arctype` WHERE id IN('{$arr['crossid']}') AND id<>'{$typeid}' AND topid<>'{$typeid}' "; } } if ($selquery != '') { $dsql->SetQuery($selquery); $dsql->Execute(); while ($arr = $dsql->GetArray()) { $CrossID .= $CrossID == '' ? $arr['id'] : ',' . $arr['id']; } } } } if ($CrossID == '') { $orwheres[] = ' typeid IN (' . GetSonIds($typeid) . ')'; } else { $orwheres[] = ' typeid IN (' . GetSonIds($typeid) . ',' . $CrossID . ')'; } } } //频道ID if (!empty($channelid)) { $orwheres[] = " AND arc.channel = '{$channelid}' "; } //由于这个条件会导致缓存功能失去意义,因此取消 //if($arcid!=0) $orwheres[] = " arc.id<>'$arcid' "; } //文档排序的方式 $ordersql = ''; if ($orderby == 'hot' || $orderby == 'click') { $ordersql = " ORDER BY arc.click {$orderway}"; } else { if ($orderby == 'id') { $ordersql = " ORDER BY arc.aid {$orderway}"; } else { if ($orderby == 'near') { $ordersql = " ORDER BY ABS(arc.id - " . $arcid . ")"; } else { if ($orderby == 'rand') { $ordersql = " ORDER BY rand()"; } else { $ordersql = " ORDER BY arc.aid {$orderway}"; } } } } //limit条件 $limit = trim(preg_replace('#limit#i', '', $limit)); if ($limit != '') { $limitsql = " LIMIT {$limit} "; } else { $limitsql = " LIMIT 0,{$line} "; } $orwhere = ''; if (isset($orwheres[0])) { $orwhere = join(' AND ', $orwheres); $orwhere = preg_replace("#^ AND#i", '', $orwhere); $orwhere = preg_replace("#AND[ ]{1,}AND#i", 'AND ', $orwhere); } if ($orwhere != '') { $orwhere = " WHERE {$orwhere} "; } $query = "SELECT {$arclistquery},tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,\n tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath\n FROM `{$maintable}` arc LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id\n {$orwhere} AND arc.arcrank > -1 {$ordersql} {$limitsql}"; $md5hash = md5($query); $needcache = TRUE; if ($idlist != '') { $needcache = FALSE; } else { $idlist = GetArclistSgCache($md5hash); if ($idlist != '') { $needcache = FALSE; } } //指定了id或使用缓存中的id if ($idlist != '' && $_arclistEnv != 'index') { $query = "SELECT {$arclistquery},tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,\n tp.moresite,tp.siteurl,tp.sitepath FROM `{$maintable}` arc LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id\n WHERE arc.aid IN({$idlist}) {$ordersql} {$limitsql}"; } $dsql->SetQuery($query); $dsql->Execute("al"); $artlist = ""; $dtp2 = new DedeTagParse(); $dtp2->SetNameSpace("field", "[", "]"); $dtp2->LoadString($innertext); $GLOBALS['autoindex'] = 0; $ids = array(); for ($i = 0; $i < $line; $i++) { for ($j = 0; $j < $col; $j++) { if ($col > 1) { $artlist .= " <div>\r\n"; } if ($row = $dsql->GetArray("al")) { $ids[] = $row['aid']; $row['filename'] = $row['arcurl'] = GetFileUrl($row['id'], $row['typeid'], $row['senddate'], $row['title'], 1, 0, $row['namerule'], $row['typedir'], 0, '', $row['moresite'], $row['siteurl'], $row['sitepath']); $row['typeurl'] = GetTypeUrl($row['typeid'], $row['typedir'], $row['isdefault'], $row['defaultname'], $row['ispart'], $row['namerule2'], $row['moresite'], $row['siteurl'], $row['sitepath']); if ($row['litpic'] == '-' || $row['litpic'] == '') { $row['litpic'] = $GLOBALS['cfg_cmspath'] . '/images/defaultpic.gif'; } if (!preg_match("#^http:\\/\\/#i", $row['litpic']) && $GLOBALS['cfg_multi_site'] == 'Y') { $row['litpic'] = $GLOBALS['cfg_mainsite'] . $row['litpic']; } $row['picname'] = $row['litpic']; $row['image'] = "<img src='" . $row['picname'] . "' border='0' width='{$imgwidth}' height='{$imgheight}' alt='" . preg_replace("#['><]#", "", $row['title']) . "' />"; $row['imglink'] = "<a href='" . $row['filename'] . "'>" . $row['image'] . "</a>"; $row['stime'] = GetDateMK($row['pubdate']); $row['typelink'] = "<a href='" . $row['typeurl'] . "'>" . $row['typename'] . "</a>"; $row['fulltitle'] = $row['title']; $row['title'] = cn_substr($row['title'], $titlelen); $row['textlink'] = "<a href='" . $row['filename'] . "'>" . $row['title'] . "</a>"; $row['plusurl'] = $row['phpurl'] = $GLOBALS['cfg_phpurl']; $row['memberurl'] = $GLOBALS['cfg_memberurl']; $row['templeturl'] = $GLOBALS['cfg_templeturl']; if (is_array($dtp2->CTags)) { foreach ($dtp2->CTags as $k => $ctag) { if ($ctag->GetName() == 'array') { //传递整个数组,在runphp模式中有特殊作用 $dtp2->Assign($k, $row); } else { if (isset($row[$ctag->GetName()])) { $dtp2->Assign($k, $row[$ctag->GetName()]); } else { $dtp2->Assign($k, ''); } } } $GLOBALS['autoindex']++; } $artlist .= $dtp2->GetResult() . "\r\n"; } else { $artlist .= ''; } if ($col > 1) { $artlist .= " </div>\r\n"; } } //Loop Col if ($col > 1) { $i += $col - 1; } } //loop line $dsql->FreeResult("al"); //保存ID缓存 $idsstr = join(',', $ids); if ($idsstr != '' && $needcache && $cfg_index_cache > 0) { $mintime = time() - $cfg_index_cache * 3600; $inquery = "INSERT INTO `#@__arccache`(`md5hash`,`uptime`,`cachedata`) VALUES ('" . $md5hash . "', '" . time() . "', '{$idsstr}'); "; $dsql->ExecuteNoneQuery("DELETE FROM `#@__arccache` WHERE md5hash='" . $md5hash . "' or uptime < {$mintime} "); $dsql->ExecuteNoneQuery($inquery); } return $artlist; }
/** * 统计列表里的记录 * * @access public * @param string * @return string */ function CountRecord() { global $cfg_list_son, $cfg_need_typeid2, $cfg_cross_sectypeid; if (empty($cfg_need_typeid2)) { $cfg_need_typeid2 = 'N'; } //统计数据库记录 $this->TotalResult = -1; if (isset($GLOBALS['TotalResult'])) { $this->TotalResult = $GLOBALS['TotalResult']; } if (isset($GLOBALS['PageNo'])) { $this->PageNo = $GLOBALS['PageNo']; } else { $this->PageNo = 1; } $this->addSql = " arc.arcrank > -1 "; $typeid2like = " '%,{$this->TypeID},%' "; if ($cfg_list_son == 'N') { if ($cfg_need_typeid2 == 'N') { if ($this->CrossID == '') { $this->addSql .= " AND (arc.typeid='" . $this->TypeID . "') "; } else { $this->addSql .= " AND (arc.typeid in({$this->CrossID},{$this->TypeID})) "; } } else { if ($this->CrossID == '') { $this->addSql .= " AND ( (arc.typeid='" . $this->TypeID . "') OR CONCAT(',', arc.typeid2, ',') LIKE {$typeid2like}) "; } else { if ($cfg_cross_sectypeid == 'Y') { $typeid2Clike = " '%,{$this->CrossID},%' "; $this->addSql .= " AND ( arc.typeid IN({$this->CrossID},{$this->TypeID}) OR CONCAT(',', arc.typeid2, ',') LIKE {$typeid2like} OR CONCAT(',', arc.typeid2, ',') LIKE {$typeid2Clike})"; } else { $this->addSql .= " AND ( arc.typeid IN({$this->CrossID},{$this->TypeID}) OR CONCAT(',', arc.typeid2, ',') LIKE {$typeid2like})"; } } } } else { $sonids = GetSonIds($this->TypeID, $this->Fields['channeltype']); if (!preg_match("/,/", $sonids)) { $sonidsCon = " arc.typeid = '{$sonids}' "; } else { $sonidsCon = " arc.typeid IN({$sonids}) "; } if ($cfg_need_typeid2 == 'N') { if ($this->CrossID == '') { $this->addSql .= " AND ( {$sonidsCon} ) "; } else { $this->addSql .= " AND ( arc.typeid IN ({$sonids},{$this->CrossID}) ) "; } } else { if ($this->CrossID == '') { $this->addSql .= " AND ( {$sonidsCon} OR CONCAT(',', arc.typeid2, ',') like {$typeid2like} ) "; } else { if ($cfg_cross_sectypeid == 'Y') { $typeid2Clike = " '%,{$this->CrossID},%' "; $this->addSql .= " AND ( arc.typeid IN ({$sonids},{$this->CrossID}) OR CONCAT(',', arc.typeid2, ',') LIKE {$typeid2like} OR CONCAT(',', arc.typeid2, ',') LIKE {$typeid2Clike}) "; } else { $this->addSql .= " AND ( arc.typeid IN ({$sonids},{$this->CrossID}) OR CONCAT(',', arc.typeid2, ',') LIKE {$typeid2like}) "; } } } } if ($this->TotalResult == -1) { $cquery = "SELECT COUNT(*) AS dd FROM `#@__arctiny` arc WHERE " . $this->addSql; $row = $this->dsql->GetOne($cquery); if (is_array($row)) { $this->TotalResult = $row['dd']; } else { $this->TotalResult = 0; } } //初始化列表模板,并统计页面总数 $tempfile = $GLOBALS['cfg_basedir'] . $GLOBALS['cfg_templets_dir'] . "/" . $this->TypeLink->TypeInfos['templist']; $tempfile = str_replace("{tid}", $this->TypeID, $tempfile); $tempfile = str_replace("{cid}", $this->ChannelUnit->ChannelInfos['nid'], $tempfile); if (!file_exists($tempfile)) { $tempfile = $GLOBALS['cfg_basedir'] . $GLOBALS['cfg_templets_dir'] . "/" . $GLOBALS['cfg_df_style'] . "/list_default.htm"; } if (!file_exists($tempfile) || !is_file($tempfile)) { echo "模板文件不存在,无法解析文档!"; exit; } $this->dtp->LoadTemplate($tempfile); $ctag = $this->dtp->GetTag("page"); if (!is_object($ctag)) { $ctag = $this->dtp->GetTag("list"); } if (!is_object($ctag)) { $this->PageSize = 20; } else { if ($ctag->GetAtt("pagesize") != "") { $this->PageSize = $ctag->GetAtt("pagesize"); } else { $this->PageSize = 20; } } $this->TotalPage = ceil($this->TotalResult / $this->PageSize); }
$flagsArr .= $frow['att'] == $flag ? "<option value='{$frow['att']}' selected>{$frow['attname']}</option>\r\n" : "<option value='{$frow['att']}'>{$frow['attname']}</option>\r\n"; } if (!empty($userCatalogSql)) { $whereSql .= " And " . $userCatalogSql; } if (!empty($mid)) { $whereSql .= " And arc.mid = '{$mid}' "; } if ($keyword != '') { $whereSql .= " And ( CONCAT(arc.title,arc.writer) like '%{$keyword}%') "; } if ($flag != '') { $whereSql .= " And FIND_IN_SET('{$flag}', arc.flag) "; } if ($cid != 0) { $whereSql .= ' And arc.typeid in (' . GetSonIds($cid) . ')'; } if ($arcrank != '') { $whereSql .= " And arc.arcrank = '{$arcrank}' "; $CheckUserSend = "<input type='button' class='coolbg np' onClick=\"location='catalog_do.php?cid=" . $cid . "&dopost=listArchives&gurl=content_list.php';\" value='所有文档' />"; } else { $CheckUserSend = "<input type='button' class='coolbg np' onClick=\"location='catalog_do.php?cid=" . $cid . "&dopost=listArchives&arcrank=-1&gurl=content_list.php';\" value='稿件审核' />"; } $orderby = empty($orderby) ? 'id' : eregi_replace("[^a-z0-9]", "", $orderby); $orderbyField = 'arc.' . $orderby; $query = "Select arc.id,arc.typeid,arc.senddate,arc.flag,arc.ismake,\r\narc.channel,arc.arcrank,arc.click,arc.title,arc.color,arc.litpic,arc.pubdate,arc.mid,\r\ntp.typename,ch.typename as channelname,mb.uname as adminname\r\nfrom `{$maintable}` arc\r\nleft join `#@__arctype` tp on tp.id=arc.typeid\r\nleft join `#@__channeltype` ch on ch.id=arc.channel\r\nleft join `#@__member` mb on mb.mid=arc.mid\r\n{$whereSql}\r\norder by {$orderbyField} desc"; if (empty($f) || !ereg('form', $f)) { $f = 'form1.arcid1'; } //初始化 $dlist = new DataListCP();