Ejemplo n.º 1
0
function build_cache_advs()
{
    $advlist = $data = array();
    $data['code'] = $data['parameters'] = $data['evalcode'] = array();
    foreach (C::t('common_advertisement')->fetch_all_old() as $adv) {
        foreach (explode("\t", $adv['targets']) as $target) {
            $data['code'][$target][$adv['type']][$adv['advid']] = $adv['code'];
        }
        $advtype_class = libfile('adv/' . $adv['type'], 'class');
        if (!file_exists($advtype_class)) {
            continue;
        }
        require_once $advtype_class;
        $advclass = 'adv_' . $adv['type'];
        $advclass = new $advclass();
        $adv['parameters'] = unserialize($adv['parameters']);
        unset($adv['parameters']['style'], $adv['parameters']['html'], $adv['parameters']['displayorder']);
        $data['parameters'][$adv['type']][$adv['advid']] = $adv['parameters'];
        if ($adv['parameters']['extra']) {
            $data['parameters'][$adv['type']][$adv['advid']] = array_merge($data['parameters'][$adv['type']][$adv['advid']], $adv['parameters']['extra']);
            unset($data['parameters'][$adv['type']][$adv['advid']]['extra']);
        }
        $advlist[] = $adv;
        $data['evalcode'][$adv['type']] = $advclass->evalcode($adv);
    }
    updateadvtype();
    savecache('advs', $data);
}
Ejemplo n.º 2
0
function build_cache_advs()
{
    $data = array();
    $query = DB::query("SELECT * FROM " . DB::table('common_advertisement') . " WHERE available>'0' AND starttime<='" . TIMESTAMP . "' ORDER BY displayorder");
    $data['code'] = $data['parameters'] = $data['evalcode'] = array();
    $advlist = array();
    while ($adv = DB::fetch($query)) {
        foreach (explode("\t", $adv['targets']) as $target) {
            $data['code'][$target][$adv['type']][$adv['advid']] = $adv['code'];
        }
        $advtype_class = libfile('adv/' . $adv['type'], 'class');
        if (!file_exists($advtype_class)) {
            continue;
        }
        require_once $advtype_class;
        $advclass = 'adv_' . $adv['type'];
        $advclass = new $advclass();
        $adv['parameters'] = unserialize($adv['parameters']);
        unset($adv['parameters']['style'], $adv['parameters']['html'], $adv['parameters']['displayorder']);
        $data['parameters'][$adv['type']][$adv['advid']] = $adv['parameters'];
        if ($adv['parameters']['extra']) {
            $data['parameters'][$adv['type']][$adv['advid']] = array_merge($data['parameters'][$adv['type']][$adv['advid']], $adv['parameters']['extra']);
            unset($data['parameters'][$adv['type']][$adv['advid']]['extra']);
        }
        $advlist[] = $adv;
        $data['evalcode'][$adv['type']] = $advclass->evalcode($adv);
    }
    updateadvtype();
    save_syscache('advs', $data);
}
Ejemplo n.º 3
0
function build_cache_advs()
{
    global $_G;
    $advlist = $data = array();
    $data['code'] = $data['parameters'] = $data['evalcode'] = array();
    foreach (C::t('common_advertisement')->fetch_all_old() as $adv) {
        foreach (explode("\t", $adv['targets']) as $target) {
            $data['code'][$target][$adv['type']][$adv['advid']] = $adv['code'];
        }
        $etype = explode(':', $adv['type']);
        if (count($etype) > 1) {
            $advtype_class = DISCUZ_ROOT . './source/plugin/' . $etype[0] . '/adv/adv_' . $etype[1] . '.php';
            if (!file_exists($advtype_class) || !in_array($etype[0], $_G['setting']['plugins']['available'])) {
                continue;
            }
            require_once $advtype_class;
            $advclass = 'adv_' . $etype[1];
        } else {
            $advtype_class = libfile('adv/' . $adv['type'], 'class');
            if (!file_exists($advtype_class)) {
                continue;
            }
            require_once $advtype_class;
            $advclass = 'adv_' . $adv['type'];
        }
        $advclass = new $advclass();
        $adv['parameters'] = unserialize($adv['parameters']);
        unset($adv['parameters']['style'], $adv['parameters']['html'], $adv['parameters']['displayorder']);
        $data['parameters'][$adv['type']][$adv['advid']] = $adv['parameters'];
        if ($adv['parameters']['extra']) {
            $data['parameters'][$adv['type']][$adv['advid']] = array_merge($data['parameters'][$adv['type']][$adv['advid']], $adv['parameters']['extra']);
            unset($data['parameters'][$adv['type']][$adv['advid']]['extra']);
        }
        $advlist[] = $adv;
        $data['evalcode'][$adv['type']] = $advclass->evalcode($adv);
    }
    updateadvtype();
    savecache('advs', $data);
}