883 Star 3.6K Fork 1.5K

Discuz / DiscuzX

 / 详情

预设用户评分理由选项,如果内容含有emoji图标,在选择预设内容发布后,会在评分理由后面增加一个点

已完成
创建于  
2022-10-17 09:06

描述此问题

预设用户评分理由选项,如果内容含有emoji图标,在选择预设内容发布后,会在评分理由后面增加一个点。

疑似问题重现步骤

后台管理-全局-站点功能-全局相关-预设用户评分理由选项-在里面增加emoji图标
然后前台选择预设带有emoji图标的内容发表,或没有emoji图标的内容时,都会带一个点。

报错信息

会在评分理由的文字后面增加一个"."符号。如下图。
输入图片说明

为解决问题做过哪些尝试

1.预设内容中去掉emoji图标,则无此问题。
2.或前台评分理由中直接输入内容带emoji图标发表后也存在此问题。
3.与emoji图的数量无关,只要带有emoji图都会存在此问题。

版本信息

  • Discuz! 版本:X3.5

评论 (10)

建筑资源吧 创建了任务
建筑资源吧 修改了描述
建筑资源吧 修改了描述
展开全部操作日志

如果理由只有一个emoji也会这样么?

输入图片说明
只有一个emoji也会这样
前台自己输入评分理由带emoji也会这样。 :joy:

建筑资源吧 修改了描述

输入图片说明

X3.4 没发现问题.......

你是怎么在x3.4插入的emoji……

之前X3.5刚出来那会,我根据变更记录改了utf8mb4和innodb

输入图片说明
最新发现,由于之前有emoji,现在预设已经删除emoji图标了,在用户自己输入的情况下,还是有几率会触发这个“.”的bug

老周部落 任务状态待办的 修改为进行中

这个有进展了吗? :innocent:

@老周部落 @popcorner @建筑资源吧
经过调试,发现是截取字符长度引起的锅
文件位置在

source\module\forum\forum_misc.php

打开forum_misc.php文件,第742行,代码是
$sqlreason = cutstr(dhtmlspecialchars($sqlreason), 40, '.');

发现cutstr函数也有需要优化的理由,具体可看截图红框圈起来的,
似乎长度没达到cutstr函数条件也会在后面加了"."符号?

目前想到的解决方案,有三个
第一:在理由输入框下方,增加一个输入提示。【如:还可以输入 xxx 个字符】
第二:将代码中的原来40限制,增加到80。
第三:在后台→全局→站点功能→管理相关,在【用户评分理由选项:】下方增加一个选项自定义字符长度限制。

以下是调试及相关截图
代码位置
输入图片说明
输入图片说明
输入图片说明
输入图片说明

期待官方收录解决

大版本内,数据库结构和字段等原则上不能再进行调整(重大缺陷除外),所以字段长度不适合调整(方案2、3)。目前我想法是将超出后的字符后缀改成默认的...(三个点省略形式),这样可以尽量避免以为是什么奇怪状态的疑虑。

第一:在理由输入框下方,增加一个输入提示。【如:还可以输入 xxx 个字符】

这个后续再看下是否适合增加

湖中沉 通过Discuz/DiscuzX Pull Request !2340任务状态进行中 修改为已完成

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(5)
428142 jzbar 1682678813 7751299 guhei 1593412725 14079017 hipass 1708779380 134392 zoewho 1578919099
PHP
1
https://gitee.com/Discuz/DiscuzX.git
git@gitee.com:Discuz/DiscuzX.git
Discuz
DiscuzX
DiscuzX

搜索帮助