eXo Platform 3.0

- Prev
- Next

## Chapter 1. Preface

## Getting started with eXo WCM

## Packaging

- All package action in WCM start from `delivery` folder, so let's go to this folder first

    	$ cd ecms/delivery

### Package WCM standalone version - Tomcat bundle

    	$ cd wcm/assembly
    	$ mvn clean install

### Package WCM with workflow enabled - Tomcat bundle

    	$ cd wkf-wcm/assembly
    	$ mvn clean install

### Make WCM EAR packages to run with jBoss

- Make WCM extension EAR

    	$ cd packaging/wcm/ear
    	$ mvn clean install

- Make WCM demo sites EAR

    	$ cd packaging/ecmdemo/ear
    	$ mvn clean install

- Make workflow EAR

    	$ cd packaging/workflow/ear
    	$ mvn clean install

## Portlets

### Content Detail

#### Available preferences

Preference | Type | Default Value | Description
--- | --- | --- | ---
repository | `String` | repository | The current repository name. always is "repository"
workspace | `String` | collaboration | The workspace where the content is stored
nodeIdentifier | `String` | N/A | The UUID or the path of content that you want to show
ShowTitle | `Boolean` | true | Show the content title on top of the portlet
ShowDate | `Boolean` | false | Show the content date on top of the portlet
ShowOptionBar | `Boolean` | false | Show a bar with some actions (Print, Back)
ContextEnable | `Boolean` | false | Determine if the portlet will use the parameter on URL as the path to content to display
ParameterName | `String` | content-id | Determine what parameter will be used to get the content's path
ShowVote | `Boolean` | false | Show the result of voting for the displayed content.
ShowComments | `Boolean` | false | Show the existing comments of this content (if any)

#### Sample configuration

    <portlet-preferences>
      <preference>
        <name>repository</name>
        <value>repository</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>workspace</name>
        <value>collaboration</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>nodeIdentifier</name>
        <value>/myfolder/mycontent</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>ShowTitle</name>
        <value>true</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>ShowDate</name>
        <value>false</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>ShowOptionBar</name>
        <value>false</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>ShowPrintAction</name>
        <value>true</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>isQuickCreate</name>
        <value>false</value>
        <read-only>true</read-only>
      </preference>
      <preference>
        <name>ContextEnable</name>
        <value>false</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>ParameterName</name>
        <value>content-id</value>
        <read-only>false</read-only>
      </preference>
    </portlet-preferences>

Note: In 2.1.x, there is some preference is no longer used: for example: ShowPrintAction preference,..

### Content List

#### Available preferences

Preference | Type | Default Value | Description
--- | --- | --- | ---
mode | `String` | AutoViewerMode | The mode that the portlet uses to display content: all contents in a specified folder or all contents specified in the portlet.
folderPath | `String` |  | The path to the folder whose contents are displayed by this portlet.
orderBy | `String` | publication:liveDate | The property by which all the contents in portlet are sorted.
orderType | `String` | DESC | The type of the content sort method: ascending or descending
header | `String` |  | Header of the portlet. It is displayed at the top of the portlet.
automaticDetection | `Boolean` | true | This value indicates whether the header of the portlet is chosen to be the title of the folder given in the folderPath parameter (true value) or the value given in the header paramter above
formViewTemplatePath | `String` | /exo:ecm/views/templates/Content List Viewer/list-by-folder/UIContentListPresentationDefault.gtmpl | Path to the template used to display the contents in this portlet.
paginatorTemplatePath | `String` | /exo:ecm/views/templates/Content List Viewer/paginators/UIPaginatorDefault.gtmpl | Path to the paginator used to display the contents in this portlet.
itemsPerPage | `Integer` | 10 | Number of contents displayed in every "page" of the portlet.
showThumbnailsView | `Boolean` | true | This value indicates whether the content image in this portlet is shown or not.
showTitle | `Boolean` | true | This value indicates whether the content title in this portlet is shown or not.
showHeader | `Boolean` | true | This value indicates whether the content header in this portlet is shown or not.
showRefreshButton | `Boolean` | false | This value indicates whether the refresh button is shown in this portlet or not.
showDateCreated | `Boolean` | true | This value indicates whether the content created date in this portlet is shown or not.
showReadmore | `Boolean` | true | This value indicates whether the Readmore" button is shown in every content of the portlet (After clicking this button, user can read the whole text of the content).
showSummary | `Boolean` | true | This value indicates whether the content summary in this portlet is shown or not.
showLink | `Boolean` | true | If this value is true, the header of every content is also the link to view this content fully. If the value is false, the header is considered as a simple text
showRssLink | `Boolean` | true | Show the rss link of this portlet.
basePath | `String` | detail | Show the page in which the full content is displayed when user clicks to the Read more button.
contextualFolder | `String` | contextualDisable | Enable/ disable the contextual mode of the portlet. If enabled, the portlet can take the folder path indicated in the URL to display contents.
showScvWith | `String` | content-id | The name of the parameter showing the path of content in url to display when click on "Read more" button of this content.
showClvBy | `String` | folder-id | The name of the parameter showing the path of the folder in url to display its contents.

