function WriteEnumsCache($egroup = '') { global $dsql; $egroups = array(); if ($egroup == '') { $dsql->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; while ($nrow = $dsql->GetArray('enum')) { fwrite($fp, "\$em_{$egroup}s[{$nrow['evalue']}] = '{$nrow['ename']}';\r\n"); if ($issign == -1) { $issign = $nrow['issign']; } } fwrite($fp, '?' . '>'); fclose($fp); if (empty($issign)) { WriteEnumsJs($egroup); } } return '成功更新所有枚举缓存!'; }
/** * 更新枚举缓存 * * @access public * @param string $egroup 联动组 * @return string */ function WriteEnumsCache($egroup = '') { global $dsql; $egroups = array(); if ($egroup == '') { $dsql->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 '成功更新所有枚举缓存!'; }