SlideShare a Scribd company logo
1 of 46
Download to read offline
There Might
       (Not)
Be a Module For That
     Karen Stevenson
    Lullabot Consulting
Getting to Drupal
Core is Not Enough
Is There A Module For That?
The Process

Identify each problem/requirement
Find modules that solve it
Evaluate the quality & suitability of the solutions
Choose bet ween alternatives
If necessary, roll your own solution
Find Modules That
 Solve A Problem
Know the Top 20
/project/usage
/project/modules/categories
/project/modules
Search Issues Too!
Google It
Evaluate the Solutions
Well Maintained?

Number of committers and commits
How recently committed?
How many bugs relative to total issues?
Balance complexity of module against pure stats
Usage numbers and patterns
Code quality
Is It Well Maintained?
Which Version/Branch is Safe?
Check Usage Stats
Code Quality



Is it neat and well-documented?
Does it comply with Drupal coding standards?
Is there a lot of commented-out code?
How Well Does It Work?


Check those issue queues
Test drive
Dig for documentation
Google it
Mine the Issue Queues
Google It
Documentation
Look for README.txt or INSTALL.txt
Find ‘Configure’ and ‘Help’ links on module list
Look for documentation link on d.o. project page
Search Drupal.org or Groups.Drupal.org
Read the code
  Use hook_menu() to find configuration urls
  Look for internal documentation
Choosing Bet ween Alternatives
drupal.org/node/266179
Google It
Can you re-use this module?
Take Them For a Ride
Prototype

Set up a prototype site
Try out key modules
Create a content type and key fields
Use Devel Generate
  Make fields required
  Image min/max settings
That’s a Lot of Work!!
What if the Module Won’t Do?

Too many bugs
No solid release
Badly maintained
Badly written
Not a good fit
Bugs

Could it be operator error?
Did you try the dev version?
Is there a patch?
Can you write a patch?
Make sure the patch is posted and marked RTBC
Looking for co-maintainer?
Wrong Features


Can you adjust the requirements?
Is there a feature request?
Can you propose a patch?
Can you use it as-is for now and customize in phase 2?
Rolling Your Own

Google. Again.
Search d.o. sandbox projects.
There may be issues with code snippets to get you
started.
Can you make it work with existing modules and some
‘glue’, rather than a total custom solution?
Can you phase a custom solution in?
Contributing Back Code


Is this a problem others will have?
Is there an existing module that does something
similar?
Can you add a new feature to existing module?
Can you write code general enough for wide use?
Contributing Back


Describe what you learned
Add documentation
Test and bump patches
Add comparisons to drupal.org/node/266179
Validating Your Decisions

Be worried if:
  You jumped straight to custom code instead of
  looking for an existing solution
  You avoided a time-tested solution because it was
  missing one tiny feature
  You didn’t do your due diligence
Examples
Alternative Solutions for
 Address + Geolocation
  Solution #1           Solution #2

Location Module     Addressfield Module
   1,620 KB               52 KB

                      Geofield Module
                          32 KB

                     Geocoder Module
                          20 KB

                  GeoPHP Module + Library
                     110 KB + 193 KB
Statistics for Location
Statistics for Addressfield
Custom Code - Views Calc
Alternative Solutions for
          Multilingual
Content Translation or Entity Translation?
Contributing Back
  http://lullabot.com/articles/localized-and-multi-
  lingual-content-drupal-7
  Description and comparison of multilingual options
  Several pages of links to resources uncovered during
  research
Which Version for
           Organic Groups?
Version 71 or Version 7
         .             .2?
  Lack of documentation
  Problems in 71, Patches needed for 7
               .                      .2
Contributing Back:
  lullabot.com/articles/organic-groups-drupal-7
  drupalize.me/series/organic-groups-drupal-7
  drupal.org/project/og_extras
Other Examples

Features + Glue
  Views Gallery Module
Choosing Bet ween Alternatives
  CCK vs Flexinode
  Image module vs Imagefield
Custom Code

Views
Panels
Token
Date
Calendar
Questions??

More Related Content

More from nyccamp

Building Social Networks
Building Social NetworksBuilding Social Networks
Building Social Networks
nyccamp
 
Building Social Networks
Building Social NetworksBuilding Social Networks
Building Social Networks
nyccamp
 
Node Access in Drupal 7 (and Drupal 8)
Node Access in Drupal 7 (and Drupal 8)Node Access in Drupal 7 (and Drupal 8)
Node Access in Drupal 7 (and Drupal 8)
nyccamp
 

More from nyccamp (12)

Promotions Vouchers and Offers in Drupal Commerce
Promotions Vouchers and Offers in Drupal CommercePromotions Vouchers and Offers in Drupal Commerce
Promotions Vouchers and Offers in Drupal Commerce
 
Deployment Strategies: Managing Code, Content, and Configurations
Deployment Strategies: Managing Code, Content, and ConfigurationsDeployment Strategies: Managing Code, Content, and Configurations
Deployment Strategies: Managing Code, Content, and Configurations
 
Drupal and Higher Education
Drupal and Higher EducationDrupal and Higher Education
Drupal and Higher Education
 
A New Theme Layer for Drupal 8
A New Theme Layer for Drupal 8A New Theme Layer for Drupal 8
A New Theme Layer for Drupal 8
 
Mobile and Responsive Design with Sass
Mobile and Responsive Design with SassMobile and Responsive Design with Sass
Mobile and Responsive Design with Sass
 
Drupal and Apache Solr Search Go Together Like Pizza and Beer for Your Site
Drupal and Apache Solr Search Go Together Like Pizza and Beer for Your SiteDrupal and Apache Solr Search Go Together Like Pizza and Beer for Your Site
Drupal and Apache Solr Search Go Together Like Pizza and Beer for Your Site
 
Building Social Networks
Building Social NetworksBuilding Social Networks
Building Social Networks
 
The State of Drupal 8
The State of Drupal 8The State of Drupal 8
The State of Drupal 8
 
Building Social Networks
Building Social NetworksBuilding Social Networks
Building Social Networks
 
Move Into Drupal Using The Migrate Module
Move Into Drupal Using The Migrate ModuleMove Into Drupal Using The Migrate Module
Move Into Drupal Using The Migrate Module
 
Hack Into Drupal Sites (or, How to Secure Your Drupal Site)
Hack Into Drupal Sites (or, How to Secure Your Drupal Site)Hack Into Drupal Sites (or, How to Secure Your Drupal Site)
Hack Into Drupal Sites (or, How to Secure Your Drupal Site)
 
Node Access in Drupal 7 (and Drupal 8)
Node Access in Drupal 7 (and Drupal 8)Node Access in Drupal 7 (and Drupal 8)
Node Access in Drupal 7 (and Drupal 8)
 

Recently uploaded

Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
panagenda
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
 

Recently uploaded (20)

WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 

There Might (Not) Be a Module For That