Layouts can be linked to a document type by specifying the layout names in its definition.
Here is a sample configuration excerpt:
<type id="Note">
[...]
<layouts mode="any">
<layout>heading</layout>
<layout>note</layout>
</layouts>
</type>
Layouts are defined in a given mode; layouts in the "any" mode will be used as default when no layouts are given in specific modes.
It is possible to merge layouts when redefining the document type, adding a property append="true"
:
<layouts mode="any" append="true">
<layout>newLayout</layout>
</layouts>
Since 5.8, the property named display
set on the layout configuration is enough to handle a two columns rendering, it can be set to value table_2_columns
for this purpose.
Document Layouts Display
The documentLayout tag can be used to display the layouts of a document:
<div xmlns="http://www.w3.org/1999/xhtml"
xmlns:nxl="http://nuxeo.org/nxforms/layout">
<nxl:documentLayout mode="view" value="#{currentDocument}" />
</div>
It is possible to make a distinction between the layouts defined in a given mode on the document, and the mode used to render layouts, for instance:
<nxl:documentLayout
documentMode="header"
mode="view"
value="#{currentDocument}"
defaultLayout="document_header"
includeAnyMode="false" />
It is also possible to define a fallback mode on documents, for instance when retrieving layouts for document mode driveEdit
, if no layout is resolved, it can fallback to layouts defined for document mode edit
:
<nxl:documentLayout
documentMode="edit"
documentModeFallback="driveEdit"
mode="view"
value="#{currentDocument}" />