GVKun编程网logo

织梦dedecms调用四级栏目内容(织梦cms调用栏目图片)

25

本文将为您提供关于织梦dedecms调用四级栏目内容的详细介绍,我们还将为您解释织梦cms调用栏目图片的相关知识,同时,我们还将为您提供关于dedecms织梦内容详细页栏目页二级栏目三级栏目同时高亮办

本文将为您提供关于织梦dedecms调用四级栏目内容的详细介绍,我们还将为您解释织梦cms调用栏目图片的相关知识,同时,我们还将为您提供关于dedecms织梦内容详细页栏目页二级栏目三级栏目同时高亮办法、dedecms织梦模板循环调用二级栏目及下三级栏目教程、dedecms织梦调用三级四级无限级栏目教程、织梦 DEDECMS 调用导航栏的顶级栏目、二级栏目及三级栏目的实用信息。

本文目录一览:

织梦dedecms调用四级栏目内容(织梦cms调用栏目图片)

织梦dedecms调用四级栏目内容(织梦cms调用栏目图片)

 
织梦调用四级子栏目,首先需要修改文件:\include\taglib\channel.lib.php,请将以下代码全部复制替换上述文件:
<?php
function lib_channel(&$ctag,&$refObj)
{
global $_sys_globals,$envs,$dsql;
$attlist = "typeid|0,reid|0,row|100,col|1,type|son,currentstyle|";
FillAttsDefault($ctag->CAttribute->Items,$attlist);
extract($ctag->CAttribute->Items, EXTR_SKIP);
$innertext = $ctag->GetInnerText();
$cacheid = trim($cacheid);
if($cacheid !='') {
$likeType = GetCacheBlock($cacheid);
if($likeType != '') return $likeType;
}
 
$reid = 0;
$topid = 0;
if(empty($typeid) && $envs['typeid']!=0)
{
$typeid = $envs['typeid'];
$reid = $envs['reid'];
}else{
$reid=0;
}
if($type==''||$type=='sun') $type="son";
if($innertext=='') $innertext = GetSysTemplets("channel_list.htm");
if($reid==0 && $typeid>0)
{
$dbrow = $dsql->GetOne("Select reid From dede_arctype where id='$typeid' ");
if(is_array($dbrow)) $reid = $dbrow['reid'];
}
$likeType = '';
if($type=='top')
{
$sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description
From dede_arctype where reid=0 And ishidden<>1 order by sortrank asc limit 0,$row";
}
else if($type=="son")
{
//if($_sys_globals['typeid']>0) $typeid = $_sys_globals['typeid'];
if($typeid==0) {
return '';
}
$sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description
From dede_arctype where reid='$typeid' And ishidden<>1 order by sortrank asc limit 0,$row";
}
else if($type=="self")
{
if($reid==0) {
return '';
}
$sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description
From `dede_arctype` where reid='$reid' And ishidden<>1 order by sortrank asc limit 0,$row";
}
//And id<>'$typeid'
$needRel = false;
$dtp2 = new DedeTagParse();
$dtp2->SetNameSpace("field","[","]");
$dtp2->LoadSource($innertext);
$dsql2 = clone $dsql;
$dsql->SetQuery($sql);
$dsql->Execute();
$line = $row;
//检查是否有子栏目,并返回rel提示(用于二级菜单)
if(ereg(':rel', $innertext)) $needRel = true;
 
if(empty($sql)) return '';
$dsql->SetQuery($sql);
$dsql->Execute();
 
$totalRow = $dsql->GetTotalRow();
$GLOBALS['autoindex'] = 0;
for($i=0;$i < $line;$i++)
{
if($col>1) $likeType .= "<dl>\r\n";
for($j=0;$j<$col;$j++)
{
if($col>1) $likeType .= "<dd>\r\n";
if($row=$dsql->GetArray())
{
$row['sonids'] = $row['rel'] = '';
if($needRel)
{
$row['sonids'] = GetSonIds($row['id'], 0, false);
if($row['sonids']=='') $row['rel'] = '';
else $row['rel'] = " rel='dropmenu{$row['id']}'";
}
//处理同级栏目中,当前栏目的样式
if( ($row['id']==$typeid || ($topid==$row['id'] && $type=='top') ) && $currentstyle!='' )
{
if($currentstyle!='')
{
$linkOkstr = $currentstyle;
$row['typelink'] = GetOneTypeUrlA($row);
$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);
$likeType .= $linkOkstr;
}
}else
{
$row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row);
if(is_array($dtp2->CTags))
{
foreach($dtp2->CTags as $tagid=>$ctag){
if(isset($row[$ctag->GetName()]))
{
$dtp2->Assign($tagid,$row[$ctag->GetName()]);
}
elseif (preg_match('/^sonchannel[0-9]*$/',$ctag->GetName()))
{
$dtp2->Assign($tagid,lib_channel_son($ctag,$row['id'],$dsql2));
}
}
}
$likeType .= $dtp2->GetResult();
}
}
if($col>1) $likeType .= "</dd>\r\n";
$GLOBALS['autoindex']++;
}//Loop Col
if($col>1)
{
$i += $col - 1;
$likeType .= " </dl>\r\n";
}
}//Loop for $i
reset($dsql2);
$dsql->FreeResult();
return $likeType;
}
function lib_channel_son($ctag,$typeid = 0,$dsql2)
{
$attlist = "row|100,col|1,currentstyle|";
FillAttsDefault($ctag->CAttribute->Items,$attlist);
extract($ctag->CAttribute->Items, EXTR_SKIP);
$innertext = $ctag->GetInnerText();
$dsql3 = clone $dsql2;
$likeType = '';
//if($_sys_globals['typeid']>0) $typeid = $_sys_globals['typeid'];
if($typeid==0) {
return '';
}
$sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description
From dede_arctype where reid='$typeid' And ishidden<>1 order by sortrank asc limit 0,$row";
//And id<>'$typeid'
$dtp2 = new DedeTagParse();
$dtp2->SetNameSpace("field","[","]");
$dtp2->LoadSource($innertext);
$dsql2->SetQuery($sql);
$dsql2->Execute();
$line = $row;
for($i=0;$i < $line;$i++)
{
if($col>1) $likeType .= "<dl>\r\n";
for($j=0;$j<$col;$j++)
{
if($col>1) $likeType .= "<dd>\r\n";
if($row=$dsql2->GetArray())
{
$row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row);
if(is_array($dtp2->CTags))
{
foreach($dtp2->CTags as $tagid=>$ctag){
if(isset($row[$ctag->GetName()]))
{
$dtp2->Assign($tagid,$row[$ctag->GetName()]);
}
elseif (preg_match('/^sonchannel[0-9]*$/',$ctag->GetName()))
{
$dtp2->Assign($tagid,lib_channel_son($ctag,$row['id'],$dsql3));
}
}
}
$likeType .= $dtp2->GetResult();
}
if($col>1) $likeType .= "</dd>\r\n";
}//Loop Col
if($col>1)
{
$i += $col - 1;
$likeType .= " </dl>\r\n";
}
}//Loop for $i
reset($dsql3);
$dsql2->FreeResult();
return $likeType;
}
?>
 
