SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
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
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
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
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

Contenu connexe

Tendances

Common Pitfalls for your Drupal Site, and How to Avoid Them
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
 
Headless approach and Acquia - Case study - Chris Ozog
Headless approach and Acquia - Case study - Chris OzogHeadless approach and Acquia - Case study - Chris Ozog
Headless approach and Acquia - Case study - Chris OzogDrupalCamp Kyiv
 
Drupal 8: frontend development
Drupal 8: frontend developmentDrupal 8: frontend development
Drupal 8: frontend developmentsparkfabrik
 
Composer Tools & Frameworks for Drupal
Composer Tools & Frameworks for DrupalComposer Tools & Frameworks for Drupal
Composer Tools & Frameworks for DrupalPantheon
 
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...
Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...Ovadiah Myrgorod
 
Drupal 8 Theme System: The Backend of Frontend
Drupal 8 Theme System: The Backend of FrontendDrupal 8 Theme System: The Backend of Frontend
Drupal 8 Theme System: The Backend of FrontendAcquia
 
Front-end development automation with Grunt
Front-end development automation with GruntFront-end development automation with Grunt
Front-end development automation with Gruntbenko
 
Modernizing Your WordPress Workflow with Grunt & Bower
Modernizing Your WordPress Workflow with Grunt & BowerModernizing Your WordPress Workflow with Grunt & Bower
Modernizing Your WordPress Workflow with Grunt & BowerAlan Crissey
 
Drush for drupal website builder
Drush for drupal website builderDrush for drupal website builder
Drush for drupal website builderAdolfo Nasol
 
Using the Command Line: Bash and WP-CLI
Using the Command Line: Bash and WP-CLIUsing the Command Line: Bash and WP-CLI
Using the Command Line: Bash and WP-CLIMarc Gratch
 
Preprocessor Workflow with Grunt
Preprocessor Workflow with GruntPreprocessor Workflow with Grunt
Preprocessor Workflow with GruntVlad Filippov
 
Monitoring at a SAAS Startup: Tradeoffs and Tools
Monitoring at a SAAS Startup: Tradeoffs and ToolsMonitoring at a SAAS Startup: Tradeoffs and Tools
Monitoring at a SAAS Startup: Tradeoffs and Toolsbridgetkromhout
 
Introduction to using Grunt & Bower with WordPress theme development
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 developmentJames Bundey
 
Serverless Preview Environments @ Boston DevOps
Serverless Preview Environments @ Boston DevOpsServerless Preview Environments @ Boston DevOps
Serverless Preview Environments @ Boston DevOpsJoseph Lust
 
CI workflow in a web studio
CI workflow in a web studioCI workflow in a web studio
CI workflow in a web studiodeWeb
 
Automated Development Workflow with Gulp
Automated Development Workflow with GulpAutomated Development Workflow with Gulp
Automated Development Workflow with Gulpplewicki
 
How to improve gradle build speed
How to improve gradle build speedHow to improve gradle build speed
How to improve gradle build speedFate Chang
 
Production Ready Javascript With Grunt
Production Ready Javascript With GruntProduction Ready Javascript With Grunt
Production Ready Javascript With GruntXB Software, Ltd.
 
Essential parts to implement own Ozone backend
Essential parts to implement own Ozone backendEssential parts to implement own Ozone backend
Essential parts to implement own Ozone backendIgalia
 

Tendances (20)

Common Pitfalls for your Drupal Site, and How to Avoid Them
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
 
Headless approach and Acquia - Case study - Chris Ozog
Headless approach and Acquia - Case study - Chris OzogHeadless approach and Acquia - Case study - Chris Ozog
Headless approach and Acquia - Case study - Chris Ozog
 
Drupal 8: frontend development
Drupal 8: frontend developmentDrupal 8: frontend development
Drupal 8: frontend development
 
