KooCMS模板引擎详解

来自站长百科
跳转至: 导航、​ 搜索

导航: 上一页

KooCMS系统中,所有前台页面(包括静态页面和动态页面)都是由模板解析引擎负责数据的获取,页面的渲染的。

这中间涉及到三个重要的概念:标签,对象,模板

标签[ ]

#if #set #foreash 这些是系统标签

#news #pager #newslist 这些是扩展标签

系统标签和扩展标签都采用相同的语法,只是参数形式不同。

两者的区别在于:系统标签用于在模板中实现基本的执行逻辑:顺序、判断、循环、赋值等。扩展标签是基本系统标签上扩展的标签语法,作用在于通过参数的设置从系统中(通常是数据库)获得符合相应条件的数据,并将在封装到对象,输出到模板中。

对象[ ]

模板中的对象以下列方式来调用:

对象名.属性名,对象名.方法名(参数1,参数2....)

模板中的对象可以从三种方式产生:

  • 第一种方式是调用#set标签,进行赋值。
  • 第二种方式是调用扩展标签。如,调用#news标签,则系统会返回一个名为newsInfo的文章对象,调用该标签后,就可以以 $newsInfo.属性名的方式来获取该对象的属性值。
  • 第三种方式则是模板解析引擎根据当前的上下文,默认输出的对象。

前两种方式很好理解,这里需要详细介绍第三种方式:

对于静态页模板,模板引擎会自动输出以下对象:

  1. 站点信息对象,对象名:siteInfo,具有的SiteName属性。
  2. 数学操作辅助对象,对象名:math,用于常见的数学计算。
  3. 字符操作辅助对象,对象名:string,用于常见的字符串操作。
  4. 随机数操作辅助对象,对象名:random,用于操作随机数。
  5. 会员系统设置信息对象,对象名:membership,封装会员系统的相关设置信息。
  6. 系统常量集合对象,对象名:literal,封装后台设置的系统常量集合。

对于动态页模板,模板引擎除了输出上面静态页输出的6大对象外,还输出以下五大对象:

  1. 当前用户身份信息对象,对象名:identity,封装当前登录用户的身份信息
  2. 当前请求POST集合对象,对象名:form,封装当前请求的POST数据集合
  3. 当前用户的会话对象,对象名:session,封装当前请求的Session集合
  4. 当前请求QUERYSTRING集合对象,对象名:query,封装当前请求的GET请求的QueryString数据集合
  5. 当前请求的cookie集合,对象名:cookie,封装当前请求包含的Cookie数据集合。

特别的,在栏目页的模板里,系统默认为输出当前栏目对象,对象名为columnInfo,因此在栏目页可以直接调用columnInfo对象

同样,在文章内容页模板里,系统默认为输出当前文章对象,对象名为newsInfo,因此在内容页可以直接调用newsInfo对象

模板[ ]

使用标签、对象的属性值的调用,html代码的组合。

模板文件可以嵌套、包含 ,相关的语法标签是:#parse 标签、#include标签。

相关条目[ ]


参考来源[ ]