老张小站

  1. 欢迎光临

    感谢访问老张的博客!

  • 1
2,185

Discuz! X3.* 过滤用户栏目换行符

分类 网站技术/村民张先生 发布于 2015-03-31 19:39
0

如果“用户栏目”(资料项)是复选框(多选)形式,则显示时多个选项间会自动换行,怎样过滤掉换行符,改为添加一个空格或是其他分隔符呢?

1、帖子页面,光标指向头像时的名片

打开 source/module/forum/forum_viewthread.php 查找 $v = profile_show($field, $post); ,

在下面增加

if($field == 'field3') {
$v = str_replace("<br />\n", ' ', $v);
}

其中的 field3 改为目标用户栏目的ID。

另外,由于用户名片显示宽度有限,用户栏目中填写的信息可能超长,我们可以进行适当调整:

悬浮框整体宽度,可修改 common/module.css 中的 .bui .i

悬浮框中单条信息的宽度,修改 .bui dd 中的 width ,要在超长时末尾增加省略号,可添加:
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;

超长无法显示全的信息怎样查看?建议给该信息增加 title ,光标指向时可以查看。增加方法:

后台/界面/界面设置/帖内用户信息/编辑,在模板中找到您要增加title的条目,增加 font tilte 为该信息即可。

例如:<dt>{baseinfo=field_field3,1}</dt><dd>{baseinfo=field_field3,0}</dd>

修改为:<dt>{baseinfo=field_field3,1}</dt><dd><font title="{baseinfo=field_field3,0}">{baseinfo=field_field3,0}</font></dd>

不过这将导致无论信息是否超长都会显示title信息。强迫症患者可以改用以下方法:

在第一步增加的代码中第二行下边增加字符长度检测并作相应处理:

if(strlen($v) > 9) {
$v = '<font title="'.$v.'">'.$v.'</font>';
}

2、个人资料页面

打开 source/include/space/space_profile.php 查找 $val = profile_show($fieldid, $space); ,在下面添加

if(in_array($fieldid, array(lookingfor, field3, field5, field6))) {
$val = str_replace("<br />\n", ' ', $val);
}

欢迎转载分享,转载请注明 来源:大张小站 https://www.zhang.cq.cn/20151356.html
若您喜欢这篇文章,欢迎订阅老张小站以获得最新内容。 / 欢迎交流探讨,请发电子邮件至 mail[at]vdazhang.com 。


欢迎谈谈你的看法(无须登录) *正文中请勿包含"http://"否则将被拦截