How to Write a Drupal 8 Installation Profile

This article is being written based on the Spark distribution.

Installation profiles are like modules

All installation profiles must have:

  2. profilename.profile

files, and they can also have a profilename.install file.

The profilename.profile file has access to almost everything a normal Drupal modulename.module file does because Drupal is fully bootstrapped before almost anything in the profile runs. The primary exception is that st() should generally be used to translate strings instead of the usual t() because the localization hasn't been set up until the installation process completes. Profile files should reside in their own directory within the /profiles directory to be loaded.

.info.yml file

The file should look similar to this:

Features that Extend CRM Core

CRM Core is designed to act as a platform where developers can extend the basic capabilities of the system using features.

A feature is a small, useful application designed to extend what CRM Core does. A feature may be a Feature in the Drupal module sense of the word, but it does not have to be. Any module that extends the basic functionality of CRM Core can be considered a feature.

There is a growing list of features for CRM Core becoming available. These features are freely available for use in your Drupal websites. Some features come bundled as part of installation profiles that you can use to easily get up-and-running with a fully-configured version of CRM Core. Installation profiles are generally configured for a specific purpose, but can easily be modified to handle other use cases.

Utility Modules

  • CRM Core Profile: A form builder for CRM Core. Allows site builders to easily create forms that collect information about contacts and activities.

Using Demo Framework Scenarios

Demo Framework Scenarios are Features modules that extend the Demo Framework distribution. The idea behind a scenario is that once enabled via DF, it provides a full demo site complete with content, taxonomy, landing pages etc.

DF comes with one of these "out-of-the-box" demos as an example. One can copy (or "fork") a scenario, changing it to make a unique demo for their own purposes.

WEM Demo (dfs_wem)

Web experience management through content, community and commerce.

There are two ways to enable the WEM Demo.


Training is a Drupal distribution for building Drupal based training websites / portal which brings together information about diverse courses (Drupal, PHP, Soft Skills, Personality Development etc.) in a unified way.

Training distribution contains most of the modules and basic configuration (content-types, views, features) you would need to create a training portal.

The core features of Training include :

  • Inbuilt Roles - Trainer, Trainee.
  • Inbuilt Vocabulary – Courses.
  • Inbuilt Content Types - Course Topic, Course SubTopic, Course Assignments, Training, Training-Calender.
  • Inbuilt Block – Courses taxonomy-view.
  • Inbuilt Views - Calendar, Courses Listing, Topic-SubTopic Listing.
  • Each course has a dedicated page, listing topic - sub topics with links having detailed description.
  • The most interesting feature of this distribution is that Trainer can upload multiple videos, pdfs, documents under Course Topic and Course Sub-topic which Trainees can watch / read whenever they want.
  • Trainers can schedule the trainings on various courses / topics / sub-topics with the help of Training-Calender content-type.
  • Customizable home page with calendar view displaying all the scheduled trainings.


Subscribe with RSS Subscribe to RSS - Distributions