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 = DEDEDATA.'/enums/'.$egroup.'.php'; $fp = fopen($cachefile, 'w'); fwrite($fp, '<'."?php\r\nglobal \$em_{$egroup}s;\r\n\$em_{$egroup}s = array();\r\n"); $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; //三级联动标识 while ($nrow = $dsql->GetArray('enum')) { fwrite($fp, "\$em_{$egroup}s['{$nrow['evalue']}'] = '{$nrow['ename']}';\r\n"); if ($issign == -1) $issign = $nrow['issign']; if ($nrow['issign'] == 2) $tenum = true; } if ($tenum) $dsql->ExecuteNoneQuery("UPDATE `#@__stepselect` SET `issign`=2 WHERE egroup='$egroup'; "); fwrite($fp, '?'.'>'); fclose($fp); if (empty($issign)) WriteEnumsJs($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 = DEDEDATA.'/enums/'.$egroup.'.php'; include($cachefile); if ($formid == '') { $formid = $egroup; } $forms = ""; return $forms; } /** * 获取一级数据 * * @access public * @param string $egroup 联动组 * @return array */ function getTopData($egroup) { $data = array(); $cachefile = DEDEDATA.'/enums/'.$egroup.'.php'; include($cachefile); 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'}; include_once(DEDEDATA.'/enums/'.$egroup.'.php'); $jsCode = ""; return $jsCode; } /** * 写入联动JS代码 * * @access public * @param string $egroup 联动组 * @return string */ function WriteEnumsJs($egroup) { $jsfile = DEDEDATA.'/enums/'.$egroup.'.js'; $fp = fopen($jsfile, 'w'); fwrite($fp, GetEnumsJs($egroup)); fclose($fp); } /** * 获取枚举的值 * * @access public * @param string $egroup 联动组 * @param string $evalue 联动值 * @return string */ function GetEnumsValue($egroup, $evalue = 0) { include_once(DEDEDATA.'/enums/'.$egroup.'.php'); if (isset(${'em_'.$egroup.'s'}[$evalue])) { return ${'em_'.$egroup.'s'}[$evalue]; } else { return "保密"; } }