SlideShare a Scribd company logo
INSTALL PROFILES
• Drupal consulting,
development, and training

• Founded in 2007 by Alex and
Suzanne

• Help organizations build
awesome Drupal websites
with custom functionality
About me
Projects
What’s an Install
Profile?
Drupal Install Profile
• Installs modules/themes by default

• Create sample content

• Set variables

• Allows admins to choose options

• Create consistent versions of the same site
Why Would You Use It?
• Deploying lots of similar websites

• Be able to make changes to them quickly

• Limit the variability between websites

• Make it easier for content editors to get up
and running
Install Profile Alternatives
• Create a post-install script (drush commands
and php scripts)

• Create an install profile

• Create a deploy module

• Default database dump
Where to start?
• Minimal/standard install profiles in core

• Your list of modules

• Custom modules and themes you’ve
developed

• Configuration from the sites you’ve already
built
CREATING AN
INSTALL PROFILE
Basic steps
1. Assemble modules/theme

2. Create key pieces of configuration

3. Create the install profile

4. Test the install profile and iterate
Creating the
Configuration
Analyse the Requirements
2 Types of Configuration
Features
Configuration that needs
to be synchronized/the
same for all sites

• Contexts

• Views

• Content Types

• WYSIWYG profiles

• Permissions
Default Config
Configuration that needs to be
customizable/flexible. Added
during install

• Custom blocks

• Name of the site

• Menu items

• Theme settings

• Views: using
hook_views_default_views()
Re-usable components
• Things that are identical for all sites. 

• You can build these with features!

• Contexts

• Views

• Content Types

• WYSIWYG profiles

• Permissions
Default configuration
• Things that admins need to be able to
change. 

• Set the defaults in your .install file:

• Custom blocks

• Name of the site

• Menu items

• Theme settings

• Views: using hook_views_default_views()
Example: Social Media Block
Add to Any block
configuration and
block placement
added in a Feature
Example: Main Menu Block
Main Menu block
placed in context (in a
Feature)

title added in default
configuration
Homepage Content
Homepage Node
created in the install
process

front page setting set
in default configuration
Example: Videos Page
Video Content Type
& Videos View
defined in a feature
Example: Global News Feed
Global News View
Default view is created
using views_json_query
module
Example: WYSIWYG
Text Editor
WYSIWYG profile added
in Features
Theming
Theming key components
Main theme vs. sub-themes
Theme settings
• You might have some theme settings that
you want to set in the install process:

• Variable colour schemes

• Banner image

• Height of the banner section

• Distinct themes for different use cases
Shared content
Creating the Install
Profile
.info File
name = My install profile
description = Example profile
core = 7.x
version = 0.1
!
;Core Dependencies
dependencies[] = block
dependencies[] = color
dependencies[] = comment
.install file
• hook_install

• add text formats

• enable blocks

• set variables

• create fields and field instances

• set up default content
.profile file
• hook_install_tasks

• array of steps for the installer

• each step corresponds to a callback
function (could be a form)

• hook_install_tasks_alter

• you can unset steps in the default process
Components in Features
Custom Modules
Custom Theme
Testing and Iterating!
Selecting a profile
Default steps
hook_install_tasks_alter
Configuration steps
hook_install_tasks
Test the Site & Iterate
USING MAKE FILES
drupal-org-core.make
core = 7.x
api = 2
!
projects[drupal][version] = "7.38"
!
projects[views_bulk_operations][version] = "3.2"
projects[views_bulk_operations][subdir] = "contrib"
!
projects[admin_menu][version] = "3.0-rc4"
projects[admin_menu][subdir] = "contrib"
my-install-profile.make
api = 2
core = 7.x
; Include the definition for how to build Drupal core
directly
includes[] = drupal-org-core.make
!
;My Install Profile
projects[my_install_profile][download][type] = "git"
projects[my_install_profile][download][url] = “https://
github.com/pixelite/my-install-profile”
projects[my_install_profile][download][branch] = "master"
projects[my_install_profile][type] = "profile"
Using the Make Files
Create a makefile using Drush:
drush make-generate
!
Run the make files using Drush:
drush make my-install-profile.make
HOW THIS WORKS IN
DRUPAL 8
Drupal 8 Install Profiles
• my-install-profile.info.yml

• my-install-profile.profile

• my-install-profile.install
Default configuration
Default configuration
Thanks & QA
Ad

Recommended

454684339 banco-cto-gastroenterologia-pdf
454684339 banco-cto-gastroenterologia-pdf
Diego Armando Bolivar Silva
 
Extracción de anzuelo
Extracción de anzuelo
KimberlyCrespo
 
Wk7 assgnapanewiczg organization profile
Wk7 assgnapanewiczg organization profile
Gary Apanewicz PMP
 
