Locations
- classpath:/alfresco/site-data/components
- classpath:/alfresco/web-extension/site-data/components
Definition
<component>
<!-- Required -->
<scope>page | template | global</scope>
<region-id>REGION_ID</region-id>
<source-id>SOURCE_ID</source-id>
<!-- Optional -->
<url>URL</url>
<component-type-id>COMPONENT_TYPE_ID</component-type-id>
<chrome>CHROME_ID</chrome>
</component>
Properties
- <id> - Component IDs follow a convention:
- For page and template scoped region bindings the convention is <scope>.<region-id>.<source-id>
- For bindings to regions in the global scope the convention is global.<region-id>
- <scope> - The scope of the binding (page, template, global)
- <region-id> - The name of the region that is being bound.
- <source-id> - The ID of the page or template instance to which the component is bound. For the global scope this should be set to global.
Optional properties
- <url> - The web script URL (if a web script is being rendered)
- <component-type-id> - The ID of the component type for this component.
- <chrome> - The ID of the Chrome used to frame this component's presentation.
Example - Page scope binding
This component binds the web script with the URL /sample/content to the paged-scoped region named content on the page home. It therefore has the ID page.content.home.
classpath:/alfresco/web-extension/site-data/compnents/page.content.home.xml
<?xml version="1.0" encoding="utf-8"?>
<component>
<id>page.content.home</id>
<scope>page</scope>
<region-id>content</region-id>
<source-id>home</source-id>
<url>/sample/content</url>
</component>
Example - Template scope binding
This example binds the web script with the URL /sample/header to the template-scoped region named header on the home template. It therefore has the ID template.header.home.
classpath:/alfresco/web-extension/site-data/compnents/template.header.home.xml
<?xml version="1.0" encoding="utf-8"?>
<component>
<id>template.header.home</id>
<scope>template</scope>
<region-id>header</region-id>
<source-id>home</source-id>
<url>/sample/header</url>
</component>
Example - Global scope binding
This example binds the web script with the URL /sample/footer to the global-scoped region named footer. It therefore has the ID global.footer.
classpath:/alfresco/web-extension/site-data/compnents/global.footer.xml
<?xml version="1.0" encoding="utf-8"?>
<component>
<id>global.footer</id>
<scope>global</scope>
<region-id>footer</region-id>
<source-id>global</source-id>
<url>/sample/footer</url>
</component>
Example - Custom page scope binding
This example binds the web script with the URL /sample/content to the page-scoped region named content on the page home. It informs Surf to wrap the Component with a custom component Chrome when it renders. It also provides a few custom properties that the web script can use while it executes
classpath:/alfresco/web-extension/site-data/compnents/page.content.home.xml
<?xml version="1.0" encoding="utf-8"?>
<component>
<id>page.content.home</id>
<scope>page</scope>
<region-id>content</region-id>
<source-id>home</source-id>
<url>/sample/content</url>
<chrome>sample-chrome</chrome>
<properties>
<view>FULL</view>
<style>formal</style>
</properties>
</component>