2、在模板中调用实例:
 
{dede:channel type='son' typeid='3'}
[field:typename/]
<ul>
[field:sonchannel0]
<li><a href="[field:typelink/]">[field:typename/]</a></li>
[field:sonchannel1]
<li><a href="[field:typelink/]">---[field:typename/]</a></li>
[field:sonchannel2]
<li><a href="[field:typelink/]">===[field:typename/]</a></li>
[field:sonchannel3]
<li><a href="[field:typelink/]">===[field:typename/]</a></li>
[/field:sonchannel3]
[/field:sonchannel2]
[/field:sonchannel1]
[/field:sonchannel0]
</ul>
{/dede:channel}
 
本文章网址:http://www.ppssdd.com/code/340.html。转载请保留出处,谢谢合作!

dedecms织梦内容详细页栏目页二级栏目三级栏目同时高亮办法

dedecms织梦内容详细页栏目页二级栏目三级栏目同时高亮办法

 

dedecms织梦内容详细页栏目页二级栏目三级栏目同时高亮办法

实现教程

1、打开 \include\taglib\channelartlist.lib.php 找到

1

 

$tpsql = " reid='$typeid' AND ispart<>2 AND ishidden<>1 ";

 

改成

1

2

3

4

5

6

7

8

9

 

if($type=='son')

