IT技术学习网
IT技术学习网
您的位置: 主页 > 编程技术 > php > dedecms >

dede织梦获取顶级栏目id或typeid

2014-12-04 18:11 来源: IT技术学习网原创 阅读:

本文讲述dedecms如何获得当前页面或栏目的顶级栏目的的栏目id或者叫typeid和topid。

首先声明,本文获取的是顶级栏目id,不是父栏目的父栏目id。

[field:typeid runphp="yes"]  
  $ID = @me;
  global $dsql;
  $sql = "SELECT typename,topid FROM `dede_arctype` WHERE id=$ID";
     $row = $dsql->GetOne("SELECT typename,topid FROM standard_arctype WHERE id= $ID ");
    if ($row['topid'] == '0')
    {
    @me=$row['typename'];
    }
    else
    {
        $row1 = $dsql->GetOne("SELECT typename FROM dede_arctype WHERE id= $row[topid]");
        @me= $row1['typename'];
    }
[/field:typeid]

或者使用{dede:field name='typeid' runphp="yes"} {/dede:field} 标签,里面内容一样。看情况选择。

也可以直接写在/include/extend.func.php文件中,方便以后调用。

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'];
    }
}

调用方式二选一,看情况选择:

{dede:field name='typeid' function="GetTopTypename(@me) /}
[field:typeid function="GetTopTypename(@me)" /]

如果表前缀已更改,请记得更改表前缀才能正常使用。本代码亲测绝对可用。

另外,如果您将普通栏目移动过为顶级栏目的话,其下的栏目的顶级栏目,数据库中,仍然是老的顶级栏目不会变。这是dede的一个小bug。请自行手动修改dede_arctype数据表中的topid数值。

dede织梦获取顶级栏目id或typeid
转载需注明出处:IT技术学习网 http://www.itjsxx.com/dedecms/get_top_id_typeid.html

评论文章 dede织梦获取顶级栏目id或typeid
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
IT技术学习网 - 关于我们 - 联系我们 - 版权声明 - 网站地图