Panels and Page Manager в Drupal 8
Panels and Page Manager в Drupal 8
Kate Marshalkina
 
Action against hunger
Action against hunger
Tristan Chia
 
Hr management
Hr management
Smit Patel
 
Summary of the organization profile,b.i.d.a
Summary of the organization profile,b.i.d.a
Mulokozi Jackson
 
Wk7 assgndarby, p organization profile
Wk7 assgndarby, p organization profile
pdarby2013
 
Creating a Reusable Drupal Website for Higher Education - Webinar
Creating a Reusable Drupal Website for Higher Education - Webinar
Suzanne Dergacheva
 
Creating a Reusable Drupal Website for Higher Education - at USG Tech Day
Creating a Reusable Drupal Website for Higher Education - at USG Tech Day
Suzanne Dergacheva
 
Responsive themeworkshop wcneo2016
Responsive themeworkshop wcneo2016
David Brattoli
 
Manage Deployments with Install Profiles and Git
Manage Deployments with Install Profiles and Git
nhepner
 
Keeping Your Themes and Plugins Organized.
Keeping Your Themes and Plugins Organized.
Jacob Martella
 
How to customise Joomla
How to customise Joomla
Tim Plummer
 
Creating Landing Pages and Layouts for Drupal 8 - DrupalCon Baltimore
Creating Landing Pages and Layouts for Drupal 8 - DrupalCon Baltimore
Suzanne Dergacheva
 
Keep Your Code Organized! WordCamp Montreal 2013 Presentation slides
Keep Your Code Organized! WordCamp Montreal 2013 Presentation slides
Jer Clarke
 
Responsive Theme Workshop - WordCamp Columbus 2015
Responsive Theme Workshop - WordCamp Columbus 2015
Joe Querin
 
Building a Drupal Distribution using Features, Drush Make, Installation Profi...
Building a Drupal Distribution using Features, Drush Make, Installation Profi...
Ben Shell
 
Wordpress theme development
Wordpress theme development
Naeem Junejo
 
Features & Installation Profiles
Features & Installation Profiles
David Watson
 
The WordPress University
The WordPress University
Stephanie Leary
 
Beginner's guide to drupal
Beginner's guide to drupal
mayank.grd
 
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
Ortus Solutions, Corp
 
Quick Wins to Jump Start Your SharePoint Implementation - SPEngage Raleigh 2016
Quick Wins to Jump Start Your SharePoint Implementation - SPEngage Raleigh 2016
Jim Adcock
 
Child Themes and CSS in WordPress
Child Themes and CSS in WordPress
Matthew Vaccaro
 
72d5drupal
72d5drupal
Mahesh Sherkar
 
Joomla Beginner Template Presentation
Joomla Beginner Template Presentation
alledia
 
Get Up and Running Quickly with Drupal Distributions
Get Up and Running Quickly with Drupal Distributions
Melissa Piper
 
It's All About the Experience: What I’ve learnt from talking to thousands of ...
It's All About the Experience: What I’ve learnt from talking to thousands of ...
Suzanne Dergacheva
 
Building a Great User Experience for Content Editors in Drupal 8
Building a Great User Experience for Content Editors in Drupal 8
Suzanne Dergacheva
 

More Related Content

Similar to Creating a Drupal Install Profile for a Large Organization (20)

Creating a Reusable Drupal Website for Higher Education - Webinar
Creating a Reusable Drupal Website for Higher Education - Webinar
Suzanne Dergacheva
 
Creating a Reusable Drupal Website for Higher Education - at USG Tech Day
Creating a Reusable Drupal Website for Higher Education - at USG Tech Day
Suzanne Dergacheva
 
Responsive themeworkshop wcneo2016
Responsive themeworkshop wcneo2016
David Brattoli
 
Manage Deployments with Install Profiles and Git
Manage Deployments with Install Profiles and Git
nhepner
 
Keeping Your Themes and Plugins Organized.
Keeping Your Themes and Plugins Organized.
Jacob Martella
 
How to customise Joomla
How to customise Joomla
Tim Plummer
 
Creating Landing Pages and Layouts for Drupal 8 - DrupalCon Baltimore
Creating Landing Pages and Layouts for Drupal 8 - DrupalCon Baltimore
Suzanne Dergacheva
 
Keep Your Code Organized! WordCamp Montreal 2013 Presentation slides
Keep Your Code Organized! WordCamp Montreal 2013 Presentation slides
Jer Clarke
 
Responsive Theme Workshop - WordCamp Columbus 2015
Responsive Theme Workshop - WordCamp Columbus 2015
Joe Querin
 
Building a Drupal Distribution using Features, Drush Make, Installation Profi...
Building a Drupal Distribution using Features, Drush Make, Installation Profi...
Ben Shell
 
