Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Note

This page is a work in progress.... It's in pretty good shape at this point though.

You can create a new fragment layout by modify creating a new fragment-layout XML file, or alter an existing fragment layout by modifying an existing fragment-layout XML file.  When done, you import the fragment using one of the data import approaches (see Importing and Exporting data).

...

AttributeDescriptionuP4.3: api/v4-3/dlm/layout.json field nameRequiredDefault
ID

ID value. By convention folders are "s#" and channels are "n#" where # is a numeric value. The letter designations are arbitrary. The numeric portion must be a unique numeric value (unique among all folders and channels) within the XML file; e.g. you cannot have both an "s1" and an "n1" in the same XML file as the "s" and "n" are not stored to the database.

User customizations to a page are represented in the database by "remove ID x" so once a layout is used in production, you must not change the existing ID values or re-use ID values or uPortal will not be able to properly render a user's page that has modified their layout.

After modifying a layout with the Admin UI you should export the fragment-layout and store it in your source code repository so you can recreate the layout in other environments with ant initdb or ant initportal.

 Y 
hidden

Set to false for folders that are displayed to users.

Set to true for folders that are not displayed to users, but are displayed when you do select Manage DLM Fragments in the Admin UI.

Certain channels must exist for the fragment owner to edit fragments. These channels include dynamic-respondr-skin (for Respondr them), fragment-admin-exit (allows exiting Manage DLM Fragments user impersonation), and personalization-gallery (allows using Customize to find and add portlets to the page).

 Y 
immutableobsolete parameter from uPortal 2.x days ?false
nameName of the folder. If a folder is a tab, this is the name of the tab. Columns by convention have a name of Column or perhaps Column1, Column2. Users do not see column names. Y 
type

Type of the folder. Due to historic reasons, this generally indicates the placement of the contents of the folder on the page. Options are:

  • regular - content placed in a tab or column (depends upon level in the hierarchy)
  • region name - name of a region (see Respondr Regions Feature)
 Y 
unremovableObsolete parameter from earlier uPortal releases. Do not use. Nfalse
dlm:addChildAllowedFor a tab folder or column folder, determines whether a user who has permissions to customize their layout can add children (columns for tabs, portlets or for columns as appropriate) to the folder.hasColumnAddChildAllowedNtrue
dlm:deleteAllowedFor a tab folder or column folder, determines whether a user who has permissions to customize their layout can remove children (portlets or columns as appropriatethe item (tab for tab, column for column) to the folder.deleteAllowedNtrue
dlm:editAllowedFor a tab folder, determines whether a user who has permissions to customize their layout can rename the folder (practically only useful on a tab to rename the tab)editAllowedNtrue
dlm:moveAllowedFor a tab folder or column folder, determines whether a user who has permissions to customize their layout can move the tab or column on the pagemoveAllowedNtrue

...

Child elements of a structure-attribute element vary depending upon where this is at in the hierarchy.

Child of tab folder:

...

 The structure XSLT transform doesn't care whether the structure-attributes apply to a tab or column, but the theme XSLT transform does as it acts upon the value when present at a specific level in the folder hierarchy.  Structure attributes have the form:

Code Block
<structure-attribute>
   <name>width</name>
   <value>40%</value>
</structure-attribute>

For a structure attribute name to be valid, it must be defined in the structure stylesheet definition file.  See https://github.com/Jasig/uPortal/blob/uportal-4.2.1/uportal-war/src/main/data/required_entities/stylesheet-descriptor/DLMTabsColumns.stylesheet-descriptor.xml#L49-L67 as an example.

Tip

New with uPortal 4.3:  The value field can be a Spring Expression Langugage (SpEL) expression (see http://docs.spring.io/spring/docs/4.0.5.RELEASE/spring-framework-reference/html/expressions.html) of the form ${expression} where the expression is of the form:

  • ${request.method}. Access to Http Request. Example: ${request.contextPath}
  • ${person.method}. Access to Person object. Example: ${person.attributeMap['collegge']}
  • ${@bean.method}. Access to arbitrary beans by name in the root application context. Example: ${@PortalDb.class.toString()?:unknown}

Child of tab folder:

Name ElementValue ElementDescription
external-idURL-safe-value

Indicates folder has an external ID name. Allows creating an URL of the form /f/URL-safe-value (see  Consistent Portal URLs ("Deep Linking").

tabGroupvalueURL-safe-valueString that is present in an URL link to the foldertab group nameUsed when the optional feature of tab groups is enabled. See TabGroups ('Super-tabs') Feature for more information.

Child of a column folder:

Percentage of the row width to allot for the column.
Name ElementValue ElementDescription
namewidthwidthpercentage

Defines the width of the column in percentage; e.g. 50%

valuepercentage

. The column widths in a tab/row should add up to 100

Info
iconfalse

Additional References

Overview

...