Configuration Kits - DrupalCamp NYC 2021

Martin Anderson-Clutz
Martin Anderson-ClutzSolutions Architect at Digital Echidna
Empower site builders and reduce
your maintenance effort
Configuration Kits:
Reusable Site
Building Patterns
Martin Anderson-Clutz
@mandclu
Martin
Anderson-Clutz
@mandclu
This Talk
● Based on my own experience, YMMV
● Intended to help you better define what your module should do,
and why
● A resource guide
● Amount of code === NULL
Site Builders: A Renewed Focus for Drupal
● Less Technical
● Need low code solutions
● Likely new to Drupal
Site Building: The Process
● Create content types
● Construct views
● Add magic!
○ Extra modules as needed
Configuration Kits
To the rescue...
Configuration Kits: The concept
● Often a Drupal module without PHP
○ Mostly YML, sometimes CSS, JS, etc
● Put a logical system into a module
○ Staff directory, events calendar, etc.
○ Most useful if they address something tricky
■ e.g. sort staff directory by last name
● Allows for modular reuse of common systems
That sounds a lot like
a Feature...
● Configuration as code
● NOT intended for an ongoing sync
○ Install and customize
● Uses core config management
How They Help
● New to Drupal
○ Implement common features
■ Customizable
○ Reference for learning
● Experienced Drupalists
○ Head start on site building
■ More time to innovate
○ Other code more portable
■ CSS, JS, PHP
How They Help: Module Maintainers
● Easy to try out
● Faster to incorporate in a site build
● Reference “known good” configuration
○ Helps issue triage
How They’re Made
● drupal generate:module
● drupal config:export:content:type
● drupal config:export:view
● Manually add module dependencies to info.yml
● Balance config between install and optional
config subdirectories
A Little Something Extra
● Submodules for:
○ Formatting
○ Specialized functionality
○ Additional integrations
The Existing Arsenal
● Smart Date Starter Kit
● Smart Date Calendar Kit
● Quick Links
● Tasks
● Person
Demo Time!
Let’s see them in action
Try This At Home!
● composer create-project drupal/recommended-project test
● cd test
● lando init --recipe drupal9 --webroot web --name test --source cwd
● lando start
● composer require drush/drush
● lando drush site:install --account-pass=[my_secure_password]
--db-url=mysql://drupal9:drupal9@database:3306/drupal9 --site-name="Drupal 9 Demo" -y
● composer require drupal/gin:^3.0@alpha drupal/gin_toolbar:^1.0@beta drupal/admin_toolbar
drupal/pathauto
● lando drush theme:enable olivero gin && lando drush cset system.theme default olivero -y && lando
drush cset system.theme admin gin -y && lando drush cset gin.settings classic_toolbar 1 -y &&
lando drush en admin_toolbar admin_toolbar_tools gin_toolbar pathauto -y
Requires:
● Composer
● Lando
Smart Date Calendar Kit
● Dependencies
○ Smart Date Starter Kit
■ Smart Date
■ Add Content By Bundle
○ Fullcalendar View
● composer require drupal/smart_date_calendar_kit
lando drush en smart_date_calendar_kit -y
● Built to work with
multivalued and recurring
dates
● Multiple views displays
connected as tabs
Person
● Dependencies
○ Add Content By Bundle
○ Auto EntityLabel
● composer require drupal/person 
drupal/auto_entitylabel:^3.0@beta
lando drush en person_olivero -y
● Manage and display info
about people
● View sorts alphabetically
by last name, grouped by
initial
Quick Links
● Dependencies
○ SVG Image Field Media Bundle
■ SVG Image Field
○ Add Content By Bundle
○ Display Link Plus
○ Draggable Views
○ Storage Entities
● composer require drupal/quick_links
lando drush en quick_links_olivero -y
● In-context management of
home-page links, with icons
● Submodule provides
formatting, places home
page block
Tasks
● Dependencies
○ Flag
○ Add Content By Bundle
○ Display Link Plus
○ Draggable Views
○ Storage Entities
● composer require drupal/tasks drupal/flag:^4.0@beta
lando drush en tasks_olivero -y
● Submodule allows for
managing the tasks of
others
● Submodule provides
formatting, places home
page block
● Optionally add
views_flag_refresh
Let’s Get Ambitious
More complicated kits
Smart Date Registration Kit
● Dependencies
○ Smart Date
○ Add Content By Bundle
○ Field Group
○ Fullcalendar View
○ Inline Entity Form
○ Drupal Commerce
● Paid (or free) event
registration, with capacity
limits
● Event dates as product
variations, to support
multiple dates
● Submodule alters the
wording in form to create
event products
Smart Date Registration Kit
● git clone git@git.drupal.org:sandbox/surgemartin-3209977.git
smart_date_registration_kit
● composer require drupal/add_content_by_bundle drupal/commerce
drupal/field_group drupal/fullcalendar_view
drupal/inline_entity_form:^1.0@rc drupal/smart_date
● lando drush en commerce commerce_cart commerce_checkout
commerce_price commerce_product
● [create your commerce store, other commerce setup]
● Lando drush en smart_date_registration_kit
smart_date_registration_kit_form_tweaks
Configuration Kits - DrupalCamp NYC 2021
Configuration Kits - DrupalCamp NYC 2021
Acquia CMS Places Leaflet View
● Dependencies
○ Acquia CMS Place
■ Acquia CMS Image
■ Field Group
■ Address
■ Geocoder
○ Leaflet Views
■ Leaflet
● Plot Place nodes on a
Leaflet-based map
● Attachment to display
teasers below the map
Acquia CMS Places Leaflet View
● git clone git@git.drupal.org:sandbox/surgemartin-3246619.git
acquia_cms_place_leaflet_view
● composer require drupal/leaflet drupal/acquia_cms_place
drupal/default_content:^2.0@alpha drupal/entity_clone:^1.0@beta
● lando drush en acquia_cms_place_leaflet_view
Configuration Kits - DrupalCamp NYC 2021
Configuration Kits - DrupalCamp NYC 2021
Acquia CMS
An opinionated version of Drupal
● Media Types
○ Acquia CMS Audio
○ Acquia CMS Document
○ Acquia CMS Image
○ Acquia CMS Video
● Miscellaneous
○ Acquia CMS Search
○ Acquia CMS Site Studio
A Wealth of Options
● Content Types
○ Acquia CMS Article
○ Acquia CMS Event
○ Acquia CMS Page
○ Acquia CMS Person
○ Acquia CMS Place
Process Implications
The Importance of Being
Composable
● Maximise your organisation’s ability
to build, assemble and reassemble
core business elements
● Modular philosophy
Agile Web Development By Many Names
● MVP Web Development
○ Get to market as quickly as possible
○ Collect feedback
○ Iterate often
● Lean Startup
● Growth-Driven Design
Configuration Kits - DrupalCamp NYC 2021
Build-First Development
● For clients that find requirements definitions too abstract, start
by showing them basic versions of common website systems
● Easier to understand when seen visually
● Document when accepted
Resources!
● Config Kits project page
● Add a Robust Events System to Your Drupal Site in Minutes / DrupalCon North
America 2021
● Acquia CMS makes it easy to harness the power of Drupal
● Broken title in modal dialog when title is a render array
Thank you!
@mandclu
1 of 37

