迅睿cms内容描述多行文本字段如何保留空格与换行?
无需魔法,免费体验ChatGPT-4 / MJ绘图 等AI大模型!AI问答、写文案、做表格、绘图、写脚本、写代码...
本文主要解决迅睿cms中内容多行文本字段两个常见的问题,一是模块内容描述字段(description)保存时过滤掉空格与换行的问题。二是多行文本类型的字段(Textarea)包括自带描述字段,在模板中如何调用换行显示。
问题一:描述字段过滤掉空格与换行
迅睿cms添加内容时,如果描述字段(description)没有填写的话,会从内容(content)字段中自动提取一段文字,提取的时候会过滤掉空格与换行。比如做英文站,空格被过滤后就无法阅读了。
解决办法:
后台-设置-内容设置-模块管理-对应模块内容字段-修改描述字段(description)-数据验证-删除过滤函数,如下图:
问题二:多行文本类型字段换行显示调用
模块内容中的多行文本类型字段(Textarea)包括上面提到的内容描述字段,在前端模板中使用默认标签调用不换行,如何调用换行显示呢。
解决办法:
这里以内容描述字段(description)为例,换行显示调用标签:
{nl2br($description)} //如果是自建多行文本字段,把字段名修改为你的字段英文名称 {nl2br($字段名)} //如果在list循环中调用,把[字段名]改成[$t.字段名] {nl2br($t.字段名)}
延伸:自定义过滤函数实现个性过滤需求
有时需要在首页调用栏目内容,但内容中有可能插入了视频、图片等,首页只需要调用文字。如果使用系统内置的dr_clearhtml会把换行也过滤掉,文字挤在一起不好看。这种情况就可以通过自定义函数来实现个性化过滤需求。
解决办法:
打开:config/custom.php 添加以下代码:
<?php /** * 开发者自定义函数文件 */ function dr_reserve_text($str) { if (is_array($str) || !$str) { return ''; } $str = preg_replace('~<img(.*?)>~s','',$str); //过滤图片 $str = preg_replace('~<video(.*?)>~s','',$str); //过滤视频 $str = str_replace("div","p",$str); //div转p $str = str_replace("<p> </p>","",$str); //删除空行 return trim($str); }
然后前端就可以使用自定义过滤函数调用了,示例:
{dr_strcut(dr_reserve_text(dr_share_cat_value(1, 'content')), 600)} //调用栏目ID为1的内容,截取600,这样就过滤掉了图片、视频、空行的同时保留了换行
声明:禁止复制、盗用、采集、发布本站内容到任何网站及各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。