Composer Tools & Frameworks for Drupal
Composer Tools & Frameworks for DrupalComposer Tools & Frameworks for Drupal
Composer Tools & Frameworks for Drupal
 
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...
Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...
 
Drupal 8 Theme System: The Backend of Frontend
Drupal 8 Theme System: The Backend of FrontendDrupal 8 Theme System: The Backend of Frontend
Drupal 8 Theme System: The Backend of Frontend
 
Front-end development automation with Grunt
Front-end development automation with GruntFront-end development automation with Grunt
Front-end development automation with Grunt
 
Modernizing Your WordPress Workflow with Grunt & Bower
Modernizing Your WordPress Workflow with Grunt & BowerModernizing Your WordPress Workflow with Grunt & Bower
Modernizing Your WordPress Workflow with Grunt & Bower
 
Drush for drupal website builder
Drush for drupal website builderDrush for drupal website builder
Drush for drupal website builder
 
Using the Command Line: Bash and WP-CLI
Using the Command Line: Bash and WP-CLIUsing the Command Line: Bash and WP-CLI
Using the Command Line: Bash and WP-CLI
 
Preprocessor Workflow with Grunt
Preprocessor Workflow with GruntPreprocessor Workflow with Grunt
Preprocessor Workflow with Grunt
 
Monitoring at a SAAS Startup: Tradeoffs and Tools
Monitoring at a SAAS Startup: Tradeoffs and ToolsMonitoring at a SAAS Startup: Tradeoffs and Tools
Monitoring at a SAAS Startup: Tradeoffs and Tools
 
Introduction to using Grunt & Bower with WordPress theme development
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
 
Serverless Preview Environments @ Boston DevOps
Serverless Preview Environments @ Boston DevOpsServerless Preview Environments @ Boston DevOps
Serverless Preview Environments @ Boston DevOps
 
JavaScript Task Runners - Gulp & Grunt
JavaScript Task Runners - Gulp & GruntJavaScript Task Runners - Gulp & Grunt
JavaScript Task Runners - Gulp & Grunt
 
CI workflow in a web studio
CI workflow in a web studioCI workflow in a web studio
CI workflow in a web studio
 
Automated Development Workflow with Gulp
Automated Development Workflow with GulpAutomated Development Workflow with Gulp
Automated Development Workflow with Gulp
 
How to improve gradle build speed
How to improve gradle build speedHow to improve gradle build speed
How to improve gradle build speed
 
Production Ready Javascript With Grunt
Production Ready Javascript With GruntProduction Ready Javascript With Grunt
Production Ready Javascript With Grunt
 
Essential parts to implement own Ozone backend
Essential parts to implement own Ozone backendEssential parts to implement own Ozone backend
Essential parts to implement own Ozone backend
 

Similaire à Configuration Kits - DrupalCamp NYC 2021

Decoupling Drupal mit dem Lupus Nuxt.js Drupal Stack
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
 
Extending CMS Made Simple
Extending CMS Made SimpleExtending CMS Made Simple
Extending CMS Made Simplecmsmssjg
 
Modernize Your Drupal Development
Modernize Your Drupal DevelopmentModernize Your Drupal Development
Modernize Your Drupal DevelopmentChris Tankersley
 
Becoming A Drupal Master Builder
Becoming A Drupal Master BuilderBecoming A Drupal Master Builder
Becoming A Drupal Master BuilderPhilip Norton
 
Drupal 8 improvements for developer productivity php symfony and more
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
 
HTML, CSS & Javascript Architecture (extended version) - Jan Kraus
HTML, CSS & Javascript Architecture (extended version) - Jan KrausHTML, CSS & Javascript Architecture (extended version) - Jan Kraus
HTML, CSS & Javascript Architecture (extended version) - Jan KrausWomen in Technology Poland
 
[HKDUG] #20180512 - Fix Hacked Drupal with GIT
[HKDUG] #20180512 - Fix Hacked Drupal with GIT[HKDUG] #20180512 - Fix Hacked Drupal with GIT
[HKDUG] #20180512 - Fix Hacked Drupal with GITWong Hoi Sing Edison
 
