SlideShare a Scribd company logo
Reusing functionality with
         Drupal
  Modules, Features, Install
  profiles and Distributions
A module is one brick
Modules
• Small and large bricks
• More then 6000+ available
• Code packages downloaded from d.o
  or drupalmodules.com
Functionality
• Module ≠ functionality, with Drupal most of the time data =
  functionality
  – e.g. Views, content types, fields, variables, comment



• Most CMS have a 'News' module, Drupal has:
  – Module Node/CCK: Content type news
  – Module Views: Multiple content listings
  – Module Taxonomy: Categorise news
  – Module Comment: Commenting on news articles



• Creating this news functionality takes configuration every time!
Features: multiple bricks
  already assembled
Features
• “A feature is a collection of Drupal entities that,
  taken together, satisfy a certain use-case.”


• Multiple bricks assembled
  – e.g. A news feature as described earlier


• Technically it's serialized data in a Drupal module.


• Build by Developmentseed
Features
• Features have a distributed system. Vendors are encouraged
  to setup a feature server.


• So where can I find them?
  – http://drupal.org/taxonomy/term/11478
  – Vendor pages like http://code.developmentseed.org



• How can I build them?
  – Http://drupal.org/project/features
  – http://drupal.org/node/580026
  – Check out modules: Ctools, Boxes, Context, Strongarm, Spaces
Install profiles: automated system
   to assemble bricks and pre-
         assembled bricks
Install profiles
• Install profile: a list of modules,
  features and themes to install and
  additional configuration to be set.
  – Limited to projects available on d.o


• Drupal's packaging script translates
  a profile into a downloadable
  package including Drupal core,
  modules and themes.
Install profiles
• 118 install profiles available
  – http://drupal.org/project/installation+profiles



• Creating a install profile:
  – http://drupal.org/node/159730
  – profilename_profile_modules(), profilename_profile_details(),
    profilename_profile_final()



• Or Drush make files:
  – http://drupal.org/project/drush_make
  – http://drupal.org/node/642116
Distributions: assembled
       packages
Distributions
• Distributions are packages similar to packaged
  install profiles. Differences:
  – Downloadable from vendor pages.
  – Modules/themes do not need to be on d.o
  – Core hacks are possible!


• Find them at: http://drupaldistrowatch.com/


• Create them by packaging your total codebase.
Questions?
• Email: r.muilwijk@madcap.nl
• Linkedin: rmuilwijk
• Twitter: rmuilwijk

More Related Content

Similar to Drupal: Reusing functionality (20)

Doing Drupal: Quick Start Deployments via Distributions
Doing Drupal: Quick Start Deployments via DistributionsDoing Drupal: Quick Start Deployments via Distributions
Doing Drupal: Quick Start Deployments via Distributions
Thom Bunting
 
Building a Drupal Distribution using Features, Drush Make, Installation Profi...
Building a Drupal Distribution using Features, Drush Make, Installation Profi...Building a Drupal Distribution using Features, Drush Make, Installation Profi...
Building a Drupal Distribution using Features, Drush Make, Installation Profi...
Ben Shell
 
Recipes for Drupal distributions
Recipes for Drupal distributionsRecipes for Drupal distributions
Recipes for Drupal distributions
Lakshmi Narasimhan Parthasarathy
 
Drupal distributions and installation profiles
Drupal distributions and installation profilesDrupal distributions and installation profiles
Drupal distributions and installation profiles
Andrei Jechiu
 
Building and Maintaining a Distribution in Drupal 7 with Features
Building and Maintaining a  Distribution in Drupal 7 with FeaturesBuilding and Maintaining a  Distribution in Drupal 7 with Features
Building and Maintaining a Distribution in Drupal 7 with Features
Nuvole
 
Drupal distributions - how to build them
Drupal distributions - how to build themDrupal distributions - how to build them
Drupal distributions - how to build them
Dick Olsson
 
Distribution Deli
Distribution DeliDistribution Deli
Distribution Deli
Wylbur
 
Features & Installation Profiles
Features & Installation ProfilesFeatures & Installation Profiles
Features & Installation Profiles
David Watson
 
Get Up and Running Quickly with Drupal Distributions
Get Up and Running Quickly with Drupal DistributionsGet Up and Running Quickly with Drupal Distributions
Get Up and Running Quickly with Drupal Distributions
Melissa Piper
 
