网站地图    收藏   

主页 > 后端 > dedecms >

文章页通过栏目ID获取栏目的名称

来源:未知    时间:2014-05-23 14:33 作者:xbdadmin 阅读:

[导读] 放在inc_functions.php 文件, ?前。 通过 {dede:field name=typeid function=GetTypeName(@me)/} 调用。 //通过栏目ID获取栏目的名称 function GetTypeName($typeid){ $typeandlink =; $dsql = new DedeSql(false); $dsql-GetOne(Sel...

放在inc_functions.php 文件, ?>前。   通过 {dede:field name=’typeid’ function=”GetTypeName(@me)”/}   调用。

//通过栏目ID获取栏目的名称

function GetTypeName($typeid){

   $typeandlink ="";

   $dsql = new DedeSql(false);

   $dsql->GetOne("Select ID,typedir,isdefault,defaultname,typename,ispart,namerule2 From detest_arctype where ID='$typeid' ");

   $dsql->Execute($typeid);

while($row=$dsql->GetObject($typeid))

       {

   $typelink = GetTypeUrl($row->ID,MfTypedir($row->typedir),$row->isdefault,$row->defaultname,$row->ispart,$row->namerule2);

   $typeandlink .= "<li id=\"list_dh\"><a href=\"$typelink\">".$row->typename."</a></li>\n";

     }

   return $typeandlink;

}

 

本来自己需要,然后搜索论坛,看到很多提问,回答的不多,而且采用的方法比较老。

如:<a href='{dede:field name=typelink /}'>{dede:field name=typename/}</a>

用起来的时候,不会生成地址 只会:<a href=''> 这样,是用这样的原理调用当前栏目的地址。

现在新版的DEDECMS V5.31 更强大了,刚刚去模板手册里转了下,看到了 最新的栏目调用标签,

特此发帖,希望大家注意到这样的一个好的标签。 (栏目地址调用出真实地址,不是“忽悠”地址,推荐!)

Quote:

 

 

标签名称:type

功能说明:表示指定的单个栏目的链接

适用范围:全局使用

基本语法:

{dede:type}

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

{/dede:type}

参数说明:

typeid='' 指定栏目ID

底层模板字段:

typename,typelink(仅表示栏目的网址), 栏目表dede_arctype的所有字段

 

 

就“{dede:field name='title'/}-{dede:field name='typename'/}-{dede:global name='cfg_webname'/}”这样就可以显示啦。

第3种:(推荐)

本来想修改inc_archives_view.php来实现,

后来发现用“position”更简便。。。(不知道有没有人发过,现在分享一下,有不足之处还请高手多多指点哦:)

代码如下:

{dede:field name='title'/}-{dede:field name='position' runphp='yes'}

      $tc="-"; //分隔符

      $tw=$GLOBALS['cfg_list_symbol']; //调用位置分隔符

      @me=html2text(@me); //去除html标签

      $tf=split($tw,@me); //分解成数组

      for($ta=(count($tf)-2);$ta>=1;$ta--){ //循环赋值给$tk

          $tk.=trim($tf[$ta]).$tc;

      }

      $tk=substr($tk,0,-1);

      @me=$tk; //赋值给@me

{/dede:field}-{dede:global name='cfg_webname'/}

将以上代码放在<title></title>之间就可以实现“文章标题-2级栏目-1级栏目-网站名”的形式了。

     {dede:field name='position' runphp='yes'}

$tw=$GLOBALS['cfg_list_symbol']; //调用位置分隔符

@me=html2text(@me); //去除html标签

$tf=split($tw,@me); //分解成数组

@me=trim($tf[count($tf)-2]);//得到一级栏目名称

{/dede:field}

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论