|
|
一、首先找到模板extend目录下的ad_code.htm文件:
源代码我就不往上贴了只贴修改后的吧。
修改后代码:
{elseif $typeid==3}//只对图片显示做了修改其它没有变。
{loop $tags $k $v}
{if count($tags)==1}
//考虑其它页面单个图片广告的调用排版问题,这里做了个判断,根据个人需要,如果不需要,可以直接用红色代码部,省去判断。
{if $v}[url=]{/if}
[img][/img]
{if $v[url]}{/if}
{else}
{if $v}[url=]{/if}
[img][/img]
{if $v[url]}{/if}
{/if}
{/loop}
二、修改module\extend\ad.htm.php文件最下面部:
在最后大概是126行的“else{}”前加上以下代码既可,“else{}”代码不要去掉:
else if($typeid == 3){
$totime = 0;
$tags = array();
if ($areaid==0){
$ad = $db->query("SELECT * FROM {$DT_PRE}ad WHERE pid=$p[pid] AND status=3 AND fromtime$DT_TIME AND areaid=$areaid ORDER BY listorder ASC,addtime ASC");
}else {
$ad = $db->query("SELECT * FROM {$DT_PRE}ad WHERE pid=$p[pid] AND status=3 AND fromtime$DT_TIME AND (areaid=$areaid or areaid=0) ORDER BY listorder ASC,addtime ASC");
}
while($t = $db->fetch_array($ad)) {
$t['title'] = $t['image_alt'];
$t['thumb'] = $t['image_src'];
$t['linkurl'] = $t['stat'] ? $MODULE[3]['linkurl'].rewrite('redirect.php?aid='.$t['aid']) : $t['url'];
if($t['totime'] > $totime) $totime = $t['totime'];
$tags[] = $t;
}
if($tags) {
ob_start();
include template($template, $module);
$data = ob_get_contents();
ob_clean();
file_put($filename, ''.$data);
$data = 'document.write(\''.dtrim($data, true).'\');';
file_put(DT_ROOT.'/file/script/A'.$p['pid'].'.js', $data);
} else {
file_del($filename);
if($p['code']) {
file_put(DT_ROOT.'/file/script/A'.$p['pid'].'.js', $p['code']);
} else {
file_del(DT_ROOT.'/file/script/A'.$p['pid'].'.js');
}
}
}
根据调用广告代码,标签传参方法行不通,国为广告是已生成了静态文件,后根据不同地区,调用不同静态广告文件,所以修改广告生成代码部分。
三、以下的文字全是个人观点不代表所有人,有更好的方法可以贴上来,大家一起分享讨论。
(当然标签传参方法,也不是绝对行不通,这个方法有点麻烦,要修改很多东西,因为调用部分,调用的是静态文件,要想以传参数的方法显示广告,比如:{ad{21,
num显示数量
}},这样的话,广告还是单个文件,必须再次生成多个的广告代码文件。因为程序的架构,为了不影响程序架构,所以这有可能就要用到ajax了,至于怎么实现,大家可以想想,因为时间问题我在这里就不想写了。)
[ 本帖最后由 lzy305 于 2012-1-17 10:00 编辑 ] |
|