are you in the right room? want to learn about features module are a beginner or intermediate...

Post on 18-Jan-2016

215 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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