Skip to content
Jon Litfin edited this page Feb 14, 2018 · 3 revisions

Background

The CMAP Liferay instance includes a small number of custom modules.

Module Fragments

Module fragments extend existing Liferay modules by overriding their JSP files. For more information about modules fragments, see Overriding App JSPs in the Liferay documentation.

  • asset-publisher-web-fragment

    This is a module fragment project that extends the com.liferay.asset.publisher.web module. It makes Abstract Length an editable value on all Asset Publisher instances.

  • calendar-web-fragment

    This is a module fragment project that extends the com.liferay.calendar.web module. It adds some customizations to the event modal popup.

To troubleshoot module fragments, you will probably need to use the Felix Gogo shell.

In the Gogo shell bundle list, module fragments should show up as either Installed or Resolved. If a module fragment is Installed, it means it has an unresolved dependency. You can use the diag command to find out what the problem is.

Sometimes, if you have frequently redeployed the same module fragment, it will not be resolved. You can usually fix this by removing and adding the module in the Server pane.

MVC Portlets

MVC portlets implement the Model View Controller (MVC) pattern and are used to read and write data. For more information about MVC portlets, see Liferay MVC Portlet in the Liferay documentation.

  • calendar-web-form-portlet

    This is a MVC portlet that contains the form used to email calendar events and the dropdown list used to jump to a specific calendar month.

  • updates-slider-portlet

    This portlet renders an Updates Slider widget, which is basically a custom Asset Publisher with a small number of configurable properties -- Asset Category, Number of Items to Display, and Summary Length.

JS Module Overrides

These modules extend the JavaScript in Liferay web modules, using the Liferay AMD Module Loader. For more information about the Liferay AMD Module Loader, see Liferay AMD Module Loader in the Liferay documentation.

  • calendar-web-js

    This project overrides the JavaScript in the Liferay Calendar Web module to add a few new features and customize its behavior.

Important Note: The version of the Liferay Calendar Web module in this instance of Liferay (com.liferay.calendar.web-1.0.25) is not the most recent version.

Form Fields

Form Field modules add new, custom fields to the Liferay Forms app. For more information, see Creating Form Field Types in the Liferay documentation.

  • custom-form-field-paragraph

    This module adds a new field type called Custom Form Text. The default Form Text field type requires both a title and body text. This field type only requires a label and can be used to add instructions or other text to forms.

Inactive Modules

The modules project also includes a few modules that are not active, but are kept in the repository for reference.

  • calendar-event-importer-portlet

    This portlet imported all of the calendar events from the legacy Liferay 6.1 calevent table into the Liferay 7 calendar event tables.

  • events-list-portlet

    This is a proof of concept for a configurable portlet that displays lists of events created with the Liferay calendar.

  • featured-card-importer-portlet

    This portlet created Featured Card content for the new structure and template from the previous site’s Featured Card portlet preferences.

Building and Deploying

Modules can be manually and deployed built with Gradle. To build with Gradle, run the build / build task in the Gradle Tasks pane of the IDE. To deploy, run the build / deploy task in the Gradle Tasks pane of the IDE.

Building and Deploying in the IDE

In the Liferay IDE, you can add module resources to your local server to automatically build and deploy them any time you modify files in the src directory.

For more info, see Deploying Modules with Liferay IDE in the Liferay documentation.

Deploying to the Server

Copy the theme's JAR file from the theme's build/libs directory to the deploy directory on the server. For both the dev and prod servers, the path is /webapps/liferay-4p/liferay-dxp-digital-enterprise-7.0-sp4/deploy.

Update permissions on the remote JAR file to make it writable -- 646 should work.

Watch the logs to make sure the module has been successfully deployed. You should see lines similar to this in the logs:

17:46:25,631 INFO  [fileinstall-/webapps/liferay-2p/liferay-dxp-digital-enterprise-7.0-sp2/osgi/modules][BundleStartStopLogger:38] STOPPED custom.services-api_1.0.0 [536]
17:46:25,784 INFO  [fileinstall-/webapps/liferay-2p/liferay-dxp-digital-enterprise-7.0-sp2/osgi/modules][BundleStartStopLogger:38] STOPPED custom.services-service_1.0.0 [537]
17:46:26,137 INFO  [Refresh Thread: Equinox Container: a0e0c2f0-0a73-0017-15d1-964ebca560be][BundleStartStopLogger:35] STARTED custom.services-api_1.0.0 [536]
17:46:26,565 INFO  [Refresh Thread: Equinox Container: a0e0c2f0-0a73-0017-15d1-964ebca560be][BundleStartStopLogger:35] STARTED custom.services-service_1.0.0 [537]