Upload
fredric-mitchell
View
11.307
Download
0
Embed Size (px)
Citation preview
2013 Twin Cities Drupalcamp
Fredric Mitchell@fredricmitchell
The Seven StagesOf Drupal Development
1.) Shock and Denial2.) Pain and Guilt3.) Anger and Bargaining4.) Depression and Reflection5.) The Upward Turn6.) Reconstruction7.) 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' wayInstall 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_d2dmigrate_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!!