账号通
    

账号  

密码  

32200

查看

55

回复
主题:[分享]只需一步修改,让你的系统函数标签轻松调用你想要的字段 [收藏主题] 本贴被认定为精华 转到:  
一生有你 当前离线

10439

主题

0

广播

18

粉丝
添加关注
级别:版主

用户积分:72521 分
登录次数:1969 次
注册时间:2006/7/1
最后登录:2021/8/25
一生有你 发表于:2009/10/28 10:17:00   | 只看该作者 查看该作者主题 楼主 
科汛智能建站系统

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


 


默认的可用字段如下:


 



此主题相关图片如下:未命名.jpg
未命名.jpg


但这些可用字段有可能不能完全满足所有用户的需求,比如一些用户想调用文章的作者,来源等,那就实现不了了


可以见这个用户的需求(http://bbs.kesion.com/dispbbs.asp?boardid=41&Id=104363&page=5)


 


没关系,如果有这个需求又不想用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表


 


 


 


 



 

 
  支持(2) | 反对(0) 回到顶部顶端 回到底部底部
nongmin 当前离线

99

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:1001 分
登录次数:43 次
注册时间:2007/12/1
最后登录:2011/4/22
nongmin 发表于:2010/4/15 20:09:00   | 只看该作者 查看该作者主题 沙发 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
renyi 当前离线

231

主题

17

广播

2

粉丝
添加关注
级别:二年级

用户积分:2129 分
登录次数:314 次
注册时间:2007/1/25
最后登录:2024/3/17
renyi 发表于:2010/3/19 15:36:00   | 只看该作者 查看该作者主题 藤椅 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
xigua 当前离线

77

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:589 分
登录次数:42 次
注册时间:2009/8/26
最后登录:2011/3/17
xigua 发表于:2009/11/23 11:52:00   | 只看该作者 查看该作者主题 板凳 
科汛在线考试系统(NET)

不错不错,我现在用的是免费版的,一但走出正轨,我就会买正版的~~~~

 

 

这也是我从风迅转到科迅的原因~~~

 
  支持(1) | 反对(0) 回到顶部顶端 回到底部底部
shuai 当前离线

87

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:975 分
登录次数:103 次
注册时间:2007/10/13
最后登录:2010/11/28
shuai 发表于:2009/11/19 15:15:00   | 只看该作者 查看该作者主题 报纸 
科汛在线网校系统
科讯真是牛,简单强大。期待科讯的php版或者是net版
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
fengfanlove 当前离线

122

主题

0

广播

0

粉丝
添加关注
级别:一年级

用户积分:689 分
登录次数:136 次
注册时间:2009/9/22
最后登录:2012/7/10
fengfanlove 发表于:2009/11/8 12:58:00   | 只看该作者 查看该作者主题 地板 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
米奇 当前离线

89

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:275 分
登录次数:9 次
注册时间:2009/10/30
最后登录:2009/11/6
米奇 发表于:2009/11/6 14:30:00   | 只看该作者 查看该作者主题 7楼 
科汛在线商城系统(NET)

好东西!!呵呵!!!顶顶顶顶顶顶顶…………

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
zouling 当前离线

118

主题

0

广播

0

粉丝
添加关注
级别:一年级

用户积分:967 分
登录次数:56 次
注册时间:2009/10/19
最后登录:2010/6/3
zouling 发表于:2009/11/4 14:32:00   | 只看该作者 查看该作者主题 8楼 
科汛在线考试系统(NET)
当时明月在,曾照彩云归。我来把你顶起
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
zouling 当前离线

118

主题

0

广播

0

粉丝
添加关注
级别:一年级

用户积分:967 分
登录次数:56 次
注册时间:2009/10/19
最后登录:2010/6/3
zouling 发表于:2009/11/4 14:31:00   | 只看该作者 查看该作者主题 9楼 
科汛在线网校系统
当时明月在,曾照彩云归。
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
iewl 当前离线

178

主题

0

广播

0

粉丝
添加关注
级别:一年级

用户积分:898 分
登录次数:101 次
注册时间:2007/12/19
最后登录:2022/11/16
iewl 发表于:2009/11/1 15:32:00   | 只看该作者 查看该作者主题 10楼 
科汛在线网校系统
这个东西真是太好了。

点评 2

乱弹琴:1.0     说得很好:1.0     
xufeng308 乱弹琴:1 说得很好:1
扯白 威望+1 发表于 2010/9/11 16:43:00 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行0.21094秒 powered by KesionCMS 9.0