让你的动易自动生成站内链接之二
来源:asp之家 发布时间:2009-09-18 14:39:00
继上次写了篇《让你的动易SW6自动生成站内链接》后有朋友提到了一个问题。如果说我不想重新生成文章,但又想把原来的这些文章的标题添加到站内链接,因为生成文章太慢太耗时间了。
嗯,这个问题的确是值得我们关注的,因为大部分朋友的网站的内容不是一两百篇的问题,而是成千上万篇。所以要把这些原来就存在的文章的站内链接添加进去,还真是一个超大的工程。那么好吧,生成文章是很花时间,那么我们就来个不生成文章,但是照样把这些原本就存在的文章的标题添加到站内链接中!
Come on,下面就来Diy修改动易吧。提示:上篇文章中的函数是要用到的。所以没有看上篇文章的朋友请自己去查看。以前的代码就不再贴上来了,不要因为没有添加上篇文章中的代码出错又来找我!
1、找到Admin/Admin_CreateArticle.asp 文件,在Call CreateIndex语句后面添加如下语句
Case "CreateIndex"
Call CreateIndex
'以下部分为新添加的代码部分,添加的位置可以自己选择。
Case "UpdateKeyLink"
Call UpdateKeyLink
2、在Admin/Admin_CreateArticle.asp 文件最后面添加以下函数:
说明:以下函数其实只是用到该页面中生成文章的函数代码,然后把文件写入部分,以及其他读取和替换模板部分这些我们并不需要的部分给去掉了,这也是为什么这个自动生成站内链接功能可以这么快的原因,可能不是精简得最好的,你可以自己看下有什么可以再精简的。
Sub UpdateKeyLink()
'On Error Resume Next
ChannelID = PE_CLng(Request("ChannelID"))
Dim sql, strFields, ArticlePath
Dim strArticleContent
Dim tmpArticle, tmpTemplateID
sql = "select * from PE_Article where Deleted=" & PE_False & " and Status=3 and ReceiveType=0 and InfoPoint=0 And InfoPurview=0 and ChannelID=" & ChannelID&" order by UpdateTime desc,ClassID,ArticleID"
If IsAutoCreate = False Then
Response.Write "<b>正在生成" & ChannelShortName & "页面……请稍候!<font color='red'>在此过程中请勿刷新此页面!!!</font></b><br>"
Response.Flush
End If
Set rsArticle = Server.CreateObject("ADODB.Recordset")
rsArticle.Open sql, Conn, 1, 1
If rsArticle.Bof And rsArticle.EOF Then
TotalCreate = 0
iTotalPage = 0
rsArticle.Close
Set rsArticle = Nothing
Exit Sub
Else
If CreateType = 9 Or (CreateType = 8 And CreateItemType = 3)Then
TotalCreate = PE_Clng(Conn.Execute("select count(*) from PE_Article where Deleted=" & PE_False & " and Status=3 and ReceiveType=0 and InfoPoint=0 And InfoPurview=0 and ChannelID=" & ChannelID & " and (CreateTime is null or CreateTime<=UpdateTime)")(0))
Else
TotalCreate = rsArticle.RecordCount
End If
End If
PageTitle = ""
strFileName = ChannelUrl_ASPFile & "/ShowArticle.asp"
Call MoveRecord(rsArticle)
Call ShowTotalCreate(ChannelItemUnit & ChannelShortName)
Do While Not rsArticle.EOF
FoundErr = False
ArticleID = rsArticle("ArticleID")
ClassID = rsArticle("ClassID")
If CreateType = 7 Then ChannelID = rsArticle("ChannelID")
strNavPath = tmpNavPath
Call GetChannel(ChannelID)
Call GetClass
strPageTitle = tmpPageTitle
iCount = iCount + 1
If ClassPurview > 0 Or rsArticle("InfoPurview") > 0 Or rsArticle("InfoPoint") > 0 Then
Response.Write "<li><font color='red'>ID为 " & rsArticle("ArticleID") & " 的" & ChannelShortName & "因为设置了阅读权限,所以没有生成。</font></li>"
Response.Flush
Else
SpecialID = 0
CurrentPage = 1
ArticlePath = HtmlDir & GetItemPath(StructureType, ParentDir, ClassDir, rsArticle("UpdateTime"))
ArticleTitle = Replace(Replace(Replace(Replace(rsArticle("Title") & "", " ", " "), """, Chr(34)), ">", ">"), "<", "<")
ArticlePath = ArticlePath & GetItemFileName(FileNameType, ChannelDir, rsArticle("UpdateTime"), ArticleID)
tmpFileName = ArticlePath & FileExt_Item
Call CreatKeyLink(ArticleTitle, tmpFileName, 1)
End If
If Response.IsClientConnected = False Then Exit Do
If iCount Mod MaxPerPage_Create = 0 Then Exit Do
rsArticle.MoveNext
Loop
rsArticle.Close
Set rsArticle = Nothing
End Sub
以上函数有点熟悉吧,对就是把这个页面前面生成文章页面的函数修改了一下,把多余的,以及写入文件的部分不要了。换成了更新站内链接。
3、在Admin/Admin_Index_Left.asp 中增加后台接口
在此页面中找个适当的位置添加以下代码
Response.Write "<tr><td height=20><a href='Admin_CreateProduct.asp?ChannelID=1000&Action=UpdateKeyLink' target='main'>更新站内链接</a></td></tr>"
好了,完成了,超简单吧?三步完成,现在把后台刷新一下,然后在左侧导航中是不是多了个“更新站内链接”?好了,点击它试下?
PS:因为代码部分我是修改了很多地方的,此代码你移植过去可能会有些小问题,有什么问题可以发邮件给我,记住,请写清楚你所遇到的问题,以及错误描述。否则不回复,谢谢合作。


猜你喜欢
- 前言普通用户定义crontab定时任务:比如oracle用户定义一个定时任务:每分钟打印当前目录[oracle@node2 ~]$ cron
- 目录【常用命令】【关于esxi常用命令总结】【esxcli命令探究】ESXi命令行获取帮助的方法为<命令关键字 --help>,
- 每过几年,企业都要对网站进行改版设计。有时,企业对网站改版以新战略或是新产品的推出为契机。有时,企业只是不喜欢旧的网站才进行改版。或许,企业
- 从10月7号开始到10月15日止,已经有8天了,网络上关于uucall断网事件的真相之争从来就没有停息过。根据专业人士的判断以及网友们的各种
- 现在搜索引擎越来越重视网站的质量了,对于一些小网站的惩罚更是毫不手软,很多站长都被搜索引擎惩罚过,也有一部分网站经过改善后又重新被收录,并且
- 用户组在linux 中每个用户必须属于一个组,而Linux下有三种组的概念,如下:文件所拥有者用户所在组其他组文件所有者: 就是文件的创造者
- 广告展示位置AdSense 提供多种广告格式和广告产品。我们鼓励发布商在遵守下列政策的情况下尝试各种展示位置:每页可展示最多 3 个广告单元
- 环境准备所有操作开始前,先确定hadoop版本已经装好。具体可以看我的另一篇博客搭建hadoop3.xmysql安装先把安装包放到softw
- iis无法启动,发生意外错误0x8ffe2740第一次发现这个错误的时候,以为IIS出了什么问题,所以就重装了(这是我经常用的方法,哈哈.革
- 为什么要学 vimlinux 有大量的配置文件,所以 linux 的文本处理工具也是比较多的,常用的有 less vi head tail
- 引子最近发现有ARM版Docker,hub.docker.com上也有ARM版本的镜像,但是ARM版本的Docker镜像构建是个问题。嵌入式
- 这些方法中,有些是众所周知的,你也可能了解的。但有些方法不为人熟知,还有些是大家知道但很少用上的。本文将让你了解更多或记起一些这种能更快更准
- 昨天(12.18)在写了一个文章:<购买网站应注意的九个问题>文章首先发布在了落伍者,然后发布到了艾瑞网,又发布在了站长网,最后
- SEO最常见的问题之今天你的站又被降权了吗?网站被降权是常有的事,相信每位站长都曾经历过。一不留神,被降权了,再怎么千万次的问候某个伟大的女
- 网站建立起来了,却无人问津。每天看着竞争对手的网站红红火火,自己的网站却门庭冷落。你企业的网站就这样被架空了。我想目前很多的企业网站都处于这
- 我在电信局做网管,原来管理过三十多台服务器,从多年积累的经验,写出以下详细的Windows2003服务系统的安全方案,我应用以下方案,安全运
- 本来我想大喊一声“博客访问量就是狗屁”并将其作为本文标题,后来觉得似乎有“标题党
- 因为需要更改电子邮件,你也许想加强多个电子邮件帐户或者把不同的地址组织到不同的帐户里。要这样做,你不需要取消或者重新创建你的电子邮件帐户或者
- 作为Internet上的FTP服务器,系统的安全性是非常重要的,这是建立FTP服务器者所考虑的第一个问题。其安全性主要包括以下几个方面:一、
- 众所周知,现在申请google adsense帐号很困难了,许多站长抱着满腔热情去申请,却屡屡被拒绝。在申请被拒绝时,google adse