Drupal Day 2012 - Automating Drupal Development: Make!les, Features and Beyond
Drupal Day 2012 - Automating Drupal Development: Make!les, Features and BeyondDrupal Day 2012 - Automating Drupal Development: Make!les, Features and Beyond
Drupal Day 2012 - Automating Drupal Development: Make!les, Features and Beyond
DrupalDay
 
Introduction to Drupal
Introduction to DrupalIntroduction to Drupal
Introduction to Drupal
Tom Deryckere
 
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Phase2
 
Multiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersMultiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for Publishers
Jon Peck
 
Choosing Drupal as your Content Management Framework
Choosing Drupal as your Content Management FrameworkChoosing Drupal as your Content Management Framework
Choosing Drupal as your Content Management Framework
Mediacurrent
 
Drupal in-depth
Drupal in-depthDrupal in-depth
Drupal in-depth
Kathryn Carruthers
 
Staging and Deployment
Staging and DeploymentStaging and Deployment
Staging and Deployment
heyrocker
 
Introduction to drupal
Introduction to drupalIntroduction to drupal
Introduction to drupal
Pedro Cambra
 
Drupal refcard
Drupal refcardDrupal refcard
Drupal refcard
PrinceGuru MS
 
An Introduction to Drupal
An Introduction to DrupalAn Introduction to Drupal
An Introduction to Drupal
Tobias Ratschiller
 
Drupal Distributions, an Open Source Product Model
Drupal Distributions, an Open Source Product ModelDrupal Distributions, an Open Source Product Model
Drupal Distributions, an Open Source Product Model
Lev Tsypin
 
Doing Drupal: Quick Start Deployments via Distributions
Doing Drupal: Quick Start Deployments via DistributionsDoing Drupal: Quick Start Deployments via Distributions
Doing Drupal: Quick Start Deployments via Distributions
Thom Bunting
 
Building a Drupal Distribution using Features, Drush Make, Installation Profi...
Building a Drupal Distribution using Features, Drush Make, Installation Profi...Building a Drupal Distribution using Features, Drush Make, Installation Profi...
Building a Drupal Distribution using Features, Drush Make, Installation Profi...
Ben Shell
 
Drupal distributions and installation profiles
Drupal distributions and installation profilesDrupal distributions and installation profiles
Drupal distributions and installation profiles
Andrei Jechiu
 
Building and Maintaining a Distribution in Drupal 7 with Features
Building and Maintaining a  Distribution in Drupal 7 with FeaturesBuilding and Maintaining a  Distribution in Drupal 7 with Features
Building and Maintaining a Distribution in Drupal 7 with Features
Nuvole
 
Drupal distributions - how to build them
Drupal distributions - how to build themDrupal distributions - how to build them
Drupal distributions - how to build them
Dick Olsson
 
Distribution Deli
Distribution DeliDistribution Deli
Distribution Deli
Wylbur
 
Features & Installation Profiles
Features & Installation ProfilesFeatures & Installation Profiles
Features & Installation Profiles
David Watson
 
Get Up and Running Quickly with Drupal Distributions
Get Up and Running Quickly with Drupal DistributionsGet Up and Running Quickly with Drupal Distributions
Get Up and Running Quickly with Drupal Distributions
Melissa Piper
 
Drupal Day 2012 - Automating Drupal Development: Make!les, Features and Beyond
Drupal Day 2012 - Automating Drupal Development: Make!les, Features and BeyondDrupal Day 2012 - Automating Drupal Development: Make!les, Features and Beyond
Drupal Day 2012 - Automating Drupal Development: Make!les, Features and Beyond
DrupalDay
 
Introduction to Drupal
Introduction to DrupalIntroduction to Drupal
Introduction to Drupal
Tom Deryckere
 
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Phase2
 
Multiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersMultiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for Publishers
Jon Peck
 
Choosing Drupal as your Content Management Framework
Choosing Drupal as your Content Management FrameworkChoosing Drupal as your Content Management Framework
Choosing Drupal as your Content Management Framework
Mediacurrent
 
Staging and Deployment
Staging and DeploymentStaging and Deployment
Staging and Deployment
heyrocker
 
Introduction to drupal
Introduction to drupalIntroduction to drupal
Introduction to drupal
Pedro Cambra
 
Drupal Distributions, an Open Source Product Model
Drupal Distributions, an Open Source Product ModelDrupal Distributions, an Open Source Product Model
Drupal Distributions, an Open Source Product Model
Lev Tsypin
 

Recently uploaded (20)

