SlideShare una empresa de Scribd logo
1 de 37
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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
 

Similar a 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
 

Similar a 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
 

Más 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
 

Más 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
 

Último

AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
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
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...masabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
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
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile EnvironmentVictorSzoltysek
 

Último (20)

AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
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
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
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-...
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
 

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