dede, 自定, 自定义, 定义, 模型
新建立了一个独立模型,可是突然发现模型列表中标题不能显示了,仔细分析发现并非完全不能显示,而是凡是带有中文的就不能显示。 然后一步一步分析,发现dede在显示独立模型文章列表时对独立模型的每一个字段都经过了ChannelUnit->MakeField具体的方法的处理,原因是独立模型文章表中,凡是联动类型字段都保存的是数值,因此,需要将其转换成对应的名称,除此之外还进行了一些其他类型字段的处理。 其中包括对于type是text的字段,那dedecms会经过HtmlReplace()具体的方法进行处理。 functionMakeField($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(>=DedeCMS5.5)函数名:HtmlReplace功能:去除html中不规则内容字符参数:$str=''需要处理的字符串$rptype=0返回类型$rptype=0表示仅替换html标记$rptype=1表示替换html标记同时去除连续空白字符$rptype=2表示替换html标记同时去除所有空白字符$rptype=-1表示仅替换html危险的标记返回值:格式化后的字符串注:其实貌似HtmlReplace出现问题与否跟php的版本是有关系的,最新的php版本好像会出问题,但也有可能是配置的问题。 自定义 , 字段 , 模型 |
DedeCMS提示你访问的用户可能已经被删除的问题