Wordpress theme development
Wordpress theme development
Naeem Junejo
 
Features & Installation Profiles
Features & Installation Profiles
David Watson
 
The WordPress University
The WordPress University
Stephanie Leary
 
Beginner's guide to drupal
Beginner's guide to drupal
mayank.grd
 
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
Ortus Solutions, Corp
 
Quick Wins to Jump Start Your SharePoint Implementation - SPEngage Raleigh 2016
Quick Wins to Jump Start Your SharePoint Implementation - SPEngage Raleigh 2016
Jim Adcock
 
Child Themes and CSS in WordPress
Child Themes and CSS in WordPress
Matthew Vaccaro
 
72d5drupal
72d5drupal
Mahesh Sherkar
 
Joomla Beginner Template Presentation
Joomla Beginner Template Presentation
alledia
 
Get Up and Running Quickly with Drupal Distributions
Get Up and Running Quickly with Drupal Distributions
Melissa Piper
 
Creating a Reusable Drupal Website for Higher Education - Webinar
Creating a Reusable Drupal Website for Higher Education - Webinar
Suzanne Dergacheva
 
Creating a Reusable Drupal Website for Higher Education - at USG Tech Day
Creating a Reusable Drupal Website for Higher Education - at USG Tech Day
Suzanne Dergacheva
 
Responsive themeworkshop wcneo2016
Responsive themeworkshop wcneo2016
David Brattoli
 
Manage Deployments with Install Profiles and Git
Manage Deployments with Install Profiles and Git
nhepner
 
Keeping Your Themes and Plugins Organized.
Keeping Your Themes and Plugins Organized.
Jacob Martella
 
How to customise Joomla
How to customise Joomla
Tim Plummer
 
Creating Landing Pages and Layouts for Drupal 8 - DrupalCon Baltimore
Creating Landing Pages and Layouts for Drupal 8 - DrupalCon Baltimore
Suzanne Dergacheva
 
Keep Your Code Organized! WordCamp Montreal 2013 Presentation slides
Keep Your Code Organized! WordCamp Montreal 2013 Presentation slides
Jer Clarke
 
Responsive Theme Workshop - WordCamp Columbus 2015
Responsive Theme Workshop - WordCamp Columbus 2015
Joe Querin
 
Building a Drupal Distribution using Features, Drush Make, Installation Profi...
Building a Drupal Distribution using Features, Drush Make, Installation Profi...
Ben Shell
 
Wordpress theme development
Wordpress theme development
Naeem Junejo
 
Features & Installation Profiles
Features & Installation Profiles
David Watson
 
The WordPress University
The WordPress University
Stephanie Leary
 
Beginner's guide to drupal
Beginner's guide to drupal
mayank.grd
 
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
Ortus Solutions, Corp
 
Quick Wins to Jump Start Your SharePoint Implementation - SPEngage Raleigh 2016
Quick Wins to Jump Start Your SharePoint Implementation - SPEngage Raleigh 2016
Jim Adcock
 
Child Themes and CSS in WordPress
Child Themes and CSS in WordPress
Matthew Vaccaro
 
Joomla Beginner Template Presentation
Joomla Beginner Template Presentation
alledia
 
Get Up and Running Quickly with Drupal Distributions
Get Up and Running Quickly with Drupal Distributions
Melissa Piper
 

More from Suzanne Dergacheva (20)

It's All About the Experience: What I’ve learnt from talking to thousands of ...
It's All About the Experience: What I’ve learnt from talking to thousands of ...
Suzanne Dergacheva
 
Building a Great User Experience for Content Editors in Drupal 8
Building a Great User Experience for Content Editors in Drupal 8
Suzanne Dergacheva
 
Dipping Your Toe into Drupal 8 Module Development
Dipping Your Toe into Drupal 8 Module Development
Suzanne Dergacheva
 
Device-Agnostic Content Strategy for Drupal
Device-Agnostic Content Strategy for Drupal
Suzanne Dergacheva
 
What is Drupal? And Why is it Useful? Webinar
What is Drupal? And Why is it Useful? Webinar
Suzanne Dergacheva
 
Creating Layouts and Landing Pages for Drupal 8 - DrupalCon Dublin
Creating Layouts and Landing Pages for Drupal 8 - DrupalCon Dublin
Suzanne Dergacheva
 
What is Drupal? An Introduction to Drupal 8
What is Drupal? An Introduction to Drupal 8
Suzanne Dergacheva
 
Using Core Themes in Drupal 8
Using Core Themes in Drupal 8
Suzanne Dergacheva
 
Minimalist Theming: How to Build a Lean, Mean Drupal 8 Theme
Minimalist Theming: How to Build a Lean, Mean Drupal 8 Theme
Suzanne Dergacheva
 
