示例#1
0
/**
 * 更新用户下的公众号缓存
 * @param int $uid
 */
function cache_build_account($uid = 0) {
	global $_W;
	isetcookie('wechatloaded', '0');
	$uid = empty($uid) ? $_W['uid'] : $uid;
	cache_build_modules();
	cache_load('modules');
	$modules = $_W['modules'];

	$wechats = pdo_fetchall("SELECT * FROM " . tablename('wechats') . " WHERE uid = '{$uid}' ORDER BY `weid` DESC", array(), 'weid');
	$sysmodules = pdo_fetchall("SELECT mid, name FROM ".tablename('modules')." WHERE issystem = '1'", array(), 'mid');
	foreach ($sysmodules as $mid => &$module) {
		$module['issystem'] = 1;
		$module['displayorder'] = -1;
		$module['enabled'] = 1;
	}
	if(!empty($wechats)) {
		$founder = explode(',', $_W['config']['setting']['founder']);
		foreach ($wechats as $index => $row) {
			if (in_array($uid, $founder)) {
				$membermodules = pdo_fetchall("SELECT mid, name FROM ".tablename('modules') . " ORDER BY issystem DESC, mid ASC", array(), 'mid');
				$modulelist  = array();
			} else {
				$membermodules = pdo_fetchall("SELECT b.mid, b.name FROM ".tablename('members_modules')." AS a LEFT JOIN ".tablename('modules')." AS b ON a.mid = b.mid WHERE a.uid = :uid AND b.name <> '' ORDER BY issystem DESC, mid ASC", array(':uid' => $uid), 'mid');
				$modulelist = $sysmodules;
			}
			$mymodules = pdo_fetchall("SELECT mid, enabled, displayorder FROM ".tablename('wechats_modules')." WHERE weid = '{$row['weid']}' AND mid IN (".implode(",", array_keys($membermodules)).") ORDER BY enabled DESC, displayorder ASC, mid ASC", array(), 'mid');
			//拼接模块
			if (!empty($mymodules)) {
				foreach ($mymodules as $mid => $row){
					if (empty($row['enabled'])) {
						unset($membermodules[$mid]);
						continue;
					}
					if (!empty($membermodules[$mid])) {
						$modulelist[$mid] = $membermodules[$mid];
						$modulelist[$mid]['enabled'] = $row['enabled'];
						$modulelist[$mid]['displayorder'] = $row['displayorder'];
						unset($membermodules[$mid]);
					}
				}
			}
			
			if (!empty($membermodules)) {
				$modulelist = array_merge($modulelist, $membermodules);
			} elseif (in_array($uid, $founder)) {
				$modulelist  = $membermodules;
			}
			unset($row);
			foreach ($modulelist as $mid => &$row) {
				if (!isset($row['enabled'])) {
					$row['enabled'] = 1;
					$row['displayorder'] = 127;
				}
			}
			unset($row);
			$wechats[$index]['modules'] = $modulelist;
		}
	}
	cache_write('account:'.$uid, $wechats);
}
示例#2
0
    $ret = cloud_download($post['path'], $post['type']);
    if (!is_error($ret)) {
        exit('success');
    }
    exit;
}
if ($step == 'scripts' && $_W['ispost']) {
    $post = $_GPC['__input'];
    $fname = $post['fname'];
    $entry = IA_ROOT . '/data/update/' . $fname;
    if (is_file($entry) && preg_match('/^update\\(\\d{12}\\-\\d{12}\\)\\.php$/', $fname)) {
        $evalret = (include $entry);
        if (!empty($evalret)) {
            cache_build_users_struct();
            cache_build_setting();
            cache_build_modules();
            @unlink($entry);
            exit('success');
        }
    }
    exit('failed');
}
if (!empty($_GPC['m'])) {
    $m = $_GPC['m'];
    $type = 'module';
    $is_upgrade = intval($_GPC['is_upgrade']);
    $packet = cloud_m_build($_GPC['m']);
} elseif (!empty($_GPC['t'])) {
    $m = $_GPC['t'];
    $type = 'theme';
    $is_upgrade = intval($_GPC['is_upgrade']);