mickeyort 发表于 2020-10-27 15:58:24

Discuz adshow函数 获取广告


/**
* 获取广告
*/

function adshow($parameter) {
        global $_G;
        if($_G['inajax'] || $_G['group']['closead']) {
                return;
        }
        if(isset($_G['config']['plugindeveloper']) && $_G['config']['plugindeveloper'] == 2) {
                return '<hook></hook>';
        }
        $params = explode('/', $parameter);
        $customid = 0;
        $customc = explode('_', $params);
        if($customc == 'custom') {
                $params = $customc;
                $customid = $customc;
        }
        $adcontent = null;
        if(empty($_G['setting']['advtype']) || !in_array($params, $_G['setting']['advtype'])) {
                $adcontent = '';
        }
        if($adcontent === null) {
                loadcache('advs');
                $adids = array();
                $evalcode = &$_G['cache']['advs']['evalcode'][$params];
                $parameters = &$_G['cache']['advs']['parameters'][$params];
                $codes = &$_G['cache']['advs']['code'][$_G['basescript']][$params];
                if(!empty($codes)) {
                        foreach($codes as $adid => $code) {
                                $parameter = &$parameters[$adid];
                                $checked = true;
                                @eval($evalcode['check']);
                                if($checked) {
                                        $adids[] = $adid;
                                }
                        }
                        if(!empty($adids)) {
                                $adcode = $extra = '';
                                @eval($evalcode['create']);
                                if(empty($notag)) {
                                        $adcontent = '<div'.($params != '' ? ' class="'.$params.'"' : '').$extra.'>'.$adcode.'</div>';
                                } else {
                                        $adcontent = $adcode;
                                }
                        }
                }
        }
        $adfunc = 'ad_'.$params;
        $_G['setting']['pluginhooks'][$adfunc] = null;
        hookscript('ad', 'global', 'funcs', array('params' => $params, 'content' => $adcontent), $adfunc);
        if(!$_G['setting']['hookscript']['global']['ad']['funcs'][$adfunc]) {
                hookscript('ad', $_G['basescript'], 'funcs', array('params' => $params, 'content' => $adcontent), $adfunc);
        }
        return $_G['setting']['pluginhooks'][$adfunc] === null ? $adcontent : $_G['setting']['pluginhooks'][$adfunc];
}
页: [1]
查看完整版本: Discuz adshow函数 获取广告