织梦dede调用四级栏目的实现方法

这篇具有很好参考价值的文章主要介绍了织梦dede调用四级栏目的实现方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

织梦调用四级子栏目,首先需要修改文件:\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 ishidden1 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 ishidden1 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 ishidden1 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 1) $likeType .= "
\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 .= "
\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 ishidden1 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 1) $likeType .= "
\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 .= "
\r\n"; } }//Loop for $i reset($dsql3); $dsql2->FreeResult(); return $likeType; } ?>

2、在模板中调用实例:

{dede:channel type='son' typeid='3'}
[field:typename/]
  • [field:typename/]
  • ---[field:typename/]
  • ===[field:typename/]
  • ===[field:typename/]
{/dede:channel}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持yii666。文章来源地址https://www.toymoban.com/news/detail-432304.html

到了这里,关于织梦dede调用四级栏目的实现方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • dede织梦自定义表单提交成功后跳转页面实现方法

    今天我们碰到一位客户,想要完成织梦表单提交后,跳转到一个页面显示:已提交成功,请耐心等待回复。处理到这里,我们想到了这个功能还是很容易完成的,需要对plus/diy.php处理提示页面。 修改方法 默认的是:“发布成功,请等待管理员处理...”,默认跳转页面是网站

    2024年02月03日
    浏览(100)
  • 织梦dedecms首页调用指定栏目内容的标签详解

    我们知道Dedecms开发起来很简单,但是dedecms的全局变量有字节限制,使得我们通过标签在首页无法调用大段的内容,尤其是包含了html标签的内容,但是dedecms有另外一种调用大段内容的方法,那就是通过sql语句来调用已保存的html内容。 例如一般的企业网站都会有一个企业简介

    2024年02月02日
    浏览(66)
  • 织梦dedecms调用得到文章所属的副栏目id及副栏目名称的教程

    标签调用代码 函数代码,在includeextend.func.php 中增加如下代码: 注意:织梦标签artlist不能调用副栏目中的文章内容的问题,即文章属于互联网这个副栏目,但互联网栏目中却不显示这个文章。需要修改系统文件./include/taglib/arclist.lib.php。 修改为 以上就是本文的全部内容,希

    2024年02月02日
    浏览(47)
  • dede:channel标签支持调用子栏目描述description及关键词keywords的办法

    dede:channel标签不支持调用子栏目的及栏目描述,有些时候我们需要用户,需要简单的修改一下文件,如下: includetaglibchannel.lib.php文件第86行(注意sql语句有多个,最好是都替换下) 在后面添加,keywords,description,成如下 在模板中(举例,根据自己的代码灵活使用):

    2024年02月02日
    浏览(57)
  • 详解织梦标签{dede:freelist/}列表调用增加排序方式的代码

    如何使用自由列表标签{dede:freelist/}我这里就不多说了。 当你用到自由列表的时候,会发现排序方式不全。比如我所需要用到 随机排序\\\"rank\\\"和按得分排序\\\"scores\\\"这里就没有。 当然这两个排序dede是有的只是没有列出来,这样就简单了。 找到打开 dede/templets/freelist_add.htm \\\"添加自

    2024年02月02日
    浏览(51)
  • 织梦dedecms获取当前栏目路径及栏目名称的方法

    标签如下: 当前: 复制代码 代码如下: {dede:type} [field:typename/] {/dede:type} 因为{dede:field  name=\\\'arcurl\\\'/} 这个获取当前页面路径的标签只能在内容页使用,栏目页没有效果的。所以在栏目页想获取当前栏目的路径及名称的话,就要用上面这个标签。 而获取网站所有栏目名称及路径

    2023年04月18日
    浏览(69)
  • 织梦DEDE发布文章设置会员查看级别的方法

    最近有朋友在浏览织梦DEDECMS搭建的网站时出现了,你目前等级是会员,文章需要高级会员才能浏览提示。 其实这是织梦DEDECMS本事就自带的一个不同级别会员可以给予不同的阅读权限的问题。 下面的图片可以清楚的看到,在发布文章的时候,我们可以设置最低可预览的会员级

    2024年02月03日
    浏览(57)
  • dede织梦文章列表隔行换色的方法

    下面给大家分享一段代码能让织梦文章列表背景实现隔行换色效果:具体代码如下,大家可以根据自己的需要进行修改: 示例代码如下: \\\"; $adminbuy.cn_b=\\\"\\\";if ((@me%2)==0) @me=$\\\'adminbuy.cn_a; else @me=$\\\'adminbuy.cn_b;[/field:global][field:title/]{/dede:arclist} 通过上边示例可以看出: 此代码使用了

    2024年02月02日
    浏览(77)
  • 织梦dede模板内怎么加入php代码的方法示例

    一、模板页面内嵌入php 例如: 最终输出结果为hello world 其实\\\"name\\\"为任意定义的名字,\\\"@me=\\\"后面的值是最终用于输出的值,我就拿它代替echo来用(如果直接用echo,模板生成的时候报错,这就是有所限制的地方,唉)。 二、引用php文件 如果你想在include的文件中使用PHP,则加上

    2024年02月02日
    浏览(51)
  • dedecms织梦php7+删除不了后台栏目的解决方法

    明明提示删除成功了,可是栏目还在后台栏目管理里,那是因为你的web环境PHP版本太高,例如PHP7的,织梦最新版本20180109还不能完全兼容PHP7,要么降低你的PHP版本为PHP5,要么修改一下这个文件。 PHP7+高版本环境下,织梦dedecms删除网站栏目失败。主要原因是语句书写不严谨,

    2024年02月03日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包