web建站教程
  1. 首页
  2. vuejs
  3. js
  4. 好玩
  5. seo教程
  6. 前端知识
  7. 百度echarts
  8. 更多
    php入门
    nodejs
    mockjs
    reactjs
    mysql
    wordpress
    织梦cms
    帝国cms
    git教程
    IT知识
    模板大全
    休息站

详解织梦dedecms5.7 无限级多级栏目菜单调用方法

703 ℃
           

以前在用到5.7无限级栏目列表菜单时下载了网上的资料都未成功,因此我参考网上及dedecms本身的channel.lib.php及cattree.lib.php制作了调用标签。

1、在include/taglib建立randomartlist.lib.php

内容如下:

<?phpif(!defined('DEDEINC')) exit('Request Error!'); function lib_randomartlist(&$ctag, &$refObj){ global $dsql; //属性处理 //topid 指定顶级树 id ,指定后,前一个属性将无效 $attlist="typeid|0,showall|,currentstyle|,cacheid|"; FillAttsDefault($ctag->CAttribute->Items,$attlist); extract($ctag->CAttribute->Items, EXTR_SKIP); $revalue = ''; //读取固定的缓存块 $cacheid = trim($cacheid); if($cacheid !='') { $revalue = GetCacheBlock($cacheid); if($revalue != '') return $revalue; } //如果属性里没指定栏目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 reid,topid,channeltype,ispart FROM `dede_arctype` WHERE reid='$topid' "); if(!is_array($row2)) { $typeid = $reid = $topid = $channeltype = $ispart = 0; } else { $reid = $row2['reid']; $channeltype = $row2['channeltype']; $ispart = $row2['ispart']; $typepid = $row2['id']; } } //调用Typeid if( !empty($topid) ) { $topQuery = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `dede_arctype` WHERE reid='$topid' And ishidden<>1 order by sortrank asc"; } $dsql->Execute('t', $topQuery); while($row = $dsql->GetArray('t')) { $row['typelink'] = GetOneTypeUrlA($row); //处理同级栏目中,当前栏目的样式 if( $row['id']==$typeid && $currentstyle!='' ) { $linkOkstr = $currentstyle; $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); $revalue .= $linkOkstr; } else { $revalue .= " <li><a href='{$row['typelink']}'>{$row['typename']}</a></li>/n"; } randomartlistSon($row['id'],$typeid,$currentstyle, $revalue); } if($cacheid !='') { WriteCacheBlock($cacheid, $revalue); } return $revalue;} function randomartlistSon($id,$typeid,$currentstyle,&$revalue){ global $dsql; $query = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `dede_arctype` WHERE reid='{$id}' And ishidden<>1 order by sortrank asc"; $dsql->Execute($id, $query); $thisv = ''; while($row = $dsql->GetArray($id)) { $row['typelink'] = GetOneTypeUrlA($row); //处理同级栏目中,当前栏目的样式 if( $row['id']==$typeid && $currentstyle!='' ) { $linkOkstr = $currentstyle; $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); $thisv .= $linkOkstr; } else { $thisv .= " <li><a href='{$row['typelink']}'>{$row['typename']}</a></li>/n"; } randomartlistSon($row['id'],$typeid,$currentstyle, $thisv); } if($thisv!='') $revalue .= " <ul>/n$thisv </ul>/n";}

2、调用方式:

<div class="alist"> <ul> {dede:randomartlist topid='12' currentstyle="<li><a href='~typelink~' class='thisclass'>~typename~</a></li>"} <li><a href="{dede:field name='typeurl'/}" title="{dede:field name='typename'/}">{dede:field name='typename'/}</a></li> {/dede:randomartlist} </ul> </div>

3、css方式:

.alist{} /*第一层修饰*/ .alist ul {} .alist ul li {} .alist ul li a{} .alist ul li a:hover,.alist ul li .thisclass{} /*第二层修饰*/ .alist ul li ul{} .alist ul li ul li{} .alist ul li ul li a{} .alist ul li ul li a:hover,.alist ul li ul li .thisclass{}

php语法对index.php首页进行判断(根据需要显示不同页面)

html文本如何读取数据库代码示例

php表单提交报错显示适当的错误消息代码

php语法中sleep函数的基本用法

利用php语法中NOT IN排除多个字段功能

标签: lib, php语法, randomartlist, 菜单, 调用

上面是“详解织梦dedecms5.7 无限级多级栏目菜单调用方法”的全面内容,想了解更多关于 织梦cms 内容,请继续关注web建站教程。

当前网址:https://ipkd.cn/webs_492.html

声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

当前位置: 网站首页 > 织梦cms
本文共计3667个字,预计阅读时长25分钟
生活小工具,收录了80多款小工具
上一篇: 推荐一个可以查询老黄历的网站,可以根据五行取名!
下一篇: 详细介绍HTTP状态码不同之处的原因(什么原因导致的)
x 打工人ai神器