KesionCMSV6系统函数标签调用任意字段修改方法

相信使用过科汛V6的朋友都有所知道科汛的系统函数标签已经是非常灵活了,更让人心动的是她的自定义样式输出(类似sql标签的循环体),但官方在考虑到整体性能的前提下,默认情况下只能用一些常见的字段,不常用的字段便没有内置在里面,如作者,来源等

默认的可用字段如下:

此主题相关图片如下:未命名.jpg
KesionCMSV6系统函数标签调用任意字段修改方法
 

但这些可用字段有可能不能完全满足所有用户的需求,这时我们就考虑到扩展来实现想要调用的字段,如果您有这方面的需求又不想学得复杂的sql标签,没关系,只需要简单一步修改,就可以实现随意调用你想到的字段

 

科汛V6开始的标签解释引擎已全面升级,扩展性极其简单.科汛的系统函数标签解释文件主要在kesion.label.functioncls.asp这个文件中,那么请你用DW打开ks_cls/kesion.label.functioncls.asp

找到构造sql查询语句的通用函数,大约在200多行吧

  '加载模型通用查询字段
  Public Sub LoadField(ByVal ModelID,ByVal PrintType,ByVal PicStyle,ByVal ShowPicFlag,ByRef FieldStr,ByRef TableName,ByRef Param)
     If ModelID="0" Then
    TableName = "[KS_ItemInfo]"
    FieldStr  = "I.ChannelID,I.InfoID as ID,I.Title,I.Tid,I.Intro,I.PhotoUrl,I.AddDate,I.Inputer,I.Popular,I.Fname,I.Hits"
    If PrintType=2 or (instr(LabelStyle,"{@photourl}")>0 and PrintType>2) Then Param = Param & " And I.PhotoUrl<>''"
   Else
    TableName=KS.C_S(ModelID,2)
    Select Case KS.C_S(ModelID,6)
     Case 1
      FieldStr  = "I.ID,I.Title,I.Tid,I.Inputer,I.Fname,I.AddDate,I.Popular,I.Hits"
      FieldStr=FieldStr & ",I.TitleType,I.TitleFontColor,I.TitleFontType"
      If PrintType>=2 Then  FieldStr=FieldStr & ",I.PhotoUrl,I.Intro" : If PrintType=2 or (instr(LabelStyle,"{@photourl}")>0 and PrintType>2) Then Param = Param & " And I.PicNews=1"
      If PrintType>=3 Then  FieldStr=FieldStr & ",I.ReadPoint"
     Case 2 
      FieldStr  = "I.ID,I.Title,I.Tid,I.Inputer,I.Fname,I.AddDate,I.Popular,I.Hits"
      If PrintType>=2 Then FieldStr=FieldStr & ",I.PhotoUrl,I.PictureContent As Intro"
      If PrintType>=3 Then FieldStr=FieldStr & ",I.ReadPoint"
     Case 3 
      FieldStr  = "I.ID,I.Title,I.Tid,I.Inputer,I.Fname,I.AddDate,I.Popular,I.Hits"
      If PrintType>=2 Then FieldStr=FieldStr & ",I.PhotoUrl,I.DownContent As Intro,I.DownSize,I.Rank"
      If PrintType>=3 Then FieldStr=FieldStr & ",I.ReadPoint"
     Case 4 
      FieldStr  = "I.ID,I.Title,I.Tid,I.Inputer,I.Fname,I.AddDate,I.Popular,I.Hits"
      If PrintType>=2 Then FieldStr=FieldStr & ",I.PhotoUrl,I.FlashContent As Intro,I.Author,I.Rank"
      If PrintType>=3 Then FieldStr=FieldStr & ",I.ReadPoint"
     Case 5 
      FieldStr  = "I.ID,I.Title,I.Tid,I.Inputer,I.Fname,I.AddDate,I.Popular,I.Hits"
      If PrintType>=2 Then FieldStr=FieldStr & ",I.PhotoUrl,I.ProIntro As Intro,I.BigPhoto,I.Price_market,I.Price_member,I.Price,I.Price_Original,I.Discount,I.Promodel,I.Point"
      If KS.ChkClng(ParamNode.getAttribute("producttype"))<>0 Then Param =Param & " And I.ProductType="&KS.ChkClng(ParamNode.getAttribute("producttype"))
     Case 7 
      FieldStr  = "I.ID,I.Title,I.Tid,I.Inputer,I.Fname,I.AddDate,I.Popular,I.Hits"
      If PrintType>=2 Then FieldStr=FieldStr & ",I.PhotoUrl,I.MovieContent As Intro"
      If PrintType>=3 Or PicStyle=13 Or PicStyle=14 Or PicStyle=15 Then FieldStr=FieldStr & ",I.MovieAct,I.MovieDY,I.MovieDQ,I.MovieTime,I.MovieYY,I.ReadPoint,I.Rank"
      If PrintType=2 And PicStyle=15 Then FieldStr=FieldStr & ",I.MovieDy"
     Case 8 
      FieldStr  = "I.ID,I.Title,I.Tid,I.Inputer,I.Fname,I.AddDate,I.Popular,I.Hits,I.TypeID"
      If PrintType>=2 Then FieldStr=FieldStr & ",I.PhotoUrl,I.GQContent As Intro"
      If PrintType>=3 Or PicStyle=16 Or PicStyle=17 Then FieldStr=FieldStr & ",I.ValidDate,I.ContactMan,I.Tel,I.Address,I.Province,I.City,I.CompanyName"
      If KS.ChkClng(ParamNode.getAttribute("typeid"))<>0 Then Param =Param & " And I.TypeID="&KS.ChkClng(ParamNode.getAttribute("typeid"))
     Case Else 
      FieldStr  = "I.ID,I.Title,I.Tid,I.PhotoUrl,I.AddDate,I.Inputer,I.Popular,I.Fname,I.Hits"
      If PrintType=2 or (instr(LabelStyle,"{@photourl}")>0 and PrintType>2) Then Param = Param & " And I.PhotoUrl<>''"
    End Select
    If PrintType=4 Then FieldStr=FieldStr & GetDiyFieldStr(ModelID)
   End If
  End Sub

 

