// Diy自定在栏目页调用顶级栏目 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']; } } function GetTopTypenameen($id) { global $dsql; $row = $dsql->GetOne("SELECT typenameen,topid FROM dede_arctype WHERE id= $id"); if ($row['topid'] == '0') { return $row['typenameen']; } else { $row1 = $dsql->GetOne("SELECT typenameen FROM dede_arctype WHERE id= $row[topid]"); return $row1['typenameen']; } } |
以上的原因,一般是低版本升级系统为加固版后造成的。
下面的原因,一般是低版本升级系统为2018以后的版本造成的。
造成的因为是,模板文件里含这串代码: function="gettoptype(@me,id)"/}.jpg);
织梦顶级栏目链接,名称及id调用代码
{dede:field.typeid function="gettoptype(@me,id)"/} //id
{dede:field.typeid function="gettoptype(@me,name)"/} //名称
{dede:field.typeid function="gettoptype(@me,link)"/} //链接
解决方法就是:
修改 include/helpers/extend.helper.php
结尾增加 :
/**
* 获取一个类目的顶级栏目
* @param string $tid 栏目ID
* @return string
*/
if ( ! function_exists('gettoptype'))
{
function gettoptype($tid,$action)
{
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");
$toptypename = $row['typename'];
$toptypeurl = $topid;
if($action=='id') return $topid;
if($action=='name') return $toptypename;
if($action=='link') return GetOneTypeUrlA($row);
}
}