Example #1
0
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 '成功更新所有枚举缓存!';
}
Example #2
0
/**
 *  更新枚举缓存
 *
 * @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 '成功更新所有枚举缓存!';
}