Recommended

COMO CRIAR O TEU STARTUP PROJECT E SETUP DO TEU AMBIENTE DE DESENVOLVIMENTO D... by
COMO CRIAR O TEU STARTUP PROJECT E SETUP DO TEU AMBIENTE DE DESENVOLVIMENTO D...COMO CRIAR O TEU STARTUP PROJECT E SETUP DO TEU AMBIENTE DE DESENVOLVIMENTO D...
COMO CRIAR O TEU STARTUP PROJECT E SETUP DO TEU AMBIENTE DE DESENVOLVIMENTO D...Drupal Portugal
67 views30 slides
Drupal local development with lando by
Drupal local development with landoDrupal local development with lando
Drupal local development with landoLax Mariappan
85 views25 slides
Robust Events System In Minutes | DrupalCon North America 2021 by
Robust Events System In Minutes | DrupalCon North America 2021Robust Events System In Minutes | DrupalCon North America 2021
Robust Events System In Minutes | DrupalCon North America 2021Martin Anderson-Clutz
105 views26 slides
Recurring Dates in Drupal - BADCAMP 2020 by
Recurring Dates in Drupal - BADCAMP 2020Recurring Dates in Drupal - BADCAMP 2020
Recurring Dates in Drupal - BADCAMP 2020Martin Anderson-Clutz
73 views39 slides
How to Use the Command Line to Increase Speed of Development by
How to Use the Command Line to Increase Speed of DevelopmentHow to Use the Command Line to Increase Speed of Development
How to Use the Command Line to Increase Speed of DevelopmentAcquia
1.1K views24 slides
Fast Paced Drupal 8: Accelerating Development with Composer, Drupal Console a... by
Fast Paced Drupal 8: Accelerating Development with Composer, Drupal Console a...Fast Paced Drupal 8: Accelerating Development with Composer, Drupal Console a...
Fast Paced Drupal 8: Accelerating Development with Composer, Drupal Console a...Acquia
1.2K views24 slides

