好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

放在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}

查看更多关于文章页通过栏目ID获取栏目的名称的详细内容...

  阅读:51次