are you in the right room? want to learn about features module are a beginner or intermediate...
Post on 18-Jan-2016
215 Views
Preview:
TRANSCRIPT
Are You in the Right Are You in the Right Room?Room?
Want to learn about Features module Are a beginner or intermediate drupaler who hasn't really used it yet Don't have an aversion to cute animals
Features in the Real World... Features in the Real World... The Good, The Bad & The UglyThe Good, The Bad & The Ugly
Kristen PolCruzTech, LLC (Freelance)
Web, Drupal & SEOdrupal@kristen.org
Santa Cruz, CA
What We'll CoverWhat We'll Cover What is the Features module Common use case How to create a feature module Reasons you should use it What can and cannot be saved What you should not save Pushing features to staging or live
What is Features?What is Features?
“The features module enables the capture and management of features in Drupal. A feature is a collection of Drupal entities which taken together satisfy a certain use-case.”---- drupal.org/project/features
Clear as Mud?Clear as Mud?
mycoolmodule.modulemycoolmodule.module
What is Features?What is Features?
Common Use CaseCommon Use CaseThe Old Way...The Old Way...
DEV SITE - Step #1: Configure your content typesDEV SITE - Step #1: Configure your content types
Common Use CaseCommon Use CaseThe Old Way...The Old Way...
DEV SITE - Step #2: Configure your viewsDEV SITE - Step #2: Configure your views
Common Use CaseCommon Use CaseThe Old Way...The Old Way...
DEV SITE - Step #3: Configure your imagecache DEV SITE - Step #3: Configure your imagecache presetspresets
Common Use CaseCommon Use CaseThe Old Way...The Old Way...
DEV SITE - Step #4: Configure your permissionsDEV SITE - Step #4: Configure your permissions
Common Use CaseCommon Use CaseThe Old Way...The Old Way...
DEV SITE - Step #5: Configure some other stuffDEV SITE - Step #5: Configure some other stuff
How do I get all these changes How do I get all these changes to the staging and live site???to the staging and live site???
Step #1: Configure your content typesStep #1: Configure your content types
Step #2: Configure your viewsStep #2: Configure your views
Step #3: Configure your imagecache presetsStep #3: Configure your imagecache presets
Step #4: Configure your permissionsStep #4: Configure your permissions
Step #5: Configure some other stuffStep #5: Configure some other stuff
Step #6: Pray that you didn't screw anything upStep #6: Pray that you didn't screw anything up
Step #7: Figure out what is wrong and fix itStep #7: Figure out what is wrong and fix it
Step #1: Configure your content typesStep #1: Configure your content types
Step #2: Configure your viewsStep #2: Configure your views
Step #3: Configure your imagecache presetsStep #3: Configure your imagecache presets
Step #4: Configure your permissionsStep #4: Configure your permissions
Step #5: Configure some other stuffStep #5: Configure some other stuff
Step #6: Create your feature moduleStep #6: Create your feature module
Common Use CaseCommon Use CaseThe New Way...The New Way...
How do I get all these changes How do I get all these changes to the staging and live site???to the staging and live site???
Step #1: Copy feature moduleStep #1: Copy feature module
Step #2: Enable feature moduleStep #2: Enable feature module
Step #3: Smile!Step #3: Smile!
Demo...Demo...10:45
More Reasons...More Reasons...
11:00
Settings are Saved in CodeSettings are Saved in Code
Revisioning system See changes in module Tag revisions Revert back to old tags
Port your Module to Port your Module to Another SiteAnother Site
Reusable features Requires careful thought Beware of dependencies Watch out for conflicts
Share Between DevelopersShare Between Developers
Sharing is nice! Coordination is required Different feature modules for different developers
Push Changes to Push Changes to Staging & Live SitesStaging & Live Sites
Streamline deployment Keep sites in better sync Less downtime
Know If Something Know If Something Has ChangedHas Changed
Spying is good Diff module is your friend Catch problems before they break your site
What Can Be Saved?What Can Be Saved?Anything* exportable or jiggered to work with features module...
CCK fields contexts content types dependencies imagecache presets menus menu links mini panels
panels permissions roles rules taxonomy variables (strongarm) views etc...
What Cannot Be Saved?What Cannot Be Saved?
Anything already in code Content (nodes, comments, etc.) Blocks* Module settings that aren't exportable & aren't in variables table
* try features_extra module (in dev)
What Should NOT Be Saved?What Should NOT Be Saved?
Do NOT save variables that change automatically in code or very BAD or very UGLY things may happen...
Push to Staging & LivePush to Staging & Live Make sure your feature modules are updated Check in code to repository & create tag Put staging/live site in maintenance mode Back up staging/live database Add/update any contrib modules if necessary Push code to staging/live site Revert feature modules on staging/live site Do additional configuration as needed Test! Take out of maintenance mode
The GoodThe Good
Config in code Reusable features Better collaboration Easier deployment Track changes
The BadThe Bad
Cannot save everything Can have a gazillion checkboxes UI is slow for large features Javascript-only UI
The UglyThe Ugly Browser can crash after you have clicked a gazillion checkboxes Saving certain variables can cause ugly things to happen Site can crash if you update feature modules before contrib modules
11:15
DrushDrush
drush features drush features-update [feature-module(s)] drush features-update-all drush features-revert [feature-module(s)] drush features-revert-all drush features-diff [feature-module(s)] drush features-export ...
EXTRA
Features HooksFeatures Hooks hook_features_api hook_features_export hook_features_export_alter hook_features_export_options hook_features_export_rebuild hook_features_export_render hook_features_export_revert hook_features_pipe_component_alter
EXTRA
Q&AQ&A
Thank Thank you...you...
top related