首页 > CMS > 织梦DEDE > 正文

织梦cms系统手机端静态化子导航一级二级栏目调用的解决方法

2024-08-30 19:07:36
字体:
来源:转载
供稿:网友

经测试,织梦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的最下方加入:

01 //获取顶级栏目名
02 function GetTopTypename($id)
03 {
04     global $dsql;
05     $row = $dsql->GetOne("SELECT typename,topid FROM dede_arctype WHERE id= $id");
06     if ($row['topid'] == '0')
07     {
08         return $row['typename'];
09     }
10     else
11     {
12         $row1 = $dsql->GetOne("SELECT typename FROM dede_arctype WHERE id= $row[topid]");
13         return $row1['typename'];
14     }
15 }

在文章页或者栏目列表页调用时,在所要调用 名称的位置加上下面这行代码即可实现。

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

在文章页中用下面这个方法来调用

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


方法二:

修改 include/helpers/extend.helper.php 
 

结尾增加 :

 

01 /*  获取顶级栏目相关信息
02  *
03  * @access    public
04  * @param     string  $tid  栏目id
05  * @param     string  $field栏目字段
06  * @return    string
07  */
08 if ( ! function_exists('getToptype'))
09 {
10 function getToptype($tid,$field)
11 {
12 global $dsql,$cfg_Cs;
13 if(!is_array($cfg_Cs))
14 {
15 require_once(DEDEDATA."/cache/inc_catalog_base.inc");
16 }
17 if(!isset($cfg_Cs[$tid][0]) || $cfg_Cs[$tid][0]==0)
18 {
19 $topid = $tid;
20 }
21 else
22 {
23 $topid = GetTopid($cfg_Cs[$tid][0]);
24 }
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'];//栏目内容
33 }
34 }


调用:

1 {dede:field.typeid function="gettoptype(@me,typename)"/}  //栏目名称


1 {dede:field.typeid function="gettoptype(@me,typeurl)"/}   //栏目链接

一次类推,怎么写可以观察php上面的定义!
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表