• 4037阅读
  • 50回复

那些“消失”在主题列表页的主题 [复制链接] [手机版]

上一主题 下一主题
离线zhangjingyu

只看该作者 18楼 发表于: 2019-02-19 17:42:37 星期二  点亮(0)
版块数据表pw_forumdata

top1表示本版置顶帖数,包括版块置顶,分区置顶,全局置顶;
top2表示来自其它版块的分区置顶和全局置顶数。
topthreads表示具体的置顶帖子的tid数组。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 19楼 发表于: 2019-02-19 17:48:47 星期二  点亮(0)
(见32楼)后台缓存管理里有“更新置顶帖统计”功能,然而点击“更新”却不能把主题数据表里的置顶帖数据更新到版块数据表!(缺少中间数据表数据)
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 20楼 发表于: 2019-02-19 17:54:33 星期二  点亮(0)
检索文件“更新置顶帖统计”,updatecache.htm
    <form action="$basename&" method=post>
      <input type="hidden" name=action value='topped'>
      <tr class="tr1 vt">
        <td class="td1">更新置顶帖统计</td>
        <td class="td2"><span class="bt2"><span>
          <button type="submit">更 新</button>
          </span></span></td>
        <td class="td2"><div class="help_a">置顶帖显示不正常,可使用此功能修复</div></td>
      </tr>
    </form>
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 21楼 发表于: 2019-02-19 18:00:27 星期二  点亮(0)
在admin目录检索“topped”,aboutcache.php
    } elseif($_POST['action']=='topped'){
        require_once(R_P.'require/updateforum.php');
        updatetop();

        adminmsg('operate_success');
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 22楼 发表于: 2019-02-19 21:52:57 星期二  点亮(0)
打开require/updateforum.php
function updatetop() {
    global $db,$timestamp;
    if ($timestamp) {
        $db->update("DELETE FROM pw_poststopped WHERE pid = '0' AND fid != '0' AND overtime != '0' AND overtime < $timestamp ");
    }
    $fids = array();
    $query = $db->query("SELECT t.* FROM pw_poststopped t WHERE t.pid = '0' AND t.fid != '0' ");
    $fids = array();
    while ($rt = $db->fetch_array($query)) {
        $fids[$rt['fid']]['topthreads'] .= $fids[$rt['fid']]['topthreads'] ? ','.$rt['tid'] : $rt['tid'];
        if ($rt['uptime'] == $rt['fid']) {
            $fids[$rt['fid']]['top1']++;
        } else {
            $fids[$rt['fid']]['top2']++;
        }
    }
    //update kmd threads
    $kmdService = L::loadClass('kmdservice', 'forum');
    $kmdInfo = $kmdService->getKmdInfosByStatus(KMD_THREAD_STATUS_OK);
    if (is_array($kmdInfo)){
        $kmdTids = array();
        foreach ($kmdInfo as $v){
            if(!$v['tid'] || !$v['fid']) continue;
            $kmdTids[$v['fid']][$v['tid']] = null;
        }
        foreach ($kmdTids as $fid=>$v){
            $fids[$fid]['topthreads'] .= $fids[$fid] ? ','.implode(',', array_keys($v)) : implode(',', array_keys($v));
        }
    }
    
    //* $db->update("UPDATE pw_forumdata SET top1 = '', top2 = '' , topthreads = '' ");
    pwQuery::update('pw_forumdata', null, null, array('top1'=>'', 'top2'=>'', 'topthreads'=>''));
    $_fids = array();
    foreach ($fids as $key => $value) {
        if (is_array($value)) {
            $_fids[] = $key;
            //* $db->update("UPDATE pw_forumdata SET  " . S::sqlSingle($value) . " WHERE fid =  ".S::sqlEscape($key));
            pwQuery::update('pw_forumdata', 'fid=:fid', array($key), $value);
        }
    }
    if (!empty($_fids)) {
        require_once(R_P.'admin/cache.php');
        $_fids = S::sqlEscape($_fids);
        updatecache_forums($_fids);
    }
}
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 23楼 发表于: 2019-02-19 23:38:16 星期二  点亮(0)
(见32楼)虽然楼上的代码看不懂,但稍微看下,就感觉我晕了!
pw_poststopped是帖子置顶数据表,其结构不算复杂,只有六个字段:fid、tid、pid、floor、uptime、overtime。问题在于稍后的topthreads、top1、top2字段和这些有什么关系?//update kmd threads后面是更新使用孔明灯的主题,不用多研究;最后是更新pw_forumdata。这部分没有直接的查询,所以$fids应该来自最前面。

可能是我对代码的理解不对,也可能是我对19楼提到的“更新置顶帖统计”功能理解有误:不是指主题置顶,而是帖内置顶。但按我上面的理解,这个功能是实现不了的。

以上,就当是我胡言乱语吧。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 24楼 发表于: 2019-02-19 23:46:48 星期二  点亮(0)
(见32楼)所以,最后,虽然确认问题出在pw_forumdata版块数据表上(18楼):没有统计(top1和top2)和具体数据(topthreads)。但似乎无法通过后台更新,只能手动修改数据表或者把置顶主题重新置顶。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 25楼 发表于: 2019-02-19 23:50:14 星期二  点亮(0)
不早了,睡觉,今晚是在东北最后一宿,明天就回聊城了。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 26楼 发表于: 2019-02-20 00:11:13 星期三  点亮(0)
共12个置顶主题,手动修改版块数据表开始。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 27楼 发表于: 2019-02-20 00:20:20 星期三  点亮(0)
似乎有点儿小状况。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!