霍者博客

为{aspcms:content} 增加参数 可以从第M条读取N条记录

昨天发了 为 navlist 标签增加 参数 方法后 看到有朋友需要 list 标签的 修复方法 

我就先改下 content 标签的试试 一次性全改了  

随后贴出list 标签的修改方法

目标:content 标签   读取内容列表的 从M条开始 读取N条记录      

使用方法 :

{aspcms:content sort=1 limi=4 num=3 order=order } ..........{/aspcms:content}

sort官方参数 ,读取对应栏目的子栏目

limi类型 整数     从第几条记录开始读取

num官方参数     读取几条记录

order官方参数/inc/AspCms_MainClass.asp

'替换循环标签
Public Function parseLoop(Byval str)
  dim sortArr,sortStr,sortI,labelRuleField,matches,match,labelStr,loopStr,labelArr,lnum,ltype,lsort,lorder,ltime,whereType,whereSort,orderStr,whereTime,sql,DateArray,matchesfield,loopstrTotal,i,sperStrs,spec,sperStr,aboutkey,title,lstar,contentlen,pagecontent,llimi,limi '【添加参数定义
  labelRule = "{aspcms:"&str&"([\s\S]*?)}([\s\S]*?){/aspcms:"&str&"}"
  labelRuleField = "\["&str&":([\s\S]+?)\]"
  regExpObj.Pattern = labelRule
  set matches = regExpObj.Execute(content)
  for each match in matches
      labelStr = match.SubMatches(0)
   'echo str & labelStr
   loopStr = match.SubMatches(1)
   set labelArr = parseArr(labelStr)
   lnum = labelArr("num") : ltype = labelArr("type") : lsort = labelArr("sort") : lorder = labelArr("order") : ltime = labelArr("time") : aboutkey = labelArr("tag") : lstar=labelArr("star") : llimi=labelArr("limi")    '【读取参数   
if isnum(llimi)   then     '【检查参数正确性
    limi=llimi-1
    if limi<1 then limi=""
   else
    limi=""
   end if
   '【以下 未修改

向下找 找到    if str="content" or str="news" or str="product" or str="down" or str="pic" then

   if str="content" or str="news" or str="product" or str="down" or str="pic" then   
    sperStrs =conn.Exec("select SpecCategory+'_'+SpecField from AspCms_SpecSet Order by SpecOrder Asc,SpecID", "arr")    
    if isarray(sperStrs) then
     for each spec in sperStrs
      sperStr = sperStr&","&spec      
     next
    end if
    if limi<>""then   '【插入sql语句
    limi="ContentID NOT IN(select top "&limi&" ContentID from AspCms_Content as a,AspCms_Sort as b where  a.LanguageID="&setting.languageID&"  and a.SortID=b.SortID and ContentStatus=1 "&whereType&whereSort&whereTime&orderStr&") and"
    end if
    sql="select top "&lnum&" ContentID,a.SortID,a.GroupID,a.Exclusive,Title,Title2,TitleColor,IsOutLink,OutLink,Author,ContentSource,ContentTag,Content,ContentStatus,IsTop,Isrecommend,IsImageNews,IsHeadline,IsFeatured,ContentOrder,IsGenerated,Visits,a.AddTime,a.ImagePath,a.IndexImage,a.DownURL,a.PageFileName,a.PageDesc,SortType,SortURL,SortFolder,SortFileName,SortName,ContentFolder,ContentFileName,b.GroupID,b.Exclusive"&sperStr&" from AspCms_Content as a,AspCms_Sort as b where "&limi&" a.LanguageID="&setting.languageID&"  and a.SortID=b.SortID and ContentStatus=1 "&whereType&whereSort&whereTime&orderStr       
'【sql 已修改 
'【以下未修改

ok 验证通过


当然,程序本身也可以通过if来判断获取相应的功能的,具体的请查看《ASPCMS标签助手》。

基本格式为:

{aspcms:content sort=1 num=9 order=id}
{if:[content:i]>1}
 <li><span>[content:date style=yy-m-d]</span><a href="[content:link]" title="[content:title]">[content:title len=28]</a></li>
{end if}
{/aspcms:content}

原创文章请注明转载自霍者博客本文地址:http://www.huozheweb.com/post/685.html,标题:为{aspcms:content} 增加参数 可以从第M条读取N条记录

【我来说两句】
分享到:

评论 0

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。