经测试,织梦cms电脑端和手机端均可使用,方便快捷,不过一般在手机端子导航使用最佳~
织梦DEDECMS文章、栏目页获取当前页面顶级栏目名称的方法
在用织梦做一些项目时,时常会碰到需要在当前页面调用顶级栏目名称的时候,织梦默认{dede:field name='typename' /} 可以获取当前栏目页上一级栏目的名称,而不是当前栏目顶级栏目名称。
下面拓展出一个方法来实现这个效果:
添加方式:
<div class="am-u-md-8">当前位置 : <a href="{dede:global.cfg_wapurl/}/">首页</a>><a href="{dede:field.typeid function="gettoptype(@me,typeurl)"/}">{dede:field.typeid function="gettoptype(@me,typename)"/}</a>>
{dede:type type='son'}<a href="http://m.cuoXin.com[field:typeurl function='preg_replace("(.*/m/)","/",@me) /]">[field:typename/]{/dede:type}</a> </div>
方法一:
在include/common.func.php的最下方加入:
02 | function GetTopTypename($ id ) | 05 | $row = $dsql->GetOne( "SELECT typename,topid FROM dede_arctype WHERE id= $id" ); | 06 | if ($row[ 'topid' ] == '0' ) | 08 | return $row[ 'typename' ]; | 12 | $row1 = $dsql->GetOne( "SELECT typename FROM dede_arctype WHERE id= $row[topid]" ); | 13 | return $row1[ 'typename' ]; | |
在文章页或者栏目列表页调用时,在所要调用 名称的位置加上下面这行代码即可实现。
1 | {dede:field name= 'typeid' function = "GetTopTypename(@me)" /} | |
在文章页中用下面这个方法来调用
1 | {dede:field name= 'typeid' function ="GetTopTypename(@me) /} | |
方法二: 修改 include/helpers/extend.helper.php
结尾增加 :
04 | * @param string $tid 栏目 id | 05 | * @param string $field栏目字段 | 08 | if ( ! function_exists( 'getToptype' )) | 10 | function getToptype($tid,$field) | 13 | if (!is_array($cfg_Cs)) | 15 | require_once(DEDEDATA. "/cache/inc_catalog_base.inc" ); | 17 | if (!isset($cfg_Cs[$tid][0]) || $cfg_Cs[$tid][0]==0) | 23 | $topid = GetTopid($cfg_Cs[$tid][0]); | 25 | $row = $dsql->GetOne( "SELECT * FROM `dede_arctype` WHERE id=$topid" ); | 26 | if ($field== 'id' ) return $topid; | 27 | if ($field== 'typename' ) return $row[ 'typename' ];//栏目名称 | 28 | if ($field== 'typeurl' ) return GetOneTypeUrlA($row);//栏目链接 | 29 | if ($field== 'typenamedir' ) return $row[ 'typenamedir' ];//栏目英文名称 | 30 | if ($field== 'seotitle' ) return $row[ 'seotitle' ];//栏目SEO标题 | 31 | if ($field== 'description' ) return $row[ 'description' ];//栏目描述 | 32 | if ($field== 'content' ) return $row[ 'content' ];//栏目内容 | |
调用: 1 | {dede:field.typeid function = "gettoptype(@me,typename)" /} //栏目名称 | |
1 | {dede:field.typeid function = "gettoptype(@me,typeurl)" /} //栏目链接 | |
一次类推,怎么写可以观察php上面的定义!