首页 | 风讯安装 | 后台管理 | 升级转换 | 模板制作 | 标签说明 | 采集说明 | 常见问题 | 自由标签 | 样式管理 | 功能扩展 | 插件使用 |
常 见 问 题
新 手 入 门
中 级 进 阶
高 级 技 巧
 风讯3系列文章内容“画中画广告”实现方法 ★★★★★ 【字体:小 大】 
风讯3系列文章内容“画中画广告”实现方法
http://www.foosun.cn   作者:未知   来源:未知  点击:  更新时间:06-10-29 15:26:04

在文章内容中,我发现前端时间大家在讨论文章显示内容画中画的功能,实际上这个功能对于本人是没有什么用的,因为本人是写JAVA的,对于ASP这种东西我也不是太懂!!!但是本着学习风讯的态度,本着贡献的态度,就草草的写了一个实现出来,希望大家不要笑话我!!!如果有什么不对的地方或者代码可以写的更漂亮的地方,希望大家给予我修改一下,同时告诉大家,这种实现,我已经在风讯的管理控制台上,增加了相应的控制画中画的代码,并且可以控制画中画显示的日期长短!!!!你也可以根据你的需要来不停的修改画中画显示的方式。

在此也非常感谢风讯,那个我曾经学习过7年城市中能够出这么好的东西,表示敬佩!!!

我今天就首先上图片,等晚上,网速上来,我在发修改代码!!!!
此主题相关图片如下:


大家可以完善的地方:

主要是要分析文章找到适当的插入画中画广告的位置,就是再那个字符后面插入的问题,你仔细看看我上面的图片,就会发现是断了句子的,这个不好,最好的方式是增加我下面代码中分析功能的那个函数的分析功能,智能判断如果不是新的行,就继续下移一个插入字符,直到找到新的行位置,再插入,比较好

程序代码的更改是比较简单的,大家多看看,我很少上来,如果有什么问题,希望大家在这个帖子后面说明

Demo地址http://www.passatclub.com.cn

1。找到Manage\Admin\Refresh\Function.asp这个文件

2。找到Function GetNewsContent(TempletContent,NewsRecordSet,NewsContent) 这个函数,大约在282行左右,不一定,因为我更改了很多的风讯的东西。

3。修改后的代码如下;

Function GetNewsContent(TempletContent,NewsRecordSet,NewsContent)
TempletContent = Replace(TempletContent,"{News_Title}",NewsRecordSet("Title"))
if Not IsNull(NewsRecordSet("SubTitle")) then
  TempletContent = Replace(TempletContent,"{News_SubTitle}",NewsRecordSet("SubTitle"))
else
  TempletContent = Replace(TempletContent,"{News_SubTitle}","")
end if
if Not IsNull(NewsRecordSet("Author")) then
  TempletContent = Replace(TempletContent,"{News_Author}",NewsRecordSet("Author"))
else
  TempletContent = Replace(TempletContent,"{News_Author}","")
end if
'====================================================开始
'分析文章内容,插入广告代码,todo:将在数据中设置一个字段来设置是否文章中包含广告内容
Dim LeftContent,MidAdContent,RightContent,ModifyContent,headlen,tempStr,headAdStr,tailAdStr
'截取字符串
if len(NewsContent)<400 then
     headlen=len(NewsContent)/2
else
     headlen=400
end if
tempStr=NewsContent
LeftContent=InterceptString(tempStr,headlen)
'获取实际的截取的长度
RightContent=Right(NewsContent,Len(NewsContent)-Len(LeftContent))
headAdStr="<table border=0 cellspacing=0 cellpadding=0 align=left><tr><td><div id=""embedAd"" name=""embedAd"" style=""DISPLAY:""><!--画中画广告开始--><table border=0 cellspacing=0 cellpadding=0 style=""margin-top:5px;margin-bottom:3px;margin-left:7px;margin-right:8px""><tr><td><!--画中画开始-->"
tailAdStr="<!--画中画开始--></td></tr></table></td></tr></table><!--画中画广告结束--></div>"
ModifyContent=LeftContent & headAdStr & "<script src=/JS/AdsJS/801.js>< /script>" & tailAdStr & RightContent
TempletContent = Replace(TempletContent,"{News_Content}",ModifyContent)
'TempletContent = Replace(TempletContent,"{News_Content}",NewsContent)
'===================================================结束

if Not IsNull(NewsRecordSet("TxtSource")) then
  TempletContent = Replace(TempletContent,"{News_TxtSource}",NewsRecordSet("TxtSource"))
else
  TempletContent = Replace(TempletContent,"{News_TxtSource}","")
end if
if Not IsNull(NewsRecordSet("Editer")) then
  TempletContent = Replace(TempletContent,"{News_TxtEditer}",NewsRecordSet("Editer"))
else
  TempletContent = Replace(TempletContent,"{News_TxtEditer}","")
end if
if Not IsNull(NewsRecordSet("AddDate")) then
  TempletContent = Replace(TempletContent,"{News_AddDate}",NewsRecordSet("AddDate"))
else
  TempletContent = Replace(TempletContent,"{News_AddDate}","")
