当前位置:文档之家› 【动易】通用信息列表

【动易】通用信息列表

通用信息列表<?xml version="1.0" encoding="UTF-8"?> <!-- 声明xml的版本和使用哪一种编码--><xsl:stylesheet version="1.0" xmlns:xsl="/1999/XSL/Transform" xmlns:pe="labelproc" exclude-result-prefixes="pe"> <!-- 定义样式表的根元素、规定样式表的XSLT 版本、w3c命名空间、动易命名空间pe、不应在输出中出现的命名空间前缀列表,用空格分隔。

--><xsl:output method="html" version="1.0" encoding="UTF-8" indent="no"/> <!-- 定义了输出文档的格式、<xsl:output> 是顶层元素(top-level element),必须是<xsl:sty lesheet> 或<xsl:transform> 的子节点。

定义输出的格式html、设置输出格式的W3C 版本号(仅在method="html" or method="xml" 时使用)、设置输出中编码属性的值、在输出结果树时是否要增加空白--><!-- 以下是定义一些xslt参数--><xsl:param name="bindStyle"/> <!-- 项目呈现样式--><xsl:param name="usePage"/> <!-- 是否分页显示--><xsl:param name="outputQty"/> <!-- 输出的项目数量--><xsl:param name="titleLength"/> <!-- 项目标题长度,一个汉字占两个字节--><xsl:param name="nodes"/> <!-- 栏目ID --><xsl:param name="includeChildNodes"/> <!-- 是否包含子栏目--><xsl:param name="models"/> <!-- 模型ID --><xsl:param name="bindModel"/> <!-- 通过模型ID与指定的模型表联合--><xsl:param name="specials"/> <!-- 专题ID --><xsl:param name="items"/> <!-- 项目ID --><xsl:param name="listOrderType"/> <!-- 项目列表排序方式--><xsl:param name="linkOpenType"/> <!-- 项目列表打开方式--><xsl:param name="inDay s"/> <!-- 近多少天的项目--><xsl:param name="betDate"/> <!-- 介于时间段之间的项目--><xsl:param name="editor"/> <!-- 为指定编辑者的项目--><xsl:param name="inputer"/> <!-- 为指定录入者的项目--><xsl:param name="hits"/> <!-- 点击数大于等于指定值的项目--><xsl:param name="dayHits"/> <!-- 日点击数大于等于指定值的项目--><xsl:param name="weekHits"/> <!-- 周点击数大于等于指定值的项目--><xsl:param name="monthHits"/> <!-- 月点击数大于等于指定值的项目--><xsl:param name="eliteLevel"/> <!-- 推荐级大于等于指定值的项目--><xsl:param name="priorityLevel"/> <!-- 优先级大于等于指定值的项目--><xsl:param name="picExist"/> <!-- 是否查询带图片的项目--><xsl:param name="disableVirtualLink"/> <!-- 是否禁止输出虚连接项目--><xsl:param name="display DateTime"/> <!-- 显示日期格式如:mm-dd,为空则不显示--><xsl:param name="displayPropertyPrefix"/> <!-- 项目列表前缀修饰符--><xsl:param name="displayNewSign"/> <!-- 近多少天的项目视为最新,为空则不启用此功能--><xsl:param name="displayTitlePrefix"/> <!-- 是否显示项目前缀修饰语--><xsl:param name="displayHits"/> <!-- 是否显示项目点击数--><xsl:param name="displayTips"/> <!-- 是否显示作者,更新日期,点击数等浮动提示信息--><xsl:param name="displayEditor" /> <!-- 是否显示编辑--><xsl:param name="display Inputer"/> <!-- 是否显示内容的录入者--><xsl:param name="displayNodeName"/> <!-- 是否显示所属模型名称--><xsl:param name="displayCommentLink"/> <!-- 是否显示评论链接--><xsl:param name="display HotSign"/> <!-- 是否显示热门内容图标--><xsl:param name="listOrderByNodeSet"/> <!-- 项目列表排序方式由节点配置取代--><xsl:param name="pageSizeByNodeSet"/> <!-- 输出的项目数量由节点配置取代--><xsl:param name="optionalCond"/> <!-- 可选扩展查询约束条件(启用分页时,请匆用) --><xsl:param name="optionalExtend"/> <!-- 可选扩展参数--><xsl:variable name="singleApos">'</xsl:variable> <!-- 建立一个变量,名为singleApos,值为一个单引号' --><xsl:variable name="doubleApos">''</xsl:variable> <!-- 建立一个变量,名为doubleApos,值为一对单引号'' --><!-- 约束条件模板,如需维护此模板,请注意各项数据有效性--><xsl:template name="_constraint"> <!-- 构建一个模板,名为_constraint 功能是添加SQL约束条件--><xsl:param name="_doubleApos"/> <!-- 定义一个参数_doubleApos --><xsl:if test="$disableVirtualLink = 'true'"> <!-- 如果输出虚链接项目为真, -->AND CM.LinkType = 0 <!-- SQL查询约束条件将增加该项约束条件,注: CM 是PE_CommonModel 的别名,以下出现的CM就是代表PE_CommonModel表--></xsl:if><xsl:if test="$specials != 0"> <!-- 如果专题ID 不等于0 -->AND SI.SpecialID IN (<xsl:value-of select="$specials"/>) <!-- SI 为PE_SpecialInfos 表的别名,即SI.SpecialID 等同于PE_SpecialInfos.SpecialID --></xsl:if><xsl:if test="$models != 0"> <!-- 如果模型ID 不等于0 -->AND CM.ModelID IN (<xsl:value-of select="$models"/>)</xsl:if><xsl:if test="$items != 0"> <!-- 如果项目ID 不等于0 -->AND CM.GeneralID IN (<xsl:value-of select="$items"/>)</xsl:if><xsl:if test="$eliteLevel != ''"> <!-- 如果推荐级不等于空-->AND CM.EliteLevel &gt;= <xsl:value-of select="$eliteLevel"/></xsl:if><xsl:if test="$priorityLevel != ''"> <!-- 如果优先级不等于空-->AND CM.Priority &gt;= <xsl:value-of select="$priorityLevel"/></xsl:if><xsl:if test="$hits != ''"> <!-- 如果点击数不等于空-->AND CM.Hits &gt;= <xsl:value-of select="$hits"/></xsl:if><xsl:if test="$dayHits != ''"> <!-- 如果日点击数不等于空-->AND CM.Day Hits &gt;= <xsl:value-of select="$day Hits"/></xsl:if><xsl:if test="$weekHits != ''"> <!-- 如果周点击数不等于空-->AND CM.WeekHits &gt;= <xsl:value-of select="$weekHits"/></xsl:if><xsl:if test="$monthHits != ''"> <!-- 如果月点击数不等于空-->AND CM.MonthHits &gt;= <xsl:value-of select="$monthHits"/></xsl:if><xsl:if test="$inDay s != ''"> <!-- 如果近多少天的项目不等于空-->AND DATEDIFF(d,CM.UpdateTime,GETDATE()) &lt;= <xsl:value-of select="$inDay s"/> <!-- DATEDIFF 返回跨两个指定日期的日期和时间边界数,DATEDIFF ( datepart , startdate , enddate ) ,datepart 是规定了应在日期的哪一部分计算差额的参数,如计算多少日(d),开始日期,结束日期--></xsl:if><!--单引号处理--><xsl:choose><!-- 分页与处理一对单引号同时为真时,分页储存过程在处理约束条件时需要处理一对单引号,所以要在条件约束中多加一对单引号--><xsl:when test="$usePage = 'true' and $_doubleApos='true'"><xsl:if test="$picExist = 'true'"> <!-- 如果查询带图片的项目等于真-->AND CM.DefaultPicUrl != '''' <!-- SQL查询约束条件将增加该项约束条件,PE_CommonModel.DefaultPicUrl 不等于空,注意要在条件约束中多加一对单引号--></xsl:if><xsl:if test="$inputer != ''"> <!-- 如果为指定录入者的项目等于真-->AND CM.Inputer = ''<xsl:value-of select="pe:ReplaceT ext($inputer,$singleApos,$doubleApos)"/>'' <!-- SQL查询约束条件将增加该项约束条件,PE_CommonModel.Inputer,替换字符--> </xsl:if><xsl:if test="$editor != ''"> <!-- 如果为指定编辑者的项目等于真-->AND CM.Editor = ''<xsl:value-of select="pe:ReplaceT ext($editor,$singleApos,$doubleApos)"/>''</xsl:if><xsl:if test="$betDate != '' and $betDate != '|'"> <!-- 如果介于时间段之间的项目不等于空与不等于| -->AND (CONVERT(varchar(10) , CM.UpdateTime, 120 ) &gt;= ''<xsl:value-of select="substring-before($betDate,'|')" />'') AND (CONVERT(varchar(10) , CM.UpdateTime, 120 ) &lt;= ''<xsl:value-of select="substring-after($betDate,'|')" />'')</xsl:if>AND IncludePic LIKE ''%[图文]%'' <!-- 示例:直接多加的一个SQL约束条件1,可任意多加几个约束条件--></xsl:when><!-- 分页或者处理单引号有一个为假时,直接写SQL约束语句--><xsl:otherwise><xsl:if test="$picExist = 'true'"> <!-- 如果查询带图片的项目等于真-->AND CM.DefaultPicUrl != '' <!-- SQL查询约束条件将增加该项约束条件,PE_CommonModel.DefaultPicUrl 不等于空--></xsl:if><xsl:if test="$inputer != ''"> <!-- 如果为指定录入者的项目等于真-->AND CM.Inputer = '<xsl:value-of select="pe:ReplaceT ext($inputer,$singleApos,$doubleApos)"/>'</xsl:if><xsl:if test="$editor != ''"> <!-- 如果为指定编辑者的项目等于真-->AND CM.Editor = '<xsl:value-of select="pe:ReplaceT ext($editor,$singleApos,$doubleApos)"/>'</xsl:if><xsl:if test="$betDate != '' and $betDate != '|'"> <!-- 如果介于时间段之间的项目不等于空与不等于| -->AND (CONVERT(varchar(10) , CM.UpdateTime, 120 ) &gt;= '<xsl:value-of select="substring-before($betDate,'|')" />') AND (CONVERT(varchar(10) , CM.UpdateTime, 120 ) &lt;= '<xsl:value-of select="substring-after($betDate,'|')" />')</xsl:if>AND IncludePic LIKE '%[图文]%' <!-- 示例:直接多加的一个SQL约束条件2,可任意多加几个约束条件--></xsl:otherwise></xsl:choose><xsl:if test="$optionalCond != ''"> <!-- 可选扩展查询约束条件,启用分页时,请匆用--><xsl:value-of select="$optionalCond"/> <!-- 可选扩展查询约束条件的值--></xsl:if></xsl:template><!-- 模板,名为_constraint 结束--><!-- START 标签--><xsl:template match="/NewDataSet"> <!-- 定义一个模板,路径为架构中的NewDataSet --><!--参数传递节,如需增加参数传递,请修改此变量节--><xsl:variable name="_params"> <!-- 定义一个变量_params,里面的值是一些参数传递-->titleLength="<xsl:value-of select="$titleLength"/>" linkOpenType="<xsl:value-of select="$linkOpenType"/>" nodes="<xsl:value-of select="$nodes"/>" displayCommentLink="<xsl:value-of select="$displayCommentLink"/>" display Editor="<xsl:value-of select="$displayEditor"/>" displayPropertyPrefix="<xsl:value-of select="$displayPropertyPrefix"/>" display DateTime="<xsl:value-of select="$displayDateTime"/>" displayTitlePrefix="<xsl:value-of select="$displayTitlePrefix"/>" displayHits="<xsl:value-of select="$display Hits"/>" display Tips="<xsl:value-of select="$displayTips"/>" displayInputer="<xsl:value-of select="$display Inputer"/>" displayNodeName="<xsl:value-of select="$displayNodeName"/>" display HotSign="<xsl:value-of select="$display HotSign"/>" displayNewSign="<xsl:value-of select="$displayNewSign"/>" optionalExtend="<xsl:value-of select="$optionalExtend"/>"</xsl:variable><!--绑定样式前缀节,如需维护,请修改此变量节--><xsl:variable name="_bindSty le"> <!-- 定义一个变量_bindStyle,里面的值是用哪一个样式,例如:通用信息列表_普通式通用信息列表_表格式-->通用信息列表_<xsl:value-of select="$bindSty le"/></xsl:variable><!--内容列表排序方式判断、是自定义的排序方式,还是由系统后台的节点管理,前台样式中的内容列表的排序方式来排序,此变量节请勿修改--><xsl:variable name="_listOrderType"> <!-- 定义一个变量_listOrderType,作为内容列表排序方式判断--><xsl:choose><xsl:when test="contains($nodes,',') = 'true'"> <!-- 当栏目ID 包含逗号,即有多个栏目ID时,例:1,3,6,8,就为真--><xsl:value-of select="$listOrderType"/> <!-- 值为由自定义的项目列表排序方式来排序--></xsl:when><xsl:otherwise><xsl:choose><xsl:when test="$listOrderByNodeSet = 'true'"> <!-- 当项目列表排序方式由节点配置取代就为真--><xsl:value-of select="/NewDataSet/T able/ItemListOrderType"/> <!-- 值为由后台管理的节点管理,前台样式中的内容列表的排序方式来排序--></xsl:when><xsl:otherwise><xsl:value-of select="$listOrderType"/> <!-- 值为由自定义的项目列表排序方式来排序--></xsl:otherwise></xsl:choose></xsl:otherwise></xsl:choose></xsl:variable><!--内容列表排序、此变量节请勿修改--><xsl:variable name="_listOrderV alue"> <!-- 定义一个变量_listOrderV alue,输入相应的序号,作为内容列表排序值,即自定义排序方式--><xsl:choose><xsl:when test="$_listOrderType = 1">CM.GeneralID DESC</xsl:when> <!-- 信息ID降序来排序--><xsl:when test="$_listOrderType = 2">CM.GeneralID ASC</xsl:when> <!-- 信息ID升序来排序--><xsl:when test="$_listOrderType = 3">CM.UpdateTime DESC,CM.GeneralID DESC</xsl:when> <!-- 更新时间降序,信息ID降序来排序--><xsl:when test="$_listOrderType = 4">CM.UpdateTime ASC,CM.GeneralID DESC</xsl:when> <!-- 更新时间升序,信息ID降序来排序--><xsl:when test="$_listOrderType = 5">CM.Hits DESC,CM.GeneralID DESC</xsl:when> <!-- 点击数降序,信息ID降序来排序--><xsl:when test="$_listOrderType = 6">CM.Hits ASC,CM.GeneralID DESC</xsl:when> <!-- 点击数升序,信息ID降序来排序--><xsl:when test="$_listOrderType = 7">mentAudited DESC,CM.GeneralID DESC</xsl:when> <!-- 评论数降序,信息ID降序来排序--><xsl:when test="$_listOrderType = 8">mentAudited ASC,,CM.GeneralID DESC</xsl:when> <!-- 评论数升序,信息ID降序来排序--><xsl:when test="$_listOrderType = 9">CM.Day Hits DESC,CM.GeneralID DESC</xsl:when> <!-- 日点击数降序,信息ID降序来排序--><xsl:when test="$_listOrderType = 10">CM.Day Hi ts ASC,CM.GeneralID DESC</xsl:when> <!-- 日点击数升序,信息ID降序来排序--><xsl:when test="$_listOrderType = 11">CM.WeekHits DESC,CM.GeneralID DESC</xsl:when> <!-- 周点击数降序,信息ID降序来排序--><xsl:when test="$_listOrderType = 12">CM.WeekHits ASC,CM.GeneralID DESC</xsl:when> <!-- 周点击数升序,信息ID降序来排序--><xsl:when test="$_listOrderType = 13">CM.MonthHits DESC,CM.GeneralID DESC</xsl:when> <!-- 月点击数降序,信息ID降序来排序--><xsl:when test="$_listOrderType = 14">CM.MonthHits ASC,CM.GeneralID DESC</xsl:when> <!-- 月点击数升序,信息ID降序来排序--><xsl:when test="$_listOrderType = 15">CM.EliteLevel DESC,CM.GeneralID DESC</xsl:when> <!-- 推荐值降序,信息ID降序来排序--><xsl:when test="$_listOrderType = 16">CM.EliteLevel ASC,CM.GeneralID DESC</xsl:when> <!-- 推荐值升序,信息ID降序来排序--><xsl:when test="$_listOrderType = 17">CM.Priority DESC,CM.GeneralID DESC</xsl:when> <!-- 优先值降序,信息ID降序来排序--><xsl:when test="$_listOrderType = 18">CM.Priority ASC,CM.GeneralID DESC</xsl:when> <!-- 优先值升序,信息ID降序来排序--><xsl:when test="$_listOrderType = 19">CM.Hits DESC,CM.UpdateTime DESC,CM.GeneralID DESC</xsl:when> <!-- 点击数降序,更新时间降序,信息ID降序来排序--> <xsl:when test="$_listOrderType = 20">CM.EliteLevel DESC,CM.UpdateTime DESC,CM.GeneralID DESC</xsl:when> <!-- 推荐值降序,更新时间降序,信息ID降序来排序--> <xsl:when test="$_listOrderType = 21">CM.Priority DESC,CM.UpdateTime DESC,CM.GeneralID DESC</xsl:when> <!-- 优先值降序,更新时间降序,信息ID降序来排序--> <xsl:when test="$_listOrderType = 22">mentAudited DESC,CM.UpdateTime DESC,CM.GeneralID DESC</xsl:when> <!-- 评论数降序,更新时间降序,信息ID降序来排序--> <xsl:otherwise>CM.UpdateTime DESC,CM.GeneralID DESC</xsl:otherwise> <!-- 其它序号,按更新时间降序,信息ID降序来排序--> </xsl:choose></xsl:variable><!--分页大小判断、此变量节请勿修改--><xsl:variable name="_pageSize"> <!-- 定义一个变量_pageSize,作为分页大小判断,即每页输出多少条信息--> <xsl:choose><xsl:when test="$pageSizeByNodeSet = 'true'"> <!-- 当输出的项目数量由节点配置取代为真--><xsl:choose><xsl:when test="NewDataSet/T able/ItemPageSize &gt; 0"> <!-- 当后台管理的节点管理,前台样式中的每页显示的内容数大于0时--> <xsl:value-of select="NewDataSet/T able/ItemPageSize"/> <!-- 值为后台管理的节点管理,前台样式中的每页显示的内容数的值--> </xsl:when><xsl:otherwise><xsl:value-of select="$outputQty"/> <!-- 自定义每页显示的内容数--></xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise><xsl:value-of select="$outputQty"/> <!-- 自定义每页显示的内容数--></xsl:otherwise></xsl:choose></xsl:variable><!--取得节点列,此变量节请勿修改--><xsl:variable name="_nodes"> <!-- 定义一个变量_nodes,取得节点列,即取得哪一些节点--><xsl:choose><xsl:when test="$includeChildNodes = 'false'"> <!-- 当是否包含子栏目为真--><xsl:value-of select="$nodes"/> <!-- 直接选择数据库里的PE_Nodes 表的nodes 字段值--></xsl:when><xsl:otherwise><xsl:for-each select="/NewDataSet/T able"> <!-- 循环架构中NewDataSet的T able架构--><xsl:value-of select="arrChildID"/>, <!-- 每循环某一个节点下的所有子节点就在后面加一个逗号, --></xsl:for-each>0 <!-- 循环最后一个节点时,就在最后面加个0 最终效果为2,5,6,12,66,88,89,128,0 注:数据库默认是没有为0的节点--> </xsl:otherwise></xsl:choose></xsl:variable><!--取得模型绑定串节,此变量节请勿修改--><xsl:variable name="_bindModel"> <!-- 定义一个变量_bindModel,绑定某个模型--><xsl:if test="$specials != 0"> <!-- 如果专题ID 不等于空-->INNER JOIN PE_SpecialInfos SI ON (CM.ItemID = SI.GeneralID) <!-- SQL查询约束条件,联合专题PE_SpecialInfos表--></xsl:if><xsl:if test="$bindModel != 0"> <!-- 如果通过模型ID与指定的模型表联合不等于0 --><xsl:value-of select="pe:GetSqlSnippet($bindModel)"/> <!-- 标签函数,功能是: 得到内连接的SQL串片段[用户自定义表别名为UT] --></xsl:if></xsl:variable><!--查询语句组合节,此节请勿修改--><!-- nodes这个参数值,默认是0,也就是查询所有的内容,主要的有下面三种情况。

相关主题