Evaluation Challenges in Using Generative AI for Science & Technical Content
Evaluation Challenges in Using Generative AI for Science & Technical ContentEvaluation Challenges in Using Generative AI for Science & Technical Content
Evaluation Challenges in Using Generative AI for Science & Technical Content
Paul Groth
 
6th Power Grid Model Meetup - 21 May 2025
6th Power Grid Model Meetup - 21 May 20256th Power Grid Model Meetup - 21 May 2025
6th Power Grid Model Meetup - 21 May 2025
DanBrown980551
 
Securiport - A Border Security Company
Securiport  -  A Border Security CompanySecuriport  -  A Border Security Company
Securiport - A Border Security Company
Securiport
 
ECS25 - The adventures of a Microsoft 365 Platform Owner - Website.pptx
ECS25 - The adventures of a Microsoft 365 Platform Owner - Website.pptxECS25 - The adventures of a Microsoft 365 Platform Owner - Website.pptx
ECS25 - The adventures of a Microsoft 365 Platform Owner - Website.pptx
Jasper Oosterveld
 
Create Your First AI Agent with UiPath Agent Builder
Create Your First AI Agent with UiPath Agent BuilderCreate Your First AI Agent with UiPath Agent Builder
Create Your First AI Agent with UiPath Agent Builder
DianaGray10
 
TrustArc Webinar: Mastering Privacy Contracting
TrustArc Webinar: Mastering Privacy ContractingTrustArc Webinar: Mastering Privacy Contracting
TrustArc Webinar: Mastering Privacy Contracting
TrustArc
 
Data Virtualization: Bringing the Power of FME to Any Application
Data Virtualization: Bringing the Power of FME to Any ApplicationData Virtualization: Bringing the Power of FME to Any Application
Data Virtualization: Bringing the Power of FME to Any Application
Safe Software
 
LSNIF: Locally-Subdivided Neural Intersection Function
LSNIF: Locally-Subdivided Neural Intersection FunctionLSNIF: Locally-Subdivided Neural Intersection Function
LSNIF: Locally-Subdivided Neural Intersection Function
Takahiro Harada
 
Dev Dives: System-to-system integration with UiPath API Workflows
Dev Dives: System-to-system integration with UiPath API WorkflowsDev Dives: System-to-system integration with UiPath API Workflows
Dev Dives: System-to-system integration with UiPath API Workflows
UiPathCommunity
 
Protecting Your Sensitive Data with Microsoft Purview - IRMS 2025
Protecting Your Sensitive Data with Microsoft Purview - IRMS 2025Protecting Your Sensitive Data with Microsoft Purview - IRMS 2025
Protecting Your Sensitive Data with Microsoft Purview - IRMS 2025
Nikki Chapple
 
Nix(OS) for Python Developers - PyCon 25 (Bologna, Italia)
Nix(OS) for Python Developers - PyCon 25 (Bologna, Italia)Nix(OS) for Python Developers - PyCon 25 (Bologna, Italia)
Nix(OS) for Python Developers - PyCon 25 (Bologna, Italia)
Peter Bittner
 
Agentic AI Explained: The Next Frontier of Autonomous Intelligence & Generati...
Agentic AI Explained: The Next Frontier of Autonomous Intelligence & Generati...Agentic AI Explained: The Next Frontier of Autonomous Intelligence & Generati...
Agentic AI Explained: The Next Frontier of Autonomous Intelligence & Generati...
Aaryan Kansari
 
AI Emotional Actors: “When Machines Learn to Feel and Perform"
AI Emotional Actors:  “When Machines Learn to Feel and Perform"AI Emotional Actors:  “When Machines Learn to Feel and Perform"
AI Emotional Actors: “When Machines Learn to Feel and Perform"
AkashKumar809858
 
Let’s Get Slack Certified! 🚀- Slack Community
Let’s Get Slack Certified! 🚀- Slack CommunityLet’s Get Slack Certified! 🚀- Slack Community
Let’s Get Slack Certified! 🚀- Slack Community
SanjeetMishra29
 
The case for on-premises AI
The case for on-premises AIThe case for on-premises AI
The case for on-premises AI
Principled Technologies
 
Measuring Microsoft 365 Copilot and Gen AI Success
Measuring Microsoft 365 Copilot and Gen AI SuccessMeasuring Microsoft 365 Copilot and Gen AI Success
Measuring Microsoft 365 Copilot and Gen AI Success
Nikki Chapple
 
