风格酷详解织梦dedecms5.7 无限级多级栏目菜单调用方法
如遇下载链接蓝奏网盘打不开lanzous替换成lanzoux尝试! 广告
![](/linkpic/xianzhuifeng.jpg)
这篇文章主要介绍了详解织梦dedecms5.7 无限级多级栏目菜单调用方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
以前在用到5.7无限级栏目列表菜单时下载了网上的资料都未成功,因此我参考网上及dedecms本身的channel.lib.php及cattree.lib.php制作了调用标签。
1、在include\taglib建立randomartlist.lib.php
内容如下:
<?php
if(!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>
.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{}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
NOTICE:【咨询风格酷】客服微信:wwwxmamnet
NOTICE:【风格酷模板网②群】QQ群:288678775
☉免责声明:本站所有模板均来自用户分享和网络收集,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服,我们核实后会立即删除。
☉如果源码网盘地址失效!或有其他问题,请点我报错,谢谢合作!
☉人民币与积分汇率为1比10,即1元=10积分.有任何疑问请联系客服!
☉如有其他问题,请加网站客服QQ(1131734965)进行交流。
☉本站提供的源码、模板、软件工具等其他资源,都不包含技术服务,请大家谅解!
☉源码、模板等资源会随着技术、环境的升级而存在部分问题,还请慎重选择。