码迷,mamicode.com
首页 > Web开发 > 详细

滴答网站代码修改记录

时间:2015-09-16 12:41:49      阅读:286      评论:0      收藏:0      [点我收藏+]

标签:

# 论坛 bbs.tigtag.com (discuz)
 
######### 2015-6-1 修改楼层广告显示逻辑,变随机为全部
 
### 说明
对于帖子楼层内的广告位(这里以 “下方” 为例),如果该版块设置了多个广告,那么这些广告是随机在每个楼层显示,例如 A,B 广告,会分别出现在 1、2、3、4 楼
 
### 跟踪过程
1. 首先找到模板 `viewthread_node.htm` 中的 `<!--{ad/thread/a_pb/1/$postcount}-->` 这段代码与前台页面中广告位的 html DOM 有关
2. 找到对应的模板缓存文件中 `<?php echo adshow("thread/a_pb/1/$postcount");?>`,定位到函数名 `adshow`
3. 在 `function_core.php` 中找到函数 `function adshow`
4. 分析函数,发现主要的“随机”处理发生在 `@eval($evalcode[‘create‘]);`
5. 跟踪到 `source/class/adv/adv_thread.php` 文件,找到 `evalcode`函数,将里面的`create`一段,改成如下,主要是通过屏蔽 `array_rand` ,然后添加 `foreach` 循环 `adid` 数组来实现字符串组合
技术分享
1     $query = DB::query("SELECT DISTINCT t.*$sqlfield
2         FROM `".DB::table(‘forum_thread‘)."` t
3         $sqlfrom WHERE {$maxwhere}t.readperm=‘0‘
4         $sql
5         AND t.displayorder>=‘0‘
6         ".$order_string."
7         LIMIT $startrow,$items;"
8         );
View Code

 

  1. ```php
  2.  
  3. //$adid = $adids[array_rand($adids)];
  4.  
  5. foreach($adids as $adid){
    if($parameters[$adid][\‘position\‘]==3){
    $_G[\‘thread\‘][\‘contentmr\‘]= $parameters[$adid][\‘width\‘]? $parameters[$adid][\‘width\‘].\‘px\‘ : \‘auto\‘;
    $extra = \‘style="margin-left:10px;width:\‘.$_G[\‘thread\‘][\‘contentmr\‘].\‘"\‘;
    }

     

  6. $adcode .= $codes[$adid];
  7. }
  8. ```
 
 
######### 2015-6-6 解决找回密码时提示参数错误的问题
 
### 说明
此为 discuz 官方 bug,一直未修复,需要改动两个文件
 
### 修改 source\module\member\member_getpasswd.php
 
第32行找到
  1. `$uid = $_GET[‘uid‘];`
 
在下方添加一行
  1. `$sign = $_GET[‘sign‘];`
 
### 修改 template\default\member\getpasswd.htm
找到第8行
  1. `<form method="post" autocomplete="off" action="member.php?mod=getpasswd&uid=$uid&id=$hashid">`
 
修改为:
  1. `<form method="post" autocomplete="off" action="member.php?mod=getpasswd&uid=$uid&id=$hashid&sign=$sign">`
 
 
######### 2015-7-30 市场部同事要求广告帖子区域强制排序
 
### 说明
广告帖子区域的排序之前是固定排序的,应市场部同事的要求,需要通过点击更新按钮(后台-->门户-->模块管理-->数据调用-->更新)自动按照属性(数据调用-->属性)中“指定主题”的顺序排序。
 
## 修改  source/class/block/forum/block_thread.php
#找到258行
 
  1. $orderby = isset($parameter[‘orderby‘])?(in_array($parameter[‘orderby‘],array(‘lastpost‘,‘dateline‘,‘replies‘,‘views‘,‘heats‘,‘recommends‘))? $parameter[‘orderby‘]:‘lastpost‘):‘lastpost‘;
 
删除默认排序,即:
  1. $orderby = isset($parameter[‘orderby‘])?(in_array($parameter[‘orderby‘],array(‘lastpost‘,‘dateline‘,‘replies‘,‘views‘,‘heats‘,‘recommends‘))? $parameter[‘orderby‘]:‘lastpost‘):‘‘;
 
 
#找到354行
插入一行代码:
  1. $order_string =($orderby ==‘‘)?"ORDER BY find_in_set(t.tid,‘{$parameter[‘tids‘]}‘)":"ORDER BY t.$orderby DESC";
 
并将如下代码做相应的修改:
  1. $query = DB::query("SELECT DISTINCT t.*$sqlfield
  1. FROM `".DB::table(‘forum_thread‘)."` t
  1. $sqlfrom WHERE {$maxwhere}t.readperm=‘0‘
  1. $sql
  1. AND t.displayorder>=‘0‘
  1. ORDER BY t.$orderby DESC
  1. LIMIT $startrow,$items;"
  1. );
1
2
3
4
5
6
7
8
    $query = DB::query("SELECT DISTINCT t.*$sqlfield
        FROM `".DB::table(‘forum_thread‘)."` t
        $sqlfrom WHERE {$maxwhere}t.readperm=‘0‘
        $sql
        AND t.displayorder>=‘0‘
        ORDER BY t.$orderby DESC
        LIMIT $startrow,$items;"
        );
 
即:
  1. $query = DB::query("SELECT DISTINCT t.*$sqlfield
  2. FROM `".DB::table(‘forum_thread‘)."` t
  3. $sqlfrom WHERE {$maxwhere}t.readperm=‘0‘
  4. $sql
  5. AND t.displayorder>=‘0‘
  6. ".$order_string."
  7. LIMIT $startrow,$items;"
  8. );
 
1
2
3
4
5
6
7
8
    $query = DB::query("SELECT DISTINCT t.*$sqlfield
        FROM `".DB::table(‘forum_thread‘)."` t
        $sqlfrom WHERE {$maxwhere}t.readperm=‘0‘
        $sql
        AND t.displayorder>=‘0‘
        ".$order_string."
        LIMIT $startrow,$items;"
        );
 
  1. $query = DB::query("SELECT DISTINCT t.*$sqlfield
  2. FROM `".DB::table(‘forum_thread‘)."` t
  3. $sqlfrom WHERE {$maxwhere}t.readperm=‘0‘
  4. $sql
  5. AND t.displayorder>=‘0‘
  6. ".$order_string."
  7. LIMIT $startrow,$items;"
  8. );
 
1
2
3
4
5
6
7
8
    $query = DB::query("SELECT DISTINCT t.*$sqlfield
        FROM `".DB::table(‘forum_thread‘)."` t
        $sqlfrom WHERE {$maxwhere}t.readperm=‘0‘
        $sql
        AND t.displayorder>=‘0‘
        ORDER BY t.$orderby DESC
        LIMIT $startrow,$items;"
        );
 
 





滴答网站代码修改记录

标签:

原文地址:http://www.cnblogs.com/hjqjk/p/4812639.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!