$mymps) { $mayicms .= '
  • ' . $mymps[catname] . '
    '; if (is_array($mymps)) { foreach ($mymps[children] as $w) { $mayicms .= '' . $w[catname] . ''; } } $mayicms .= '
  • '; } $mayicms = html2js($mayicms); if (!createfile(MYMPS_DATA . '/caches/cats_js.php', $mayicms)) { write_msg(MYMPS_DATA . '/caches/cats_js.php 文件不可写,请检查相应权限'); } } } function write_plugin_cache() { global $db; global $db_mymps; global $charset; clear_cache_files('plugin'); $query = $db->query('SELECT * FROM `' . $db_mymps . 'plugin`'); while ($row = $db->fetchRow($query)) { $res[$row['flag']]['id'] = $row['id']; $res[$row['flag']]['flag'] = $row['flag']; $res[$row['flag']]['iscore'] = $row['iscore']; $res[$row['flag']]['name'] = $row['name']; $res[$row['flag']]['directory'] = $row['directory']; $res[$row['flag']]['disable'] = $row['disable']; $config = $charset == 'utf-8' ? utf8_unserialize($row['config']) : unserialize($row['config']); $res[$row['flag']]['ifrewrite'] = $config['ifrewrite']; $res[$row['flag']]['seotitle'] = $config['seotitle']; $res[$row['flag']]['seokeywords'] = $config['seokeywords']; $res[$row['flag']]['seodescription'] = $config['seodescription']; $res[$row['flag']]['adminmenu'] = $config['adminmenu']; $res[$row['flag']]['membermenu'] = $config['membermenu']; if ($row['flag'] == 'goods') { $res[$row['flag']]['quhuo'] = $config['quhuo']; $res[$row['flag']]['fukuan'] = $config['fukuan']; $res[$row['flag']]['service'] = $config['service']; } $res[$row['flag']]['version'] = $row['version']; $res[$row['flag']]['releasetime'] = $row['releasetime']; $res[$row['flag']]['author'] = $row['author']; $res[$row['flag']]['introduce'] = $row['introduce']; $res[$row['flag']]['siteurl'] = $row['siteurl']; $res[$row['flag']]['email'] = $row['email']; $res[$row['flag']]['copyright'] = $row['copyright']; } write_static_cache('plugin', $res); clear_cache_files('pluginmenu_admin'); clear_cache_files('pluginmenu_member'); @include MYMPS_DATA . '/caches/plugin.php'; if (is_array($data)) { foreach ($data as $key => $val) { if ($val['disable'] != 1) { $adminmenu[$val['name']] = arraychange($val['adminmenu']); $membermenu[$val['flag']] = $val['name']; write_static_cache('pluginmenu_admin', $adminmenu); write_static_cache('pluginmenu_member', $membermenu); } } } } function get_mobile_settings() { global $db; global $db_mymps; $data = read_static_cache('mobile'); if ($data === false) { clear_cache_files('mobile'); $res = $db->getOne('SELECT value FROM `' . $db_mymps . 'config` WHERE type=\'mobile\' AND description = \'mobile\''); $res = $res ? ($charset == 'utf-8' ? utf8_unserialize($res) : unserialize($res)) : array(); write_static_cache('mobile', $res); } else { $res = $data; } return $res; } function get_commentsettings() { global $db; global $db_mymps; $data = read_static_cache('commentsettings'); if ($data === false) { clear_cache_files('commentsettings'); $res = $db->getOne('SELECT value FROM `' . $db_mymps . 'config` WHERE type=\'comment\' AND description = \'comment\''); $res = $res ? ($charset == 'utf-8' ? utf8_unserialize($res) : unserialize($res)) : array(); write_static_cache('commentsettings', $res); } else { $res = $data; } return $res; } function get_info_counts() { global $db; global $db_mymps; $sql = 'SELECT catid,count(*) AS num FROM ' . $db_mymps . 'information group by catid'; $counts = $db->getAll($sql); $res = array(); foreach ($counts as $k => $v) { $res[$v['catid']] = $v['num']; } return $res; } function write_insidelink_cache() { global $db; global $db_mymps; global $charset; clear_cache_files('insidelink'); $query = $db->query('SELECT * FROM `' . $db_mymps . 'insidelink`'); while ($row = $db->fetchRow($query)) { $res['detail'][$row['word']] = $row['url']; } $settings = $db->getOne('SELECT value FROM `' . $db_mymps . 'config` WHERE type = \'insidelink\' AND description = \'insidelink\''); $res['settings'] = $charset == 'gbk' ? unserialize($settings) : utf8_unserialize($settings); write_static_cache('insidelink', $res); } function updateadvertisement() { global $timestamp; $query = $GLOBALS['db']->query('SELECT * FROM `' . $GLOBALS['db_mymps'] . 'advertisement` WHERE available>\'0\' AND starttime<=\'' . $timestamp . '\' AND type != \'normalad\' ORDER BY displayorder ASC'); if ($GLOBALS['db']->num_rows($query)) { while ($adv = $GLOBALS['db']->fetchRow($query)) { foreach (explode(' ', $adv['targets']) as $target) { if ($adv['type'] == 'indexcatad' && is_numeric($target)) { $advs['index']['type'][$adv['type']][$target][] = $adv['advid']; $advs['index']['items'][$adv['advid']] = $adv['code']; } else if ($target == 'index') { $advs['index']['type'][$adv['type']][] = $adv['advid']; $advs['index']['items'][$adv['advid']] = $adv['code']; } else if ($target == 'all') { $position = $charset == 'gbk' ? unserialize($adv['parameters']) : utf8_unserialize($adv['parameters']); foreach (array('category', 'info', 'index', 'other') as $range) { if ($position['position']) { $advs[$range][$target]['type'][$adv['type']][$position['position']][] = $adv['advid']; } else { $advs[$range][$target]['type'][$adv['type']][] = $adv['advid']; } $advs[$range]['items'][$adv['advid']] = $adv['code']; } } else if (is_numeric($target)) { $position = $charset == 'gbk' ? unserialize($adv['parameters']) : utf8_unserialize($adv['parameters']); foreach (array('category', 'info') as $range) { if ($position['position']) { $advs[$range][$target]['type'][$adv['type']][$position['position']][] = $adv['advid']; } else { $advs[$range][$target]['type'][$adv['type']][] = $adv['advid']; } $advs[$range]['items'][$adv['advid']] = $adv['code']; } } } } foreach (array('index', 'category', 'info', 'other') as $range) { write_static_cache('adv_' . $range, $advs[$range]); } } } function write_cron_cache() { global $db; global $db_mymps; global $timestamp; $query = $db->query('SELECT * FROM `' . $db_mymps . 'crons` WHERE 1 OR nextrun = \'0\''); while ($row = $db->fetchRow($query)) { $res[$row['name']]['lastrun'] = $row['lastrun']; $res[$row['name']]['nextrun'] = $row['nextrun']; $res[$row['name']]['day'] = $row['day']; } $content = ''; if (!createfile(MYMPS_DATA . '/cron.cache.php', $content)) { write_msg(MYMPS_DATA . '/cron.cache.php 文件不可写,请检查相应权限'); } } function write_qqlogin_cache() { global $db; global $db_mymps; global $timestamp; $query = $db->query('SELECT * FROM `' . $db_mymps . 'config` WHERE type = \'qqlogin\''); while ($row = $db->fetchRow($query)) { $res[$row['description']] = $row['value']; } $res['scope'] = 'get_user_info'; write_static_cache('qqlogin', $res); } function write_wxlogin_cache() { global $db; global $db_mymps; global $timestamp; $query = $db->query('SELECT * FROM `' . $db_mymps . 'config` WHERE type = \'wxlogin\''); while ($row = $db->fetchRow($query)) { $res[$row['description']] = $row['value']; } $res['scope'] = 'get_user_info'; write_static_cache('wxlogin', $res); } function write_authcode_cache() { global $db; global $db_mymps; clear_cache_files('authcodesettings'); $query = $db->query('SELECT * FROM `' . $db_mymps . 'config` WHERE type = \'authcode\''); while ($row = $db->fetchRow($query)) { $res[$row['description']] = $row['value']; } write_static_cache('authcodesettings', $res); } function write_checkanswer_cache() { $query = $GLOBALS['db']->query('SELECT * FROM `' . $GLOBALS['db_mymps'] . 'checkanswer` ORDER BY id DESC'); while ($row = $GLOBALS['db']->fetchRow($query)) { $res[$row['id']]['id'] = $row['id']; $res[$row['id']]['question'] = $row['question']; $res[$row['id']]['answer'] = $row['answer']; } write_static_cache('checkanswer', $res); } function update_checkanswer_settings() { global $db; global $db_mymps; clear_cache_files('checkanswer_settings'); $query = $db->query('SELECT * FROM `' . $db_mymps . 'config` WHERE type = \'checkanswe\''); while ($row = $db->fetchRow($query)) { $res[$row['description']] = $row['value']; } write_static_cache('checkanswer_settings', $res); } function update_config_cache() { $query = $GLOBALS['db']->query('SELECT description,value FROM `' . $GLOBALS['db_mymps'] . 'config` WHERE type = \'config\''); while ($row = $GLOBALS['db']->fetchRow($query)) { $res[$row['description']] = $row['value']; } $content = ''; if (!createfile(MYMPS_DATA . '/config.php', $content)) { write_msg(MYMPS_DATA . '/config.php 文件不可写,请检查相应权限!'); } } function write_htmlstyle_cache($style = 'news') { global $db; global $db_mymps; $row = $db->getRow('SELECT value FROM `' . $db_mymps . 'config` WHERE description = \'glb_html_' . $style . '\''); $mymps .= ''; !createfile(MYMPS_DATA . '/html_style.inc.php', $mymps) && write_msg(MYMPS_DATA . '/html_style.inc.php 文件不可写,请检查相应权限'); } function clear_tpl_files($is_cache = 1, $ext = '') { $dirs = array(); if ($is_cache == 1) { $dirs[] = MYMPS_DATA . '/caches/'; } else if ($is_cache == 2) { $dirs[] = MYMPS_DATA . '/pagesinfo/'; } else if ($is_cache == 3) { $dirs[] = MYMPS_DATA . '/templates/'; } else if ($is_cache == 4) { $dirs[] = MYMPS_DATA . '/pageslist/'; } else if ($is_cache == 5) { $dirs[] = MYMPS_DATA . '/pagesmymps/'; } $str_len = strlen($ext); $count = 0; foreach ($dirs as $dir) { $folder = @opendir($dir); if ($folder === false) { continue; } while ($file = readdir($folder)) { if ($file == '.' || $file == '..' || $file == 'index.htm' || $file == 'index.html') { continue; } if (is_file($dir . $file)) { $pos = strrpos($file, '.'); if (0 < $str_len && $pos !== false) { $ext_str = substr($file, 0, $pos); if ($ext_str == $ext) { if (@unlink($dir . $file)) { $count++; } } } else if (@unlink($dir . $file)) { $count++; } } } closedir($folder); } return $count; } function clear_smt_cache_files($ext = '') { return clear_tpl_files(2, $ext); } function clear_compiled_files($ext = '') { return clear_tpl_files(3, $ext); } function clear_cache_files($ext = '') { return clear_tpl_files(1, $ext); } function clear_all_files($ext = '') { return clear_tpl_files(1, $ext) + clear_tpl_files(2, $ext) + clear_tpl_files(3, $ext); } function clear_smarty_files() { clear_tpl_files(2, $ext) + clear_tpl_files(3, $ext); } function read_static_cache($cache_name) { if ((DEBUG_MODE & 2) == 2) { return false; } static $result = array(); if (!empty($result[$cache_name])) { return $result[$cache_name]; } $cache_file_path = MYMPS_DATA . '/caches/' . $cache_name . '.php'; if (file_exists($cache_file_path)) { include_once $cache_file_path; $result[$cache_name] = $data; return $result[$cache_name]; } else { return false; } } function write_static_cache($cache_name, $caches) { if ((DEBUG_MODE & 2) == 2) { return false; } $cache_file_path = MYMPS_DATA . '/caches/' . $cache_name . '.php'; $content = ''; file_put_contents($cache_file_path, $content, LOCK_EX); } function get_cache_config() { $data = read_static_cache('cache'); if ($data === false) { $query = $GLOBALS['db']->query('SELECT * FROM `' . $GLOBALS['db_mymps'] . 'cache`'); while ($row = $GLOBALS['db']->fetchRow($query)) { $cache[$row['page']]['time'] = $row['time']; $cache[$row['page']]['open'] = $row['open']; } write_static_cache('cache', $cache); } else { $cache = $data; } return $cache; } function update_jswizard_settings() { global $db; global $db_mymps; clear_cache_files('jswizard_settings'); $query = $db->query('SELECT * FROM `' . $db_mymps . 'config` WHERE type = \'jswizard\''); while ($row = $db->fetchRow($query)) { $res[$row['description']] = $row['value']; } write_static_cache('jswizard_settings', $res); } function write_jswizard_cache() { global $db; global $db_mymps; global $charset; clear_cache_files('jswizard_lists'); $query = $db->query('SELECT * FROM `' . $db_mymps . 'jswizard`'); while ($row = $db->fetchRow($query)) { $res[$row['flag']]['id'] = $row['id']; $res[$row['flag']]['flag'] = $row['flag']; $res[$row['flag']]['customtype'] = $row['customtype']; $res[$row['flag']]['parameter'] = $charset == 'utf-8' ? utf8_unserialize($row['parameter']) : unserialize($row['parameter']); } write_static_cache('jswizard_lists', $res); } function write_admin_cache() { clear_cache_files('admin'); $query = $GLOBALS['db']->query('SELECT a.*,b.purviews,b.typename,b.ifsystem FROM `' . $GLOBALS['db_mymps'] . 'admin` AS a LEFT JOIN `' . $GLOBALS['db_mymps'] . 'admin_type` AS b ON a.typeid = b.id'); while ($row = $GLOBALS['db']->fetchRow($query)) { $res[$row['userid']]['typename'] = $row['typename']; $res[$row['userid']]['ifsystem'] = $row['ifsystem']; $res[$row['userid']]['purviews'] = $row['purviews']; } $row = $query = NULL; write_static_cache('admin', $res); return $res; } function get_credit_score() { global $db; global $db_mymps; global $charset; $data = read_static_cache('credit_score'); if ($data === false) { $query = $db->query('SELECT * FROM `' . $db_mymps . 'config` WHERE type = \'credit_sco\''); while ($row = $db->fetchRow($query)) { $res[$row['description']] = $charset == 'utf-8' ? utf8_unserialize($row['value']) : unserialize($row['value']); } write_static_cache('credit_score', $res); } else { $res = $data; } return $res; } function get_tpl_index() { global $db; global $db_mymps; global $charset; $data = read_static_cache('tpl_index'); if ($data === false) { clear_cache_files('tpl_index'); $query = $db->query('SELECT * FROM `' . $db_mymps . 'config` WHERE type = \'tpl\''); while ($row = $db->fetchRow($query)) { $res[$row['description']] = $charset == 'utf-8' ? utf8_unserialize($row['value']) : unserialize($row['value']); } write_static_cache('tpl_index', $res); } else { $res = $data; } return $res; } function get_category_dir() { $data = read_static_cache('category_dir'); if ($data === false) { $query = $GLOBALS['db']->query('SELECT catid,dir_typename FROM `' . $GLOBALS['db_mymps'] . 'category`'); while ($row = $GLOBALS['db']->fetchRow($query)) { $cache[$row['catid']] = $row['dir_typename']; } write_static_cache('category_dir', $cache); } else { $cache = $data; } return $cache; } ?>