More Related Content

What's hot

Common Pitfalls for your Drupal Site, and How to Avoid Them by
Common Pitfalls for your Drupal Site, and How to Avoid ThemCommon Pitfalls for your Drupal Site, and How to Avoid Them
Common Pitfalls for your Drupal Site, and How to Avoid ThemAcquia
863 views16 slides
Headless approach and Acquia - Case study - Chris Ozog by
Headless approach and Acquia - Case study - Chris OzogHeadless approach and Acquia - Case study - Chris Ozog
Headless approach and Acquia - Case study - Chris OzogDrupalCamp Kyiv
204 views16 slides
Drupal 8: frontend development by
Drupal 8: frontend developmentDrupal 8: frontend development
Drupal 8: frontend developmentsparkfabrik
1.3K views74 slides
Composer Tools & Frameworks for Drupal by
Composer Tools & Frameworks for DrupalComposer Tools & Frameworks for Drupal
Composer Tools & Frameworks for DrupalPantheon
2.9K views52 slides
Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A... by
Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...
Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...Ovadiah Myrgorod
601 views43 slides
Drupal 8 Theme System: The Backend of Frontend by
Drupal 8 Theme System: The Backend of FrontendDrupal 8 Theme System: The Backend of Frontend
Drupal 8 Theme System: The Backend of FrontendAcquia
1.2K views25 slides

What's hot(20)

