最近访客
百度未收录

DedeCms自定义表单联动类型只显示枚举值的问题

首先,如果没有显示联动选项的话,请您先阅读《DedeCms自定义表单中联动类型不可用的解决方法》

下面我们讨论DedeCms自定义表单联动类型只显示枚举值的问题,本文的解决方法适用于DedeCms5.5、5.6,其它版本没有测试。

相对于上面的方法,解决以下问题:

1、有多少个自定义的模板,建立多少个diy_list’.$diyid.’.htm,很不灵活

2、每个自定义表单只能建一个联动类型

UTF-8的懒人可以下载附件:diy_list.rar,直接替换,diy_list.htm文件替换到dedetemplets下。

修改方法:

1.在”后台目录”templetsdiy_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]; } } } ?>

修改完毕。 

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

温馨提示: 本文最后更新于2022/10/20 02:56:27。若文章内容或图片失效,请 留言联系站长反馈!
!
也想出现在这里? 联系我们
创意广告
© 版权声明
THE END
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容