{

         $typeid = ( !empty($refObj->TypeLink->TypeInfos['id']) ?  GetTopid($refObj->TypeLink->TypeInfos['id']) : 0 );

         $tpsql = " reid='$typeid' AND ishidden<>1 ";

}

else

{

         $tpsql = " reid='$typeid' AND ispart<>2 AND ishidden<>1 ";

}

 

2、打开 \include\taglib\channel.lib.php 找到

1

 

if($type=='son' && $reid!=0 && $totalRow==0)

 

改成

1

 

if($type=='son' && $reid!=0 && $totalRow==0 && $noself=='')

 

3、后台-系统-其它选项 去掉php

dedecms织梦内容详细页栏目页二级栏目三级栏目同时高亮办法

栏目页和内容详细页标签写法

<ul>

{dede:php}

$GLOBALS['thisid'] = intval($refObj->Fields['typeid']);

$GLOBALS['reid'] = intval($refObj->Fields['reid']);

$GLOBALS['topid'] = intval($refObj->Fields['topid']);

{/dede:php}

{dede:channelartlist type=son}

<li{dede:field.typeid runphp=yes}(@me==$GLOBALS['thisid']||@me==$GLOBALS['reid']||@me==$GLOBALS['topid'])? @me='':@me='';{/dede:field.typeid}><a href='{dede:field.typeurl/}' >{dede:field.typename/}</a></li>

<ul>

{dede:channel type=son noself=yes}

<li[field:id runphp=yes](@me==$GLOBALS['thisid'])? @me='':@me='';[/field:id]><a href='[field:typelink /]' title='[field:typename/]'>[field:typename/]</a></li>

{/dede:channel}

</ul>

{/dede:channelartlist}

</ul>

注意:红色的地方是必须要的

本文章网址:http://www.ppssdd.com/code/12186.html。转载请保留出处,谢谢合作!

dedecms织梦模板循环调用二级栏目及下三级栏目教程

dedecms织梦模板循环调用二级栏目及下三级栏目教程

使用织梦遇到以下问题怎么办呢?“如何循环调用顶级栏目下的二级栏目以及所有的三级栏目”,大家有没有遇到类似问题呢??
下面是经过我个人研究得出的解决办法:
{dede:channelartlist typeid=’1′}(注:这是顶级栏目id)
{dede:field name=’typename’/}(注:这是二级栏目名称)
 {dede:sql sql=’Select * from dede_arctype where reid=~id~ ORDER BY id’}
[field:typedir function="cn_substr(@me,200,9) " /]  [field:typename/](注:这是三级栏目的静态路径和栏目名称)
   {/dede:sql}
 {/dede:channelartlist}
 因为[field:typedir /]在数据库存储的路径包括{cmspath}这个字符串,所以我们必须处理一下,就用到织梦(Dedecms)自带的cn_substr这个系统函数,这里简要说一下这个函数的参数,@me是当前字段值,也就是取出的[field:typedir /]这个值,200和9表示从第9个字符位置( (不包括这个字符))开始截取200个字符。

dedecms织梦调用三级四级无限级栏目教程

dedecms织梦调用三级四级无限级栏目教程

 

调用三级四级无限级栏目效果图

dedecms织梦调用三级四级无限级栏目教程

*种自定义函数递归法

