Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[疑问] SupeSite 7.5 系统广告与自定义广告不能同时显示

[复制链接]
llk870930 发表于 2010-4-14 11:30:25 | 显示全部楼层 |阅读模式
本帖最后由 llk870930 于 2010-4-14 11:37 编辑

我用SupeSite 7.5做了个本地站,但是系统广告与自定义广告不能同时显示,这个是怎么回事?
我搜了论坛,找到个SupeSite 6.0 系统广告与自定义广告不能同时显示的解决方法,可是没用。希望高手帮帮忙,指点下,怎么修改能让他们同时显示?
 楼主| llk870930 发表于 2010-4-14 12:14:34 | 显示全部楼层
没人知道啊????
回复

使用道具 举报

天婷a 发表于 2010-4-14 12:25:14 | 显示全部楼层
什么叫同时显示??系统广告和自定义广告在同一个位置?
回复

使用道具 举报

 楼主| llk870930 发表于 2010-4-14 13:11:12 | 显示全部楼层
回复 3# 天婷a

  1. <!--{template header}-->
  2. <!--{eval $ads = getad('system', 'uchimage', '1'); }-->
  3. <!--{if !empty($ads['pageheadad']) }-->
  4.         <div class="ad_header">$ads[pageheadad]</div>
  5. <!--{/if}-->
  6. <!--header end-->
复制代码
有上面这些代码的时候,在它下面加的
  1. <div>#getad("user","7")#</div><!--新闻/加盟总页各分类下广告-->
复制代码
代码在前台就无法显示,删除就可以显示了!
回复

使用道具 举报

windflaw 发表于 2010-8-19 14:47:02 | 显示全部楼层
本帖最后由 windflaw 于 2010-8-19 14:49 编辑

今天我也遇到此问题,经过我的跟踪调试,终于找出来问题的根源了。
问题就处在以下这一句上:
@include_once S_ROOT .'./data/system/aduser.cache.php';(位于/function/common.func.php大约1941行)
原因分析(我以我自己的实际情况来说明):
因为我在header中有自定义广告,然后在首页中调用了系统广告,之后又调用了自定义广告,而$_SGLOBAL['ad']这个数组在首页调用系统广告经过第二次赋值,但是接下来调用自定义广告的时候,由于使用的“include_once”,只包含一次,所以不会再次包含后面的文件,也就是不会第三次赋值(调用过后系统广告后调用自定义广告对$_SGLOBAL['ad']的赋值),所以也导致那句引用下面的代码“$adarr = $_SGLOBAL['ad'][$adid];”的执行结果为null。

以下为解决办法(未经测试):将@include_once S_ROOT .'./data/system/aduser.cache.php';改成@include S_ROOT .'./data/system/aduser.cache.php';

我的解决方法,经过测试的:
第一步,修改/function/cache.func.php中updateadcache()函数中

  1.         $usercachefile = S_ROOT.'./data/system/aduser.cache.php';
  2.         $usercachetext = '$_SGLOBAL[\'ad\']='.arrayeval($aduserarr);
  3.         writefile($usercachefile, $usercachetext, 'php');
复制代码

  1.         $usercachefile = S_ROOT.'./data/system/aduser.cache.php';
  2.         $usercachetext = '$_SGLOBAL[\'aduser\']='.arrayeval($aduserarr);
  3.         writefile($usercachefile, $usercachetext, 'php');
复制代码
第二步:修改/function/common.func.php中getad()函数中

  1.                 @include_once S_ROOT .'./data/system/aduser.cache.php';
  2.                 $adid = intval($value);
  3.                 $adarr = $_SGLOBAL['ad'][$adid];
复制代码

  1.                 @include_once S_ROOT .'./data/system/aduser.cache.php';
  2.                 $adid = intval($value);
  3.                 $adarr = $_SGLOBAL['aduser'][$adid];
复制代码
第三步:更新缓存[
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-1-4 06:06 , Processed in 0.024189 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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