关闭

风讯生成静态文件研究调查(测试中)

964人阅读 评论(2) 收藏 举报

想看一下风讯究竟怎样生成静态文件的, 查了一下源代码,我用的是风讯4.0免费版,

1.点击上面的“发布管理”,转到链接地址http://localhost/foosun/admin/Sys_Public.asp?Type=NS,然后点击“新闻”-》:“发布新闻主页”-》“开始发布”,然后执行了JS函数“function Submit_Data_To_Refresh(Sys,Table,Type,FormObj)”,将页面提交到“PublicSite/Public_Refresh.asp?"+Action,Action=NS$$index$

2.在PublicSite/Public_Refresh.asp文件中,转到函数Refresh_index(p_Sys_ID) 其中p_Sys_ID='NS',然后继续转到函数代码

Set p_INDEX_DIC_OBJ = Replace_All_Flag(p_File_Content,"",Sys_flag) 
 p_File_Content = p_INDEX_DIC_OBJ.Item("-3")

3.在PublicSite/Public_function.asp文件中,找到Function Replace_All_Flag(f_File_Cont,f_NewsID,PageType)函数,先是将标签名称转成标签内容,f_Match_Str=Get_Label_Content(f_Match_Str),随后生成相关的类,比如我这里查看的是新闻类(约290行)Case "NS"      Set f_RERESH_OBJ = New cls_NS;然后执行约314行的标签替换功能f_Lable_Cont = f_RERESH_OBJ.get_LableChar(f_Lable_Para_Value,f_NewsID);即ns_public.asp约39行的Public Function get_LableChar(f_Lablechar,f_Id)

4.在ns_public.asp的get_LableChar(f_Lablechar,f_Id)函数中,转到classNews函数(get_LableChar=ClassNews(f_Lablechar,"marnews",f_Id),在classNews函数中,生成SQL语句,在576行左右等到记录集set f_rs_obj = Conn.execute(f_sql);随后转到616行左右的记录集替换标签的函数getlist_news;

在getlist_news函数中,可以看到它是直接将标签替换成列值的,其中f_obj为新闻记录集

if instr(s_Content,"{NS:FS_NewsID}")>0 then
      s_Content = replace(s_Content,"{NS:FS_NewsID}",f_obj("NewsId"))
     end if

 可以预料风讯的程序员真幸苦呀^-^

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:306983次
    • 积分:6378
    • 等级:
    • 排名:第4011名
    • 原创:196篇
    • 转载:121篇
    • 译文:1篇
    • 评论:55条
    文章分类