UiPath Community Berlin: Studio Tips & Tricks and UiPath Insights
UiPath Community Berlin: Studio Tips & Tricks and UiPath InsightsUiPath Community Berlin: Studio Tips & Tricks and UiPath Insights
UiPath Community Berlin: Studio Tips & Tricks and UiPath Insights
UiPathCommunity
 
Agentic AI - The New Era of Intelligence
Agentic AI - The New Era of IntelligenceAgentic AI - The New Era of Intelligence
Agentic AI - The New Era of Intelligence
Muzammil Shah
 
GDG Cloud Southlake #43: Tommy Todd: The Quantum Apocalypse: A Looming Threat...
GDG Cloud Southlake #43: Tommy Todd: The Quantum Apocalypse: A Looming Threat...GDG Cloud Southlake #43: Tommy Todd: The Quantum Apocalypse: A Looming Threat...
GDG Cloud Southlake #43: Tommy Todd: The Quantum Apocalypse: A Looming Threat...
James Anderson
 
Contributing to WordPress With & Without Code.pptx
Contributing to WordPress With & Without Code.pptxContributing to WordPress With & Without Code.pptx
Contributing to WordPress With & Without Code.pptx
Patrick Lumumba
 
Evaluation Challenges in Using Generative AI for Science & Technical Content
Evaluation Challenges in Using Generative AI for Science & Technical ContentEvaluation Challenges in Using Generative AI for Science & Technical Content
Evaluation Challenges in Using Generative AI for Science & Technical Content
Paul Groth
 
6th Power Grid Model Meetup - 21 May 2025
6th Power Grid Model Meetup - 21 May 20256th Power Grid Model Meetup - 21 May 2025
6th Power Grid Model Meetup - 21 May 2025
DanBrown980551
 
Securiport - A Border Security Company
Securiport  -  A Border Security CompanySecuriport  -  A Border Security Company
Securiport - A Border Security Company
Securiport
 
ECS25 - The adventures of a Microsoft 365 Platform Owner - Website.pptx
ECS25 - The adventures of a Microsoft 365 Platform Owner - Website.pptxECS25 - The adventures of a Microsoft 365 Platform Owner - Website.pptx
ECS25 - The adventures of a Microsoft 365 Platform Owner - Website.pptx
Jasper Oosterveld
 
Create Your First AI Agent with UiPath Agent Builder
Create Your First AI Agent with UiPath Agent BuilderCreate Your First AI Agent with UiPath Agent Builder
Create Your First AI Agent with UiPath Agent Builder
DianaGray10
 
TrustArc Webinar: Mastering Privacy Contracting
TrustArc Webinar: Mastering Privacy ContractingTrustArc Webinar: Mastering Privacy Contracting
TrustArc Webinar: Mastering Privacy Contracting
TrustArc
 
Data Virtualization: Bringing the Power of FME to Any Application
Data Virtualization: Bringing the Power of FME to Any ApplicationData Virtualization: Bringing the Power of FME to Any Application
Data Virtualization: Bringing the Power of FME to Any Application
Safe Software
 
LSNIF: Locally-Subdivided Neural Intersection Function
LSNIF: Locally-Subdivided Neural Intersection FunctionLSNIF: Locally-Subdivided Neural Intersection Function
LSNIF: Locally-Subdivided Neural Intersection Function
Takahiro Harada
 
Dev Dives: System-to-system integration with UiPath API Workflows
Dev Dives: System-to-system integration with UiPath API WorkflowsDev Dives: System-to-system integration with UiPath API Workflows
Dev Dives: System-to-system integration with UiPath API Workflows
UiPathCommunity
 
Protecting Your Sensitive Data with Microsoft Purview - IRMS 2025
Protecting Your Sensitive Data with Microsoft Purview - IRMS 2025Protecting Your Sensitive Data with Microsoft Purview - IRMS 2025
Protecting Your Sensitive Data with Microsoft Purview - IRMS 2025
Nikki Chapple
 
Nix(OS) for Python Developers - PyCon 25 (Bologna, Italia)
Nix(OS) for Python Developers - PyCon 25 (Bologna, Italia)Nix(OS) for Python Developers - PyCon 25 (Bologna, Italia)
Nix(OS) for Python Developers - PyCon 25 (Bologna, Italia)
Peter Bittner
 
Agentic AI Explained: The Next Frontier of Autonomous Intelligence & Generati...
Agentic AI Explained: The Next Frontier of Autonomous Intelligence & Generati...Agentic AI Explained: The Next Frontier of Autonomous Intelligence & Generati...
Agentic AI Explained: The Next Frontier of Autonomous Intelligence & Generati...
Aaryan Kansari
 
