1-切换试图:

2-新建xsd文件:

右键点击新建的school.xsd文件→Edit sourcecode(编辑源代码),输入以下代码:

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	elementFormDefault="qualified">

	<xsd:include schemaLocation="opencms://opencms-xmlcontent.xsd" />
	<!--此处name必须以 "s" 结尾,且type以 "OpenCms" 开头 -->
	<xsd:element name="Schools" type="OpenCmsSchools" />

	<xsd:complexType name="OpenCmsSchools">
		<xsd:sequence>
			<xsd:element name="School" type="OpenCmsSchool"
				minOccurs="0" maxOccurs="unbounded" />
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="OpenCmsSchool">
		<xsd:sequence>
			<!--本自定义类型包含的内容,Title标题,Text文本框 -->
			<xsd:element name="Title" type="OpenCmsString" />
			<xsd:element name="Text" type="OpenCmsHtml" />
		</xsd:sequence>
		<xsd:attribute name="language" type="OpenCmsLocale" use="required" />
	</xsd:complexType>

	<xsd:annotation>
		<xsd:appinfo>
			<!-- 绑定的properties文件 -->
			<resourcebundle name="my.opencms.school.workplace" />
			<mappings>
				<mapping element="Title" mapto="property:Title" />
			</mappings>
			<layouts>
				<!-- 配置上面的文本框 -->
				<layout element="Text" widget="HtmlWidget" />
			</layouts>
			<validationrules />
			<defaults />
			<relations />
			<!-- 布局标签 -->
			<formatters>
				<!-- side.jsp 为在侧边的模板,定义宽高等属性 -->
				<formatter minwidth="150" maxwidth="250"
					uri="/system/modules/my.opencms.school/formatters/side.jsp" />
				<!-- detail.jsp 为在body中间显示内容的模板,定义宽高等属性 -->
				<formatter minwidth="400"
					uri="/system/modules/my.opencms.school/formatters/detail.jsp" />
			</formatters>
		</xsd:appinfo>
	</xsd:annotation>
</xsd:schema>

保存,退出。

4-新建property文件:

Continue >>

Advanced >>

 

右键点击新建的workplace.properties文件→Edit sourcecode(编辑源代码),代码如下:

# TestNews nodes 用于在“新建”向导中显示的名称 
fileicon.school=我的校园
#新建“我的校园”类型时在对话框窗口显示的标题内容
title.newschool=添加一条校园新闻
#编辑器中相应标签元素显示的名称,以下面编辑校园新闻内容是可看见效果
label.School.Title = 标题 
label.School.Text= 内容

保存,关闭。

5-将创建的xsd文件作为资源类型加入到模块中:打开安装opencms安装目录下,opencms\WEB-INF\config\下的opencms-module.xml配置文件,在配置文件中找到你的模块代码,并添加新配置代码,完整代码如下所示:

<module>
            <name>my.opencms.school</name>
            <nicename><![CDATA[我的校园]]></nicename>
            <class/>
            <description><![CDATA[关于本模块的相关描述]]></description>
            <version>0.1</version>
            <authorname><![CDATA[yufu]]></authorname>
            <authoremail><![CDATA[ilxly01@126.com]]></authoremail>
            <datecreated/>
            <userinstalled/>
            <dateinstalled/>
            <dependencies/>
            <exportpoints>
                <exportpoint uri="/system/modules/my.opencms.school/classes/" destination="WEB-INF/classes/"/>
            </exportpoints>
            <resources>
                <resource uri="/system/modules/my.opencms.school/"/>
            </resources>
            <parameters/>
	<!--  **************** 以下为新添加的内容 ****************** -->
			<resourcetypes>
		<!-- type中的id为唯一,为不和系统的冲突,最好在1000以上,且相互间不能冲突 -->
                <type class="org.opencms.file.types.CmsResourceTypeXmlContent" name="school" id="7004">
                    <param name="schema">/system/modules/my.opencms.school/schemas/school.xsd</param>
                </type>
            </resourcetypes>
            <explorertypes>
		<!-- fileicon-自定义类型的文字(workplace.properties文件中读取) icon-自定义类型的图标 -->
                <explorertype name="school" key="fileicon.school" icon="school.gif" reference="xmlcontent">
                    <newresource page="structurecontent" uri="newresource_xmlcontent.jsp?newresourcetype=school" order="7004" autosetnavigation="false" autosettitle="false"/>
                   <!-- 权限控制 -->
					<accesscontrol>
			<!-- 给予 Administrators(管理员)组,Projectmanagers(项目管理者)组,Users(用户组) 读写的全权限 -->
                        <accessentry principal="GROUP.Administrators" permissions="+r+v+w+c"/>
                        <accessentry principal="GROUP.Projectmanagers" permissions="+r+v+w+c"/>
                        <accessentry principal="GROUP.Users" permissions="+r+v+w+c"/>
                    </accesscontrol>
                </explorertype>
            </explorertypes>
	<!--  **************** 以上为新添加的内容 ****************** -->
        </module>

保存,关闭。

点击   发布项目,重启tomcat。

6-现在能看到自己新建的类型

Continue >>

7-完善自定义类型中的模板

现在根据这个类型创建出来的页面还不能显示东西,因为xsd文件有配置2个jsp页面,detail.jsp和side.jsp,还没有添加内容,现在添加进去:

detail.jsp内代码为:

<%@page buffer="none" session="false" taglibs="c,cms,fmt" %>
<fmt:setLocale value="${cms.locale}" />
<cms:formatter var="content" val="value">
	<div class="view-article">
		<div class="content">
			${value.Title}<br/>
			<!-- 显示文本框内容 -->
			${value.Text}
		</div>										
	</div>
</cms:formatter>

side.jsp内代码为:

<%@page buffer="none" session="false" taglibs="c,cms,fmt" %>
<fmt:setLocale value="${cms.locale}" />
<fmt:bundle basename="my/opencms/testnews/messages">
	<cms:formatter var="content" val="value">
		<div class="view-article">
			<div class="content">
				${value.Title}<br/>
				${value.Text}
			</div>										
		</div>
	</cms:formatter>
</fmt:bundle>

 

8-为了能使自定义的类型能在浏览器界面上实现拖拽功能,要配置config文件

Continue >>


 Continue >>

Finish.

在新建的.config文件上,右键→Edit(编辑)

 

输入完成,点击左上角的保存并退出。

至此自定义类型完成,可以到浏览器页面拖拽使用了。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