2011-09-18 @ drupalcity.de                            features+     „A Presentation about monsters, features and the plus“...
whoamiFlorian Latzel ●   @fl3a ●   http://is-loesungen.de ●   http://netzaffe.defeatures+ | 2011­09­18 | drupalcity.de | F...
whoami: f – l – 3 – what?! ●   @fl3a → flEafeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.d...
whoami: f – l – 3 – what?! ●   @fl3a → flea [fliː]features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loes...
whoami: f – l – 3 – what?! ●   @fl3a → flea [fliː]features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loes...
whoami: f – l – 3 – what?! ●   @fl3a → flea [fliː]features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loes...
whoami: fl3a → flEa → flea → floh... ●   @fl3a → flohfeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­l...
cat features+/toc.txt●   Questions●   Conclusion●   Features●   Drupal API●   Drush●   Installation profiles●   The Plus  ...
Questions: What is stored where?Filesystem:                                Database:●   Code                              ...
Questions: What is exportable* right now?Filesystem:                                Database:●   Code                     ...
Questions...features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de     11
Questions: How to cooperate with a team*?●   Working together on live?features+ | 2011­09­18 | drupalcity.de | Florian Lat...
Questions: How to cooperate with a team*?●   Working together on live?●   Working with ftp?features+ | 2011­09­18 | drupal...
Questions: How to cooperate with a team*?●   Working together on live?●   Working with ftp?●   Sharing sqldumps?features+ ...
Questions: How to cooperate with a team*? ●   Working together on live? ●   Working with ftp? ●   Sharing sqldumps? ●   Ov...
Questions: How to handle the staging issue?Everything works on dev. Now what?features+ | 2011­09­18 | drupalcity.de | Flor...
Questions: How to handle the staging issue?Everything works on dev. Now what?●   Install modules again on stagefeatures+ |...
Questions: How to handle the staging issue?Everything works on dev. Now what? ●   Install modules again on stage ●     Exp...
Questions: How to handle the staging issue?Everything works on dev. Now what?●   Install modules again on stage●    Export...
Questions: How to handle the staging issue?Whats about the „unexportable“ functionality?features+ | 2011­09­18 | drupalcit...
Questions: How to handle the staging issue?Whats about the „unexportable“ functionality?Reproduce manually!features+ | 201...
Questions: How to handle the staging issue?Whats about the „unexportable“ functionality?Reproduce manually:●   Module Sett...
Questions: How to handle the staging issue?Whats about the „unexportable“ functionality?Reproduce manually:●   Module Sett...
Questions: How to handle the staging issue?Whats about the „unexportable“ functionality?Reproduce manually:●   Module Sett...
Questions: How to handle the staging issue?Whats about the „unexportable“ functionality?Reproduce manually:●   Module Sett...
Conclusionfeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de     26
Conclusion●   Not a good strategy for a team...features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesung...
Conclusion●   Not a good strategy for a team...●   No granularity...features+ | 2011­09­18 | drupalcity.de | Florian Latze...
Conclusion●   Not a good strategy for a team...●   No granularity...●   Mostly cumbersome work...features+ | 2011­09­18 | ...
Conclusion●   Not a good strategy for a team...●   No granularity...●   Mostly cumbersome work...●   Hard to use repeating...
Conclusion●   Not a good strategy for a team...●   No granularity...●   Mostly cumbersome work...●   Hard to use repeating...
Conclusion●   Not a good strategy for a team...●   No granularity...●   Mostly cumbersome work...●   Hard to use repeating...
Conclusion●   Not a good strategy for a team...●   No granularity...●   Mostly cumbersome work...●   Hard to use repeating...
featuresfeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de     34
features: The Features ModuleFeatureshttp://drupal.org/project/featuresRequires ctoolshttp://drupal.org/project/ctools●   ...
features: What can it handle?Drupal Core:●   CCK Fields●   CCK Fieldgroups●   Content Types●   Dependencies (required modu...
features: What can it handle?Contributed Modules: ●   Context                                ●   ImageCache ●   CKEditor P...
features: What is missing?●   Configuration●   Custom Blocks●   Input Formats●   Contentfeatures+ | 2011­09­18 | drupalcit...
features: Rule #35?Rule #35: "Theres a Drupal module for that." [3]features+ | 2011­09­18 | drupalcity.de | Florian Latzel...
features: Rule #35 ­ ConfigurationStrongarmhttp://drupal.org/project/strongarm●   Settings are usually stored    in {varia...
features: Rule #35 ­ BoxesBoxeshttp://drupal.org/project/boxes●   A reimplementation    of custom blocks (boxes)●   Uses t...
features: Rule #35 ­ Contentfeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de     42
features: Rule #35 ­ ContentNodes, Node revisions, User, Taxonomyhttp://drupal.org/project/uuid_features●   Requires uuid ...
Features: Rule #35 ­ import formats Input Formatshttp://drupal.org/project/input_formats●   Allows you to export / import ...
features: myfeatureA Profile CT with...●   content_profile●   cck_private_fields●   flag_friend, flag_friend_access●   con...
features: myfeature myfeature/ ├── myfeature.features.content.inc ├── myfeature.features.fieldgroup.inc ├── myfeature.feat...
Features: myfeature.infocore = "6.x"dependencies[] = "cck_private_fields"dependencies[] = "cck_private_fields_flag_friend"...
features: myfeature.module <?php include_once(myfeature.features.inc);features+ | 2011­09­18 | drupalcity.de | Florian Lat...
Features: myfeature.features.inc (1)<?php/**  * Implementation of hook_ctools_plugin_api().  */function myfeature_ctools_p...
Features: myfeature.features.inc (2)/**  * Implementation of hook_node_info().  */function myfeature_node_info() {   $item...
Features: myfeature.features.inc<?php/**  * Implementation of hook_ctools_plugin_api().  */function myfeature_ctools_plugi...
features: myfeature.features.content.inc<?php/**  * Implementation of hook_content_default_fields().  */function myfeature...
features: SpecificationsKit [4]●   KIT Feature Specification (kitf 1.0-draft)●   KIT Theme Specification (kitt 1.0-draft)f...
features: Known IssuesLost in translation [5]... ●   e.g. a field is named Beziehungsstatus ●   e.g. in your myfeature.con...
Drupal API: If a feature is not enough... You know, Drupal has an API...Create Upgrade-Paths with Drupals update.php●   Cr...
drushfeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de     56
drush fuFeatures Module provides some drush commands:●   drush features●   drush features-export [feature name]    [compon...
drush: Useful features related extensions●   Features Clone    http://drupal.org/project/features_clone●   Features Plumbe...
Installation profilesYou might know Installation Profiles from...●   DrupalCenter●   OpenAtrium●   Acquia Drupal●   Common...
Installation Profiles: myprofiledrupal-6.x/├── COPYRIGHT.txt├── cron.php├── includes├── index.php├── install.php├── misc├─...
Installation Profile: myprofile.profile/** * Implementation of hook_profile_modules() * * @return * array of modules to be...
The Plus●   Perhaps your own Drupal Distribution?features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesu...
The Plus●   Perhaps your own Drupal Distribution?●   Feature Server    http://drupal.org/project/fserverfeatures+ | 2011­0...
The Plus●   Perhaps your own Drupal Distribution?●   Feature Server    http://drupal.org/project/fserver●   Drush Make    ...
The Plus●   Perhaps your own Drupal Distribution?●   Feature Server    http://drupal.org/project/fserver●   Drush Make    ...
The Plus●   Perhaps your own Drupal Distribution?●   Feature Server    http://drupal.org/project/fserver●   Drush Make    ...
The Plus●   Perhaps your own Drupal Distribution?●   Feature Server    http://drupal.org/project/fserver●   Drush Make    ...
echo ­e “Thank you!n“Questions? ●   @fl3a ●   http://is-loesungen.de ●   http://netzaffe.defeatures+ | 2011­09­18 | drupal...
cat ~/feature+/appendix/references.txt[1] http://drupal.org/node/298634[2] http://api.lullabot.com/hook_views_default_view...
cat ~/feature+/appendix/image­credits.txt●   Flea (RHCP)    http://en.wikipedia.org/wiki/File:Flea_in_skeleton_t-shirt.jpg...
Upcoming SlideShare
Loading in …5
×

features+ #dcb11

1,118 views

Published on

Presentation of features+ @ DrupalCamp Berlin / drupalcity.de., 2011-09-18.

Published in: Technology, Design
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,118
On SlideShare
0
From Embeds
0
Number of Embeds
200
Actions
Shares
0
Downloads
15
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

features+ #dcb11

  1. 1. 2011-09-18 @ drupalcity.de features+ „A Presentation about monsters, features and the plus“features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   1
  2. 2. whoamiFlorian Latzel ● @fl3a ● http://is-loesungen.de ● http://netzaffe.defeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   2
  3. 3. whoami: f – l – 3 – what?! ● @fl3a → flEafeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   3
  4. 4. whoami: f – l – 3 – what?! ● @fl3a → flea [fliː]features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   4
  5. 5. whoami: f – l – 3 – what?! ● @fl3a → flea [fliː]features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   5
  6. 6. whoami: f – l – 3 – what?! ● @fl3a → flea [fliː]features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   6
  7. 7. whoami: fl3a → flEa → flea → floh... ● @fl3a → flohfeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   7
  8. 8. cat features+/toc.txt● Questions● Conclusion● Features● Drupal API● Drush● Installation profiles● The Plus features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   8
  9. 9. Questions: What is stored where?Filesystem: Database:● Code ● Drupal Settings● Code Settings ● Modules Settings ● Content Types ● Content ● Views ● Rules ● ...features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   9
  10. 10. Questions: What is exportable* right now?Filesystem: Database:● Code ● Drupal Settings● Code Settings ● Modules Settings ● Content Types ● Content *(and importable) ● Views ● Rules ● ...features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   10
  11. 11. Questions...features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   11
  12. 12. Questions: How to cooperate with a team*?● Working together on live?features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   12
  13. 13. Questions: How to cooperate with a team*?● Working together on live?● Working with ftp?features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   13
  14. 14. Questions: How to cooperate with a team*?● Working together on live?● Working with ftp?● Sharing sqldumps?features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   14
  15. 15. Questions: How to cooperate with a team*? ● Working together on live? ● Working with ftp? ● Sharing sqldumps? ● Overwriting others work?*(Perhaps a distributed team)features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   15
  16. 16. Questions: How to handle the staging issue?Everything works on dev. Now what?features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   16
  17. 17. Questions: How to handle the staging issue?Everything works on dev. Now what?● Install modules again on stagefeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   17
  18. 18. Questions: How to handle the staging issue?Everything works on dev. Now what? ● Install modules again on stage ● Export Views, Rules, CTs manually from dev** Also possible via code for Rules[1] and Views[2]features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   18
  19. 19. Questions: How to handle the staging issue?Everything works on dev. Now what?● Install modules again on stage● Export Views, Rules, CTs manually from dev*● Import them manually into stagefeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   19
  20. 20. Questions: How to handle the staging issue?Whats about the „unexportable“ functionality?features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   20
  21. 21. Questions: How to handle the staging issue?Whats about the „unexportable“ functionality?Reproduce manually!features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   21
  22. 22. Questions: How to handle the staging issue?Whats about the „unexportable“ functionality?Reproduce manually:● Module Settings / Configurationfeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   22
  23. 23. Questions: How to handle the staging issue?Whats about the „unexportable“ functionality?Reproduce manually:● Module Settings / Configuration● Roles and its Permissionsfeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   23
  24. 24. Questions: How to handle the staging issue?Whats about the „unexportable“ functionality?Reproduce manually:● Module Settings / Configuration● Roles and its Permissions● And so on...features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   24
  25. 25. Questions: How to handle the staging issue?Whats about the „unexportable“ functionality?Reproduce manually:● Module Settings / Configuration● Roles and its Permissions● And so on...● Ooops, i forgot the live environment, repeat....features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   25
  26. 26. Conclusionfeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   26
  27. 27. Conclusion● Not a good strategy for a team...features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   27
  28. 28. Conclusion● Not a good strategy for a team...● No granularity...features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   28
  29. 29. Conclusion● Not a good strategy for a team...● No granularity...● Mostly cumbersome work...features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   29
  30. 30. Conclusion● Not a good strategy for a team...● No granularity...● Mostly cumbersome work...● Hard to use repeating patterns...features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   30
  31. 31. Conclusion● Not a good strategy for a team...● No granularity...● Mostly cumbersome work...● Hard to use repeating patterns...● Prone to errors...features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   31
  32. 32. Conclusion● Not a good strategy for a team...● No granularity...● Mostly cumbersome work...● Hard to use repeating patterns...● Prone to errors...● No revision history...features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   32
  33. 33. Conclusion● Not a good strategy for a team...● No granularity...● Mostly cumbersome work...● Hard to use repeating patterns...● Prone to errors...● No revision history...● No VCS / SCM...features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   33
  34. 34. featuresfeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   34
  35. 35. features: The Features ModuleFeatureshttp://drupal.org/project/featuresRequires ctoolshttp://drupal.org/project/ctools● Uses the ctools export API● Export functionality and configuration into code● Code means Drupal Modulefeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   35
  36. 36. features: What can it handle?Drupal Core:● CCK Fields● CCK Fieldgroups● Content Types● Dependencies (required modules)● Menus and Menu links*● Permissions● Roles● Taxonomy (Vocabularies)* * Currently in development.features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   36
  37. 37. features: What can it handle?Contributed Modules: ● Context ● ImageCache ● CKEditor Profiles ● Panels (Page Manager) ● Feeds ● Rules ● Flags (from 6.x-2.x) ● Viewsfeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   37
  38. 38. features: What is missing?● Configuration● Custom Blocks● Input Formats● Contentfeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   38
  39. 39. features: Rule #35?Rule #35: "Theres a Drupal module for that." [3]features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   39
  40. 40. features: Rule #35 ­ ConfigurationStrongarmhttp://drupal.org/project/strongarm● Settings are usually stored in {variables}● Strongarm makes variables exportable via features● Uses the ctools export APIfeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   40
  41. 41. features: Rule #35 ­ BoxesBoxeshttp://drupal.org/project/boxes● A reimplementation of custom blocks (boxes)● Uses the ctools export APIfeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   41
  42. 42. features: Rule #35 ­ Contentfeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   42
  43. 43. features: Rule #35 ­ ContentNodes, Node revisions, User, Taxonomyhttp://drupal.org/project/uuid_features● Requires uuid → Universally Unique Identifier http://drupal.org/project/uuid● e.g. node/259 gets the following uuid: f3159efc-3e1c-102e-882c-fd9c148d8804features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   43
  44. 44. Features: Rule #35 ­ import formats Input Formatshttp://drupal.org/project/input_formats● Allows you to export / import Input Formats manually like CTs and Views● Features Module Integration● Requires Exportables http://drupal.org/project/exportables● Requires Strongarm and Ctools, toofeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   44
  45. 45. features: myfeatureA Profile CT with...● content_profile● cck_private_fields● flag_friend, flag_friend_access● content_taxonomy● And a lot of fields...features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   45
  46. 46. features: myfeature myfeature/ ├── myfeature.features.content.inc ├── myfeature.features.fieldgroup.inc ├── myfeature.features.inc ├── myfeature.info ├── myfeature.module └── myfeature.strongarm.incfeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   46
  47. 47. Features: myfeature.infocore = "6.x"dependencies[] = "cck_private_fields"dependencies[] = "cck_private_fields_flag_friend"dependencies[] = "content_profile"...description = "Myfeature desciption"features[ctools][] = "strongarm:strongarm:1"...features[fieldgroup][] = "profile-group_personal"...features[node][] = "profile"...features[user_permission][] = "edit own profile content"features[user_permission][] = "edit privacy options for field field_relationsfeatures[user_permission][] = "view private data for field field_relationship...features[user_role][] = "Community member"features[variable][] = "comment_anonymous_profile"...name = "myfeature"package = "Features" features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   47
  48. 48. features: myfeature.module <?php include_once(myfeature.features.inc);features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   48
  49. 49. Features: myfeature.features.inc (1)<?php/** * Implementation of hook_ctools_plugin_api(). */function myfeature_ctools_plugin_api() { list($module, $api) = func_get_args(); if ($module == "strongarm" && $api == "strongarm") { return array("version" => 1); }}features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   49
  50. 50. Features: myfeature.features.inc (2)/** * Implementation of hook_node_info(). */function myfeature_node_info() { $items = array( profile => array( name => t(Profile), module => features, description => t(A user profile built as content.), has_title => 1, title_label => t(Title), has_body => 0, body_label => , min_word_count => 0, help => , ), ); return $items;}features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   50
  51. 51. Features: myfeature.features.inc<?php/** * Implementation of hook_ctools_plugin_api(). */function myfeature_ctools_plugin_api() { list($module, $api) = func_get_args(); if ($module == "strongarm" && $api == "strongarm") { return array("version" => 1); }}features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   51
  52. 52. features: myfeature.features.content.inc<?php/** * Implementation of hook_content_default_fields(). */function myfeature_content_default_fields() { $fields = array(); ... // Exported field: field_relationship_status $fields[profile-field_relationship_status] = array( field_name => relationship_status, type_name => profile, display_settings => array( weight => 37, parent => group_common, label => array( format => above, ), ... allowed_values => solo^MIn a relationship^Mcomplicated, ... label => relationship status, );}features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   52
  53. 53. features: SpecificationsKit [4]● KIT Feature Specification (kitf 1.0-draft)● KIT Theme Specification (kitt 1.0-draft)features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   53
  54. 54. features: Known IssuesLost in translation [5]... ● e.g. a field is named Beziehungsstatus ● e.g. in your myfeature.content.inc you will get: t(Beziehungsstatus) that will be used as translation source ● but it should be t(relationship status) ● Still a open issue in Features Module [6] ● Solution: Features Export Language [7]features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   54
  55. 55. Drupal API: If a feature is not enough... You know, Drupal has an API...Create Upgrade-Paths with Drupals update.php● Create myfeature.install file● Implement hook_install() http://api.drupal.org/api/drupal/developer--hooks--install.php/function/hook_install/6● Implement hook_update_N() http://api.drupal.org/api/drupal/developer--hooks--install.php/function/hook_update_N/6Perhaps you might use db_query()or implement hook_you_name_it()features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   55
  56. 56. drushfeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   56
  57. 57. drush fuFeatures Module provides some drush commands:● drush features● drush features-export [feature name] [component list]● drush features-update [feature name]● drush features-revert [feature name]● drush features-diff [feature name]features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   57
  58. 58. drush: Useful features related extensions● Features Clone http://drupal.org/project/features_clone● Features Plumber http://drupal.org/project/features_plumber● Features Fetch http://drupal.org/project/features_fetchfeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   58
  59. 59. Installation profilesYou might know Installation Profiles from...● DrupalCenter● OpenAtrium● Acquia Drupal● Commons● Open Publish● ...features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   59
  60. 60. Installation Profiles: myprofiledrupal-6.x/├── COPYRIGHT.txt├── cron.php├── includes├── index.php├── install.php├── misc├── modules├── profiles│ ├── default│ │ └── default.profile│ └── myprofile│ ├── myprofile.profile│ └── translations│ └── de.po├── robots.txt├── scripts├── sites├── themes├── update.php└── xmlrpc.phpfeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   60
  61. 61. Installation Profile: myprofile.profile/** * Implementation of hook_profile_modules() * * @return * array of modules to be required and activated */function myprofile_profile_modules(){ return array( // feature-stuff myfeature, … );}features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   61
  62. 62. The Plus● Perhaps your own Drupal Distribution?features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   62
  63. 63. The Plus● Perhaps your own Drupal Distribution?● Feature Server http://drupal.org/project/fserverfeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   63
  64. 64. The Plus● Perhaps your own Drupal Distribution?● Feature Server http://drupal.org/project/fserver● Drush Make http://drupal.org/project/drush_makefeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   64
  65. 65. The Plus● Perhaps your own Drupal Distribution?● Feature Server http://drupal.org/project/fserver● Drush Make http://drupal.org/project/drush_make● Drush make UI http://drupal.org/project/drush_make_uifeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   65
  66. 66. The Plus● Perhaps your own Drupal Distribution?● Feature Server http://drupal.org/project/fserver● Drush Make http://drupal.org/project/drush_make● Drush make UI http://drupal.org/project/drush_make_ui● drush site-install (in drush core >= 4.0)features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   66
  67. 67. The Plus● Perhaps your own Drupal Distribution?● Feature Server http://drupal.org/project/fserver● Drush Make http://drupal.org/project/drush_make● Drush make UI http://drupal.org/project/drush_make_ui● drush site-install (in drush core >= 4.0)● CI – Continious Integration (with e.g. Hudson / Jenkins)features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   67
  68. 68. echo ­e “Thank you!n“Questions? ● @fl3a ● http://is-loesungen.de ● http://netzaffe.defeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de   68
  69. 69. cat ~/feature+/appendix/references.txt[1] http://drupal.org/node/298634[2] http://api.lullabot.com/hook_views_default_views[3] Robert Douglass at DrupalCamp Stockholm http://twitter.com/#!/toddross/statuses/1970578988[4] http://drupal.org/project/kit[5] http://blog.erdfisch.de/2011/05/features-international[6] http://drupal.org/node/874760[7] http://drupal.org/sandbox/xamanu/1161994features+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de  
  70. 70. cat ~/feature+/appendix/image­credits.txt● Flea (RHCP) http://en.wikipedia.org/wiki/File:Flea_in_skeleton_t-shirt.jpg● Flea (anatomy) http://en.wikipedia.org/wiki/File:Scheme_flea_anatomy-en.svg● Feature Monster http://drupal.org/files/images/features_monster.png● The future of drupal features http://www.flickr.com/photos/developmentseed/3575550279/● Strongarm Monster http://drupal.org/files/images/strongarm.png● Boxes Monster http://drupal.org/node/820924● „Node Collision“ http://www.slideshare.net/eaton/drupal-deployment-presentation● Adrian <3 drush http://www.flickr.com/photos/developmentseed/3614279203/Feature related images by developmentSEED, monsters by Saman Bemel Benrudfeatures+ | 2011­09­18 | drupalcity.de | Florian Latzel | http://is­loesungen.de  

×