找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 135|回复: 0

[cms教程] dede自定义模型的部分字段无法读取

[复制链接]

该用户从未签到

发表于 2019-3-24 15:24:00 | 显示全部楼层 |阅读模式

您需要 登录 才可以下载或查看,没有账号?立即注册

×
dede自定义模型的部分字段无法读取
            
        新建立了一个独立模型,可是突然发现模型列表中标题不能显示了,仔细分析发现并非完全不能显示,而是凡是带有中文的就不能显示。
        然后一步一步分析,发现dede在显示独立模型文章列表时对独立模型的每一个字段都经过了ChannelUnit->MakeField方法的处理,原因是独立模型文章表中,凡是联动类型字段都保存的是数值,因此,需要将其转换成对应的名称,除此之外还进行了一些其他类型字段的处理。其中包括对于type是text的字段,那dedecms 会经过 HtmlReplace()方法进行处理。
       
               
                       
                               
function MakeField($fname, $fvalue, $addvalue='')
{
//处理各种数据类型
$ftype = $this->ChannelFields[$fname,['type',;
if($fvalue=='')
{
if($ftype != 'checkbox') $fvalue = $this->ChannelFields[$fname,['default',;
}
if($ftype=='text')
{
$fvalue = HtmlReplace($fvalue);
}
......
                       
               
       
        问题就出在HtmlReplace方法中。某些时候HtmlReplace的中文转换是有问题的。
        HtmlReplace
        (>=DedeCMS 5.5)
        函数名:HtmlReplace
        功能:去除html中不规则内容字符
        参数:
        $str='' 需要处理的字符串
        $rptype=0 返回类型
        $rptype = 0 表示仅替换 html标记
        $rptype = 1 表示替换 html标记同时去除连续空白字符
        $rptype = 2 表示替换 html标记同时去除所有空白字符
        $rptype = -1 表示仅替换 html危险的标记
        返回值:
        格式化后的字符串
        注:其实貌似HtmlReplace出现问题与否跟php的版本是有关系的,最新的php版本好像会出问题,但也有可能是配置的问题。
回复

使用道具 举报

网站地图|页面地图|文字地图|Archiver|手机版|小黑屋|找资源 |网站地图

GMT+8, 2024-11-16 22:47

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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