`
guohf
  • 浏览: 417724 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

充分利用系统标签的拓展性

阅读更多

在我们增加修改系统标签之前,我们有必要先问一下自己,SiteWeaver系统提供的标签是不是真的满足不了我的需求了?一般来说,我们并不推荐随便修改,增加系统的标签,一方面代码加多了可能会影响系统运行的效率,另一方面,如果是修改不当,还可能影响系统的正常运行或者造成安全隐患,所以我们要充分利用系统标签的可扩展性:

  以文章频道为例子,有时候,我们觉得系统标签输出的格式不适合我们的要求,比如,我们要改行高,我们加下划线,我们要改默认的字体,颜色等属性。这些,其实都可以通过自定义Css控制参数来实现。

  1.利用GetArticleList自定义CSS控制参数,输出自己自己设计的样式。

  http://tech.powereasy.net/handbook/cms2006/label/1656.html

 

  有时候可能我们有更高的要求,比如我们需要自己定义每一行的样式,标题+作者+点击数+时间,或者我们需要定义几行,几列后插入一个图片之类的来点缀一下,那么其实也可以用系统标签来实现,下面我们来看一下自定义循环列表标签。

  2、充分领用自定义循环列表标签的灵活性

自定义循环列表标签ArticleList(参数列表)】列表内容【/ArticleList

有括号【】括起来的标签是系统里面一种比较特殊的标签,这类标签使用起来非常灵活,这样的标签都对应有一个标签集,定义了在这个大标签里面能解析的标签。通过这个标签,我们可以自己排版,然后输出,自由程度非常高,自定义循环列表标签里面能解析的标签集有:

{$ClassID}  //所属栏目ID
  {$ClassName}  //所属栏目名称

  {$ParentDir}  //所属栏目的父目录
  {$ClassDir}  //所属栏目的所在目录
  {$Readme}  //所属栏目的说明
  {$ClassUrl}  //所属栏目的链接地址
  {$ArticleUrl} //文章的链接地址
  {$Subheading} //文章副标题

  {$ArticleID} //文章的
ID
  {$UpdateTime} //文章更新时间

  {$Stars} //文章评分等级

  {$Author} //文章作者

  {$CopyFrom} //文章来源

  {$Hits} //点击次数

  {$ReadPoint} // 文章阅读点数

  {$Inputer} //文章录入者

  {$Editor} //责任编辑

  {$Title} //文章正标题,字数由参数TitleLen控制

  {$Intro} //文章简介

  {$Content} //文章正文内容字数由参数ContentLen控制

  {$Top}{$Hot}{$Elite} //显示当前文章的属性(固顶、热门、推荐)

  {$ArticlePic(width,height)} //显示图片文章,width为图片宽度,height为图片高度

  {$Number} //显示123……样式序号(SP3新增功能)
  {$TitleOriginal} //显示完整标题(SP3新增功能)

 

我们可以自由组合标签集里面的标签,然后循环输出

ArticleList(参数列表)】列表内容【/ArticleList】对比代码来理解可以是

Do while not rs.eof

列表内容

Rs.movenext

Loop

也就是我们定义好列表内容之后,解析标签的时候就循环输出,这个理解起来比较简单。这里不再讲解。 

可能有比较多人对这个标签自带的换行换列标签【Cols=数字|HTML代码】 【Rows=数字|HTML代码】

循环标签不大理解。下面我来详细讲解一下。

首先我们看一下只有一种循环标签的效果:

ArticleList(参数列表)】【Cols=i|Cols内容】标签内容【/ArticleList

如果是这种结构的话用可以用这样的代码来辅助理解:

Do while not rs.eof

For  Cols=1 to i

标签内容

Rs.movenext

Next

Cols的内容

Loop

也就是说,我们标签内容循环i次之后,插入Cols里面定义的内容,下面看两个具体例子:

 

我们要实现一行一列,两行之后插入一条虚线,那么我们代码要如何来实现:

<table>

ArticleList(参数列表)】【Cols=2|<tr><td><hr></td></tr><tr><td>{$Title}<td></tr>/ArticleList

</table>

 

这里我们可以看到<table></table>这个代码是写在循环列表标签外面的,不参与循环。

我们这里定义了Cols = 2,也就是循环两条记录之后才会插入Cols里面定义的内容。

取出第一条记录的时候,这个标签解析成:

<table>

<tr><td>第一条记录<td></tr>  

</table>

取出第二条记录的时候,代码解析成

<table>

<tr><td>第一条记录<td></tr>  

<tr><td>第一条记录<td></tr>  

 

</table>

由于我们前面定义了Cols = 2 的时候插入Cols里面定义的内容,所以这个时候程序自动插入<tr><td><hr></td></tr>,也就是代码解析成

<table>

<tr><td>第一条记录<td></tr>  

<tr><td>第一条记录<td></tr>  

<tr><td><hr></td></tr>

</table>

继续循环下去的效果:

<table>

<tr><td>第一条记录<td></tr>  

<tr><td>第一条记录<td></tr>  

<tr><td><hr></td></tr>

<tr><td>第三条记录<td></tr>  

<tr><td>第四条记录<td></tr>  

<tr><td><hr></td></tr>

………………………

</table>

 

这样循环下去,就实现了两行之后插入插入一个虚线的效果。

 

下面再举一个例子:我们要实现每行两列的效果。要如何构造循环:

<table><tr>

ArticleList(参数列表)】【Cols=2|</tr><tr><td>{$Title}<td>/ArticleList

</tr></table>

 

可能有些人不大明白为什么这样写就是两列一行的效果。下面我们还是来看一下标签是如何解析的:

取出第一条记录的时候:这个标签解析成

<table><tr>

<td>第一条记录<td>

</tr></table>

 

取出第二条记录的时候,这个标签解析成:

<table><tr>

<td>第一条记录<td>

<td>第二条记录<td>

 

</tr></table>

由于我们前面定义了Cols = 2 的时候插入Cols里面定义的内容,所以这个时候程序自动插入</tr><tr>,也就是代码解析成

<table><tr>

<td>第一条记录<td>

<td>第二条记录<td>

</tr><tr>

</tr></table>

继续循环下去的结果:

<table><tr>

<td>第一条记录<td>

<td>第二条记录<td>

</tr><tr>

<td>第三条记录<td>

<td>第四条记录<td>

</tr><tr>

…………………

</tr></table>

 

这样循环下去,就实现了两列一行的效果。。

 

下面我们在看一下有自定义循环列表标签里面有两个循环标签的情况:

ArticleList(参数列表)】【Cols=i|Cols内容】【Rows=j|Row内容】循环内容【/ArticleList

如果是这种结构的话用可以用这样的代码来辅助理解:

Do while not rs.eof

For Row=1 to j

For  Cols=1 to i

循环内容

Rs.movenext

Next

Cols的内容

Next

Row的内容

Loop

 

下面我们也举个例子来说明一下吧:

如何实现每行两列,三行之后就插入虚线的效果?

 

我们来看一下如何都能定义循环代码:

<table><tr>

ArticleList(1,0,0,0,50,False,False,"",0,1,True,0,200)】【Cols=2|</tr><tr>】【Rows=3|<td colspan="2"><hr></td></tr><tr><td>{$Number}{$Title}</td>/ArticleList

</tr></table>

这里我们定义了两列之后就输出:</tr><tr>

三行之后就输出:<td colspan="2"><hr></td></tr>

只看代码可能比较难理解,下面我们还是看一下这个标签是如何解析的。

解析第一条数据:

<table><tr>

<td>1:第一条记录</td>

</tr></table>

解析第二条记录,由于定义了【Cols=2|</tr><tr>】,所以系统自动补充上</tr><tr>

<table><tr>

<td>1:第一条记录</td> <td>2:第二条记录</td></tr><tr>  //到这里可以看成一次Row循环

</tr></table>

这样解析到第六条数据

<table><tr>

<td>1:第一条记录</td> <td>2:第二条记录</td></tr><tr>  //第一次Row循环

<td>3:第三条记录</td> <td>4:第四条记录</td></tr><tr>  //第二次Row循环

<td>5:第五条记录</td> <td>6:第六条记录</td></tr><tr>  //第三次Row循环

</tr></table>

到这里,由于执行了三次Row循环了,我们设置的【Rows=3|<td colspan="2"><hr></td></tr><tr>】就起作用了,也就是系统会自动加入<td colspan="2"><hr></td></tr><tr>,那么解析完第六条数据后的最终结果

<table><tr>

<td>1:第一条记录</td> <td>2:第二条记录</td></tr><tr>  //第一次Row循环

<td>3:第三条记录</td> <td>4:第四条记录</td></tr><tr>  //第二次Row循环

<td>5:第五条记录</td> <td>6:第六条记录</td></tr><tr>  //第三次Row循环

<td colspan="2"><hr></td></tr><tr>

</tr></table>

按照这样循环下去,就可以实现一行两列,三行输出下划线的效果了。

分享到:
评论

相关推荐

    基于elementui的form表单实现的一个高拓展性的表格布局组件

    要创建一个高拓展性的表格布局组件,我们需要充分利用这些特性。 1. **组件化思维**:在Vue.js中,组件是可复用的代码块,我们可以将每个表单元素封装成独立的组件,这样不仅便于维护,还能提高代码的复用性。例如...

    佛山大大数据项目标签原型设计-需求说明书.pdf

    在“佛山大大数据项目”中,标签系统的设计是为了解决海量数据的管理和利用问题,提升业务洞察力和决策效率。以下是这个项目中涉及的重要知识点: 1. 数据标签体系:数据标签是将数据进行分类和描述的关键词或短语...

    .net相册管理系统

    .NET相册管理系统充分利用了.NET框架的强大功能,包括C#或VB.NET等编程语言,以及ASP.NET技术,以构建稳定的后端服务和友好的前端界面。 系统的核心功能之一是图片的存储管理。通过合理的数据库设计,如使用SQL ...

    电信计费系统概要设计

    - **背景**:电信计费系统作为初期建设,面临着业务规则不确定性的挑战,因此,设计时必须充分考虑未来的业务拓展需求。 - **重要性**:可扩展性确保系统能够适应业务变化,减少重构成本,提高长期投资回报率。 - **...

    单片机原理与嵌入式系统设计课后答案

    从给定的文件标题、描述、标签以及部分内容中,我们可以提炼出关于单片机原理与嵌入式系统设计的关键知识点,以下是对这些知识点的详细解释和拓展: ### 嵌入式系统的“嵌入性”理解 嵌入式系统的“嵌入性”体现在...

    一种半监督的多标签Boosting分类算法-.doc

    半监督学习是一种重要的机器学习方法,它在处理数据标注不足的情况下,能够充分利用未标注数据来提升模型的性能。传统的监督学习算法,如AdaBoost,依赖于大量已标注的数据,但在实际应用中,获取大量标注数据往往...

    Android for 2440 文件系统包!

    Android系统是基于Linux内核的,这使得它能够充分利用Linux的稳定性和安全性。在描述中提到,Android主要是用Java语言构建的,这包括应用程序框架和应用程序本身。开发者利用Java的跨平台特性,可以编写一次代码,...

    在线考试系统文献综述

    而IIS的安全性很大程度上依赖于NT的安全性,因此也要充分利用NT的安全特性。 系统采用JSP技术作为服务器端脚本,实现与数据库和其他应用互动的Web网页。用户运行环境为标准的中文浏览器环境(比如,IE4.0或以上版本...

    工资管理系统,电子商务系统

    JSP的优势在于与Java语言的紧密结合,使得开发人员可以充分利用Java的强大功能,同时保持良好的可维护性和可扩展性。 【Access数据库应用】 Access是Microsoft公司推出的一款关系型数据库管理系统,常用于小型项目...

    理想家园企业建站CMS系统 2.0

    理想家园企业建站CMS系统2.0是一款专为企业构建网站的综合内容管理系统,它提供了高效、易用且功能丰富的网站搭建...通过深入理解和充分利用其各项功能,企业可以更好地利用网络资源,提升自身在线形象,拓展业务范围。

    (完整版)基于Android平台的管理系统设计与实现毕业设计.pdf

    基于Android平台的管理系统设计与实现是一项将传统的电子商务系统...这一设计充分考虑了用户需求,利用Android SDK的灵活性,以及Java语言的强大功能,构建了一个高效、便捷的在线管理系统,为超市管理开辟了新的道路。

    觅策PHP企业网站系统

    "觅策PHP企业网站系统"是一款专为中小企业设计的基于PHP语言开发的网站构建平台。该系统旨在提供一套高效、易用且功能丰富的解决方案...通过充分利用其功能,企业能够更有效地展示自身形象,拓展业务,增强市场竞争力。

    智能化生产管理系统标书增容版.docx

    - **高可靠性**:设计时充分考虑了各种恶劣条件下的稳定性。 - **多通道连接**:每个检测器可以连接多组地感线圈,支持双向或多车道检测。 - **状态反馈**:能够准确识别车辆通过状态,并及时反馈给控制系统。 - **...

    智慧港口码头管理解决方案.pdf

    光载无线ROF技术充分利用光纤高带宽、低损耗的特点,大大拓展无线信号的传输距离,简化远端基站结构,降低系统传输成本并提高系统传输性能、频谱效率、覆盖区域和灵活性,实现超宽带无线接入与光传输技术的融合。...

    ShopNum1网店系统个人版-成人版模板

    通过合理利用这些模板和分销系统,店主不仅可以创建一个独特且吸引人的网店,还能通过分销模式拓展销售网络,提升业务规模。在竞争激烈的电商市场中,这样的系统无疑为个人店主提供了有力的竞争武器。

    做系统发育树的ggtree-3.4.4包

    ggtree充分利用了ggplot2的特性,使得用户可以自由地定制系统发育树的外观,包括节点、分支颜色、树冠形状等,甚至还能添加额外的数据信息,如基因注释、物种地理分布等。 ggtree 3.4.4版的更新主要集中在增强用户...

    基于物联网的智能交通系统的构建.pdf

    因此,系统设计时需充分考虑这些问题,采取相应的技术措施,确保系统的稳定性和可靠性。 综上所述,物联网为智能交通系统带来了新的可能性,通过构建物联网智能交通系统,我们可以实现更高效、安全、环保的交通环境...

    基于ssm+vue高校学生管理系统.zip

    总之,“基于SSM+Vue的高校学生管理系统”充分利用了现代Web开发技术的优势,实现了高效、便捷的学生信息管理,对于提升高校管理效率,优化教育资源配置具有积极意义。同时,系统的灵活性和可扩展性也为未来功能拓展...

    基于ASP的蓝色全能型ASP企业网站系统.zip

    【标题】"基于ASP的蓝色全能型ASP企业网站系统"是一个专为中小企业设计的网站解决方案,采用经典的ASP...为了充分利用这个系统,企业需要有对ASP有一定了解的技术支持,或者寻找熟悉这种技术的开发人员进行维护和升级。

Global site tag (gtag.js) - Google Analytics