校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 網站建設 > 建站知識 > 織夢dedecms5.7 無限級多級欄目菜單調用方法

織夢dedecms5.7 無限級多級欄目菜單調用方法

POST TIME:2020-04-12 22:02

站長親測可用
以前在用到5.7無限級欄目列表菜單時下載了網上的資料都未成功,因此我參考網上及dedecms本身的channel.lib.php及cattree.lib.php制作了調用標簽。
1、在include aglib建立randomartlist.lib.php
內容如下:
<?php
if(!defined('DEDEINC'))exit('RequestError!');

functionlib_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("SELECTreid,topid,channeltype,ispartFROM`dede_arctype`WHEREreid='$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="SELECTid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepathFROM`dede_arctype`WHEREreid='$topid'Andishidden<>1orderbysortrankasc";
}
$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><ahref='{$row['typelink']}'>{$row['typename']}</a></li> ";
}
randomartlistSon($row['id'],$typeid,$currentstyle,$revalue);
}
if($cacheid!=''){
WriteCacheBlock($cacheid,$revalue);
}
return$revalue;
}

functionrandomartlistSon($id,$typeid,$currentstyle,&$revalue)
{
global$dsql;
$query="SELECTid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepathFROM`dede_arctype`WHEREreid='{$id}'Andishidden<>1orderbysortrankasc";
$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><ahref='{$row['typelink']}'>{$row['typename']}</a></li> ";
}

randomartlistSon($row['id'],$typeid,$currentstyle,$thisv);
}
if($thisv!='')$revalue.="<ul> $thisv</ul> ";
}

2、調用方式:
<divclass="alist">

<ul>
{dede:randomartlisttopid='12'currentstyle="<li><ahref='~typelink~'class='thisclass'>~typename~</a></li>"}
<li><ahref="{dede:fieldname='typeurl'/}"title="{dede:fieldname='typename'/}">{dede:fieldname='typename'/}</a></li>
{/dede:randomartlist}
</ul>
</div>
3、css方式:
.alist{}
/*第一層修飾*/
.alistul{}
.alistulli{}
.alistullia{}
.alistullia:hover,.alistulli.thisclass{}
/*第二層修飾*/
.alistulliul{}
.alistulliulli{}
.alistulliullia{}
.alistulliullia:hover,.alistulliulli.thisclass{}



收縮
  • 微信客服
  • 微信二維碼
  • 電話咨詢

  • 400-1100-266
主站蜘蛛池模板: 闸北区| 池州市| 吉木萨尔县| 龙州县| 周口市| 徐汇区| 疏附县| 福贡县| 突泉县| 万山特区| 边坝县| 临江市| 永善县| 府谷县| 娄底市| 古田县| 龙江县| 原平市| 静海县| 桐柏县| 土默特左旗| 德惠市| 长岭县| 靖西县| 府谷县| 将乐县| 临海市| 仙居县| 讷河市| 和平区| 常熟市| 永春县| 满洲里市| 平顶山市| 肃宁县| 东兰县| 博罗县| 闽清县| 永平县| 开江县| 泰来县|