Documentation Center

Creating Folder structure in Content Manager

A custom module implements a distinct piece of functionality that is only relevant to some implementations. When you want to add a module to SDL Digital Experience Accelerator, create the following Module Folder structure in Content Manager.

About this task

DXA core
The core of DXA consists of common Content Manager and Web application assets. These include frequently used Content Types such as Carousels, Teasers and Articles, common Content Manager elements such as Header, Footer, and Navigation Management, and Web application functionality like Content Queries and Redirects. The core DXAelements are useful in any implementation and do not require any specific additional licenses, accounts or API keys for SDL or 3rd-party services.
DXA modules
Functionality that is only relevant in some implementations (Audience Manager registration forms), or require specific installation (a search engine), or a specific license, account or API key (Social Network Integration, Google Analytics, and so on) is implemented as a Module. The separation of Core and Module functionality eases maintenance and allows you to easily install, remove, or disable optional add-on functionality.
When you install DXA, Publication Modules are installed in the 100 Master Publication in the Building Blocks/Modules Folder: each sub Folder contains a Module.

Procedure

  1. Open Content Manager Explorer.
  2. Go to the 100 Master/Building Blocks/Modules and create a new sub Folder.
    Use a unique, but simple and descriptive camel-cased name such as Search, Social, GoogleAnalytics, and so on. Consider using your company name in a naming convention to ensure Module names do not clash with others from other companies, for example CompanyNameModuleName.
  3. Create the following structure in the root ModuleName Folder:
    
    ModuleName
      
    --Admin
        ModuleName (configuration Component)
    --Developer
        Schemas
        Templates
        ModuleName Template Building Blocks 
    --Editor
        Schemas
        Templates
    --Site Manager
        Schemas
        Templates
    The Admin sub Folder and configuration Component are mandatory.
    The Developer, Editor, and Site Manager sub Folders contain assets which should be available to users with these roles. These folders are optional: if a role has no assets, you do not need to create the Folder.
    FolderDescription
    AdminMandatory sub Folder that contains the configuration Component based on the Module Configuration Schema.
    Developer, Editor, and Site ManagerSub Folders that contain assets which should be available to users with these roles. These folders are optional: if a role has no assets, you do not need to create the Folder.
    SchemasContains Schemas.
    TemplatesContains Page and Component Templates for each role.
    ModuleName Template Building BlocksContains Template Building Blocks Page (for Developers only). Include the ModuleName in the name to clearly mark and organize the TBBs in Template Builder.
  4. In the Admin, create the Component ModuleName configuration Component using the Module Configuration schema
    The main configuration component for a module lives in the Admin folder (and as such is only editable by Admin role)
  5. You can provide a Module Name, Version, and URL to further information about the module. Other properties are only editable by the installer.
  6. If the module is dependent on other modules, add Component Links to manage the relationship and specify a version.
  7. Use the Further Configuration and Resources fields to link to (multiple) configuration and resource components which contain specifics for configuring the module (for example account IDs) and providing translatable resources such as labels, error messages, and so on. These are separated from the main module configuration as they are likely to be updated to be implementation specific and so should not be overwritten by the installer when updating a module.

    The resource and config components are located in the Building Blocks/Settings/ModuleName Folder, in the appropriate Developer/Editor/Site Manager wsub Folder here the appropriate users can access and read/update/localize configuration and resources.

    You can use a custom Schema for configuration and resources, or the General Configuration Schema to provide multi-value name-value pairs. Configuration and resources are merged per module and published to the Web application, so you must ensure that for each module the XML names of custom Schema fields do not clash across multiple Components or that General Configuration name-value pairs have the same name.