织梦dedecms子栏目获取顶级栏目名称和链接方法
2023/03/11 12:23
创新屋收录网
已浏览316次
dedecms5.7获取顶级栏目名称的标签
下面是调用顶级栏目名称的方法:
方法一:
01 |
{dede:field.typeid runphp=’yes’}$ID = @me; |
03 |
$sql = “SELECT * FROM `dede_arctype` WHERE id=$ID”; |
05 |
$query = mysql_query($sql);$row=mysql_fetch_array($query); |
07 |
$relID = “$row[reid]“; if($relID == 0) {@me = $row[typename];} |
09 |
else{$sql = “SELECT `typename` FROM `dede_arctype` WHERE id=$relID”; |
11 |
$query = mysql_query($sql);$row=mysql_fetch_array($query); |
13 |
@me = $row[typename];}{/dede:field.typeid} |
|
这个方法语句有些长。
方法二:
1 |
{dede:field.title runphp='yes'} |
3 |
list($toptype,$sontype)=split('/',@me);@me=$toptype; |
|
方法三:
01 |
{dede:field.typeid runphp='yes'} |
03 |
$ID = @me; $sql = "SELECT * FROM `dede_arctype` WHERE id=$ID"; |
05 |
$query = mysql_query($sql);$row=mysql_fetch_array($query); |
07 |
$relID = "$row[reid]"; $topID="$row[topid]"; |
09 |
if($relID == 0) {@me = $row[typename];} |
11 |
else{$sql = "SELECT `typename` FROM `dede_arctype` WHERE id=$topID"; |
13 |
$query = mysql_query($sql);$row=mysql_fetch_array($query); |
15 |
@me = $row[typename];}{/dede:field.typeid} |
|
方法四(推荐):
打开include/helpers/extend.helper.php,添加一个函数:
/**
09 |
if ( ! function_exists('getTopChannelName')) |
13 |
function getTopChannelName($id) { |
17 |
$typeinfo = $dsql->GetOne("SELECT * FROM `dede_arctype` WHERE id='{$id}'"); |
19 |
if($typeinfo['reid']==0) return $typeinfo['typename']; |
21 |
else return getTopChannelName($typeinfo['reid']); |
|
在列表页这么使用:{dede:field name='id' function='getTopChannelName(@me)'/}
在内容页这么使用:{dede:field name='typeid' function='getTopChannelName(@me)'/}
附带获取顶级栏目的url:
打开include/helpers/extend.helper.php,添加一个函数:
/**
* 获取指定栏目id的顶级栏目的url
*
05 |
if ( ! function_exists('getTopChannelUrl')) |
09 |
function getTopChannelUrl($id) { |
13 |
$typeinfo = $dsql->GetOne("SELECT * FROM `dede_arctype` WHERE id='{$id}'"); |
15 |
if($typeinfo['reid']==0) return GetOneTypeUrlA($typeinfo); |
17 |
else return getTopChannelUrl($typeinfo['reid']); |
|
使用方法同上。