All Downloads are FREE. Search and download functionalities are using the official Maven repository.

spot-cms-base.1.0.19-BETA-20181127.source-code.cms-base-itemtypes.xml Maven / Gradle / Ivy

There is a newer version: 1.0.21-BETA-20190513
Show newest version
<?xml version="1.0" encoding="ISO-8859-1"?>
<types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://spot-next.io/schemas/v2/itemtypes.xsd">

	<!-- enums -->

	<enum name="HtmlLinkTarget" package="io.spotnext.itemtype.cms.enumeration">
		<description>Represents an HTML link target used.</description>
		<value code="BLANK" />
		<value code="SELF" />
		<value code="PARENT" />
		<value code="TOP" />
	</enum>

	<enum name="Orientation" package="io.spotnext.itemtype.cms.enumeration">
		<description>Defines the orientation, eg. for layouts.</description>
		<value code="TOP" />
		<value code="BOTTOM" />
		<value code="LEFT" />
		<value code="RIGHT" />
	</enum>

	<enum name="TemplateRenderEngine" package="io.spotnext.itemtype.cms.enumeration">
		<description>The render engine used to render cms items.</description>
		<value code="VELOCITY" />
		<value code="FREEMARKER" />
		<value code="THYMELEAF" />
		<value code="JSP" />
	</enum>

	<!-- image media -->
	<type name="ImageMedia" extends="FileMedia" package="io.spotnext.itemtype.cms.media">
		<properties>
		</properties>
	</type>

	<!-- cms item types -->

	<type name="AbstractCmsItem" abstract="true" package="io.spotnext.itemtype.cms" extends="UniqueIdItem">
		<properties>
			<property name="catalogVersion" type="CatalogVersion">
				<description>The content catalog of the item.</description>
				<modifiers unique="true" />
				<annotations>
					<annotation javaClass="javax.validation.constraints.NotNull" />
				</annotations>
			</property>
			<property name="renderEngine" type="TemplateRenderEngine">
				<annotations>
					<annotation javaClass="javax.validation.constraints.NotNull" />
				</annotations>
			</property>
		</properties>
	</type>

	<type name="CmsRestriction" package="io.spotnext.itemtype.cms">
		<properties>
			<property name="evaluator" type="String">
				<description>The spring bean id of the corresponding evaluator implementation.</description>
			</property>
			<property name="evaluatorScript" type="String">
				<description>The beanshell script that evaluates the cms item visibility.</description>
			</property>
		</properties>
	</type>

	<type name="AbstractCmsComponent" abstract="true" extends="AbstractCmsItem" package="io.spotnext.itemtype.cms">
		<properties>
			<property name="onlyOneRestrictionMustApply" type="Boolean">
				<description>
					If set to true, only one restriction must evaluate to "show cms item"
					for the item to be visible.
				</description>
			</property>
		</properties>
	</type>

	<type name="AbstractCmsContainerComponent" abstract="true" extends="AbstractCmsComponent" package="io.spotnext.itemtype.cms">
		<properties>
		</properties>
	</type>

	<type name="MetaTag" extends="ConfigEntry" package="io.spotnext.itemtype.cms">
	</type>

	<type name="CmsBaseLayout" abstract="true" extends="AbstractCmsItem" package="io.spotnext.itemtype.cms">
		<properties>
			<property name="renderTemplateFile" type="String">
				<description>The path (in the resources/templates folder) to the render template file used to render this CMS item.</description>
			</property>
			<property name="renderTemplateScript" type="String">
				<description>The template script used to render this CMS item. This has priority over the ${@link #getRenderTemplateFile} property.</description>
			</property>
		</properties>
	</type>

	<type name="CmsOneColumnLayout" extends="CmsBaseLayout" package="io.spotnext.itemtype.cms">
		<properties>
			<property name="header" type="AbstractCmsComponent">
				<description>The component that will be used as header on top of the page.</description>
				<annotations>
					<annotation javaClass="io.spotnext.cms.annotations.Renderable" />
				</annotations>
			</property>
			<property name="footer" type="AbstractCmsComponent">
				<description>The component that will be used as footer at the bottom of the page.</description>
				<annotations>
					<annotation javaClass="io.spotnext.cms.annotations.Renderable" />
				</annotations>
			</property>
		</properties>
	</type>

	<type name="CmsPage" abstract="true" extends="CmsBaseLayout" package="io.spotnext.itemtype.cms">
		<properties>
			<property name="title" type="LocalizedString">
				<description>The page title (in the browser window).</description>
				<annotations>
					<annotation javaClass="io.spotnext.cms.annotations.Renderable" />
				</annotations>
			</property>
			<property name="favIconPath" type="String">
				<description>The (publicly available) path to the favIcon.</description>
				<annotations>
					<annotation javaClass="io.spotnext.cms.annotations.Renderable" />
				</annotations>
			</property>
			<property name="favIcon" type="ImageMedia">
				<description>The image media containing the favIcon.</description>
				<annotations>
					<annotation javaClass="io.spotnext.cms.annotations.Renderable" />
				</annotations>
			</property>
		</properties>
	</type>

	<type name="CmsHomePage" extends="CmsPage" package="io.spotnext.itemtype.cms" />

	<!-- special cms components -->

	<type name="LinkComponent" extends="AbstractCmsComponent" package="io.spotnext.itemtype.cms">
		<properties>
			<property name="name" type="LocalizedString">
				<description>The navigation entry name.</description>
			</property>
			<property name="href" type="String">
				<description>The href of the link.</description>
			</property>
			<property name="target" type="HtmlLinkTarget">
				<description>The HTML link target.</description>
			</property>
		</properties>
	</type>

	<type name="ButtonComponent" extends="LinkComponent" package="io.spotnext.itemtype.cms">
		<properties>
			<property name="onClick" type="String">
				<description>The javascript onClick handler.</description>
			</property>
		</properties>
	</type>

	<type name="AbstractMenuComponent" extends="LinkComponent" package="io.spotnext.itemtype.cms">
		<properties>
		</properties>
	</type>

	<type name="MenuComponent" extends="AbstractMenuComponent" package="io.spotnext.itemtype.cms">
		<properties>
		</properties>
	</type>

	<type name="ImageComponent" extends="LinkComponent" package="io.spotnext.itemtype.cms">
		<properties>
			<property name="media" type="Media">
				<annotations>
					<annotation javaClass="javax.validation.constraints.NotNull" />
				</annotations>
			</property>
		</properties>
	</type>

	<type name="AbstractNavigationContainer" extends="AbstractCmsContainerComponent" abstract="true" package="io.spotnext.itemtype.cms">
		<properties>
		</properties>
	</type>

	<type name="NavigationBar" extends="AbstractNavigationContainer" package="io.spotnext.itemtype.cms" />

	<type name="HtmlComponent" extends="AbstractCmsComponent" package="io.spotnext.itemtype.cms">
		<properties>
			<property name="content" type="String">
				<description>The HTML content, that will be rendered. Can contain any valid HTML, even scripts and styles.</description>
				<persistence columnType="LONGVARCHAR" />
			</property>
		</properties>
	</type>

	<!-- RELATIONS -->
	<relation name="CmsLayout2CmsPage">
		<source itemType="CmsBaseLayout" mappedBy="layout" cardinality="one">
			<description>The layout that is used for rendering.</description>
		</source>
		<target itemType="CmsPage" mappedBy="pages" cardinality="many">
			<description>The CmsPages that use this layout.</description>
		</target>
	</relation>

	<relation name="AbstractCmsComponent2CmsRestriction">
		<source itemType="AbstractCmsComponent" cardinality="many" mappedBy="cmsItem" />
		<target itemType="CmsRestriction" cardinality="many" mappedBy="cmsRestrictions">
			<description>The restrictions evaluate if the current cms item should be rendered.</description>
		</target>
	</relation>

	<relation name="AbstractCmsContainerComponent2AbstractCmsComponent">
		<source itemType="AbstractCmsContainerComponent" cardinality="many" mappedBy="container" />
		<target itemType="AbstractCmsComponent" cardinality="many" mappedBy="components">
			<annotations>
				<annotation javaClass="io.spotnext.cms.annotations.Renderable" />
			</annotations>
		</target>
	</relation>

	<relation name="MenuComponent2AbstractMenuComponent">
		<source itemType="MenuComponent" cardinality="one" mappedBy="parent" />
		<target itemType="AbstractMenuComponent" cardinality="many" mappedBy="entries">
			<annotations>
				<annotation javaClass="io.spotnext.cms.annotations.Renderable" />
			</annotations>
		</target>
	</relation>

</types>




© 2015 - 2025 Weber Informatics LLC | Privacy Policy