Upgrading to Drupal 8: Benefits and Gotchas
Upgrading to Drupal 8: Benefits and Gotchas
Suzanne Dergacheva
 
Migrate for Site Builders from MidCamp 2016
Migrate for Site Builders from MidCamp 2016
Suzanne Dergacheva
 
The Wonderful World of Drupal 8 Multilingual
The Wonderful World of Drupal 8 Multilingual
Suzanne Dergacheva
 
Intro to Drupal Migrate for Site Builders
Intro to Drupal Migrate for Site Builders
Suzanne Dergacheva
 
Drupal migrate-june2015
Drupal migrate-june2015
Suzanne Dergacheva
 
10 New Things You Can Do with Drupal 8 Out-of-the-Box
10 New Things You Can Do with Drupal 8 Out-of-the-Box
Suzanne Dergacheva
 
Creating Dynamic Landing Pages for Drupal with Panels - Webinar
Creating Dynamic Landing Pages for Drupal with Panels - Webinar
Suzanne Dergacheva
 
Creating a User-Friendly Search UI with Drupal - Presentation at DrupalCamp T...
Creating a User-Friendly Search UI with Drupal - Presentation at DrupalCamp T...
Suzanne Dergacheva
 
Getting Started with Drupal 8 Theming - DrupalCamp Toronto 2014
Getting Started with Drupal 8 Theming - DrupalCamp Toronto 2014
Suzanne Dergacheva
 
DrupalCamp NYC Panels Presentation - April 2014
DrupalCamp NYC Panels Presentation - April 2014
Suzanne Dergacheva
 
Using Panels Wisely - DrupalCamp Ottawa 2014
Using Panels Wisely - DrupalCamp Ottawa 2014
Suzanne Dergacheva
 
It's All About the Experience: What I’ve learnt from talking to thousands of ...
It's All About the Experience: What I’ve learnt from talking to thousands of ...
Suzanne Dergacheva
 
Building a Great User Experience for Content Editors in Drupal 8
Building a Great User Experience for Content Editors in Drupal 8
Suzanne Dergacheva
 
Dipping Your Toe into Drupal 8 Module Development
Dipping Your Toe into Drupal 8 Module Development
Suzanne Dergacheva
 
Device-Agnostic Content Strategy for Drupal
Device-Agnostic Content Strategy for Drupal
Suzanne Dergacheva
 
What is Drupal? And Why is it Useful? Webinar
What is Drupal? And Why is it Useful? Webinar
Suzanne Dergacheva
 
Creating Layouts and Landing Pages for Drupal 8 - DrupalCon Dublin
Creating Layouts and Landing Pages for Drupal 8 - DrupalCon Dublin
Suzanne Dergacheva
 
What is Drupal? An Introduction to Drupal 8
What is Drupal? An Introduction to Drupal 8
Suzanne Dergacheva
 
Minimalist Theming: How to Build a Lean, Mean Drupal 8 Theme
Minimalist Theming: How to Build a Lean, Mean Drupal 8 Theme
Suzanne Dergacheva
 
Upgrading to Drupal 8: Benefits and Gotchas
Upgrading to Drupal 8: Benefits and Gotchas
Suzanne Dergacheva
 
Migrate for Site Builders from MidCamp 2016
Migrate for Site Builders from MidCamp 2016
Suzanne Dergacheva
 
The Wonderful World of Drupal 8 Multilingual
The Wonderful World of Drupal 8 Multilingual
Suzanne Dergacheva
 
Intro to Drupal Migrate for Site Builders
Intro to Drupal Migrate for Site Builders
Suzanne Dergacheva
 
10 New Things You Can Do with Drupal 8 Out-of-the-Box
10 New Things You Can Do with Drupal 8 Out-of-the-Box
Suzanne Dergacheva
 
Creating Dynamic Landing Pages for Drupal with Panels - Webinar
Creating Dynamic Landing Pages for Drupal with Panels - Webinar
Suzanne Dergacheva
 
Creating a User-Friendly Search UI with Drupal - Presentation at DrupalCamp T...
Creating a User-Friendly Search UI with Drupal - Presentation at DrupalCamp T...
Suzanne Dergacheva
 
Getting Started with Drupal 8 Theming - DrupalCamp Toronto 2014
Getting Started with Drupal 8 Theming - DrupalCamp Toronto 2014
Suzanne Dergacheva
 
DrupalCamp NYC Panels Presentation - April 2014
DrupalCamp NYC Panels Presentation - April 2014
Suzanne Dergacheva
 
Using Panels Wisely - DrupalCamp Ottawa 2014
Using Panels Wisely - DrupalCamp Ottawa 2014
Suzanne Dergacheva
 
Ad

Creating a Drupal Install Profile for a Large Organization