end if
TempletContent = Replace(TempletContent,"{News_SendFriend}","<a href=" & AvailableDoMain & "/" & "Sendmail.asp?NewsID=" & NewsRecordSet("NewsID") & "  target=""_blank"">发送给好友</a>")
TempletContent = Replace(TempletContent,"{News_ClickNum}","<script src=" & AvailableDoMain & "/" & "Click.asp?NewsID="& RefreshID &"></script>")
TempletContent = Replace(TempletContent,"{News_ReviewContent}","<script src=" & AvailableDoMain & "/" & "ReviewContent.asp?NewsID="& NewsRecordSet("NewsID") &"></script>")
'Added By Koolls at 2005.10.11
TempletContent = Replace(TempletContent,"{News_Favorite}","<a target=""_blank"" Href=" & AvailableDoMain & "/" & UserDir &"/AddFavorite.asp?NewsID="& NewsRecordSet("ID") &">添加到收藏夹</a>")
Dim ReviewStr
if NewsRecordSet("ReviewTF") = 1 then
  ReviewStr = "<table width=""100%"" border=""0"" cellpadding=""3"" cellspacing=""1""><form name=""form1"" method=""post"" action=""" & AvailableDoMain & "/" & "NewsReview.asp?action=add&NewsID=" & NewsRecordSet("NewsID") & """><tr>"
  ReviewStr = ReviewStr & "<td width=""21%""><div align=right>会员名称:</div></td>"
  ReviewStr = ReviewStr & "<td width=""79%""> <input name=""MemName"" type=""text"" id=""MemName"" size=""10"" value="""">密码:<input name=""Password"" type=""password"" size=""8"" id=""Password""><input name=""NoName"" type=""checkbox"" id=""NoName"" value=""1"">匿名 <font color=""#FF0000"">·</font><a href=""" & AvailableDoMain & "/"& UserDir &"/sRegister.asp""><font color=""#FF0000"">注册</font></a>·<a href=""" & AvailableDoMain & "/"& UserDir &"/User_GetPassword.asp"">忘记密码?</a></td></tr>"
  ReviewStr = ReviewStr & "<td>  <input name=""NewsID"" type=""hidden"" id=""NewsID"" value=""" & NewsRecordSet("NewsID") & """>"
  ReviewStr = ReviewStr & "<input name=""action"" type=""hidden"" id=""action"" value=""add""></tr>"
  ReviewStr = ReviewStr & "<tr><td> <div align=""right"">评论内容:<br>(最多300个字符) </div></td><td> <textarea name=""RevContent"" cols=""40"" rows=""5"" id=""RevContent""></textarea></td></tr>"
  ReviewStr = ReviewStr & "<tr><td></td><td> <input type=""submit"" name=""Submit"" value=""发表"">&nbsp;&nbsp;<a href=""" & AvailableDoMain & "/" & "NewsReview.asp?NewsID=" & NewsRecordSet("NewsID") & """><font color=red><b>查看评论</b></font></a></td></tr></form></table>"
else
  ReviewStr = ""
end if
TempletContent = Replace(TempletContent,"{News_Review}",ReviewStr)
GetNewsContent = TempletContent
End Function


 

4.在这个文件的最后,增加下列两个函数,这两个函数是分析函数


 


'"************ 截取字符串 **************
Function InterceptString(txt,length)
Dim x,y,ii,c,ischines,isascii,tempStr
txt=trim(txt)
x = len(txt)
y = 0
if x >= 1 then
  for ii = 1 to x
        c=asc(mid(txt,ii,1))
if  c< 0 or c >255 then
         '说明是一个中文字符
     y = y + 2
     ischines=1
     isascii=0
else
         '说明是一个ascii码
     y = y + 1
     ischines=0
     isascii=1
end if
'如果长度已经大于定义子字符串长度,就判断是否包含敏感字符串是否分开
   if y >= length then
      if ischines=1 and StrCount(left(trim(txt),ii),"<a")=StrCount(left(trim(txt),ii),"</a>") then
       txt = left(trim(txt),ii) '"字符串限长
       exit for
         else
              if isascii=1 then x=x+1
         end if
      end if
  next
   InterceptString = txt
else
   InterceptString = ""
end if
End Function
'判断字符串出现的次数
Function StrCount(Str,SubStr)        
    Dim iStrCount
    Dim iStrStart
    Dim iTemp
    iStrCount = 0
    iStrStart = 1
    iTemp = 0
    Str=LCase(Str)
    SubStr=LCase(SubStr)
    Do While iStrStart < Len(Str)
        iTemp = Instr(iStrStart,Str,SubStr,vbTextCompare)
        If iTemp <=0 Then
            iStrStart = Len(Str)
        Else
            iStrStart = iTemp + Len(SubStr)
            
            iStrCount = iStrCount + 1
        End If
    Loop
    StrCount = iStrCount
End Function


 

5。在第三步中,那个蓝色的广告JS,你可以使用风讯本身的发布一个普通的广告生成的JS来代替就可以。

文章录入:风讯科技  责任编辑:风讯科技  
·上一篇:终极列表增加每5条分隔,可后台控制
·下一篇:提供风讯CMSV4.0的FLASH幻灯的源文件
【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
 没有任何评论
2002-2006 Foosun Inc. 四川风讯科技发展有限公司.版权所有  蜀ICP备 05005237