在使用Dedecms CMS时,如果需要在首页调用联动类型,但默认情况下显示的是枚举值(即一堆无意义的数字),这显然不符合美观和用户体验的要求。为了将这些枚举值转换为对应的枚举名称,我们需要对 include/channelunit.func.php 文件进行修改。

以下是具体的操作步骤:

首先,在 channelunit.func.php 文件中添加以下代码:

// 联动类型
function GetInfoType($联动类别组名) {
    global $dsql;
    $typename = ”;
    $query = " Select ename From `dede_sys_enum` where egroup = ‘联动类别组名’ And evalue = ‘$联动类别组名";
    $dsql->Execute(‘ename’,$query);
    while($row=$dsql->GetArray(‘ename’)) {
        $typename .=($typename==” ? $row['ename'] : ‘,’.$row['ename']);
    }
    return $typename;
}

完成上述修改后,您可以在首页模板中通过以下代码调用联动类型:

{dede:arclistsg addfields=’联动类别组名’ row=’8′ channelid=’模型ID’ typeid=’栏目ID’ titlelen=’24′ }
[field:联动类别组名 function=GetInfoType(@me)/]
{/dede:arclistsg}

如果您希望将调用结果显示为链接形式,可以使用以下代码:

// 联动类型
function GetInfoType($联动类别组名) {
    global $dsql;
    $typename = ”;
    $query = " Select ename From `dede_sys_enum` where egroup = ‘联动类别组名’ And evalue = ‘$联动类别组名";
    $dsql->Execute(‘ename’,$query);
    while($row=$dsql->GetArray(‘ename’)) {
        $typename .=($typename==” ? $row['ename'] : ‘,’.$row['ename']);
        $typelink = "$typename";
    }
    return $typelink;
}

这样,点击生成的链接即可直接查询该模型下所有具有相同枚举值的列表内容。

需要注意的是,链接路径可能需要根据您的网站实际目录结构进行调整。此外,确保所使用的联动类别至少包含一个二级分类(即子分类下的子分类),否则调用可能会失败。

以上方法可以帮助您在不改动 Dedecms 核心程序的情况下,实现首页联动类型的正常显示与功能扩展。通过这种方式,您可以显著提升网站信息展示的专业性和用户体验。