AI Emotional Actors: “When Machines Learn to Feel and Perform"
AI Emotional Actors:  “When Machines Learn to Feel and Perform"AI Emotional Actors:  “When Machines Learn to Feel and Perform"
AI Emotional Actors: “When Machines Learn to Feel and Perform"
AkashKumar809858
 
Let’s Get Slack Certified! 🚀- Slack Community
Let’s Get Slack Certified! 🚀- Slack CommunityLet’s Get Slack Certified! 🚀- Slack Community
Let’s Get Slack Certified! 🚀- Slack Community
SanjeetMishra29
 
Measuring Microsoft 365 Copilot and Gen AI Success
Measuring Microsoft 365 Copilot and Gen AI SuccessMeasuring Microsoft 365 Copilot and Gen AI Success
Measuring Microsoft 365 Copilot and Gen AI Success
Nikki Chapple
 
UiPath Community Berlin: Studio Tips & Tricks and UiPath Insights
UiPath Community Berlin: Studio Tips & Tricks and UiPath InsightsUiPath Community Berlin: Studio Tips & Tricks and UiPath Insights
UiPath Community Berlin: Studio Tips & Tricks and UiPath Insights
UiPathCommunity
 
Agentic AI - The New Era of Intelligence
Agentic AI - The New Era of IntelligenceAgentic AI - The New Era of Intelligence
Agentic AI - The New Era of Intelligence
Muzammil Shah
 
GDG Cloud Southlake #43: Tommy Todd: The Quantum Apocalypse: A Looming Threat...
GDG Cloud Southlake #43: Tommy Todd: The Quantum Apocalypse: A Looming Threat...GDG Cloud Southlake #43: Tommy Todd: The Quantum Apocalypse: A Looming Threat...
GDG Cloud Southlake #43: Tommy Todd: The Quantum Apocalypse: A Looming Threat...
James Anderson
 
Contributing to WordPress With & Without Code.pptx
Contributing to WordPress With & Without Code.pptxContributing to WordPress With & Without Code.pptx
Contributing to WordPress With & Without Code.pptx
Patrick Lumumba
 
Ad

Drupal: Reusing functionality

  • 1. Reusing functionality with Drupal Modules, Features, Install profiles and Distributions
  • 2. A module is one brick
  • 3. Modules • Small and large bricks • More then 6000+ available • Code packages downloaded from d.o or drupalmodules.com
  • 4. Functionality • Module ≠ functionality, with Drupal most of the time data = functionality – e.g. Views, content types, fields, variables, comment • Most CMS have a 'News' module, Drupal has: – Module Node/CCK: Content type news – Module Views: Multiple content listings – Module Taxonomy: Categorise news – Module Comment: Commenting on news articles • Creating this news functionality takes configuration every time!
  • 5. Features: multiple bricks already assembled
  • 6. Features • “A feature is a collection of Drupal entities that, taken together, satisfy a certain use-case.” • Multiple bricks assembled – e.g. A news feature as described earlier • Technically it's serialized data in a Drupal module. • Build by Developmentseed
  • 7. Features • Features have a distributed system. Vendors are encouraged to setup a feature server. • So where can I find them? – http://drupal.org/taxonomy/term/11478 – Vendor pages like http://code.developmentseed.org • How can I build them? – Http://drupal.org/project/features – http://drupal.org/node/580026 – Check out modules: Ctools, Boxes, Context, Strongarm, Spaces
  • 8. Install profiles: automated system to assemble bricks and pre- assembled bricks
  • 9. Install profiles • Install profile: a list of modules, features and themes to install and additional configuration to be set. – Limited to projects available on d.o • Drupal's packaging script translates a profile into a downloadable package including Drupal core, modules and themes.
  • 10. Install profiles • 118 install profiles available – http://drupal.org/project/installation+profiles • Creating a install profile: – http://drupal.org/node/159730 – profilename_profile_modules(), profilename_profile_details(), profilename_profile_final() • Or Drush make files: – http://drupal.org/project/drush_make – http://drupal.org/node/642116
  • 12. Distributions • Distributions are packages similar to packaged install profiles. Differences: – Downloadable from vendor pages. – Modules/themes do not need to be on d.o – Core hacks are possible! • Find them at: http://drupaldistrowatch.com/ • Create them by packaging your total codebase.
  • 13. Questions? • Email: [email protected] Linkedin: rmuilwijk • Twitter: rmuilwijk