OpenCMS:新建自定义内容及各配置文件的关系

注:模块的根目录org.opencms.sdpt.www,子目录按照默认
一、建立内容结构的XSD文档,参考正面的例子:
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xsd:include schemaLocation="opencms://opencms-xmlcontent.xsd" />
  <xsd:element name=" SdptNewss " type=" OpenCmsSdptNewss " /> #下划线的部分要注意大写及要以"s"结尾,绿色部分是固定的前缀
  <xsd:complexType name=" OpenCmsSdptNewss ">        # 与上一行的type同名
    <xsd:sequence>
      <xsd:element name=" SdptNews " type=" OpenCmsSdptNews " minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>  #上一行加粗部分少了一个"s"
  </xsd:complexType>
  <xsd:complexType name=" OpenCmsSdptNews ">
    <xsd:sequence>  #这个部分定义元素及类型
      <xsd:element name="Title" type="OpenCmsString" />
      <xsd:element name="Teaser" type="OpenCmsString" maxOccurs="5" />
      <xsd:element name="Text" type="OpenCmsHtml" />
      <xsd:element name="Release" type="OpenCmsDateTime" />
      <xsd:element name="Author" type="OpenCmsString" />
    </xsd:sequence>
    <xsd:attribute name="language" type="OpenCmsLocale" use="required" />  #固定部分,在嵌套XSD的时候要注意use="required"的值要为"optional"
  </xsd:complexType>
  <xsd:annotation>
    <xsd:appinfo>
   <resourcebundle name="/system/modules/org.opencms.sdpt.www/classes/org/opencms/sdpt/www/workplace.properties"/>  #绑定本地化文件,此文件保存了对元素一些显示信息,我实际测试的时候没有这一句也能自动找到,不知道为什么。 今天我知道原因了,如果是元件标题或者帮助信息它会自动找到对应的资源,但是对于其它一些自定义的信息,比如检验的提示信息就要绑定后才能找到,这是经过测试证明的。
      <mappings>  #映射设置
        <mapping element="Title" mapto="property:Title" />
        <mapping element="Release" mapto="attribute:datereleased" />
      </mappings>
      <validationrules>  #内容校验与正则表达式设置,及提示信息
        <rule element="Title" regex="!.*[Ee]rror.*" message="Title info wrong" />
        <rule element="Title" regex="!.*[Ww]arn.*" type="warning" message="Title info wrong 2" />
        <rule element="Teaser" regex="!.*[Ww]arn.*" type="warning" message="Teaser info wrong" />
        <rule element="Text" regex="!.*[Ww]arn.*" type="warning" message="Content info warning" />
      </validationrules>
      <defaults>  #元素的默认值设置
        <default element="Title" value="this is a Title" />
        <default element="Teaser" value="This is a teaser" />
        <default element="Release" value="${currenttime}" />
        <default element="Author" value="${currentuser.fullname}" />
      </defaults>
    </xsd:appinfo>
  </xsd:annotation>
</xsd:schema>
二、使新建的XSD文件生效(配置opencms-modules.xml文件)
找到新建的模块org.opencms.sdpt.www,下面的例子:
        <module>
            <name>org.opencms.sdpt.www</name>
            <nicename><![CDATA[顺德职业技术学院内容管理系统]]></nicename>
            <class/>
            <description><![CDATA[顺德职业技术学院内容管理系统,至力于打造自己的内容管理系统。]]></description>
            <version>0.3</version>
            <authorname><![CDATA[车树炎]]></authorname>
            <authoremail><![CDATA[cheshuyan@126.com]]></authoremail>
            <datecreated/>
            <userinstalled/>
            <dateinstalled/>
            <dependencies/>
            <exportpoints>
                <exportpoint uri="/system/modules/org.opencms.sdpt.www/lib/" destination="WEB-INF/lib/"/>
                <exportpoint uri="/system/modules/org.opencms.sdpt.www/classes/" destination="WEB-INF/classes/"/>
            </exportpoints>
            <resources>
                <resource uri="/system/modules/org.opencms.sdpt.www/"/>
                <resource uri="/system/workplace/resources/filetypes/"/>
                <resource uri="/sdpt/"/>
            </resources>
            <parameters/>
            <resourcetypes>
                <type class="org.opencms.file.types.CmsResourceTypeXmlContent" name="sdptNews" id="10025">
                    <param name="schema">/system/modules/org.opencms.sdpt.www/schemas/sdptNews.xsd</param>
                </type>
            </resourcetypes>
            <explorertypes>
                <explorertype name="sdptNews" key="fileicon.sdptNews" icon="article.gif" reference="xmlcontent">
                    <newresource page="structurecontent" uri="newresource_xmlcontent.jsp?newresourcetype=sdptNews" order="10025" autosetnavigation="false" autosettitle="false" info="des.sdptNews"/>
                    <accesscontrol>
                        <accessentry principal="ROLE.WORKPLACE_USER" permissi/>
                    </accesscontrol>
                </explorertype>
            </explorertypes>
        </module>
红色部分为手动添加,加粗部分要注意的,有下划线部分可有可无的,我没有配置但也写出来。
三、编写本地化文件(workplace.properties)
存放/system/modules/org.opencms.sdpt.www/classes/org/opencms/sdpt/www/,在后台先建立此文件,然后设置content-encoding属性为ISO-8859-1,然后编辑内容输入中文的时候就会自动转换编码,否则中文就显示不了。
内容如下:
fileicon.sdptNews =顺德职业技术学院_news   #与上面第二点配置的名对应
title.new sdptNews=创建一个sdptNews          #绝色下划线固定部分加上配置的名
label. SdptNews .Title   =内容标题                 #label为固定部分,红色部分为XSD文件的类型名……
label.SdptNews.Title.help =在这里,你可以输入一段文字作为内容的标题
label.SdptNews.Teaser   =内容摘要
label.SdptNews.Teaser.help=在此输入一段简短的内容摘要文字
label.SdptNews.Text    =内容
label.SdptNews.Text.help =这里是输入内容的
label.SdptNews.Release  =日期
label.SdptNews.Release.help=此日期也作为资源的日期
label.SdptNews.Author   =编辑人员
label.SdptNews.Author.help=内容的发编辑发布人员
保存之后,再次编辑的时候就看不到中文了。
四、建立应用此新内容的JSP文件,及显示内容的JSP文件,等我再理解深一些再写完整。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值