#### Sample Configuration

    <portlet-preferences>
      <preference>
        <name>mode</name>
        <value>AutoViewerMode</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>folderPath</name>
        <value/>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>orderBy</name>
        <value>publication:liveDate</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>orderType</name>
        <value>DESC</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>header</name>
        <value/>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>automaticDetection</name>
        <value>true</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>formViewTemplatePath</name>
        <value>/exo:ecm/views/templates/Content List Viewer/list-by-folder/UIContentListPresentationDefault.gtmpl</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>paginatorTemplatePath</name>
        <value>/exo:ecm/views/templates/Content List Viewer/paginators/UIPaginatorDefault.gtmpl</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>itemsPerPage</name>
        <value>10</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>showThumbnailsView</name>
        <value>true</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>showTitle</name>
        <value>true</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>showHeader</name>
        <value>true</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>showRefreshButton</name>
        <value>false</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>showDateCreated</name>
        <value>true</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>showReadmore</name>
        <value>true</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>showSummary</name>
        <value>true</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>showLink</name>
        <value>true</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>showRssLink</name>
        <value>true</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>basePath</name>
        <value>detail</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>contextualFolder</name>
        <value>contextualDisable</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>showScvWith</name>
        <value>content-id</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>showClvBy</name>
        <value>folder-id</value>
        <read-only>false</read-only>
      </preference>
    </portlet-preferences>

### Search

#### Available preferences

Preference | Type | Default value | Description
--- | --- | --- | ---
repository | `String` | repository | The current repository name. always is "repository"
workspace | `String` | collaboration | The workspace where the content is stored
searchFormTemplatePath | `String` | /exo:ecm/views/templates/WCM Advance Search/search-form/UIDefaultSearchForm.gtmpl | path to the search form template
searchResultTemplatePath | `String` | /exo:ecm/views/templates/WCM Advance Search/search-result/UIDefaultSearchResult.gtmpl | path to the search result template
searchPaginatorTemplatePath | `String` | /exo:ecm/views/templates/WCM Advance Search/search-paginator/UIDefaultSearchPaginator.gtmpl | path to the search paginator template
searchPageLayoutTemplatePath | `String` | /exo:ecm/views/templates/WCM Advance Search/search-page-layout/UISearchPageLayoutDefault.gtmpl | path to the search page template
itemsPerPage | `Integer` | 5 | the number of items for each page
showQuickEditButton | `Boolean` | true | show or hide the quick edit icon (!)
basePath | `String` | parameterizedviewer | the page which used to display the search result

#### Sample configuration

    <portlet-preferences>
      <preference>
        <name>repository</name>
        <value>repository</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>workspace</name>
        <value>collaboration</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>searchFormTemplatePath</name>
        <value>/exo:ecm/views/templates/WCM Advance Search/search-form/UIDefaultSearchForm.gtmpl</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>searchResultTemplatePath</name>
        <value>/exo:ecm/views/templates/WCM Advance Search/search-result/UIDefaultSearchResult.gtmpl</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>searchPaginatorTemplatePath</name>
        <value>/exo:ecm/views/templates/WCM Advance Search/search-paginator/UIDefaultSearchPaginator.gtmpl</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>searchPageLayoutTemplatePath</name>
        <value>/exo:ecm/views/templates/WCM Advance Search/search-page-layout/UISearchPageLayoutDefault.gtmpl</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>itemsPerPage</name>
        <value>5</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>showQuickEditButton</name>
        <value>true</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>basePath</name>
        <value>parameterizedviewer</value>
        <read-only>false</read-only>
      </preference>
    </portlet-preferences>

### Explorer

#### Available preferences

