織夢DEDECMS文章、欄目頁獲取當(dāng)前頁面頂級欄目名稱的方法
在用織夢做一些項(xiàng)目時,時常會碰到需要在當(dāng)前頁面調(diào)用頂級欄目名稱的時候,織夢默認(rèn){dede:field name='typename' /} 可以獲取當(dāng)前欄目頁上一級欄目的名稱,而不是當(dāng)前欄目頂級欄目名稱。
下面拓展出一個方法來實(shí)現(xiàn)這個效果:
方法一:
在include/common.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']; }} |
在文章頁或者欄目列表頁調(diào)用時,在所要調(diào)用 名稱的位置加上下面這行代碼即可實(shí)現(xiàn)。
{dede:field name='typeid' function="GetTopTypename(@me)" /} |
在文章頁中用下面這個方法來調(diào)用
{dede:field name='typeid' function="GetTopTypename(@me) /} |
修改 include/helpers/extend.helper.php
結(jié)尾增加 :
/* 獲取頂級欄目相關(guān)信息 * * @access public * @param string $tid 欄目id * @param string $field欄目字段 * @return string */if ( ! function_exists('getToptype')){function getToptype($tid,$field){global $dsql,$cfg_Cs;if(!is_array($cfg_Cs)){require_once(DEDEDATA."/cache/inc_catalog_base.inc");}if(!isset($cfg_Cs[$tid][0]) || $cfg_Cs[$tid][0]==0){$topid = $tid;}else{$topid = GetTopid($cfg_Cs[$tid][0]);}$row = $dsql->GetOne("SELECT * FROM `dede_arctype` WHERE id=$topid");if($field=='id') return $topid;if($field=='typename') return $row['typename'];//欄目名稱if($field=='typeurl') return GetOneTypeUrlA($row);//欄目鏈接if($field=='typenamedir') return $row['typenamedir'];//欄目英文名稱if($field=='seotitle') return $row['seotitle'];//欄目SEO標(biāo)題if($field=='description') return $row['description'];//欄目描述if($field=='content') return $row['content'];//欄目內(nèi)容}} |
{dede:field.typeid function="gettoptype(@me,typename)"/} //欄目名稱 |
{dede:field.typeid function="gettoptype(@me,typeurl)"/} //欄目鏈接 |
新聞熱點(diǎn)
疑難解答
圖片精選