SlideShare a Scribd company logo
2013 Twin Cities Drupalcamp
Fredric Mitchell
@fredricmitchell
The Seven Stages
Of Drupal Development
1.) Shock and Denial
2.) Pain and Guilt
3.) Anger and Bargaining
4.) Depression and Reflection
5.) The Upward Turn
6.) Reconstruction
7.) Acceptance and Hope
7 Stages of Grief Drupal@fredricmitchell | 2
●
Web Development Manager at
Orbit Media Studios
●
Web Dev 10+ years, Drupal
●
Gardening, T-Ball, Thundercats
Are you qualified? @fredricmitchell | 3
●
Grief == Drupal
●
Belie All Fears
●
Want Answers
●
Reaffirmation and Confidence
You are here because... @fredricmitchell | 4
Present State @fredricmitchell | 5
http://www.codem0nk3y.com/2012/04/what-bugs-me-about-modx-and-why/cms-learning-curve/
http://www.flickr.com/photos/32029534@N00/7317378118/
1. Shock and Denial @fredricmitchell | 6
Shock provides emotional protection from being
overwhelmed all at once. This may last for weeks
months.
Shock and Denial @fredricmitchell | 7
node
entity
content type
bundle
views
entityfieldquery
preprocess
process
alter
ctools
panels
blocks
beans
i18n
entity api
workflow
workbench
state machine
hooks
query_alter
tid
vid
nid
uid
theme
ckeditor
rules
roles
permissions
content access
logintobaggan
features
spaces
context
sites
conf
2. Pain and Guilt
http://www.flickr.com/photos/cuboidal/23246255/
@fredricmitchell | 8
Although excruciating, it is important that you
experience the pain fully, and not hide it, avoid it or
escape from it.
Tools for Pain and Guilt@fredricmitchell | 9
● Google
● Pro Drupal 7 Development (book)
● drupal.org / api.drupal.org
● drupalize.me
● IRC
● Local Meetups
● Camps / Cons
● Time
http://www.flickr.com/photos/13259518@N00/7339686070/
3. Anger and Bargaining@fredricmitchell | 10
Frustration gives way to anger, and you may lash out and
lay unwarranted blame on someone else.
Causes of Anger @fredricmitchell | 11
Find a page
admin/content → Scroll & Paginate
or
Build view → Create filters → Setup perms → Set
paths → Export to features → Pray
or
Install admin_views (dependencies)
Causes of Anger @fredricmitchell | 12
Place a block
admin/structure → Blocks → Find & Scroll →
Configure
or
Install Context / Context UI → Setup perms → Set
conditions → Set Reactions
or
Install beans (dependencies)
Causes of Anger @fredricmitchell | 13
Small team working together
Features get overridden
Core is updated and break things
Patches are all over the place
Build vs. Buy
UI vs. Code
http://www.flickr.com/photos/30990153@N02/4379602297/
4. Depression. Reflection.@fredricmitchell | 14
Encouragement from others is not helpful to you during
this stage of grieving.
Sad Face :-( @fredricmitchell | 15
Retrieve single field value
The bad way
$value = $node->field_value['und'][0]['value']
The 'Drupal' way
$value = field_get_items('node', $node, 'field_value');
$value = (is_array($value)) ? reset($value) : $value;
$value = (isset($value['value']))
? $value['value']
: false;
Sad Face :-( @fredricmitchell | 16
Set a field value
The bad way
$user->field_value['und'][0]['value'] = $value;
The 'Drupal' way
Install entity_api module
$user = entity_metadata_wrapper('user', $user);
$user->field_value->set($value);
$user->save();
Sad Face :-( @fredricmitchell | 17
Get a menu
$tree = menu_tree_page_data('main-menu');
$main_menu = menu_tree_output($tree, 1);
print drupal_render($main_menu);
Get taxonomy terms
$v =
taxonomy_vocabulary_machine_name_load($n);
$terms = taxonomy_get_tree($v->vid);
foreach ($terms as $term) {
$options[$term->tid] = $term->name;
Sad Face :-( @fredricmitchell | 18
Migration
drupal.org/project/migrate
The Good – It exists!!!
The Bad – Documentation is spotty.
The Ugly – 9000 ways of doing it.
migrate_d2d
migrate_extras
Code: https://gist.github.com/fmitchell/6079933
http://www.flickr.com/photos/18850767@N02/6853403410/
5. The Upward Turn @fredricmitchell | 19
As you start to adjust, your life becomes a little calmer
and more organized.
That is helpful @fredricmitchell | 20
What node/menu/object am I on?
menu_get_object()
Querying made easy
EntityFieldQuery
URL arguments made easy
drupal_get_query_parameters()
That is helpful @fredricmitchell | 21
I want to change this form
hook_form_alter()
Examples, please!
drupal.org/project/examples
Quickly do things
drush
That is helpful @fredricmitchell | 22
I want to create a distribution
Make
Installation Profiles (derf?)
drupal.org/node/108973
drupal.org/documentation/build/distributions
http://www.flickr.com/photos/49503058184@N01/172906852/
6. Reconstruction @fredricmitchell | 23
As you become more functional, your mind starts
working again, and you will find yourself seeking
realistic solutions.
What's next? @fredricmitchell | 24
Load all the things
entity_load_multiple() - D8
Configuration
VCS, No more system settings forms - D8
Mobile
IE8 is dead, jQuery 2.0, Responsive grids - D8
What's next? @fredricmitchell | 25
Make it pretty!
Twig - D8
Services
HTTPFoundation, HTTPCache - D8
Multilingual
Everything is entity API - D8
http://www.flickr.com/photos/40461532@N05/5049303652/
7. Acceptance and Hope@fredricmitchell | 26
Acceptance does not necessarily mean instant happiness.
Given the pain and turmoil you have experienced, you
can never return to the carefree, untroubled YOU that
existed.
If I Must @fredricmitchell | 27
node
entity
content type
bundle
views
entityfieldquery
preprocess
process
alter
ctools
panels
blocks
beans
i18n
entity api
workflow
workbench
state machine
hooks
query_alter
tid
vid
nid
uid
theme
ckeditor
rules
roles
permissions
content access
logintobaggan
features
spaces
context
sites
conf
●
Drupal 8 needs you!
●
Join a group.
●
Wear your scars proudly.
The Future @fredricmitchell | 28
2013 Twin Cities Drupalcamp
Fredric Mitchell
@fredricmitchell
Thank you!!

More Related Content

PDF
The WHY, HOW, WHAT of Social Media for Games
PDF
Losing Staff: the Seven Stages of Loss and Recovery
PPT
Revenge of the Right Brain
PPT
煩惱就是菩提
PPTX
EVOLUCION DE LA EDUCACION A TRAVES DE LAS (TIC)
PPT
大葉簡報
PDF
Hybrid datasenter - fremtidsrettet og optimalisert med Microsoft Cloud OS
The WHY, HOW, WHAT of Social Media for Games
Losing Staff: the Seven Stages of Loss and Recovery
Revenge of the Right Brain
煩惱就是菩提
EVOLUCION DE LA EDUCACION A TRAVES DE LAS (TIC)
大葉簡報
Hybrid datasenter - fremtidsrettet og optimalisert med Microsoft Cloud OS

Viewers also liked (13)

PDF
#CannesLions 2014: Day 5 Recap #OgilvyCannes
PPTX
Presentación sobre eficiencia energetica en smart cities
PDF
彼氏から彼女へ贈るプレゼント
PPT
Animals
PDF
スペシャルクーポンガチャによって中高生に家計簿の習慣をつけさせる
PPT
PYMES Desarrollo Productivo y Social con Enfoque de Género
PPTX
Defrag Panel _Filtering information through a social network _ Tamccann
PDF
Social Media for Arts Entrepreneurs at ASU
PDF
Ficha inscricao aluno_cisja
PPT
UX Team Of One
PPT
Developing an online identity - some tips
PPTX
Paid search competitive analysis
PPT
摩根簡介
#CannesLions 2014: Day 5 Recap #OgilvyCannes
Presentación sobre eficiencia energetica en smart cities
彼氏から彼女へ贈るプレゼント
Animals
スペシャルクーポンガチャによって中高生に家計簿の習慣をつけさせる
PYMES Desarrollo Productivo y Social con Enfoque de Género
Defrag Panel _Filtering information through a social network _ Tamccann
Social Media for Arts Entrepreneurs at ASU
Ficha inscricao aluno_cisja
UX Team Of One
Developing an online identity - some tips
Paid search competitive analysis
摩根簡介
Ad

Similar to The 7 Stages of Drupal Development (20)

PDF
DrupalCon 2013 Making Support Fun & Profitable
PDF
Drupal - Changing the Web by Connecting Open Minds - Josef Dabernig
PDF
Drupal - Changing the Web by Connecting Open Minds - DrupalCamp North 2015
PDF
Managing a Project the Drupal Way - Drupal Open Days Ireland
PDF
Кто такой хороший Drupal-разработчик
PDF
Who is a Good Drupal Developer?
PDF
State of Drupal keynote, DrupalCon Dublin
PDF
Ux testing recap
KEY
Teaching Drupal
PDF
Making Support Fun & Profitable: DrupalCon Portland
PDF
It's All About the Experience: What I’ve learnt from talking to thousands of ...
PDF
How to Write a Winning Session Submission
PDF
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
PPTX
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...
PPTX
Becoming A Drupal Master Builder
PDF
Beyond the Beginner - Path Ways to Advanced Drupal Levels & Businesses
PDF
Drupal 8: A story of growing up and getting off the island
PDF
Speaking Drupal to People Who Speak Klingon
PDF
Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011
PDF
Drupal Roadmap 2010
DrupalCon 2013 Making Support Fun & Profitable
Drupal - Changing the Web by Connecting Open Minds - Josef Dabernig
Drupal - Changing the Web by Connecting Open Minds - DrupalCamp North 2015
Managing a Project the Drupal Way - Drupal Open Days Ireland
Кто такой хороший Drupal-разработчик
Who is a Good Drupal Developer?
State of Drupal keynote, DrupalCon Dublin
Ux testing recap
Teaching Drupal
Making Support Fun & Profitable: DrupalCon Portland
It's All About the Experience: What I’ve learnt from talking to thousands of ...
How to Write a Winning Session Submission
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...
Becoming A Drupal Master Builder
Beyond the Beginner - Path Ways to Advanced Drupal Levels & Businesses
Drupal 8: A story of growing up and getting off the island
Speaking Drupal to People Who Speak Klingon
Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011
Drupal Roadmap 2010
Ad

Recently uploaded (20)

PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPT
Teaching material agriculture food technology
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Machine learning based COVID-19 study performance prediction
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Approach and Philosophy of On baking technology
PDF
KodekX | Application Modernization Development
PDF
Electronic commerce courselecture one. Pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Encapsulation theory and applications.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Cloud computing and distributed systems.
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Teaching material agriculture food technology
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Machine learning based COVID-19 study performance prediction
Mobile App Security Testing_ A Comprehensive Guide.pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Approach and Philosophy of On baking technology
KodekX | Application Modernization Development
Electronic commerce courselecture one. Pdf
20250228 LYD VKU AI Blended-Learning.pptx
Encapsulation theory and applications.pdf
Encapsulation_ Review paper, used for researhc scholars
Cloud computing and distributed systems.
Spectral efficient network and resource selection model in 5G networks
Review of recent advances in non-invasive hemoglobin estimation
Chapter 3 Spatial Domain Image Processing.pdf
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
MIND Revenue Release Quarter 2 2025 Press Release
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx

The 7 Stages of Drupal Development

  • 1. 2013 Twin Cities Drupalcamp Fredric Mitchell @fredricmitchell The Seven Stages Of Drupal Development
  • 2. 1.) Shock and Denial 2.) Pain and Guilt 3.) Anger and Bargaining 4.) Depression and Reflection 5.) The Upward Turn 6.) Reconstruction 7.) Acceptance and Hope 7 Stages of Grief Drupal@fredricmitchell | 2
  • 3. ● Web Development Manager at Orbit Media Studios ● Web Dev 10+ years, Drupal ● Gardening, T-Ball, Thundercats Are you qualified? @fredricmitchell | 3
  • 4. ● Grief == Drupal ● Belie All Fears ● Want Answers ● Reaffirmation and Confidence You are here because... @fredricmitchell | 4
  • 5. Present State @fredricmitchell | 5 http://www.codem0nk3y.com/2012/04/what-bugs-me-about-modx-and-why/cms-learning-curve/
  • 6. http://www.flickr.com/photos/32029534@N00/7317378118/ 1. Shock and Denial @fredricmitchell | 6 Shock provides emotional protection from being overwhelmed all at once. This may last for weeks months.
  • 7. Shock and Denial @fredricmitchell | 7 node entity content type bundle views entityfieldquery preprocess process alter ctools panels blocks beans i18n entity api workflow workbench state machine hooks query_alter tid vid nid uid theme ckeditor rules roles permissions content access logintobaggan features spaces context sites conf
  • 8. 2. Pain and Guilt http://www.flickr.com/photos/cuboidal/23246255/ @fredricmitchell | 8 Although excruciating, it is important that you experience the pain fully, and not hide it, avoid it or escape from it.
  • 9. Tools for Pain and Guilt@fredricmitchell | 9 ● Google ● Pro Drupal 7 Development (book) ● drupal.org / api.drupal.org ● drupalize.me ● IRC ● Local Meetups ● Camps / Cons ● Time
  • 10. http://www.flickr.com/photos/13259518@N00/7339686070/ 3. Anger and Bargaining@fredricmitchell | 10 Frustration gives way to anger, and you may lash out and lay unwarranted blame on someone else.
  • 11. Causes of Anger @fredricmitchell | 11 Find a page admin/content → Scroll & Paginate or Build view → Create filters → Setup perms → Set paths → Export to features → Pray or Install admin_views (dependencies)
  • 12. Causes of Anger @fredricmitchell | 12 Place a block admin/structure → Blocks → Find & Scroll → Configure or Install Context / Context UI → Setup perms → Set conditions → Set Reactions or Install beans (dependencies)
  • 13. Causes of Anger @fredricmitchell | 13 Small team working together Features get overridden Core is updated and break things Patches are all over the place Build vs. Buy UI vs. Code
  • 14. http://www.flickr.com/photos/30990153@N02/4379602297/ 4. Depression. Reflection.@fredricmitchell | 14 Encouragement from others is not helpful to you during this stage of grieving.
  • 15. Sad Face :-( @fredricmitchell | 15 Retrieve single field value The bad way $value = $node->field_value['und'][0]['value'] The 'Drupal' way $value = field_get_items('node', $node, 'field_value'); $value = (is_array($value)) ? reset($value) : $value; $value = (isset($value['value'])) ? $value['value'] : false;
  • 16. Sad Face :-( @fredricmitchell | 16 Set a field value The bad way $user->field_value['und'][0]['value'] = $value; The 'Drupal' way Install entity_api module $user = entity_metadata_wrapper('user', $user); $user->field_value->set($value); $user->save();
  • 17. Sad Face :-( @fredricmitchell | 17 Get a menu $tree = menu_tree_page_data('main-menu'); $main_menu = menu_tree_output($tree, 1); print drupal_render($main_menu); Get taxonomy terms $v = taxonomy_vocabulary_machine_name_load($n); $terms = taxonomy_get_tree($v->vid); foreach ($terms as $term) { $options[$term->tid] = $term->name;
  • 18. Sad Face :-( @fredricmitchell | 18 Migration drupal.org/project/migrate The Good – It exists!!! The Bad – Documentation is spotty. The Ugly – 9000 ways of doing it. migrate_d2d migrate_extras Code: https://gist.github.com/fmitchell/6079933
  • 19. http://www.flickr.com/photos/18850767@N02/6853403410/ 5. The Upward Turn @fredricmitchell | 19 As you start to adjust, your life becomes a little calmer and more organized.
  • 20. That is helpful @fredricmitchell | 20 What node/menu/object am I on? menu_get_object() Querying made easy EntityFieldQuery URL arguments made easy drupal_get_query_parameters()
  • 21. That is helpful @fredricmitchell | 21 I want to change this form hook_form_alter() Examples, please! drupal.org/project/examples Quickly do things drush
  • 22. That is helpful @fredricmitchell | 22 I want to create a distribution Make Installation Profiles (derf?) drupal.org/node/108973 drupal.org/documentation/build/distributions
  • 23. http://www.flickr.com/photos/49503058184@N01/172906852/ 6. Reconstruction @fredricmitchell | 23 As you become more functional, your mind starts working again, and you will find yourself seeking realistic solutions.
  • 24. What's next? @fredricmitchell | 24 Load all the things entity_load_multiple() - D8 Configuration VCS, No more system settings forms - D8 Mobile IE8 is dead, jQuery 2.0, Responsive grids - D8
  • 25. What's next? @fredricmitchell | 25 Make it pretty! Twig - D8 Services HTTPFoundation, HTTPCache - D8 Multilingual Everything is entity API - D8
  • 26. http://www.flickr.com/photos/40461532@N05/5049303652/ 7. Acceptance and Hope@fredricmitchell | 26 Acceptance does not necessarily mean instant happiness. Given the pain and turmoil you have experienced, you can never return to the carefree, untroubled YOU that existed.
  • 27. If I Must @fredricmitchell | 27 node entity content type bundle views entityfieldquery preprocess process alter ctools panels blocks beans i18n entity api workflow workbench state machine hooks query_alter tid vid nid uid theme ckeditor rules roles permissions content access logintobaggan features spaces context sites conf
  • 28. ● Drupal 8 needs you! ● Join a group. ● Wear your scars proudly. The Future @fredricmitchell | 28
  • 29. 2013 Twin Cities Drupalcamp Fredric Mitchell @fredricmitchell Thank you!!