SetQuery("SELECT egroup FROM `#@__sys_enum` GROUP BY egroup "); } else { $dsql->SetQuery("SELECT egroup FROM `#@__sys_enum` WHERE egroup='$egroup' GROUP BY egroup "); } $dsql->Execute('enum'); while ($nrow = $dsql->GetArray('enum')) { $egroups[] = $nrow['egroup']; } foreach ($egroups as $egroup) { $cachefile = DEDESTATIC.'/enums/'.$egroup.'.json'; $dsql->SetQuery("SELECT ename,evalue,issign FROM `#@__sys_enum` WHERE egroup='$egroup' ORDER BY disorder ASC, evalue ASC "); $dsql->Execute('enum'); $issign = -1; $tenum = false; //三级联动标识 $data = array(); while ($nrow = $dsql->GetArray('enum')) { $data[$nrow['evalue']] = $nrow['ename']; if ($issign == -1) $issign = $nrow['issign']; if ($nrow['issign'] == 2) $tenum = true; } file_put_contents($cachefile,json_encode($data)); if ($tenum) $dsql->ExecuteNoneQuery("UPDATE `#@__stepselect` SET `issign`=2 WHERE egroup='$egroup'; "); } return '成功更新所有枚举缓存'; } /** * 获取联动表单两级数据的父类与子类 * * @access public * @param string $v * @return array */ function GetEnumsTypes($v) { $rearr['top'] = $rearr['son'] = 0; if ($v == 0) return $rearr; if ($v % 500 == 0) { $rearr['top'] = $v; } else { $rearr['son'] = $v; $rearr['top'] = $v - ($v % 500); } return $rearr; } /** * 获取枚举的select表单 * * @access public * @param string $egroup 联动组 * @param string $evalue 联动值 * @param string $formid 表单ID * @param string $seltitle 选择标题 * @return string 成功后返回一个枚举表单 */ function GetEnumsForm($egroup, $evalue = 0, $formid = '', $seltitle = '') { $cachefile = DEDESTATIC.'/enums/'.$egroup.'.json'; $data = json_decode(file_get_contents($cachefile)); foreach ($data as $key => $value) { ${'em_'.$egroup.'s'}[$key] = $value; } if ($formid == '') { $formid = $egroup; } $forms = ""; return $forms; } /** * 获取一级数据 * * @access public * @param string $egroup 联动组 * @return array */ function getTopData($egroup) { $data = array(); $cachefile = DEDESTATIC.'/enums/'.$egroup.'.json'; $data = json_decode(file_get_contents($cachefile)); foreach ($data as $key => $value) { ${'em_'.$egroup.'s'}[$key] = $value; } foreach (${'em_'.$egroup.'s'} as $k => $v) { if ($k >= 500 && $k % 500 == 0) { $data[$k] = $v; } } return $data; } /** * 获取数据的JS代码(二级联动) * * @access public * @param string $egroup 联动组 * @return string */ function GetEnumsJs($egroup) { global ${'em_'.$egroup.'s'}; $cachefile = DEDESTATIC.'/enums/'.$egroup.'.json'; $data = json_decode(file_get_contents($cachefile)); foreach ($data as $key => $value) { ${'em_'.$egroup.'s'}[$key] = $value; } $jsCode = ""; $jsCode .= "em_{$egroup}s=new Array();\r\n"; foreach (${'em_'.$egroup.'s'} as $k => $v) { //JS中将3级类目存放到第二个key中去 if (preg_match("#([0-9]{1,})\.([0-9]{1,})#", $k, $matchs)) { $valKey = $matchs[1] + $matchs[2] / 1000; $jsCode .= "em_{$egroup}s[{$valKey}]='$v';\r\n"; } else { $jsCode .= "em_{$egroup}s[$k]='$v';\r\n"; } } return $jsCode; } /** * 获取枚举的值 * * @access public * @param string $egroup 联动组 * @param string $evalue 联动值 * @return string */ function GetEnumsValue($egroup, $evalue = 0) { $cachefile = DEDESTATIC.'/enums/'.$egroup.'.json'; $data = json_decode(file_get_contents($cachefile)); foreach ($data as $key => $value) { ${'em_'.$egroup.'s'}[$key] = $value; } if (isset(${'em_'.$egroup.'s'}[$evalue])) { return ${'em_'.$egroup.'s'}[$evalue]; } else { return "保密"; } }