Efficient development workflows with composer
Efficient development workflows with composerEfficient development workflows with composer
Efficient development workflows with composernuppla
 
Running Dataproc At Scale in production - Searce Talk at GDG Delhi
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 DelhiSearce Inc
 
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
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 2016Paul McKibben
 
Drupal in 5mins + Previewing Drupal 8.x
Drupal in 5mins + Previewing Drupal 8.xDrupal in 5mins + Previewing Drupal 8.x
Drupal in 5mins + Previewing Drupal 8.xWong Hoi Sing Edison
 
Getting started with the Lupus Nuxt.js Drupal Stack
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 Stacknuppla
 
Drush workshop
Drush workshopDrush workshop
Drush workshopJuampy NR
 
Automation of Hadoop cluster operations in Arm Treasure Data
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 DataYan Wang
 
Architektura html, css i javascript - Jan Kraus
Architektura html, css i javascript - Jan KrausArchitektura html, css i javascript - Jan Kraus
Architektura html, css i javascript - Jan KrausWomen in Technology Poland
 
Hong Kong Drupal User Group - Introduction of Drush
Hong Kong Drupal User Group - Introduction of DrushHong Kong Drupal User Group - Introduction of Drush
Hong Kong Drupal User Group - Introduction of DrushFrancis Yan
 
Harnessing the cloud_for_saa_s_hosted_platfor
Harnessing the cloud_for_saa_s_hosted_platforHarnessing the cloud_for_saa_s_hosted_platfor
Harnessing the cloud_for_saa_s_hosted_platforLuke Summerfield
 
Using Composer with Drupal and Drush
Using Composer with Drupal and DrushUsing Composer with Drupal and Drush
Using Composer with Drupal and DrushPantheon
 

Similaire à Configuration Kits - DrupalCamp NYC 2021 (20)

Decoupling Drupal mit dem Lupus Nuxt.js Drupal Stack
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
 
Extending CMS Made Simple
Extending CMS Made SimpleExtending CMS Made Simple
Extending CMS Made Simple
 
Drupal Best Practices
Drupal Best PracticesDrupal Best Practices
Drupal Best Practices
 
Modernize Your Drupal Development
Modernize Your Drupal DevelopmentModernize Your Drupal Development
Modernize Your Drupal Development
 
Becoming A Drupal Master Builder
Becoming A Drupal Master BuilderBecoming A Drupal Master Builder
Becoming A Drupal Master Builder
 
Drupal 8 improvements for developer productivity php symfony and more
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
 
HTML, CSS & Javascript Architecture (extended version) - Jan Kraus
HTML, CSS & Javascript Architecture (extended version) - Jan KrausHTML, CSS & Javascript Architecture (extended version) - Jan Kraus
HTML, CSS & Javascript Architecture (extended version) - Jan Kraus
 
[HKDUG] #20180512 - Fix Hacked Drupal with GIT
[HKDUG] #20180512 - Fix Hacked Drupal with GIT[HKDUG] #20180512 - Fix Hacked Drupal with GIT
[HKDUG] #20180512 - Fix Hacked Drupal with GIT
 
Efficient development workflows with composer
Efficient development workflows with composerEfficient development workflows with composer
Efficient development workflows with composer
 
Running Dataproc At Scale in production - Searce Talk at GDG Delhi
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
 
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
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
 
Drupal in 5mins + Previewing Drupal 8.x
Drupal in 5mins + Previewing Drupal 8.xDrupal in 5mins + Previewing Drupal 8.x
Drupal in 5mins + Previewing Drupal 8.x
 
Getting started with the Lupus Nuxt.js Drupal Stack
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
 
Drush workshop
Drush workshopDrush workshop
Drush workshop
 
