滴答网站代码修改记录

# 论坛 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         );

  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;"

        );

来自为知笔记(Wiz)

时间: 2024-10-06 22:36:57

滴答网站代码修改记录的相关文章

STM32之系统滴答定时器

一.SysTick(系统滴答定时器)概述 操作系统需要一个滴答定时器周期性产生中断,以产生系统运行的节拍.在中断服务程序里,基于优先级调度的操作系统会根据进程优先级切换任务,基于时间片轮转系统会根据时间片切换任务.总之,滴答定时器是一个操作系统的"心跳". Cortex-M3在内核部分封装了一个滴答定时器--SysTick,在之前的ARM内核通常是不会把定时器做进内核,定时器都是SOC厂商自己制作的外设.显然,Cortex-M3封装了这么一个定时器,对于将操作系统移植到不同SOC厂商生

6.SysTick系统时钟滴答实验(stm32中断入门)

系统时钟滴答实验很不难,我就在面简单说下,但其中涉及到了STM32最复杂也是以后用途最广的外设-NVIC,如果说RCC是实时性所必须考虑的部分,那么NVIC就是stm32功能性实现的基础,NVIC的难度并不高,但是理解起来还是比较复杂的,我会在本文中从实际应用出发去说明,当然最好去仔细研读宋岩翻译的<Cortex-M3权威指南>第八章,注意这不是一本教你如何编写STM32代码的工具书,而是阐述Cortex-M3内核原理的参考书,十分值得阅读. SysTick系统时钟的核心有两个,外设初始化和S

DSP/BIOS使用之初窥门径——滴答时钟及烧写Flash

操作平台和环境 DSP型号:TMS320C6713 仿真器:XDS510PLUS Flash型号:AM29LV800BT或AM29LV800BT都试过(一般接口一样,差别不大) RAM型号:MT48LC16M16A2P(注意16位数据线接口) DSP/BIOS库:V5.31.02 CSL库:(假定读者已经会使用了) 边写LED程序,边聊聊操作系统的滴答时钟 在上篇文章DSP-BIOS使用入门的基础上,这里用用DSP/BIOS操作系统的CLK和PRD模块,这两个模块涉及到硬件定时器,我们使用仿真器

一步一步教你用Swift开发俄罗斯方块:No.4 滴答作响的时钟机制

为什么标题要叫做"滴答作响的时钟机制"呢? 想必我们大家都玩过俄罗斯方块,那些不同形状的东西,就是哪些不同形状,你懂的,会随着游戏级别的提高而下降的越来越快.是的 ,我们也要模仿那样,做出我们自己的时钟机制. 我们可以看到SKScene里面有一个函数 update(currentTime: CFTimeInterval). 这个函数被没一帧所调用.帧,frame, 是什么? 你可以理解一帧就是一副静态的图片,如果很多图片在很短的时间内连续播放,就成了动画.当你的眼睛开始去预知每一帧图像

STM32系统时钟配置,滴答定时器配置相关

以后实在找不到问题出现在哪里,注意还有这么个地方需要留意: 今天在调试滴答定时器,找半天找不到延时为什么不准确,原来以前的代码中,"SYSCLK_FREQ_72MHz"被写成了64MHz了,把这里重新改为72MHz就可以了,走过的路过的,希望这个提醒可以对大家有所帮助,不过大家还是要看实际情况. 原文地址:https://www.cnblogs.com/data-base-of-ssy/p/9513371.html

STM32 的系统滴答定时器( Systick) 彻底研究解读

作者:王健 前言 SysTick 比起那些 TIM 定时器可以说简单多啦~~~~~哥的心情也好了不少, 嘎嘎!! ARM Cortex-M3 内核的处理器内部包含了一个 SysTick 定时器,它是一个24 位的倒计数定时器,注意,是倒计数! 当计到 0 时它就会从 LOAD 寄存器中自动重装载定时初值.只要不把 CTRL 寄存器中的 ENABLE 为清 0,它就永不停息! 遗憾的是,SysTick 定时器在<STM32 参考手册>里一个屁都没放,只有在<ARM Cortex-M3 技术

STM32学习笔记9(SysTick滴答时钟)

我不得不说意法半导体确实有点风骚!甚至有点变态.我对ST文档 STM32F10XXX参考手册的编辑水平真是不敢恭维.手册中好多说明都是含糊不清,甚至将好多对初学者来说很重要的地方都一笔带过,让人着实摸不着头脑.比如前面我说过的关于NVIC嵌套向量中断控制器的介绍,这部分我认为是非常重要的,但当你看完他这部分介绍,你根本不会设置中断服务程序,他有哪些寄存器都不知道,更别说去设置了,NVIC的详细介绍是在Cotex-M3中有详细的介绍,不多说.今天我们说的是systick定时器. systick定时

滴答清单 - Todo & 任务提醒(Record things and remind)

插件介绍: 对于有强迫症和健忘症的小编来说,经常会忘记一些重要的或琐碎而又必须做的事情,相信有很多朋友也有一样的烦恼,如果用笔记本记录的话又相对麻烦一些,于是一些记录相关的软件就运应而生,这就为大家推荐这款任务清单.滴答清单是Todo管理神器TickTick的中文版,能帮您随时随地记录和管理所有事项.您可以用它制定学习.工作计划,生成读书.购物.旅行清单,设置生日.约会.还款提醒等. 使用说明: 将滴答清单 - Todo & 任务提醒(Record things and remind)添加chr

《零死角玩转STM32》-18-SysTick系统滴答定时器

参考资料:<STM32F4XX内核参考手册>:4.4.8-SHPRX(System Handler Priority Register)与4.5- System Tick Timer. 1. 简介 SysTick是一个24Bit的系统定时器,属于CM4内核的外设,相关寄存器与部分库函数中core_cm4.h中定义.SysTick一般用于操作系统,用于产生时基,维持OS的心跳. 如下所示:当计数器被使能(STC_CTRL: Bit0-ENABLE)并且计数器到0时,STK_LOAD中的预设值会被