Common Pitfalls for your Drupal Site, and How to Avoid Them by Acquia
Common Pitfalls for your Drupal Site, and How to Avoid ThemCommon Pitfalls for your Drupal Site, and How to Avoid Them
Common Pitfalls for your Drupal Site, and How to Avoid Them
Acquia863 views
Headless approach and Acquia - Case study - Chris Ozog by DrupalCamp Kyiv
Headless approach and Acquia - Case study - Chris OzogHeadless approach and Acquia - Case study - Chris Ozog
Headless approach and Acquia - Case study - Chris Ozog
DrupalCamp Kyiv204 views
Drupal 8: frontend development by sparkfabrik
Drupal 8: frontend developmentDrupal 8: frontend development
Drupal 8: frontend development
sparkfabrik1.3K views
Composer Tools & Frameworks for Drupal by Pantheon
Composer Tools & Frameworks for DrupalComposer Tools & Frameworks for Drupal
Composer Tools & Frameworks for Drupal
Pantheon2.9K views
Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A... by Ovadiah Myrgorod
Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...
Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...
Ovadiah Myrgorod601 views
Drupal 8 Theme System: The Backend of Frontend by Acquia
Drupal 8 Theme System: The Backend of FrontendDrupal 8 Theme System: The Backend of Frontend
Drupal 8 Theme System: The Backend of Frontend
Acquia1.2K views
Front-end development automation with Grunt by benko
Front-end development automation with GruntFront-end development automation with Grunt
Front-end development automation with Grunt
benko5.2K views
Modernizing Your WordPress Workflow with Grunt & Bower by Alan Crissey
Modernizing Your WordPress Workflow with Grunt & BowerModernizing Your WordPress Workflow with Grunt & Bower
Modernizing Your WordPress Workflow with Grunt & Bower
Alan Crissey4.7K views
Drush for drupal website builder by Adolfo Nasol
Drush for drupal website builderDrush for drupal website builder
Drush for drupal website builder
Adolfo Nasol1.9K views
Using the Command Line: Bash and WP-CLI by Marc Gratch
Using the Command Line: Bash and WP-CLIUsing the Command Line: Bash and WP-CLI
Using the Command Line: Bash and WP-CLI
Marc Gratch266 views
Preprocessor Workflow with Grunt by Vlad Filippov
Preprocessor Workflow with GruntPreprocessor Workflow with Grunt
Preprocessor Workflow with Grunt
Vlad Filippov10.8K views
Monitoring at a SAAS Startup: Tradeoffs and Tools by bridgetkromhout
Monitoring at a SAAS Startup: Tradeoffs and ToolsMonitoring at a SAAS Startup: Tradeoffs and Tools
Monitoring at a SAAS Startup: Tradeoffs and Tools
bridgetkromhout1.4K views
Introduction to using Grunt & Bower with WordPress theme development by James Bundey
Introduction to using Grunt & Bower with WordPress theme developmentIntroduction to using Grunt & Bower with WordPress theme development
Introduction to using Grunt & Bower with WordPress theme development
James Bundey3K views
Serverless Preview Environments @ Boston DevOps by Joseph Lust
Serverless Preview Environments @ Boston DevOpsServerless Preview Environments @ Boston DevOps
Serverless Preview Environments @ Boston DevOps
Joseph Lust139 views
CI workflow in a web studio by deWeb
CI workflow in a web studioCI workflow in a web studio
CI workflow in a web studio
deWeb633 views
Automated Development Workflow with Gulp by plewicki
Automated Development Workflow with GulpAutomated Development Workflow with Gulp
Automated Development Workflow with Gulp
plewicki1K views
How to improve gradle build speed by Fate Chang
How to improve gradle build speedHow to improve gradle build speed
How to improve gradle build speed
Fate Chang5.6K views
Production Ready Javascript With Grunt by XB Software, Ltd.
Production Ready Javascript With GruntProduction Ready Javascript With Grunt
Production Ready Javascript With Grunt
XB Software, Ltd.4.6K views
Essential parts to implement own Ozone backend by Igalia
Essential parts to implement own Ozone backendEssential parts to implement own Ozone backend
Essential parts to implement own Ozone backend
Igalia75 views

Similar to Configuration Kits - DrupalCamp NYC 2021

Decoupling Drupal mit dem Lupus Nuxt.js Drupal Stack by
Decoupling Drupal mit dem Lupus Nuxt.js Drupal StackDecoupling Drupal mit dem Lupus Nuxt.js Drupal Stack
Decoupling Drupal mit dem Lupus Nuxt.js Drupal Stacknuppla
140 views38 slides
Extending CMS Made Simple by
Extending CMS Made SimpleExtending CMS Made Simple
Extending CMS Made Simplecmsmssjg
13.2K views89 slides
Drupal Best Practices by
Drupal Best PracticesDrupal Best Practices
Drupal Best PracticesMukesh Agarwal
781 views29 slides
Modernize Your Drupal Development by
Modernize Your Drupal DevelopmentModernize Your Drupal Development
Modernize Your Drupal DevelopmentChris Tankersley
1K views109 slides
Becoming A Drupal Master Builder by
Becoming A Drupal Master BuilderBecoming A Drupal Master Builder
Becoming A Drupal Master BuilderPhilip Norton
1K views57 slides
Drupal 8 improvements for developer productivity php symfony and more by
Drupal 8 improvements for developer productivity  php symfony and moreDrupal 8 improvements for developer productivity  php symfony and more
Drupal 8 improvements for developer productivity php symfony and moreAcquia
1.3K views18 slides

