• 中文
    • English
  • 注册
    • 总打赏排行
    • 今日收益排行

    暂没有数据

  • 牛魔王
    牛魔王
    他太懒了,什么都没有写
  • 查看作者
  • 织梦模板dedecms5.7 无限级多级栏目菜单调用教程

    以前在用到5.7无限级栏目列表菜单时下载了网上的资料都未成功,因此我参考网上及dedecms本身的channel.lib.php及cattree.lib.php制作了调用标签。
    1、在includetaglib建立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' current}
    <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{}

  • 0
  • 0
  • 0
  • 41
  • 请登录之后再进行评论

    登录
  • 做任务
  • 实时动态
  • 偏好设置
  • 返回顶部
  • 单栏布局 侧栏位置: