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); } function updateadvtype() { global $_G; $advtype = array(); foreach(C::t('common_advertisement')->fetch_all_old() as $row) { $advtype[$row['type']] = 1; } $_G['setting']['advtype'] = $advtype = array_keys($advtype); C::t('common_setting')->update('advtype', $advtype); } ?>