Drools & jBPM Workshop Barcelona 2013
Drools & jBPM Workshop  Barcelona 2013Drools & jBPM Workshop  Barcelona 2013
Drools & jBPM Workshop Barcelona 2013
 
Automation of Hadoop cluster operations in Arm Treasure Data
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
 
Architektura html, css i javascript - Jan Kraus
Architektura html, css i javascript - Jan KrausArchitektura html, css i javascript - Jan Kraus
Architektura html, css i javascript - Jan Kraus
 
Hong Kong Drupal User Group - Introduction of Drush
Hong Kong Drupal User Group - Introduction of DrushHong Kong Drupal User Group - Introduction of Drush
Hong Kong Drupal User Group - Introduction of Drush
 
Harnessing the cloud_for_saa_s_hosted_platfor
Harnessing the cloud_for_saa_s_hosted_platforHarnessing the cloud_for_saa_s_hosted_platfor
Harnessing the cloud_for_saa_s_hosted_platfor
 
Using Composer with Drupal and Drush
Using Composer with Drupal and DrushUsing Composer with Drupal and Drush
Using Composer with Drupal and Drush
 

Plus de Martin Anderson-Clutz

I have a Great Idea for a Drupal Module! Now What? - DrupalDevDays 2023
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
 
Simplifying Your Admin Experience - FLDC 2023.pptx
Simplifying Your Admin Experience - FLDC 2023.pptxSimplifying Your Admin Experience - FLDC 2023.pptx
Simplifying Your Admin Experience - FLDC 2023.pptxMartin Anderson-Clutz
 
Simplifying your admin experience - Stanford WebCamp
Simplifying your admin experience - Stanford WebCampSimplifying your admin experience - Stanford WebCamp
Simplifying your admin experience - Stanford WebCampMartin Anderson-Clutz
 
Manually curated solr search results | DrupalCon NA 2021
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
 
Simplifying the Drupal Admin Experience
Simplifying the Drupal Admin ExperienceSimplifying the Drupal Admin Experience
Simplifying the Drupal Admin ExperienceMartin Anderson-Clutz
 
Smart Date - Drupalcamp Colorado 2020
Smart Date - Drupalcamp Colorado 2020Smart Date - Drupalcamp Colorado 2020
Smart Date - Drupalcamp Colorado 2020Martin Anderson-Clutz
 

Plus de Martin Anderson-Clutz (8)

I have a Great Idea for a Drupal Module! Now What? - DrupalDevDays 2023
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 2023
 
Simplifying Your Admin Experience - FLDC 2023.pptx
Simplifying Your Admin Experience - FLDC 2023.pptxSimplifying Your Admin Experience - FLDC 2023.pptx
Simplifying Your Admin Experience - FLDC 2023.pptx
 
Image Optimization in Drupal
Image Optimization in DrupalImage Optimization in Drupal
Image Optimization in Drupal
 
Simplifying your admin experience - Stanford WebCamp
Simplifying your admin experience - Stanford WebCampSimplifying your admin experience - Stanford WebCamp
Simplifying your admin experience - Stanford WebCamp
 
Manually curated solr search results | DrupalCon NA 2021
Manually curated solr search results | DrupalCon NA 2021Manually curated solr search results | DrupalCon NA 2021
Manually curated solr search results | DrupalCon NA 2021
 
Simplifying the Drupal Admin Experience
Simplifying the Drupal Admin ExperienceSimplifying the Drupal Admin Experience
Simplifying the Drupal Admin Experience
 
Site Search and Relevance
Site Search and RelevanceSite Search and Relevance
Site Search and Relevance
 
Smart Date - Drupalcamp Colorado 2020
Smart Date - Drupalcamp Colorado 2020Smart Date - Drupalcamp Colorado 2020
Smart Date - Drupalcamp Colorado 2020
 

Dernier

Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 

Dernier (20)

Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 

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
  • 23.
  • 24.
  • 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
  • 27.
  • 28.
  • 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
  • 34.
  • 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