24小时服务热线:18684834710 | 设为首页 | 加入收藏

织梦DEDECMS自定义表单联动显示数字怎么办?

POST DATE:2015/06/15 13:47|来源:衡阳网站建设|编辑:梦达君

衡阳网站建设公司-梦达网络听到很多朋友都遇到了DEDECMS后台自定义表单中联动后,调用联动字段时只显示地区代码数字,其实就是织梦DEDECMS系统联动类编号(枚举值),要让其显示成中文其实也比较容易。下面就由衡阳做网站梦达网络的小编告诉大家改怎么操作吧。
 
首先我们来看一下没有修改的样子,也就是显示织梦DEDECMS后台自定义表单中联动信息的枚举值:
 

 
1,在"后台目录"\templets\diy_list.htm找到(大约在41行):
 
$fields[$field] = "<a href='{$fields[$field]}' target='_blank'><img src='images/channeladd.gif' border='0' /> 其它附件</a>"; 
在下面加入:
 
//联动类型显示修正开始
else if($fielddata[1]=='stepselect')
{
$db->Execute('me',"SELECT * FROM `dede_stepselect` WHERE itemname='{$fielddata[0]}'");
while($arr = $db->GetArray(me))
{
$egroup = $arr['egroup'];
}
$fields[$field] = Getenums("{$fields[$field]}",$egroup);
}
//联动类型显示修正结束

2,同样在该页面中找到:{/dede:datalist} ,在其后面加上如下代码:


<?php
function Getenums($evalue=0,$egroup)
{
    if( !isset($GLOBALS['em_'.$egroup.'s']) )
    {
        $cachefile = DEDEDATA.'/enums/'.$egroup.'.php';
        if(!file_exists($cachefile))
        {
            require_once(DEDEINC.'/enums.func.php');
            WriteEnumsCache();
        }
        if(!file_exists($cachefile))
        {
            return '';
        }
        else
        {
            require_once($cachefile);
        }
    }
    if($evalue>=500)
    {
        if($evalue % 500 == 0)
        {
            return (isset($GLOBALS['em_'.$egroup.'s'][$evalue]) ? $GLOBALS['em_'.$egroup.'s'][$evalue] : '');
        }
        else if (preg_match("#([0-9]{1,})\.([0-9]{1,})#", $evalue, $matchs))
        {
            $esonvalue = $matchs[1];
            $etopvalue = $esonvalue - ($esonvalue % 500);
            $esecvalue = $evalue;
            $GLOBALS['em_'.$egroup.'s'][$etopvalue] = empty($GLOBALS['em_'.$egroup.'s'][$etopvalue])? '' 
                                                     : $GLOBALS['em_'.$egroup.'s'][$etopvalue];
            $GLOBALS['em_'.$egroup.'s'][$esonvalue] = empty($GLOBALS['em_'.$egroup.'s'][$esonvalue])? '' 
                                                     : $GLOBALS['em_'.$egroup.'s'][$esonvalue];
            $GLOBALS['em_'.$egroup.'s'][$esecvalue] = empty($GLOBALS['em_'.$egroup.'s'][$esecvalue])? '' 
                                                     : $GLOBALS['em_'.$egroup.'s'][$esecvalue];
            return $GLOBALS['em_'.$egroup.'s'][$etopvalue].' - '.$GLOBALS['em_'.$egroup.'s'][$esonvalue].' - '.$GLOBALS['em_'.$egroup.'s'][$esecvalue];
        }
        else
        {
            $elimit = $evalue % 500;
            $erevalue = $evalue - $elimit;
            $GLOBALS['em_'.$egroup.'s'][$erevalue] = empty($GLOBALS['em_'.$egroup.'s'][$erevalue])? '' 
                                                     : $GLOBALS['em_'.$egroup.'s'][$erevalue];
            $GLOBALS['em_'.$egroup.'s'][$evalue] = empty($GLOBALS['em_'.$egroup.'s'][$evalue])? '' 
                                                     : $GLOBALS['em_'.$egroup.'s'][$evalue];
            return $GLOBALS['em_'.$egroup.'s'][$erevalue].' - '.$GLOBALS['em_'.$egroup.'s'][$evalue];
        }
    }
}
?>

好了,下面我们一起来看看修改后的样子,是不是显示中文了呢?

 

 
至此,衡阳网站建设-梦达网络小编已经完全解决织梦DEDECMS自定义表单联动显示数字(枚举值)的BUG,如果大家还不懂的话,请联系本站管理员,我们将很乐意的为您解答。如果还是不明白的话,建议大家去这个网站看看:http://www.guanzhunet.com/qq/17551.html