当前位置: 首页 Kontent内容管理 技术文档 Kt5模板开发指南

Kt5模板开发指南



  • 概述

        CMS5是深思网站信息发布系统的最新版本。

        CMS5主要由两大部分构成:信息管理部分、展现模板部分。信息管理部分以树型结构为基础,管理网站内的所有信息内容;展现模板部分基于标准JSP技术,通过访问封装好的 JavaBean 提取并显示网站信息内容。


  • 二、理解CMS5的信息内容结构

        CMS5中,Content(内容)是抽象的内容类型,Content包含标题、正文、图片等等通用属性。各种具体的内容类型都由Content派生,比如 Article(文章)、 Product(产品), 内容条目总是属于这些具体的内容类型;特别地,在CMS5中,Column(栏目)也是一种Content。这些由 Content 派生的具体内容类型包含 Content 的各种属性,同时又拥有各自不同的一些属性。Article类型还一些扩展类型,这些扩展类型只使用Article的部分或全部属性,且属性的含义是自定义的。 

        在模板设计中,除Column外的所有其他类型内容都使用基本的Content类型来访问,但不同类型的内容,其属性不同,模板编辑者要注意所引用的属性是否确实是当前对象的属性。

        Column(栏目) 是 CMS5 中最特殊的内容类型,是网站总体布局的基础:Column 可以包含下级Column, 下级Column可以包含更下级的Column, 由此构成树形的栏目结构。任何内容都属于某个具体的 Column。某个具体的 Column 只能容纳一种类型的内容,也就是说,一个栏目要么是 Article 的栏目,要么是 Product 的栏目。

        栏目树根下的一级栏目代表一个网站,虽然网站(一级栏目)的属性构成与其他栏目一致,但某些属性有特殊的含义。

        内容的属性中,像标题、正文这样的属性比较简单,输入什么就显示什么。图片属性稍为复杂,其本身为图片文件的相对路径。URL属性比较复杂,由系统解析模板设置产生。 一般属性通过get()方法获得属性值,URL属性还可通过getURL()方法获得。

        所有Content(包括Column)都具有以下属性(其中带*号的属性的含义可以被Article扩展类型自定义使用):

     XID    整型     内容的ID
     XTITLE*   串型    内容的标题
     XSUMMARY*  串型    概述
     XCONTENT*  串型    正文
     XICON   图片型(串型) 小图 
     XIMAGE   图片型(串型) 大图 
     XHITCOUNT  整型    内容点击数
     XCANREVIEW  整型    是否可评论,1为可评论
     XCREATEDATE  日期(整型)  创建时间
     XLASTMODIFYDATE 日期(整型)  最后修改时间
     XPUBLISHDATE 日期(整型)  发布时间
     XCREATER  串型    创建者
     XLASTMODIFYER 串型    最后修改者
     XPUBLISHER  串型    发布者

     XFID   整型    所在栏目的栏目ID
     XORDERCODE  整型    排序码
     XREFRENCEID  整型    引用内容的ID
     XFREEUSE1*  串型    自定义域
     XFREEUSE2*  串型    自定义域
     XFREEUSE3*  串型    自定义域
     XFREEUSE4*  串型    自定义域
     XFREEUSE5*  串型    自定义域
     XFREEUSE6*  串型    自定义域
     XFREEUSE7*  整型    自定义域
     XFREEUSE8*  整型    自定义域
     XFREEUSE9*  浮点型   自定义域
     XFREEUSE10*  浮点型   自定义域
     XFREEUSE11*  串型    自定义域 系统保留
     XFREEUSE12*  串型    自定义域 系统保留
     XFREEUSE13*  串型    自定义域 系统保留
     XFREEUSE14*  串型    自定义域 系统保留
     XFREEUSE15*  串型    自定义域 系统保留
     XTYPE   串型    内容类型,column/article及其扩展类型/product


     Column有以下属性:

     XCODE   串型    英文简写
     XPATH   串型    英文简写构成的栏目路径(从一级栏目到本级栏目)
     XEDITOREMAIL 串型    编者邮箱
     X_URL   串型    访问该栏目的URL


     Article(通过Content类型访问)有以下属性:

     XARTICLETYPE 串型    文章类型,text/file/url
     XURL*   串型    文章类型为url时,存放URL
     XKEYWORDS  串型    关键字
     XSOURCE*  串型    来源
     XSOURCESITE* 串型    来源网站域名


     Product(通过Content类型访问)有以下属性:

     XPRICE   浮点型   价格
     

     对于网站(一级栏目)的Column类型属性,已经被系统定义为特殊用途的有:

     xsummary  版权说明,内容用于页面末尾的版权说明
     xcontent  网站简介,未特别指定,可用于网站logo,网站题图的alt显示
     xicon  网站logo
     ximage  网站题图,也可以是flash
     
     对于所有Column类型(含一级栏目)的属性,已经被系统定义为特殊用途的有:

     XFREEUSE11 栏目关键字,用于,栏目网页的 Keywords META
     XFREEUSE12 栏目说明,用于栏目网页的 Description META,对于网站也可用于网站logo,网站题图的alt显示
     XFREEUSE13 允许在该栏目在线发布的角色的角色 ID。如为-1,则所有人都可发布;默认为空,则该栏目不支持在线发布
     XFREEUSE14 允许在该栏目在线投稿的角色的角色ID。如为-1,则所有人都可投稿;默认为空,则该栏目不支持在线投稿
     XFREEUSE15 该栏目允许浏览的角色的角色ID。默认为空,则所有人都可浏览,即普通开放栏目。

     对于所有Article类型的Content,已经被系统定义为特殊用途的属性有:

     XFREEUSE13 在线发布/投稿该内容的用户的ID
     XFREEUSE14 在线发布/投稿该内容的用户的用户名
     XFREEUSE15 该内容允许浏览的角色的角色ID。默认为空,则所有人都可浏览,即普通内容。


        CMS5中,除了代表单个内容的Content、单个栏目的Column外,还有一些代表内容列表的类。这些类都可以使用next()来遍历列表中的每一个对象,用get()方法获得具体对象的属性。目前版本内容遍历只能一次,不能回退。

        Columns类,代表栏目列表。Column.getSubColumns()可以获得某栏目下的所有已发布子栏目的列表;Column.getSupperColumns()可以获得某栏目的所有上级栏目的列表(上到根栏目,下到本栏目);当Columns遍历到某个具体栏目时,也可以通过Columns.getSubColumns()取得该具体栏目的子栏目列表。

        Contents类,代表具体栏目所包含内容的列表。Column.getContents()可以获得某栏目下的所有已发布内容的列表,Columns.getContents()也一样,只是Columns要先遍历到某个具体栏目。

        Photos类,代表图片集类型的内容所含的所有图片。Content.getPhotos()可以获得某内容(类型为图片集)的所有图片。

        PageContents类,代表具体栏目所包含内容的列表的一部分,即一页(内容太多时需要翻页显示)。由Column.getPageContents()取得,具体的页码由 URL 中的 page参数指定。

        SearchContents类,代表全文检索出来的内容的列表的一页。由cms.search(关键字)获得。
     
        PageResultSet类,代表结果集中的一页,用于翻页功能。可通过cms.queryPage(sql,pageSize),cms.getReviews(内容ID,pageSize)获得。getReviews获得某内容的所有评论(评论是独立的对象,不是内容的一种)中的一页。

       PageContentsSearchContentsPageResultSet三个类都可以通过getPageLinks()取得完整的到其他页的链接的HTML代码,因此模板开发人员不需要了解翻页控制的细节。


  • 三、模板种类

        模板分为复合模板、普通栏目(带子栏目)模板、末级栏目模板、内容模板四种类型。

      "复合模板"用于网站、子网站或网站频道的首页,其显示内容完全在模板中指定,与访问的URL无关。复合模板是专用模板。

        "普通栏目模板"的显示内容与URL有关,即按URL指定的cid参数显示对应栏目的不带翻页(可选)的内容列表、子栏目列表、以及子栏目的不带翻页文章列表等等。普通栏目模板是通用模板,可以被不同栏目重用。

        "末级栏目模板"用于显示末级栏目的带翻页的所有内容列表。末级栏目模板是通用模板,一般来说,整个网站有几种内容类型,就需要几个末级栏目模板。

        "内容模板"用于显示具体内容条目。内容模板是通用模板,一般来说,整个网站有几种内容类型,就需要几个内容模板。


  • 四、模板构成分析

        模板页面自上而下分为页头banner、菜单栏menu、页体body、页尾foot。对于内容模板,可以没有菜单栏。
     
        页体要显示的内容如果过于复杂,页面特长,也可以自上而下分为数个“页体段”来处理,页体段之间可以插入广告。

        页头、菜单栏、页体、页体段、页尾等都应该用单独的<TABLE>元素来布局,不能有贯穿整个模板BODY的<TABLE>,以加快浏览器的显示速度。


  • 五、模板部件化建议

      各个模板页面之间,有些部分是共同的,比如页头、页尾,建议将这些共同的部分抽取出来,写成单独的jsp文件,称之为"模板部件"。模板页面通过 静态include 把 "模板部件" 粘合到模板中。建议"模板部件"的文件名以"x" 开头。

        最常用的"模板部件"包括页头、菜单栏、页尾,即所有模板 静态include  页头和页尾的jsp。 建议页头jsp 的文件名为xbanner.jsp, 菜单栏jsp 的文件名为xmenu.jsp, 页尾jsp 的文件名为xfoot.jsp。

        像时间、日历、天气、登录框、查询框等等独立功能的页面区域,也应该设计成"模板部件"。如需要不同风格的该类部件,则可用"_后缀名"区分。如 xtime.jsp,xcalendar.jsp,xweather.jsp,xlogon.jsp,xsearch.jsp。

        像当前位置、子栏目列表、兄弟栏目列表、内容列表等也可以设计成"模板部件"。如需要不同风格的该类部件,则可用"_后缀名"区分。如 xposition.jsp,xsubcolumnlist.jsp,xbrotherlist.jsp,xcontentlist.jsp,xallcontentlist.jsp。

        模板部件建议放在/docroot/cms5root/pages/share/路径下,该路径已经包含一定数目的系统定义的部件。


  • 六、模板其他建议

        页面样式表集中管理,/docroot/cms5root/pages/share/style/style.css文件中有系统定义的通用样式。各网站(一级栏目)可以定义自己的样式,建议放在/docroot/cms5root/pages/网站简称/style/style.css中。

        图片路径为/docroot/cms5root/pages/网站简称/images/。


  • 七、内容访问API JavaBean 使用指南

    • 每个模板页面的开头,必须包含以下代码:

    <%@ page import="com.deepsoft.cms5server.*" %>
    <%@ page contentType="text/html;charset=gbk" %>
    <% Column column; Columns subColumns; Columns brotherColumns; Columns superColumns;Contents contents; PageContents pageContents; Content content; %>
    <jsp:useBean id="cms" type="CMSBean" scope="request"/>

     其中定义了一个类型为 CMSBean 的变量 cms,所有其他对象都是从 cms 中取得,该变量可以在当前页面和被 include 的页面中使用。 从cms变量出发, 通过模板API 可以遍历CMS5系统中的所有栏目及内容。

    上面的代码还定义了column(当前栏目)、subColumns(当前栏目的子栏目列表)、brotherColumns(当前栏目的兄弟栏目列表)、superColumns(当前栏目的所有上级栏目,从根栏目到当前栏目)、contents(当前栏目的内容列表)、pageContents(当前栏目的翻页内容列表)、content(当前内容)等保留变量名。定义这些变量是为了规范变量命名,同时也便于"模板部件"引用这些变量。这些变量只有在模板中被赋值后才有意义,赋值前只是保留变量名。

     

    •  获得内容(包括栏目)对象
       
      一般来说,访问内容的 URL 格式为:

      http://.../cms5root/pages/.../template.page?cid=xxx

    其中包含了模板页面(template.jsp)、内容的id(cid),也就是说,模板被访问时一般总是和具体的某个内容相关的。在模板页面中,要获得 URL 指定的内容对象,可以这样写:

    <% column = cms.getColumn(); %>  <!-- 取栏目对象, column已经在开头定义过 -->
    <% content = cms.getContent(); %> <!-- 取其他类型(如article、product)的对象 content已经在开头定义过-->
     
      
    在复合模板中,需要取指定ID的内容,可以这样写:

    <% Column column1 = cms.getColumn(cid); %>  <!-- cid是指定内容的id -->
    <% Content content1 = cms.getContent(cid); %> <!-- cid是指定内容的id -->

     

    • 访问栏目和内容的属性
       
      Column和Content都可以通过get("属性名")方法取得字符串表示的属性值。"属性名"的定义可以参考第二节。

     

    • 内容模板相关的问题

     a.取得当前URL指定的内容:

    <% content = cms.getContent(); %>

    b.显示输出内容的标题、发布时间、正文等等属性:

    <%= content.get("属性名") %>

    c.取内容所在的栏目(内容被引用时,"所在栏目"为引用者所在的栏目):

    <% column = content.getRefer()==null ? content.getColumn() : content.getRefer().getColumn();  %>

     

    •  末级栏目模板相关的问题

    a.取当前URL指定的栏目:
     
    <% column = cms.getColumn(); %>

    b.要显示栏目的当前位置,先取所有上级栏目,再用遍历输出显示列表,如:

    <% superColumns = column.getSuperColumns(); %>
    <%= superColumns.parseMulti(" --><a href=\"{X_URL}\">{XTITLE}</a>")%>

    c.要显示兄弟栏目列表,先取兄弟栏目,再遍历输出,如:

    <% brotherColumns = column.getColumn().getSubColumns(); %>
    <%= brotherColumns.parseMulti(" <br><a href=\"{X_URL}\">{XTITLE}</a>")%>

       
    要粗体显示当前栏目,第二行可写成("{[...]}"只对当前栏目起作用):

    <%= brotherColumns.parseMulti(" <br><a href=\"{X_URL}\">{[<b>]}{XTITLE}{[</b>]}</a>",column.get("XID"))%>


    d.要显示翻页的内容列表,先取分页内容列表,再遍历输出,最后输出总数及翻页链接,如:

    <% pageContents = column.getPageContents(); %>
    <%= pageContents.parseMulti(" <br>*<a href=\"{X_URL}\">{XTITLE}</a>")%>
    <hr>
    共<%= pageContents.getRowCount() %>条&nbsp;<%= pageContents.getPageLinks() %>

    e.遍历输出除了parseMulti()方法外,也可以自己用循环语句输出,对于复杂的HTML代码,这种写法可读性更好。如:
       
    <% while(brotherColumns.next()){%>
    <br><a href="<%= brotherColumns.get("X_URL") %>"><%= brotherColumns.get("XTITLE") %></a>
    <% } %>

       

    •   普通栏目模板相关的问题

    a.取当前URL指定的栏目、显示栏目的当前位置、显示兄弟栏目列表等代码同7.5

    b.要显示子栏目列表,先取子栏目,再遍历输出,如:

    <% subColumns = column.getSubColumns(); %>
    <%= subColumns.parseMulti(" <br><a href=\"{X_URL}\">{XTITLE}</a>")%>

      
    c.要显示栏目内的内容列表,先取内容列表,再遍历输出,如:
       
    <% contents = column.getContents(); %>
    <%= contents.parseMulti(" <br>*<a href=\"{X_URL}\">{XTITLE}</a>")%>

    要限制最大行数为20,第二行改成:

    <%= contents.parseMulti(" <br>*<a href=\"{X_URL}\">{XTITLE}</a>",20)%>

    d.要显示栏目下各子栏目的内容列表,先取子栏目列表,遍历到某个子栏目时再取其内容列表,再遍历输出,如:

    <% subColumns = column.getSubColumns(); Contents contents1;%>
    <UL>
    <% while(subColumns.next()){ %>
    <LI><%= subColumns.get("XTITLE") %>.......<a href="<%= subColumns.get("X_URL")%>">更多</a>
    <UL>
    <% contents1 = subColumns.getContents(); %>
    <%= contents1.parseMulti("<LI><a href=\"{X_URL}\">{XTITLE}</a>\n") %>
    </UL>
    <% } %>
    </UL>

      

    • 复合模板相关的问题

      取栏目时,要用指定ID的方式,其他同其他模板。


  • 八、内容访问API JavaBean 使用参考

    public class CMSBean extend Object

    CMSBean是CMS5前端模板的总入口,所有数据对象由它而来。

    Column getSite()

    获取当前URL中cid参数指定的内容(含栏目)所在的“网站”,即栏目树中的一级栏目。

    Column getSite(long cid)

    获取cid参数指定的内容(含栏目)所在的“网站”,即栏目树中的一级栏目。

    Content getContent()

    获取当前URL参数指定的内容。内容可能是各种类型(但不包括栏目),其中差别为可访问的属性集合不同。如果内容是个引用,则直

    接返回被引用的内容。

    返回值:内容。


    Content getContent(long cid)

    获取指定的内容。其他同getContent()。

    参数: cid--内容的ID。
    返回值:内容。


    Column getColumn()

    获取当前URL参数指定的栏目。

    返回值:栏目。


    Column getColumn(long cid)

    获取指定的栏目。

    参数: cid--栏目的ID。
    返回值:栏目。


    String include(String path,String enc)

    动态读入外部文本文件,一般为HTML,用于动态嵌入HTML代码。

    参数: path--外部文件的路径,以“/”开头,相对于www根的路径。enc--外部文件的编码,如gbk、utf-8。
    返回值:文件的文本内容。


    String includeSurvey(int surveyID)

    动态嵌入指定id的调查

    String includeAD(int adID)

    动态嵌入指定id的广告

    public String includeContent(int cid)

    动态嵌入指定id的内容

    public String includeURL(String url,,String enc)

    动态嵌入指定url的内容。url可以是相对当前路径的路径,也可以是以“/”开头的相对与www根的路径,或者以http://开头的本服务器或外部服务器路径。


    String[] simpleSearch(String word)

    全文检索内容。

    参数: word--关键字。
    返回值:所有命中内容的id数组。


    SearchContents searchAll(String word,int pageSize)

    全文检索内容。查找所有栏目下的所有类型的内容。

    参数: word--关键字。pageSize每页行数。
    返回值;检索命中内容列表,带翻页功能,详见SearchContents。

    SearchContents searchByType(String word,int pageSize,String type)

    同上,按类型全文检索。查找所有栏目。
    参数 type 为内容类型,如article、product等。


    SearchContents search(String word,int pageSize,String xtype,Column column,boolean withSubs)

    同上,按类型及栏目全文检索。
    参数 column指定栏目对象,withSubs指定是否检索下级栏目。

    SearchContents searchTitle(String word,,int pageSize,String xtype,Column column,boolean withSubs)

    同上,按类型及栏目全文检索,只搜索标题。
    参数 column指定栏目对象,withSubs指定是否检索下级栏目。


    String addReview(long contentID,HttpServletRequest request)

    新增对某内容的评论,请求中应包含content(评论内容)及author(作者)信息,一般来自提交请求页面的表单。

    参数: contentID--内容id,request--当前的HttpServletRequest。
    返回值: 错误信息,如执行正确,返回null。


    String addReview(long contentID,String review,String author)

    新增对某内容的评论。
      
    参数: contentID--内容id,review--评论内容,author--作者。
    返回值: 错误信息,如执行正确,返回null。


    PageResultSet getReviews(long contentID,int pageSize)

    取对某内容的评论。

    参数: contentID--内容id。pageSize每页行数。
    返回值:评论列表,带翻页功能,详见PageResultSet。


    public Contents getRelativeContent(Content content)

    取某内容的相关内容,目前仅对Article类型的内容有效,其他内容返回null。

    参数: content--要相关的内容。
    返回值: 相关内容列表,详见Contents。

    public PageResultSet queryPage(String sql,int pageSize)

    查询并获得分页的结果集,指定每页行数,并从当前URL获得页码

    public PageResultSet queryPage(String dataSource,String sql,int pageSize)

    查询并获得分页的结果集,指定数据源、每页行数,并从当前URL获得页码

    public WebResultSet query(String sql)

    查询并获得结果集

    public WebResultSet query(String sql,int maxRows)

    查询并获得结果集,并指定最大行数

    public WebResultSet query(String dataSource,String sql)

    查询并获得结果集,并指定数据源

    public WebResultSet query(String dataSource,String sql,int maxRows)

    查询并获得结果集,并指定最大行数、数据源

    public void updateContentHitCount(long contentID)

    更新内容的访问计数,仅用于url中不含cid参数的页面。

     


    public class WebResultSet implements ResultSet

    WebResultSet 是所有内容对象、评论对象、检索结构对象的公共父类,其所有方法对这些对象都适用。 WebResultSet 是java.sql.ResultSet的Web风格实现,除具备 ResultSet 的所有方法外,扩展了一些新的取字段属性的方法;此外 WebResultSet 默认最大限制5000行的遍历,也可以指定最大行数。


    String get(String pName)

    同getProperty(String pName)。

    String get(String pName,int maxLength)

    同get(String pName),但限定最多返回的字符数。

    String getProperty(String pName)

    按属性名取属性值。特别地:如果属性是"xicon"、"ximage",返回的是完整的<IMG>html代码;如果属性是"xpublishdate"、"xlastmodifydate"、"xcreatedate",返回的是年-月-日。

    参数: pName--属性名。
    返回值:属性值。对不存在的属性,返回空串。

    long getIntProperty(String pName)

    取整数型的属性。

    参数: pName--属性名。
    返回值:属性值。

    String getDateProperty(String pName,String formatStr)

    取毫秒值表示的时间属性,如"xpublishdate"、"xlastmodifydate"、"xcreatedate",按指定的格式化串返回日期时间格式。

    参数: pName--属性名。formatStr--格式化串,“年-月-日”为"yyyy-MM-dd",“年-月-日 时:分:秒”为"yyyy-MM-dd hh:mm:ss"。
    返回值:格式化后的属性值。

    String getDateProperty(String pName)

    返回格式为“年-月-日”的时间属性。对"xpublishdate"、"xlastmodifydate"、"xcreatedate",可简写为get(String pName)。

    参数: pName--属性名。
    返回值:格式化后的属性值。

    String getImageProperty(String pName)

    返回完整的<IMG>html代码的图片属性,对"xicon"、"ximage",可简写为get(String pName)。

    参数: pName--属性名。
    返回值:图片属性的html代码。

    String getImagePathProperty(String pName)

    返回图片路径。

    参数: pName--属性名。
    返回值:图片路径,相对于www根的路径。


     public boolean userCanAccess(HttpServletRequest request)

    判断用户是否可以访问内容。按用户角色及栏目/内容的设置来计算。

     

    String parse(String template)

    用指定的“属性模板”绑定当前数据,输出HTML代码。“属性模板”为包含内容属性引用的HTML代码,其中的属性引用写成“{属性名}”。 该方法用于Column、Content等单数对象。

    参数: template--“属性模板”。
    返回值:绑定数据后的HTML代码。

    String parseMulti(String template)

    同parse(String template),但输出多行HTML,但适用于Columns、Contents、PageContents、PageResultSet、SearchContents等复数对象。

    参数: template--“属性模板”。
    返回值:绑定数据后的HTML代码。

    String parseMulti(String template,String curID)

    同parseMulti(String template),但可以对curID指定的行进行特殊处理:对于格式为“{[HTML代码]}”的部分,在解析时只有curID指定的行才被保留。一般用于在兄弟栏目列表中突出显示当前栏目。

    参数: template--“属性模板”。curID--特殊显示的行的内容ID。
    返回值:绑定数据后的HTML代码。

    String parseMulti(String template,int maxRow)

    同parseMulti(String template),但可以指定最多显示的条目数,超出的条目被忽略。

    参数: template--“属性模板”。maxRow--最大条目数。
    返回值:绑定数据后的HTML代码。


    public class Content extends WebResultSet

    除Column之外的所有类型内容都通过共同的Content类来访问,不同类型的内容,其属性集合略有不同,参见第二章。Content是WebResultSet的子类,拥有所有WebResultSet的方法。

    long getID()

    取内容的ID。一般只用于程序中。用于显示时,等同于get("XID"),但返回的是整型。

    参数:
    返回值:整型的内容ID。


    Content getRefer()

    取该内容所引用的内容。

    参数:
    返回值:所引用的内容


    Column getColumn()

    取该内容所在的栏目。

    参数:
    返回值:栏目对象。

    Column getURL()

    取该内容的URL。

    参数:
    返回值:URL。


     public boolean userCanEdit(HttpServletRequest request)

    判断用户是否可以在线编辑内容。投稿用户及系统管理员及在线维护者角色(9710)可以。

     


    public class Column extends Content

    代表一个具体栏目。Content是Content的子类,拥有所有Content的方法。


    public String getURL()

    取访问该栏目的URL,效果同getProperties("X_URL")。

    参数:
    返回值: URL。


    public Columns getSuperColumns()

    取所有上级栏目(包括本栏目),自上而下排序

    参数:
    返回值: 栏目列表对象。


    public Columns getSubColumns()

    取所有子栏目。

    参数:
    返回值: 栏目列表对象。


    public Columns getSubColumns(String orderBy)

    取所有子栏目,按指定的属性排序。

    参数: orderBy--排序属性,见栏目属性列表
    返回值: 栏目列表对象。


    public Contents getContents()

    取栏目下的所有内容。顺序为早的在前。

    参数:
    返回值:内容列表对象。


    public Contents getContents(String orderBy)

    取栏目下的所有内容,按指定的属性排序。

    参数: orderBy--排序属性,见内容属性列表,注意不同类型的内容,属性不同。
    返回值: 内容列表对象。


    public Contents getContents(int rows)

    取栏目下指定行数的最新内容。

    参数:
    返回值:内容列表对象。


    public PageContents getPageContents()

    取栏目下所有内容用于翻页显示。getPageContents自己会根据URL中的page参数确定返回那一页数据,模板开发者不需要关心翻页的细节。

    参数:
    返回值: 一页内容列表对象。

     

    public PageContents getPageContents(String orderBy)

    取栏目下所有内容用于翻页显示,按指定的属性排序。

    参数: orderBy--排序属性,见内容属性列表,注意不同类型的内容,属性不同。
    返回值: 一页内容列表对象。

    public PageContents getPageContents(int pageSize)

     

    public PageContents getPageContents(String orderBy,int pageSize)

     

    public String getPublishAuth(HttpServletRequest request)

    取用户的投稿、发布权限。 能发布返回"PUBLISH",能投稿返回"CONTRIBUTE",都不能返回null。
    按用户角色及栏目设置来计算。

     

     

    public class Columns extends WebResultSet

    Columns代表一组栏目(但不是一组Column对象,Columns类和Column类没有继承或引用关系)。使用时,Columns通过next()移动到具体的的某个栏目,然后通过getProperties()、getURL()等方法获得该栏目的属性,通过getSubColumns()、getContents()等方法获得该栏目的子栏目列表和内容列表。


    public boolean next()

    在一组栏目中,移动到一个可用的栏目。 在没有调用next()之前,调用Columns的getXXX方法是无效的(除getSimpleLinks外)。

    参数: 
    返回值: 是否存在下一个可用栏目。
     

    public long getID()

    移到某栏目后,取该栏目的ID。一般只用于程序中。用于显示时,等同于get("XID"),但返回的是整型。

    参数:
    返回值:整型的栏目ID。


    public String getURL()

    移到某栏目后,取该栏目的链接地址。等同于get("X_URL")。

    参数:
    返回值: URL。


    public Columns getSubColumns()

    移到某栏目后,取该栏目所有子栏目。

    参数:
    返回值: 栏目列表对象。
     

    public Columns getSubColumns(String orderBy)

    移到某栏目后,取该栏目所有子栏目,按指定的属性排序。


    参数: orderBy--排序属性,见栏目属性列表
    返回值: 栏目列表对象。
     

    public Contents getContents()

    移到某栏目后,取该栏目下的所有内容。

    参数:
    返回值:内容列表对象。

    public Contents getContents(String orderBy)

    移到某栏目后,取该栏目下的所有内容,按指定的属性排序。

    参数: orderBy--排序属性,见内容属性列表,注意不同类型的内容,属性不同。
    返回值: 内容列表对象。

    public Contents getContents(int rows)

    移到某栏目后,取栏目下指定行数的最新内容。

    参数:
    返回值:内容列表对象。

     

    public String getSimpleLinks()

    产生简单的所有栏目链接html代码,一般用于测试。

     

    public class Contents extends WebResultSet

    Contents代表一组内容(但不是一组Content对象,Contents类和Content类没有继承或引用关系)。使用时,Contents通过next()移动到具体的某个内容,然后通过getProperties()、getURL()等方法获得该内容的属性。该类一般用于输出内容链接列表,但也可用于输出内容信息体的列表。

    public boolean next()

    在一组内容中,移动到一个可用的内容。 在没有调用next()之前,调用Contents的getXXX方法是无效的(除getSimpleLinks外)。

    参数: 
    返回值: 是否存在下一个可用内容。

    public long getID()

    移到某内容后,取该内容的ID。一般只用于程序中。用于显示时,等同于get("XID"),但返回的是整型。

    参数:
    返回值:整型的内容ID。

    public String getURL()

    移到某内容后,取该内容的链接地址。等同于get("X_URL")。

    参数:
    返回值: URL。

    public String getSimpleLinks()

    产生简单的所有内容链接html代码,一般用于测试。

     

    public class PageContents extends Contents

    和Contents一样代表一组内容,但只有一页。用于内容很多时的翻页。具有Contents的所有方法,可以和Contents一样地被使用,要显示翻页链接时,调用getPageLinks()。

    public String getPageLinks()

    得到翻页链接的HTML代码。

    public int getRowCount()

    得到总行数(不单是本页)。

     

    public class SearchContents extends WebResultSet

    和PageContents基本一样,PageContents是一个栏目下的翻页文章列表,SearchContents是CMSBean.search()方法查找出来的翻页文章列表,来自不同的栏目。SearchContents具有和PageContents相同的 方法。

    public String getContentHead()

    得到内容的xcontent域的值的开头文本,字符数由CONTENT_HEAD_LEN常量指定。


    public class PageResultSet extends WebResultSet

    带翻页功能的结果集。 PageResultSet 是CMSBean.queryPage(sql,pageSize)方法,CMSBean.getReviews(contentID,pageSize)方法取出来的。

    public int getRowCount()

    得到总行数(不单是本页)。


    public String getPageLinks()

    得到翻页链接的HTML代码。


    public boolean next()

    移到下一个记录。

     

    public class Photos extends WebResultSet 

    每个图片集类型的内容content,可以通过content.getPhotos()得到该内容的图片集合。图片集合中的每个图片,具有属性:XTITLE-图片标题;XDESCRIPTION--图片概述。此外,还可以通过以下方法得到图片的其他信息。

     public String getIconPath()

    取缩略图文件路径,该路径可以作为<IMG>元素的src属性值。缩略图可用于显示图片集所含图片的概览视图。
     

    public String getImagePath()

     取图片文件路径,该路径可以作为<IMG>元素的src属性值。

    public int getSizeKB() 

    取图片的字节大小,单位为KB。

    public String  getWidthHeight()

     取图片的长、宽尺寸。格式为 “width x height”,如“1024 x 768”。


    public String getWidthOrHeightLimit(int maxSize)

     将图片用于<IMG>元素显示时,如果限制最大的显示长、宽尺寸,同时保持图片自身的长宽比,则可以用本方法取合适的<IMG>的长宽属性,返回格式如:“width=800 height=600”。


     

    CMS5内容实体访问Bean之间的继承关系

    WebResultSet--->Content--->Column
     |-->Contents-->PageContents
     |-->Columns
     |-->PageResultSet
     |-->SearchContents
     |-->Photos