一起源码网

  • QingYuanMa.com
  • 全球最大的互联网技术和资源下载平台
搜索
一起源码网 门户 PHPwind专区 查看主题

8.7 改造首页分类间广告位为按楼层随机轮转形式

发布者: cech | 发布时间: 2018-4-16 05:00| 查看数: 5471| 评论数: 1|帖子模式

根据运营改造定制的特殊需求,不一定适合每个人。PW默认的广告位可以设置随机显示,但是不同广告多个楼层同时展示时会出现随机重复,这给广告投放带来不便,所以改造一下让它真正按广告条数比例均匀分配随机轮转起来。此方法改造过后后台新增广告理论上跟原来一样,如有错误请检查是否包含违反JS语法的特别符号。改造过后,论坛首页分类间后台的楼层设置仅作随机轮转楼层范围设置,原来的指定楼层显示功能取消。

随机轮转广告位对于客户来讲机会均等,统一定价排位不分先后随机轮转展示,销售会便利很多。

1、将后台>运营>广告管理>论坛首页分类间广告位的广告显示方式设置为“显示全部”。

2、require/common.php,在 pwAdvert 整个函数下新增:
  1. function pwAdvert4JS($advKey, $fid = 0, $lou = -1, $scr = 0) {
  2.         global $timestamp, $db_advertdb, $db_mode, $_time;
  3.         if (empty($db_advertdb[$advKey])) return false;
  4.         $hours = $_time['hours'] + 1;
  5.         $fid || $fid = $GLOBALS['fid'];
  6.         $scr || $scr = $GLOBALS['SCR'];
  7.         $scr = strtolower($scr);
  8.         $lou = (int) $lou;
  9.         $tmpAdvert = $db_advertdb[$advKey];
  10.         if ($db_advertdb['config'][$advKey] == 'rand') {
  11.                 shuffle($tmpAdvert);
  12.         }
  13.         $arrAdvert = array();
  14.         $advert = '';
  15.         foreach ($tmpAdvert as $key => $value) {
  16.                 if ($value['stime'] > $timestamp || $value['etime'] < $timestamp || ($value['dtime'] && strpos(",{$value['dtime']},", ",{$hours},") === false) || ($value['mode'] && strpos($value['mode'], $db_mode) === false) || ($value['page'] && (strpos($value['page'], ",$scr,") === false || ($scr == 'read' && $value['page'] == 'thread'))) || ($value['fid'] && $scr != 'index' && strpos(",{$value['fid']},", ",$fid,") === false) || ($value['lou'] && strpos(",{$value['lou']},", ",$lou,") === false)) {
  17.                         continue;
  18.                 }
  19.                 if ((!$value['ddate'] && !$value['dweek']) || ($value['ddate'] && strpos(",{$value['ddate']},", ",{$_time['day']},") !== false) || ($value['dweek'] && strpos(",{$value['dweek']},", ",{$_time['week']},") !== false)) {
  20.                         $arrAdvert[] = $value['code'];
  21.                         $advert .= is_array($value['code']) ? "'".$value['code']['code']."'," : "'".$value['code']."',";
  22.                         if ($db_advertdb['config'][$advKey] != 'all') break;
  23.                 }
  24.         }
  25.         return array($advert, $arrAdvert);
  26. }
复制代码



3、template/wind/index.htm查找:
  1. list($htmlAdvert,$arrayAdvert) = pwAdvert('Mode.Layer.Index',-1,$_adindex);
  2. if($htmlAdvert){print
复制代码

替换成:
  1. $rand = $_adindex - 1;
  2. list($htmlAdvert,$arrayAdvert) = pwAdvert4JS('Mode.Layer.Index',-1,$_adindex);
  3. if($htmlAdvert){print
  4. document.write(indexcate_arr[$rand]);
复制代码


4、照常管理广告,结束。

可以根据需要扩展应用到其他类似广告位上,思路已在上面,类似操作即可。

最新评论

IT-NAN! 发表于 2022-6-8 18:19
最代码免费代码

轻源码让程序更轻更快

QingYuanMa.com

工作时间 周一至周六 8:00-17:30

侵权处理

客服QQ点击咨询

关注抖音号

定期抽VIP

Copyright © 2016-2021 https://www.171739.xyz/ 滇ICP备13200218号

快速回复 返回顶部 返回列表