注:模块的根目录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=" S dptNewss
" type="
OpenCms S dptNewss
" /> #下划线的部分要注意大写及要以"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文件,等我再理解深一些再写完整。
一、建立内容结构的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="
<xsd:complexType name="
<xsd:sequence>
<xsd:element name="
</xsd:sequence> #上一行加粗部分少了一个"s"
</xsd:complexType>
<xsd:complexType name="
<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="
<param name="schema">/system/modules/org.opencms.sdpt.www/schemas/sdptNews.xsd</param>
</type>
</resourcetypes>
<explorertypes>
<explorertype name="
<newresource page="structurecontent" uri="newresource_xmlcontent.jsp?newresourcetype=
<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
label.
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文件,等我再理解深一些再写完整。