Similar to Configuration Kits - DrupalCamp NYC 2021(20)

Decoupling Drupal mit dem Lupus Nuxt.js Drupal Stack by nuppla
Decoupling Drupal mit dem Lupus Nuxt.js Drupal StackDecoupling Drupal mit dem Lupus Nuxt.js Drupal Stack
Decoupling Drupal mit dem Lupus Nuxt.js Drupal Stack
nuppla140 views
Extending CMS Made Simple by cmsmssjg
Extending CMS Made SimpleExtending CMS Made Simple
Extending CMS Made Simple
cmsmssjg13.2K views
Becoming A Drupal Master Builder by Philip Norton
Becoming A Drupal Master BuilderBecoming A Drupal Master Builder
Becoming A Drupal Master Builder
Philip Norton1K views
Drupal 8 improvements for developer productivity php symfony and more by Acquia
Drupal 8 improvements for developer productivity  php symfony and moreDrupal 8 improvements for developer productivity  php symfony and more
Drupal 8 improvements for developer productivity php symfony and more
Acquia1.3K views
Efficient development workflows with composer by nuppla
Efficient development workflows with composerEfficient development workflows with composer
Efficient development workflows with composer
nuppla431 views
Running Dataproc At Scale in production - Searce Talk at GDG Delhi by Searce Inc
Running Dataproc At Scale in production - Searce Talk at GDG DelhiRunning Dataproc At Scale in production - Searce Talk at GDG Delhi
Running Dataproc At Scale in production - Searce Talk at GDG Delhi
Searce Inc65 views
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016 by Paul McKibben
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
Paul McKibben497 views
Getting started with the Lupus Nuxt.js Drupal Stack by nuppla
Getting started with the Lupus Nuxt.js Drupal StackGetting started with the Lupus Nuxt.js Drupal Stack
Getting started with the Lupus Nuxt.js Drupal Stack
nuppla195 views
Drush workshop by Juampy NR
Drush workshopDrush workshop
Drush workshop
Juampy NR566 views
Automation of Hadoop cluster operations in Arm Treasure Data by Yan Wang
Automation of Hadoop cluster operations in Arm Treasure DataAutomation of Hadoop cluster operations in Arm Treasure Data
Automation of Hadoop cluster operations in Arm Treasure Data
Yan Wang510 views
Hong Kong Drupal User Group - Introduction of Drush by Francis Yan
Hong Kong Drupal User Group - Introduction of DrushHong Kong Drupal User Group - Introduction of Drush
Hong Kong Drupal User Group - Introduction of Drush
Francis Yan546 views
Harnessing the cloud_for_saa_s_hosted_platfor by Luke Summerfield
Harnessing the cloud_for_saa_s_hosted_platforHarnessing the cloud_for_saa_s_hosted_platfor
Harnessing the cloud_for_saa_s_hosted_platfor
Luke Summerfield349 views
Using Composer with Drupal and Drush by Pantheon
Using Composer with Drupal and DrushUsing Composer with Drupal and Drush
Using Composer with Drupal and Drush
Pantheon3.1K views

More from Martin Anderson-Clutz