适用于前端简单样式用户,在 include/extend.func.php *下面添加

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

 

  /**

    * 取出所有分类

    * @param     int   $channel  频道ID

    * @return    string  织梦源码download

    * 调用{dede:global.getalltype function='getalltype()'/}

    */

  

    function getalltype($channel=0,$line=10)

    {

             $line = empty($line) ? 10 : $line;

             global $dsql,$result;

             

             $dsql->SetQuery("SELECT id,typename,typenamedir,typelitpic,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath

                FROM `dede_arctype` WHERE reid='$channel' And ishidden<>1 order by sortrank asc limit 0, $line ");

             $dsql->Execute($channel);

             if($dsql->GetTotalRow($channel)>0)

             {

                       $result .= "<ul>\r\n";

                       while($row = $dsql->GetArray($channel))

                       {

                                $id = $row['id'];

                                $typename = $row['typename'];

                                $typelink = GetOneTypeUrlA($row);

  

                                $result .= "       <li>\r\n";

                                $result .= "                <a href='{$typelink}' target='_blank'>{$typename}</a>\r\n";

                                getalltype($id,$line);

                                $result .= "       </li>\r\n";

                       }

            $result .= "</ul>\r\n";

             }

             return $result;

    }

 

前台源码调用标签

{dede:global.getalltype function='getalltype()'/}

第二种标签嵌套法

适用于只调用出一级、二级、三级、四级的用户,直接在源码里写

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

 

<ul>

             {dede:channelartlist row=7 typeid=top}

             <!-- 优质 -->

             <li>

#p#分页标题#e#

                       <a href="{dede:field.typeurl/}" >{dede:field name='typename'/}</a>

                       <ul>

                       {dede:channel type=son noself=yes}

                       <!-- 二级 -->

                       <li>

                       <a href="[field:typeurl/]"  title="[field:typename/]">[field:typename/]</a>

                       <ul>

    <!-- 三级 -->

    [field:id runphp=yes]

    global $dsql;

    $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `dede_arctype` 

    WHERE reid=@me And ishidden<>1 order by sortrank asc limit 0,10";

    $dsql->SetQuery($sql);

    $dsql->Execute('t');

    $result = '';

    while($row = $dsql->GetArray('t'))

    {

        $typename = $row['typename'];

        $typeurl = GetOneTypeUrlA($row);

    $result .= <<< TPL

    <li><a href="{$typeurl}">{$typename}</a></li>

    TPL;

    }

    @me = $result;

    [/field:id]

                       </ul>

                       </li>

                       {/dede:channel}

                       </ul>

             </li>   

             {/dede:channelartlist}

    </ul>

 

上面的是输出到三级栏目,如果需要四级栏目可以这样写

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

 

<!-- 三级/四级 -->

    [field:id runphp=yes]

    global $dsql;

    $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `dede_arctype` 

    WHERE reid=@me And ishidden<>1 order by sortrank asc limit 0,10";

    $dsql->SetQuery($sql);

    $dsql->Execute('t');

    $result = '';

    while($row = $dsql->GetArray('t'))

    {

        $row['typeurl'] = GetOneTypeUrlA($row);

             $result .= "<a href='{$row[typeurl]}'>{$row[typename]}</a>";

             //四级

#p#分页标题#e#

             $nsql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath 

             FROM `dede_arctype` WHERE reid=$row[id] And ishidden<>1 order by sortrank asc limit 0,10";

             $dsql->SetQuery($nsql);

             $dsql->Execute('n');

             while($nrow = $dsql->GetArray('n'))

             {

                       $nrow['typeurl'] = GetOneTypeUrlA($nrow);

                       $result .= "<a href='{$nrow[typeurl]}'>{$nrow[typename]}</a>";

             }

    }

    @me = $result;

    [/field:id]

本文章网址:http://www.ppssdd.com/code/12069.html。转载请保留出处,谢谢合作!

织梦 DEDECMS 调用导航栏的顶级栏目、二级栏目及三级栏目

织梦 DEDECMS 调用导航栏的顶级栏目、二级栏目及三级栏目

织梦调用导航菜单栏目,随着 javascript 的运用,导航栏的子栏目越来越多,在 dedecms 如何实现这些栏目的调用呢?

  1. 一般导航栏目的调用,该类栏目只有主栏目,没有子栏目,这类栏目一般适用于企业网站和个人网站。其样式图如下:

 

  该类栏目的 dedecms 调用方法比较简单,如下:

{dede:channel type=''top'' currentcolor: #0000ff;"><li class=''thisclass''><a href=''~typelink~''>~typename~</a> 
</li>"} 
<li><a href=''[field:typeurl/]''>[field:typename/]</a></li>
{/dede:channel}

 

注释 (参数): typeid=''0'' 栏目 ID; reid = ''0'' 上级栏目 ID; row = ''100'' 调用栏目数;col = ''1'' 分多少列显示

(默认为单列);type = ''son | sun'' son 表示下级栏目,self 表示同级栏目,top 顶级栏目;current'' 应用样式 "。

  这种方法会把后台的顶级栏目都调用出来,如果想有些栏目不被调用出来,可以加上参数 typeid=‘所要调用栏目的

id’。对于调用指定的栏目可以用下面的标签:

{dede:type typeid=‘指定栏目的id’}
<a href="[field:typelink /]">[field:typename /]</a>
{/dede:type}

 

2. 带有二级子栏目的栏目的调用,这类网站用于信息分类比较多的网站,其样式图如下:

 

  这种栏目是比较常见的,其 dedecms 调用代码如下:

{dede:channelartlist typeid=''1,2,3,6,7,10,8,11'' row=''10''}    //typeid=‘顶级栏目的id’   
<li class="tab dropdown"><a  id="{dede:field name=''id''/}"  
href="{dede:field name=''typeurl''/}" class="tablink arwlink">
{dede:field name=''typename''/}</a>   
<ul class="subnav">      
{dede:channel type=''son'' noself=''yes''}     
<a href="[field:typelink/]">[field:typename/]</a>  
{/dede:channel}   
</ul>   
</li>     
{/dede:channelartlist}

 

 

对于没有子栏目的顶级栏目可以使用调用指定栏目的标签:

 

{dede:type typeid=‘指定栏目的id’}
<li>
<a href="[field:typelink /]">[field:typename /]</a>
</li>
{/dede:type}

 

 

 

这样可以实现上述栏目的调用。

  3. 有三级子栏目的调用代码,这类导航适用于商城等,其样式图如下:

  对于这种栏目的调用代码如下:

 

<li>
<h3>
{dede:type typeid=''2''}<a href=''[field:typelink/]'' class="depth_1">
[field:typename/]</a>{/dede:type}
</h3>  //顶级栏目的调用                  
<ul class="children" style="display: none; "> {dede:channelartlist typeid=''top''  typeid=''2''}  
 //二级栏目和三级栏目的调用这里typeid=''子栏目所属的顶级栏目的id''                    
<li>
<h3 >
<a href=''{dede:field name=''typeurl''/}'' class="depth_2">
<span class="icon10"></span>{dede:field name=''typename''/}
</a>
</h3>                                
<ul>                                 
{dede:sql sql=''Select * from dede_arctype where reid=~id~  ORDER BY id limit 0,20''}
  //limit 起始三级栏目id  显示栏目的条数                                 
<li><a href="[field:typedir function=''str_replace("{cmspath}","",@me)''/]"  
class="depth_3">[field:typename/]</a>
</li>                                 
{/dede:sql}                                 
</ul>                   
 </li>                   
{/dede:channelartlist}                   
</ul>           
</li>

 

 

 

 

 这三类基本上包括了导航栏的调用方式,而且都经过测试可以放心使用。

 

 

 

 

 

 

 

 

 

 

今天的关于织梦dedecms调用四级栏目内容织梦cms调用栏目图片的分享已经结束,谢谢您的关注,如果想了解更多关于dedecms织梦内容详细页栏目页二级栏目三级栏目同时高亮办法、dedecms织梦模板循环调用二级栏目及下三级栏目教程、dedecms织梦调用三级四级无限级栏目教程、织梦 DEDECMS 调用导航栏的顶级栏目、二级栏目及三级栏目的相关知识,请在本站进行查询。

本文标签: