在内容系统开发设计中,涉及到内容和方式分离出来的全过程,也就是依据用户自定网页页面模板随后换成有关内容的全过程。这和外边许多整站源码的内容管理系统,有实质上的差别。有许多内容管理系统,多少人用,全是一个模样,由于网页页面没法自定,不明白程序编写的用户没法改动。象那类,只填好多个主要参数就出去的网址,我可能是没什么发展前途的。由于人人都是一个模样,人人都是会填这些主要参数的。

举个事例,你查询一下下列好多个网站,你能觉得她们是一套程序流程吗?
www.blueidea.com
http://pages.blueidea.com
http://digi.blueidea.com
http://dsp.blueidea.com
http://www.dcshooter.com

假如我要告诉你,她们全是一个程序流程,仅仅由有关的网站站长,设计方案不一样的模板获得的网页页面显示信息,你也就会发觉,这一系统的优良性。

自然因为这套系统的高档性,现阶段一般用户没法应用,因此我开发设计了自己的内容管理系统 kiss 内容管理系统。

想要给用户一个模板系统,最先,便是要有一个简单易懂的标识系统。大伙儿看一下下边的编码,看是不是非常容易了解:
<tag:loop channelid="1" pagesize="10" title="20" type="NEW" column="1">

略微HTML工作经验的人,就了解,这是一个模板标识里的循环系统标识,由于它是最常见的,你看看大家网址的主页,列举10条文本文档也就只必须写一个那样的标识就完成了,这是否让搞不懂程序编写的人,也非常容易作出自身设计方案的网页页面出去呢?

主要参数表明:
channelid 为一个频道的在数据库查询中的ID
pagesize 为例举多少个文本文档
title 为题目的长短
type 为目录列型,这儿的”NEW”大家设置为全新的文本文档
column 为显示信息几行

之上详细介绍是给不容易程序编写,或是对不了解内容系统的人做下普及化,而且帮我的内容管理系统打个广告宣传,并且想对你说的是,蓝色理想网站用的内容管理系统模板控制模块,要比我的强劲许多。

下边到程序猿了,其他人能够 无需往下看。
那麼如何把他们的值读出呢?
下边这一涵数是最终的,用于分析全部模板的内容

复制代码 编码以下:
'【作用】自定模板标识
Function ProcessCustomTags(ByVal sContent)
         Dim objRegEx, Match, Matches
      '创建正则表达式
         Set objRegEx = New RegExp
      '搜索内容
         objRegEx.Pattern = "<tag:.*/>"
      '忽视英文大小写
         objRegEx.IgnoreCase = True
      '全局性搜索
         objRegEx.Global = True
      'Run the search against the content string we've been passed
         Set Matches = objRegEx.Execute(sContent)
      '循环系统已发觉的配对
         For Each Match in Matches
         'Replace each match with the appropriate HTML from our ParseTag function
         sContent = Replace(sContent, Match.Value, ParseTag(Match.Value))
         Next
      '销毁目标
         set Matches = nothing
         set objRegEx = nothing
      '返回值
         ProcessCustomTags = sContent
End Function

  在上面的编码中,采用了正则表达式,假如你对它还并不是很掌握,客户程序相关资料,这儿也不详解了。

那麼如何取下变量值呢,也是一个涵数:编码复制框
复制代码 编码以下:
'【作用】获得模板标识的主要参数名
'如:<tag:loop channelid="1" pagesize="10" title="20" type="NEW" column="1">
function GetAttribute(ByVal strAttribute, ByVal strTag)
      Dim objRegEx, Matches
      '创建正则表达式
         Set objRegEx = New RegExp
      '搜索内容 (the attribute name followed by double quotes etc) 
         objRegEx.Pattern = lCase(strAttribute) & "=""[0-9a-zA-Z]*"""
      '忽视英文大小写
         objRegEx.IgnoreCase = True
      '全局性搜索
         objRegEx.Global = True
      '实行检索
         Set Matches = objRegEx.Execute(strTag)
      '若有配对的则返回值, 要不然回到空值
         if Matches.Count > 0 then
              GetAttribute = Split(Matches(0).Value,"""")(1)
         else
              GetAttribute = ""
         end if
      '销毁目标
         set Matches = nothing
         set objRegEx = nothing
end function

OK好啦,那如何分析像上边<tagloop:>内容呢?
下边便是一个涵数:

复制代码 编码以下:
'【作用】分析并更换相对的模板标识内容
function ParseTag(ByVal strTag)
      dim arrResult, ClassName, arrAttributes, sTemp, i, objClass
      '假如标识是空的则撤出涵数
         if len(strTag) = 0 then exit function
      'Split the match on the colon character (:)
         arrResult = Split(strTag, ":")
      'Split the second item of the resulting array on the space character, to
         'retrieve the name of the class
         ClassName = Split(arrResult(1), " ")(0)
         'Use a select case statement to work out which class we're dealing with
         'and therefore which properties to populate etc
         select case uCase(ClassName)
         'It's a loop class, so instantiate one and get it's properties
         case "LOOP"
                     set objClass = new LOOP_Class
                     LOOP.Channelid= GetAttribute("channelid", strTag")
                     LOOP.Pagesize= GetAttribute("pagesize", strTag")
                     LOOP.title = GetAttribute("title", strTag")
                     LOOP.type = GetAttribute("Type", strTag")
                     ParseTag = LOOP.column (GetAttribute("column", strTag"), true)
                     'Destroy our class object
                     set objClass = nothing
         end select
end function

上边的loop是一个类,这儿也已不详讲过。由于好长时间没有说话了,不太习惯性,呵呵呵。
  结果,根据上边的涵数,你能迅速的撰写有关的模板程序流程了。期待对给你协助。