I have a Great Idea for a Drupal Module! Now What? - DrupalDevDays 2023 by
I have a Great Idea for a Drupal Module! Now What? - DrupalDevDays 2023I have a Great Idea for a Drupal Module! Now What? - DrupalDevDays 2023
I have a Great Idea for a Drupal Module! Now What? - DrupalDevDays 2023Martin Anderson-Clutz
33 views27 slides
Simplifying Your Admin Experience - FLDC 2023.pptx by
Simplifying Your Admin Experience - FLDC 2023.pptxSimplifying Your Admin Experience - FLDC 2023.pptx
Simplifying Your Admin Experience - FLDC 2023.pptxMartin Anderson-Clutz
8 views43 slides
Image Optimization in Drupal by
Image Optimization in DrupalImage Optimization in Drupal
Image Optimization in DrupalMartin Anderson-Clutz
86 views36 slides
Simplifying your admin experience - Stanford WebCamp by
Simplifying your admin experience - Stanford WebCampSimplifying your admin experience - Stanford WebCamp
Simplifying your admin experience - Stanford WebCampMartin Anderson-Clutz
81 views45 slides
Manually curated solr search results | DrupalCon NA 2021 by
Manually curated solr search results | DrupalCon NA 2021Manually curated solr search results | DrupalCon NA 2021
Manually curated solr search results | DrupalCon NA 2021Martin Anderson-Clutz
182 views10 slides
Simplifying the Drupal Admin Experience by
Simplifying the Drupal Admin ExperienceSimplifying the Drupal Admin Experience
Simplifying the Drupal Admin ExperienceMartin Anderson-Clutz
12 views12 slides

Recently uploaded

SAP FOR CONTRACT MANUFACTURING.pdf by
SAP FOR CONTRACT MANUFACTURING.pdfSAP FOR CONTRACT MANUFACTURING.pdf
SAP FOR CONTRACT MANUFACTURING.pdfVirendra Rai, PMP
13 views2 slides
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P... by
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...NimaTorabi2
8 views17 slides
Headless JS UG Presentation.pptx by
Headless JS UG Presentation.pptxHeadless JS UG Presentation.pptx
Headless JS UG Presentation.pptxJack Spektor
7 views24 slides
Ports-and-Adapters Architecture for Embedded HMI by
Ports-and-Adapters Architecture for Embedded HMIPorts-and-Adapters Architecture for Embedded HMI
Ports-and-Adapters Architecture for Embedded HMIBurkhard Stubert
6 views19 slides
DSD-INT 2023 The Danube Hazardous Substances Model - Kovacs by
DSD-INT 2023 The Danube Hazardous Substances Model - KovacsDSD-INT 2023 The Danube Hazardous Substances Model - Kovacs
DSD-INT 2023 The Danube Hazardous Substances Model - KovacsDeltares
8 views17 slides
Copilot Prompting Toolkit_All Resources.pdf by
Copilot Prompting Toolkit_All Resources.pdfCopilot Prompting Toolkit_All Resources.pdf
Copilot Prompting Toolkit_All Resources.pdfRiccardo Zamana
8 views4 slides

Recently uploaded(20)

Unlocking the Power of AI in Product Management - A Comprehensive Guide for P... by NimaTorabi2
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
NimaTorabi28 views
Headless JS UG Presentation.pptx by Jack Spektor
Headless JS UG Presentation.pptxHeadless JS UG Presentation.pptx
Headless JS UG Presentation.pptx
Jack Spektor7 views
Ports-and-Adapters Architecture for Embedded HMI by Burkhard Stubert
Ports-and-Adapters Architecture for Embedded HMIPorts-and-Adapters Architecture for Embedded HMI
Ports-and-Adapters Architecture for Embedded HMI
DSD-INT 2023 The Danube Hazardous Substances Model - Kovacs by Deltares
DSD-INT 2023 The Danube Hazardous Substances Model - KovacsDSD-INT 2023 The Danube Hazardous Substances Model - Kovacs
DSD-INT 2023 The Danube Hazardous Substances Model - Kovacs
Deltares8 views
Copilot Prompting Toolkit_All Resources.pdf by Riccardo Zamana
Copilot Prompting Toolkit_All Resources.pdfCopilot Prompting Toolkit_All Resources.pdf
Copilot Prompting Toolkit_All Resources.pdf
Riccardo Zamana8 views
tecnologia18.docx by nosi6702
tecnologia18.docxtecnologia18.docx
tecnologia18.docx
nosi67025 views
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx by animuscrm
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
animuscrm14 views
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J... by Deltares
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...
Deltares9 views
Myths and Facts About Hospice Care: Busting Common Misconceptions by Care Coordinations
Myths and Facts About Hospice Care: Busting Common MisconceptionsMyths and Facts About Hospice Care: Busting Common Misconceptions
Myths and Facts About Hospice Care: Busting Common Misconceptions
360 graden fabriek by info33492
360 graden fabriek360 graden fabriek
360 graden fabriek
info3349238 views
SUGCON ANZ Presentation V2.1 Final.pptx by Jack Spektor
SUGCON ANZ Presentation V2.1 Final.pptxSUGCON ANZ Presentation V2.1 Final.pptx
SUGCON ANZ Presentation V2.1 Final.pptx
Jack Spektor22 views
Dapr Unleashed: Accelerating Microservice Development by Miroslav Janeski
Dapr Unleashed: Accelerating Microservice DevelopmentDapr Unleashed: Accelerating Microservice Development
Dapr Unleashed: Accelerating Microservice Development
Miroslav Janeski10 views
Sprint 226 by ManageIQ
Sprint 226Sprint 226
Sprint 226
ManageIQ5 views
Airline Booking Software by SharmiMehta
Airline Booking SoftwareAirline Booking Software
Airline Booking Software
SharmiMehta6 views

