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 "保密"; } }