如果看懂代码的用户,相信很容易看出来是根据模型构造的查询字段,这里我们就以文章模型为例,找到如下代码

 

Case 1
      FieldStr  = "I.ID,I.Title,I.Tid,I.Inputer,I.Fname,I.AddDate,I.Popular,I.Hits,I.Author"
      FieldStr=FieldStr & ",I.TitleType,I.TitleFontColor,I.TitleFontType"
      If PrintType>=2 Then  FieldStr=FieldStr & ",I.PhotoUrl,I.Intro" : If PrintType=2 or (instr(LabelStyle,"{@photourl}")>0 and PrintType>2) Then Param = Param & " And I.PicNews=1"
      If PrintType>=3 Then  FieldStr=FieldStr & ",I.ReadPoint"

 

其中红色的,i.author 是我加上的,就这么简单一步,你的系统函数标签的自定义样式里就已经直接用{@author}这样的标签调用出文章的作者了,其它模型类似,具体想要调用的字段可以打开ks_article表查看

 

疑问:

1.那这么简单,官方为什么不把所有字段都加进去呢?这样就不用用户自己加了,我方便?

答:我上面已经说到了考虑到性能问题,查询字段应该尽量的少.所以也不是说你查询越多越好.

2.为什么我按上面修改了,但我用{@字段名称}还是查询不出来呢?

答:检查标签属性里的范围有没有指定具体的模型,只有指定具体模型才有效,否则她查询的是KS_ItemInfo表

 

 


【本站声明】
  1、本站文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系。
  2、本网站不对文章中所涉及的内容真实性、准确性、可靠性负责,仅系客观性描述,如您需要了解该类商品/服务详细的资讯,请您直接与该类商品/服务的提供者联系。


KESION 科汛软件

KESION 科汛软件是国内领先的在线教育软件及私域社交电商软件服务提供商,长期专注于为企业提供在线教育软件及社交电商SaaS平台解决方案。
公司核心产品云开店SaaS社交电商服务平台、在线教育SaaS服务平台、教育企业数字化SaaS云平台、企微营销助手、私有化独立部署品牌网校和在线教育咨询等。

KESION 不断通过技术创新,提供产品和服务,助力企业向数字化转型,通过科技驱动商业革新,让商业变得更智慧!



▼点击进入科汛官网了解更多



热门标签
KesionCMS
上/下篇
  • V6后台专题查看时会显示无关文章的解决方法

  • 解决V6 标签不指定具体模型时显示未审核文章

换一换相关推荐
精选内容
热点精选