Preference | Type | Default value | Description
--- | --- | --- | ---
repository | `String` | repository | The repository name which will be used in an instance of Site Explorer
workspace | `String` | N/A | Not in used. The workspace name was included in the Drive(!)
path | `String` | N/A | The path of node. This preference will be used when you choose the usecase is Parameterize
drive | `String` | N/A | Not in used. Replaced by driveName preference(!)
views | `String` | N/A | Not in used. The views will be displayed based on the Drive which user has access permission(!)
allowCreateFolders | `String` | N/A | Allow to create a folder by type. When you don't specify the value then the default value will be nt:unstructured, nt:folder
categoryMandatoryWhenFileUpload | `Boolean` | false | Force an user to add a category when uploading or creating a document
uploadFileSizeLimitMB | `Float` | 150 | The maximum of file size when upload to the system (MB)
usecase | `String` | selection | The behavior to access Site Explorer. By default the "selection" option is configured. Besides "selection", there are 4 other ways to configure the file explorer: Jailed,Personal,Social,Parameterize
driveName | `String` | Private | The name of a drive that an user wants to access
trashHomeNodePath | `String` | /Trash | The location to store the deleted nodes
trashRepository | `String` | repository | The repository name where store the deleted nodes
trashWorkspace | `String` | collaboration | The workspace name where store the deleted nodes
editInNewWindow | `Boolean` | false | Allow to edit document with or without window popup. By default the value is false
showTopBar | `Boolean` | true | Allow to show the Top bar or not. By default the value is true
showActionBar | `Boolean` | true | Allow to show action bar or not. By default the value is true
showSideBar | `Boolean` | true | Allow to show the side bar or not. By default the value is true
showFilterBar | `Boolean` | true | Allow to show the Filter bar or not. By default the value is true

#### Example of configuration

    <portlet-preferences>
      <preference>
        <name>repository</name>
        <value>repository</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>workspace</name>
        <value/>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>path</name>
        <value/>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>drive</name>
        <value/>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>views</name>
        <value/>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>allowCreateFolders</name>
        <value/>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>categoryMandatoryWhenFileUpload</name>
        <value>false</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>uploadFileSizeLimitMB</name>
        <value>150</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>usecase</name>
        <value>selection</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>driveName</name>
        <value>Private</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>trashHomeNodePath</name>
        <value>/Trash</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>trashRepository</name>
        <value>repository</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>trashWorkspace</name>
        <value>collaboration</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>editInNewWindow</name>
        <value>false</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>showTopBar</name>
        <value>true</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>showActionBar</name>
        <value>true</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>showSideBar</name>
        <value>true</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>showFilterBar</name>
        <value>true</value>
        <read-only>false</read-only>
      </preference>
    </portlet-preferences>

### Administration

#### Available preferences

Preference | Type | Default | Description
--- | --- | --- | ---
repository | `String` | repository | The current repository name. Default value is "repository"

#### Sample Configuration

    <portlet-preferences>
      <preference>
        <name>repository</name>
        <value>repository</value>
        <read-only>false</read-only>
      </preference>
    </portlet-preferences>

### Fast Content Creator

#### Available preferences

Preference | Type | Default Value | Description
--- | --- | --- | ---
mode | `String` | basic | The default mode for fast content creator portlet
repository | `String` | repository | The current repository name. always is "repository"
workspace | `String` | collaboration | The workspace where the content is stored
path | `String` | /Groups/platform/users/Documents | The destination path where the content is stored
type | `String` | exo:article | The node type of document which will be show on the dialog form
saveButton | `String` | Save | The custom button Save
saveMessage | `String` | This node has been saved successfully | The custom message when click Save button
isRedirect | `Boolean` | false | Redirect to other page or not
redirectPath | `String` | http://www.google.com.vn | The page will redirect to
isActionNeeded | `Boolean` | true | Is an action needed to save the configuration

#### Example Configuration

    <portlet-preferences>
      <preference>
        <name>mode</name>
        <value>basic</value>
        <read-only>true</read-only>
      </preference>
      <preference>
        <name>repository</name>
        <value>repository</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>workspace</name>
        <value>collaboration</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>path</name>
        <value>/Groups/platform/users/Documents</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>type</name>
        <value>exo:article</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>saveButton</name>
        <value>Save</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>saveMessage</name>
        <value>This node has been saved successfully</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>isRedirect</name>
        <value>false</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>redirectPath</name>
        <value>http://www.google.com.vn</value>
        <read-only>false</read-only>
      </preference>
      <preference>
        <name>isActionNeeded</name>
        <value>true</value>
        <read-only>true</read-only>
      </preference>
    </portlet-preferences>

- Prev
- Up
- Home
- Next