硬汉工作室

搜索
热搜: 活动 交友 discuz

[开发技术] discuz投票主题计票天数改成日期模式

[复制链接]
发表于 2023-10-23 15:48:45 | 显示全部楼层 |阅读模式
默认情况下,dz的投票主题的计票天数只能填写数字,也就是多少天,有时候站长可能需要精确到分,也就是直接选择日期模式,如下图: 2023-10-23_153625.jpg

想要实现这个功能,需要改2个文件,一个模板,一个系统文件

默认文件路径:template\default\forum\post_poll.htm,找到<input type="text" name="expiration" id="polldatas" class="px pxs" value="{if $_GET[action] == 'edit'}{if !$poll[expiration]}0{elseif $poll[expiration] < 0}{lang poll_close}{elseif $poll[expiration] < TIMESTAMP}{lang poll_finish}{else}{echo (round(($poll[expiration] - TIMESTAMP) / 86400))}{/if}{/if}" tabindex="1" /> {lang days}
改成:
<input style = "width: 200px;" type="text" name="expiration" id="polldatas" class="px" value="{if $_GET[action] == 'edit'}{if !$poll[expiration]}0{elseif $poll[expiration] < 0}{lang poll_close}{elseif $poll[expiration] < TIMESTAMP}{lang poll_finish}{else}{echo date('Y-m-d H:i', $poll['expiration'])}{/if}{/if}" tabindex="1" />
这个是把发帖时模板改成日历选择模式


接着改数据模式,默认是天数,改成截至时间戳,
打开文件:source\class\extend\extend_thread_poll.php,找到if(preg_match("/^\d*$/", trim($_GET['expiration']))) {,这行,默认是正则来判断是否是数字,所以从这个往下改成:
if(trim($_GET['expiration'])) {
        if(empty($_GET['expiration'])) {
                $this->pollarray['expiration'] = 0;
        } else {
               $this->pollarray['expiration'] = strtotime($_GET['expiration']); // 过期时间直接前台日期转成时间戳
        }
} else {
        showmessage('poll_maxchoices_expiration_invalid');
}

然后继续找$expiration = intval($_GET['expiration']);,140行左右,改成:

$expiration = strtotime($_GET['expiration']);
if($close) {
        $pollarray['expiration'] = TIMESTAMP;
} elseif($expiration) {
        if(empty($pollarray['expiration'])) {
                $pollarray['expiration'] = 0;
        } else {
                $pollarray['expiration'] = $expiration;
        }
}

完工。





有关PHP系统、Discuz或网站等各种问题,可以联系QQ1069971363寻求付费支持
Discuz插件商店:http://addon.dismall.com/?@56030.developer
回复

使用道具 举报

QQ|Archiver|手机版|小黑屋|硬汉工作室 ( 冀ICP备13021567号-9 )

GMT+8, 2024-4-30 20:27 , Processed in 0.056608 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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