haoboweb 发表于 2012-12-22 23:02:19

扩展tag标签支持调用一个或多个顶级栏目与子级栏目

本帖最后由 haoboweb 于 2012-12-22 23:12 编辑

发现tag似乎只能调内容。但是模块下面的栏目调用不了。于是把标签扩展了一下,既能够调用内容还能调用一个或多个栏目。多个栏目的调用还能根据写的栏目ID顺序显示。此功能相信能方便不少人吧。免费发出来供大家使用,需要做网站二次开发的请与我联系,长沙地区可以面谈。
在标签文件tag.func.php中加上如下代码。[*]//子栏目获取
[*]    if($action=="getmaincat"){
[*]      $template = 'null';
[*]      isset($level) or $level = 1;
[*]      isset($limit) or $limit = 100;
[*]      $tags = get_maincat($catid,$moduleid,$level,$limit);
[*]    }
[*]    //一个或多个栏目获取
[*]    if($action=="getcat"){
[*]      $template = 'null';
[*]      isset($level) or $level = 1;
[*]      $tags = get_cat($catid,$moduleid,$level);
[*]    }
[*]   
[*]      if($template == 'null') return $tags; 复制代码因为多个栏目要排序,所以还要改 global.func.php中的函数:[*]function get_cat($catid) {
[*]      global $db;
[*]      //$catid = intval($catid);
[*]    if(strstr($catid,",")){
[*]      return $catid ? $db->get_one("SELECT * FROM {$db->pre}category WHERE catid in($catid) order by field($catid)") : array();
[*]    }else{
[*]      return $catid ? $db->get_one("SELECT * FROM {$db->pre}category WHERE catid=$catid") : array();
[*]    }
[*]}复制代码[*]function get_maincat($catid, $moduleid, $level = -1, $limit=100) {
[*]      global $db;
[*]      $condition = $catid ? "parentid=$catid" : "moduleid=$moduleid AND parentid=0";
[*]      if($level >= 0) $condition .= " AND level=$level";
[*]      $cat = array();
[*]      $result = $db->query("SELECT catid,catname,child,style,linkurl,item FROM {$db->pre}category WHERE $condition ORDER BY listorder,catid ASC limit 0,$limit", 'CACHE');
[*]      while($r = $db->fetch_array($result)) {
[*]                $cat[] = $r;
[*]      }
[*]      return $cat;
[*]}复制代码调用方式很简单的。看上面的代码就已经了解了相信。



注意action就OK了。
页: [1]
查看完整版本: 扩展tag标签支持调用一个或多个顶级栏目与子级栏目