dedecms地区数字的调用和转化思路
在分类信息列表页调用信息的小分类以及地区,并带上链接方法:
在分类信息标签文件(arclistsg.lib.php)内添加一个自定义标签:$row[‘cc‘]="".cn_substr($em_infotypes[$row[‘infotype‘]],$cclen)."";
然后在模板里面用[field:cc/]调用就可以啦
地区调用{dede:sqlsql="Select*From`dede_sys_enum`whereegrouplike‘nativeplace‘orderbydisorderasc,evalueasclimit0,24"}
[field:ename/]
{/dede:sql}
第一步:找到\include\comm.func.PHP 文件的 “ //自定义函数接口 ” 上面加入以下代码:
<span style="font-family:tahoma,geneva,sans-serif;"> function GetInfoType($tid,$bigt)
{
global $dsql;
$typename = '';
$query = "Select ename From `dede_sys_enum` where evalue=$tid and egroup='$bigt'";
$dsql->Execute('ename',$query);
while($row = $dsql->GetArray('ename'))
{
$typename .= ($typename=='' ? $row['ename'] : ','.$row['ename']);
}
return $typename;
}
</span>
第二步:在前台页面调用代码如下:
<span style="font-family:tahoma,geneva,sans-serif;">{dede:arclistsg row=‘10’ typeid=‘18’ titlelen=‘50’ orderby=‘pubdate’ channelid=‘-8’ idlist=‘’}
[[field:infotype function=GetInfoType(@me,‘nativeplace’) /]] [field:title/] [[field:dateline function=“MyDate(‘m-d’,@me)”/]]
{/dede:arclistsg}</span>
代码解释:
[field:nativeplace /] 这一个就是调用的文档联动菜单的枚举值。附加表存储的也就是联动类别里对应的枚举值的值而已。
function=GetInfoType 这个就是我们上面的自定义函数调用!这点是不能变的。
(@me,'nativeplace') 这 里面有两个变量,第一个为@me 它的意思是当前值,固定不变的,说白了就是告诉我们上面那个自定义函数要查询的枚举值的值。第二个,是联动菜单的缓存组 名,一般与前面的那个[field:nativeplace/]中的红色nativeplace 字段名保持一致即可。