Configuration Kits - DrupalCamp NYC 2021

  • 1. Empower site builders and reduce your maintenance effort Configuration Kits: Reusable Site Building Patterns Martin Anderson-Clutz @mandclu
  • 3. This Talk ● Based on my own experience, YMMV ● Intended to help you better define what your module should do, and why ● A resource guide ● Amount of code === NULL
  • 4. Site Builders: A Renewed Focus for Drupal ● Less Technical ● Need low code solutions ● Likely new to Drupal
  • 5. Site Building: The Process ● Create content types ● Construct views ● Add magic! ○ Extra modules as needed
  • 7. Configuration Kits: The concept ● Often a Drupal module without PHP ○ Mostly YML, sometimes CSS, JS, etc ● Put a logical system into a module ○ Staff directory, events calendar, etc. ○ Most useful if they address something tricky ■ e.g. sort staff directory by last name ● Allows for modular reuse of common systems
  • 8. That sounds a lot like a Feature... ● Configuration as code ● NOT intended for an ongoing sync ○ Install and customize ● Uses core config management
  • 9. How They Help ● New to Drupal ○ Implement common features ■ Customizable ○ Reference for learning ● Experienced Drupalists ○ Head start on site building ■ More time to innovate ○ Other code more portable ■ CSS, JS, PHP
  • 10. How They Help: Module Maintainers ● Easy to try out ● Faster to incorporate in a site build ● Reference “known good” configuration ○ Helps issue triage
  • 11. How They’re Made ● drupal generate:module ● drupal config:export:content:type ● drupal config:export:view ● Manually add module dependencies to info.yml ● Balance config between install and optional config subdirectories
  • 12. A Little Something Extra ● Submodules for: ○ Formatting ○ Specialized functionality ○ Additional integrations
  • 13. The Existing Arsenal ● Smart Date Starter Kit ● Smart Date Calendar Kit ● Quick Links ● Tasks ● Person
  • 14. Demo Time! Let’s see them in action
  • 15. Try This At Home! ● composer create-project drupal/recommended-project test ● cd test ● lando init --recipe drupal9 --webroot web --name test --source cwd ● lando start ● composer require drush/drush ● lando drush site:install --account-pass=[my_secure_password] --db-url=mysql://drupal9:drupal9@database:3306/drupal9 --site-name="Drupal 9 Demo" -y ● composer require drupal/gin:^3.0@alpha drupal/gin_toolbar:^1.0@beta drupal/admin_toolbar drupal/pathauto ● lando drush theme:enable olivero gin && lando drush cset system.theme default olivero -y && lando drush cset system.theme admin gin -y && lando drush cset gin.settings classic_toolbar 1 -y && lando drush en admin_toolbar admin_toolbar_tools gin_toolbar pathauto -y Requires: ● Composer ● Lando
  • 16. Smart Date Calendar Kit ● Dependencies ○ Smart Date Starter Kit ■ Smart Date ■ Add Content By Bundle ○ Fullcalendar View ● composer require drupal/smart_date_calendar_kit lando drush en smart_date_calendar_kit -y ● Built to work with multivalued and recurring dates ● Multiple views displays connected as tabs
  • 17. Person ● Dependencies ○ Add Content By Bundle ○ Auto EntityLabel ● composer require drupal/person drupal/auto_entitylabel:^3.0@beta lando drush en person_olivero -y ● Manage and display info about people ● View sorts alphabetically by last name, grouped by initial
  • 18. Quick Links ● Dependencies ○ SVG Image Field Media Bundle ■ SVG Image Field ○ Add Content By Bundle ○ Display Link Plus ○ Draggable Views ○ Storage Entities ● composer require drupal/quick_links lando drush en quick_links_olivero -y ● In-context management of home-page links, with icons ● Submodule provides formatting, places home page block
  • 19. Tasks ● Dependencies ○ Flag ○ Add Content By Bundle ○ Display Link Plus ○ Draggable Views ○ Storage Entities ● composer require drupal/tasks drupal/flag:^4.0@beta lando drush en tasks_olivero -y ● Submodule allows for managing the tasks of others ● Submodule provides formatting, places home page block ● Optionally add views_flag_refresh
  • 20. Let’s Get Ambitious More complicated kits
  • 21. Smart Date Registration Kit ● Dependencies ○ Smart Date ○ Add Content By Bundle ○ Field Group ○ Fullcalendar View ○ Inline Entity Form ○ Drupal Commerce ● Paid (or free) event registration, with capacity limits ● Event dates as product variations, to support multiple dates ● Submodule alters the wording in form to create event products
  • 22. Smart Date Registration Kit ● git clone git@git.drupal.org:sandbox/surgemartin-3209977.git smart_date_registration_kit ● composer require drupal/add_content_by_bundle drupal/commerce drupal/field_group drupal/fullcalendar_view drupal/inline_entity_form:^1.0@rc drupal/smart_date ● lando drush en commerce commerce_cart commerce_checkout commerce_price commerce_product ● [create your commerce store, other commerce setup] ● Lando drush en smart_date_registration_kit smart_date_registration_kit_form_tweaks
  • 25. Acquia CMS Places Leaflet View ● Dependencies ○ Acquia CMS Place ■ Acquia CMS Image ■ Field Group ■ Address ■ Geocoder ○ Leaflet Views ■ Leaflet ● Plot Place nodes on a Leaflet-based map ● Attachment to display teasers below the map
  • 26. Acquia CMS Places Leaflet View ● git clone git@git.drupal.org:sandbox/surgemartin-3246619.git acquia_cms_place_leaflet_view ● composer require drupal/leaflet drupal/acquia_cms_place drupal/default_content:^2.0@alpha drupal/entity_clone:^1.0@beta ● lando drush en acquia_cms_place_leaflet_view
  • 29. Acquia CMS An opinionated version of Drupal
  • 30. ● Media Types ○ Acquia CMS Audio ○ Acquia CMS Document ○ Acquia CMS Image ○ Acquia CMS Video ● Miscellaneous ○ Acquia CMS Search ○ Acquia CMS Site Studio A Wealth of Options ● Content Types ○ Acquia CMS Article ○ Acquia CMS Event ○ Acquia CMS Page ○ Acquia CMS Person ○ Acquia CMS Place
  • 32. The Importance of Being Composable ● Maximise your organisation’s ability to build, assemble and reassemble core business elements ● Modular philosophy
  • 33. Agile Web Development By Many Names ● MVP Web Development ○ Get to market as quickly as possible ○ Collect feedback ○ Iterate often ● Lean Startup ● Growth-Driven Design
  • 35. Build-First Development ● For clients that find requirements definitions too abstract, start by showing them basic versions of common website systems ● Easier to understand when seen visually ● Document when accepted
  • 36. Resources! ● Config Kits project page ● Add a Robust Events System to Your Drupal Site in Minutes / DrupalCon North America 2021 ● Acquia CMS makes it easy to harness the power of Drupal ● Broken title in modal dialog when title is a render array