• 全国400电话网上服务平台
    强大号码库资源任选,方便,快捷,快速开通。
    咨询热线:400-1100-266  

    dedecms V5.7自定义表单增加联动类型只显示枚举值
    POST TIME:2018-01-08 21:52

    dedecms V5.7自定义表单增加联动类型只显示枚举值的解决方法:

    织梦官方在自定义表单中把联动类型加了注释的,那么我们现在把注释删除就可以使用了,

    找到
    /dede/templets/diy_field_add.htm

    /dede/templets/diy_field_edit.htm

    把注释掉的联动选项给恢复。然后在自定义表单里增加字段,填写联动名,,前台就可以用了。

    还有一个就是,这样做出来的联动前台和后台都只显示枚举值,,很烦人,我在网上找到方法,如下:

    1.在"后台目录" empletsdiy_list.htm找到(大约在41行):

    $fields[$field] = "<a href='{$fields[$field]}' target='_blank'><img src='p_w_picpath/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];
    }
    }
    }
    ?>
    修改完毕。

    需要注意的是:添加新字段时候,表单提示文字必须和联动的组类别名一致,比如我要添加一个表单提示文字是“地区”,那么新增类别组的时候 类别名也要填写“地区”

    
    关于我们 | 付款方式 | 建站知识 | 增值服务 | 网站模板
    Copyright © 2003-2016
    时间:9:00-21:00 (节假日不休)
    版权所有:巨人网络(扬州)科技有限公司
    总部地址:江苏省信息产业基地11号楼四层
    《增值电信业务经营许可证》 苏B2-20120278
    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信

    微信号已复制,请打开微信添加咨询详情!