dede调用当前顶级栏目名称、ID、url方法
使用dede时,经常会碰到需要调用当前顶级栏目名称,而织梦默认{dede:field name='typename' /} 只可以获取当前栏目页上一级栏目的名称,而不是当前栏目顶级栏目名称。
在include/common.func.php的底部加入:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
//获取顶级栏目名
function GetTopTypename( $id )
{
global $dsql ;
$row = $dsql ->GetOne( "SELECT typename,topid FROM dede_arctype WHERE id= $id" );
if ( $row [ 'topid' ] == '0' )
{
return $row [ 'typename' ];
}
else
{
$row1 = $dsql ->GetOne( "SELECT typename FROM dede_arctype WHERE id= $row[topid]" );
return $row1 [ 'typename' ];
}
}
|
备注:若顶级栏目没有绑定二级域名,所调用的字段应该是 sitepath 故代码应如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
//获取顶级栏目url
function GetTopTypeurl( $id )
{
global $dsql ;
$row = $dsql ->GetOne( "SELECT sitepath,topid FROM dede_arctype WHERE id= $id" );
if ( $row [ 'topid' ] == '0' )
{
return $row [ 'sitepath' ];
}
else
{
$row1 = $dsql ->GetOne( "SELECT sitepath FROM dede_arctype WHERE id= $row[topid]" );
return $row1 [ 'sitepath' ];
}
}
|
顶级栏目其他字段调用的function 函数仿照上面所示书写即可。
同理可得获取顶级栏目url方法 (当顶级栏目绑定二级域名时调用的字段为“ siturl”)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
function GetTopTypeurl( $id )
{
global $dsql ;
$row = $dsql ->GetOne( "SELECT siteurl,topid FROM dede_arctype WHERE id= $id" );
if ( $row [ 'topid' ] == '0' )
{
return $row [ 'siteurl' ];
}
else
{
$row1 = $dsql ->GetOne( "SELECT siteurl FROM dede_arctype WHERE id= $row[topid]" );
return $row1 [ 'siteurl' ];
}
}
|
在文章页或者栏目列表页调用时,在所要调用栏目名称的位置加上下面这行代码即可实现。
{dede:field name='typeid' function="GetTopTypename(@me)" /} 顶级栏目名
{dede:field name='typeid' function="GetTopTypeurl(@me)" /} 顶级栏目url
dede调用顶级栏目ID 方法一:
{dede:field.typeid function="GetTopid(@me)"/} 聚模板首推这一方法,经过测试是可行的。
dede调用顶级栏目ID 方法二:
1、在所需要调用顶级栏目ID的地方,添加这段标签语法
{dede:type}[feild:topid/]{/dede:type}
2、修改源文件,找到include目录下的taglib目录下的type.lib.php。
找到这条语句
1
2
|
$row = $dsql ->GetOne(“Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
From `dede_arctype` where id=’ $typeid ’ “);
|
修改成为
1
2
|
$row = $dsql ->GetOne(“Select id,topid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
From `dede_arctype` where id=’ $typeid ’ “);
|
在if(!is_array($row)) return ”;下一行添加
1
|
if ( $row [ 'topid' ]==0){ $row [ 'topid' ]= $row [ 'id' ];}
|
这样,这条语句在顶级栏目还是子栏目,都可以调用了
转载于:https://www.cnblogs.com/blogs-wzj/p/6774985.html
dede调用当前顶级栏目名称、ID、url方法相关推荐
- 织梦CMS调用指定顶级栏目名称的方法
我们想在列表页或内容页调用指定顶级栏目名称及链接的时候,只能调用所有顶级栏目或该频道下面的子栏目,试了很多方法都不行,实在是让人郁闷.下面就来说说怎么调用指定栏目名称及链接的方法: 1.{dede:f ...
- dedecms织梦调用指定顶级栏目名称的方法
在列表页或者内容详情页调用指定的顶级栏目名称及链接方法. 1.{dede:field name="typename"} 这是调用当前栏目的名称 2.{dede:channel ...
- phpcmsV9子栏目调用其父栏目名称、URL、catid等信息 - 方法总结
phpcmsV9子栏目调用其父栏目名称.URL.catid等信息 - 方法总结 phpcmsV9子栏目列表页.内容页调用该栏目的父栏目和顶级栏目的名称.url链接.catid-id等信息的方法.具体参 ...
- phpcmsV9首页loop文章调用顶级栏目名称
phpcmsV9首页loop文章调用顶级栏目名称 近日,查看了一下以前的项目,准备改进了一下样式和标签等. 这里主要针对以下两点: (1)最顶级父栏目 - 调用 (2)直接上一级父栏目 - 调用 项目 ...
- 织梦栏目mysql调用_织梦调用指定顶级栏目或当前子栏目名称的方法
下面说说各种栏目名称的调用方法: 1.{dede:field name="typename"} 这是调用当前栏目的名称 2.{dede:channel type='son' row ...
- 织梦获取当前栏目的顶级栏目名称。
目标:获取到当前栏目的顶级栏目名称. 首先在include/common.func.php文件里边添加如下方法 //获取顶级栏目名 function GetTopTypename($id) {glob ...
- 织梦调用父级栏目名称
1.打开include/taglib/type.lib.php,找到 $row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row); 在其下面增加 ...
- dedecms获取顶级栏目名称、二级栏目名称实现方法
标签如下: 当前: {dede:type} <a href=" [field:typelink /] "> [field:typename/] </a> ...
- 织梦DEDECMS文章、栏目页获取当前页面顶级栏目名称的方法
织梦DEDECMS文章.栏目页获取当前页面顶级栏目名称的方法 织梦DEDECMS文章.栏目页获取当前页面顶级栏目名称的方法 在用织梦做一些项目时,时常会碰到需要在当前页面调用顶级栏目名称的时候,织梦默 ...
最新文章
- Python大战C++,谁能更胜一筹?
- jQuery 的 serializeArray()、serialize() 方法
- 如何用python实现自动化_如何使用Python实现自动化水军评论
- Activiti 简易教程
- 数学里的π究竟牛在哪里
- A+B for Input-Output Practice (I)
- linux mysql 8.0启动不了_MySQL官方源从8.0.3直接yum升级到8.0.4后无法启动
- springcloud(第三篇)springcloud eureka 服务注册与发现 *****
- VC和gcc在保证功能static对线程安全的差异变量
- unity场景的结构和物体的属性导出xml文件
- lisp一键室内标注_CAD插件:自动标注面积lisp程序
- Labview实现AM调制
- ECU存储安全之存储器安全
- 怎么注销百度云服务器账号,百度网盘怎么注销账号?账号注销方法一览
- 计算机开机跳过硬盘检查,怎么取消开机自动检测硬盘磁盘检查,开机老是修复分区怎么办及原因...
- 夏天吃海鲜的八大禁忌
- python3 tkinter 刷新标签图片
- Flutter中使用device_info获取设备信息
- input框点击时去掉默认的外层边框
- 合格资本工具_《商业银行资本管理办法附件》附件1——资本工具合格标准.doc...