原文:http://www.yaosansi.com/post/1436.html
问题发现:
- 使用Windows Live Writer写博时Z-blog 将换行符替换掉了,导致文章中代码部分串到一行上去了
- 使用Z-blog 后台自带的FCKEditor出现同样问题(Z-blog早期版本不存在此问题).
问题总结:
问题解决:
一、存取数据库
罪魁祸首就是下面的代码。function/c_system _event.asp 文件中的第298行。这四行分别控制了文章内容(Content)和摘要(Intro)CR,LF,LF的替换。可见都被替换成了""。注释掉自己需要的就可以。我只是注释了298这一行,足矣。
298.objArticle.Content=Replace(objArticle.Content,vbCrLf,"")
299.objArticle.Content=Replace(objArticle.Content,vbLf,"")
300.objArticle.Intro=Replace(objArticle.Intro,vbCrLf,"")
301.objArticle.Intro=Replace(objArticle.Intro,vbLf,"")
二、过滤UBB标签
function/c_system_lib.asp了。把它找出来,代码量很大,没关系,打开 UltraEdit 的文件比对,和之前本地没有升级的文件比较比较。轻松愉快的发现了位置所在,392行。
392.Public Property Get HtmlContent
393. HtmlContent=TransferHTML(UBBCode(Content,"[face][link][email][autolink][font][code][image][typeset][media][flash][key]"),"[html-japan][vbCrlf][upload]")
394.End Property
三、修改WLWSupport插件
实在不愿意仔细看代码了,由是先从根源做起,WLWSupport插件获取Content后,直接将换行符换成VBCRLF
\PLUGIN\WLWSupport\include.asp
284行 Function WLWSupport_newPost(structPost,bolPublish) 方法中
280 objArticle.Content=objXmlFile.documentElement.selectSingleNode("member[name=""description""]/value/string").text
282 objArticle.Alias=objXmlFile.documentElement.selectSingleNode("member[name=""mt_basename""]/value/string").text
284 objArticle.Tag=ParseTag(objXmlFile.documentElement.selectSingleNode("member[name=""mt_keywords""]/value/string").text)
'yaosansi Modify 2010-04-11 Begin
objArticle.Content=Replace(objArticle.Content,vbCrlf,"<br />")
objArticle.Content=Replace(objArticle.Content,vblf,"<br />")
'yaosansi Modify 2010-04-11 End
392行 Function WLWSupport_editPost(intPostID,structPost,bolPublish) 方法中
388 objArticle.Content=objXmlFile.documentElement.selectSingleNode("member[name=""description""]/value/string").text
390 objArticle.Alias=objXmlFile.documentElement.selectSingleNode("member[name=""mt_basename""]/value/string").text
392 objArticle.Tag=ParseTag(objXmlFile.documentElement.selectSingleNode("member[name=""mt_keywords""]/value/string").text)
'yaosansi Modify 2010-04-11 Begin
objArticle.Content=Replace(objArticle.Content,vbCrlf,"<br />")
objArticle.Content=Replace(objArticle.Content,vblf,"<br />")
'yaosansi Modify 2010-04-11 End
参考:Z-blog 1.8 Arwen Build 90619 换行符问题的解决

1 赵阳
2010/7/30 9:25:20 [Report Spam]