Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member

Reusing site components with the Features module

From: Drupal 7 Advanced Training

Video: Reusing site components with the Features module

One of Drupal's big strengths is in how well its community has adapted it for use by large organizations, what some people call the enterprise market. That market often needs to reuse work done on one site on another site. Unfortunately, it's easy for developers to step on each other's toes when working with core Drupal and their work isn't always easy to transfer. There's a great module that satisfies those needs called Features. Simply put, it takes most any settings in Drupal's database and exports them as sort of quasi modules, so they can be managed using standard file management tools for development, backing up, and so on.

Reusing site components with the Features module

One of Drupal's big strengths is in how well its community has adapted it for use by large organizations, what some people call the enterprise market. That market often needs to reuse work done on one site on another site. Unfortunately, it's easy for developers to step on each other's toes when working with core Drupal and their work isn't always easy to transfer. There's a great module that satisfies those needs called Features. Simply put, it takes most any settings in Drupal's database and exports them as sort of quasi modules, so they can be managed using standard file management tools for development, backing up, and so on.

Here's how it works. You first need to add the Module Features, you can get it at drupal.org/project/features. Now Features has a lot of documentation, both on the project page, and also in this documentation link. Lots and lots of stuff. This whole subsection is all about using features. Back to the Project page, one interesting thing that you see here is Other contributed modules. I'll just open that in another tab, and you see that Features actually integrates with lots and lots and lots of things.

So that you can export, for example, atrium_username and Sample Content and other stuff like that. This is what the web site looks like as I record this movie. It will certainly be different by the time you watch it, but the same stuff should be available if you search for it. But we're going to go back and just install Features. I Copy Link and install it as usual, and as always I go back and enable it. You'll notice that there's also this Features Tests module that appears after you install Features. We're going to ignore it since we're not doing any testing on the site.

So now let's create a feature. You might remember that we created a Content type called Private files in the last video. yYu can see that by going up to Structure, and Content types, and there it is Private files. I've also created a brand-new Drupal site at lynda2.tomgellar.com, and if we go up to the Structure and Content types, we see that that Content type isn't there. So we're going to move it from lynda. tomgeller.com to lynda2.tomgellar.com.

To do that, we go up to Structure and then Features. Once again, we'll ignore this whole thing about automated testing. Instead we go up to Create Feature, and I'll call it Private files. There are several options here you can add, for example, a Version number and so forth, but the thing that we're going to change is this Edit component. This says what actually goes into the feature, and in our case, it's a Content type. So we will select that, and say Private files. That gives us quite a bit of information about what exactly we're exporting, and it tells us how it's detected.

For the most part, it's all auto- detected by the Features module. If you want more information about that, of course, you'd read the documentation, which is quite lengthy. But we'll just go down and say Download feature, and that does actually download to our download location, which is on the desktop. So I'm going to go back there, and there it is, private_files.tar. Before we do anything else, let's take a quick look at what's in that feature, so I'll double-click this, and then open up the folder. As usual, there's a .info file, and also a .module file.

This is what you'd see within any kind of module that you got off of drupal.org. The big difference though is that this is a sort of quasi module, it requires the Features module in order to work. But let's open it up and just take a quick look. I'm going to open that up using TextWrangler, and it looks fairly familiar. Now I'll add that feature to that lynda2.tomgellar.com site. To do so, I'm going to go into FileZilla, my file transfer program, where I'm already logged in and see lynda2. Go into sites > all and modules, and drag and drop it as usual.

Now I will go back to the lynda2 site and take a look at what's in the Modules list. Go up to core and go down to the bottom and there it is, but you see we can't turn it on yet, because it requires Features. So I'll go ahead and grab that and install it on the lynda2 site. I'm back on the Features project page, copy the link, go back and install. Now if I go back to the Module page, I take a look. So first we turn on the Features module, and Save configuration.

Then go up to Structure, and Features, and there's the feature we just created. I'll turn it on and save settings. Sometimes you'll find that features you create have conflicts you are not expecting. In this case, I'll say, that's fine, I'll leave it as enabled. Now if we go up to Structure and Content types, so now we have the Content type successfully moved from lynda. tomgellar.com to lynda2.tomgellar.com. However, it doesn't actually bring over any content. It's really just for the structure of your site, which is why the module is called Features.

You could then bring over the content using the feeds module, as I showed you in the course Drupal 7: Reporting and Visualizing Data. It's incredibly easy once you've done this with features, because the two of them will have exactly the same field names. You don't have to rematch them up as you often do with feeds. I do have to mention that sometimes when you move things from one site to another using Features, you'll forget about dependencies. For example, in lynda.tomgeller.com, we had earlier installed the Pathauto module, and we can see that by adding some content of that Private file type.

As we scroll to the bottom we see URL path settings, and there's that Generate automatic URL alias. That doesn't actually exist in the lynda2 site, because we never installed that module. So you'll still have to go back and check your site a little bit. There's a lot more to the Features module. It does a good job of tracking changes you make for example, especially if you install another module called Diff. You can find that at drupal.org/project/diff. Now what you saw here is really the simplest used case of all. Once you start using Features, the ones you create will probably include lots of other parts, and as you saw earlier dozens of modules tie into Features.

There's also something called Features Servers, run by some Drupal Consultancies. You can see that at groups.drupal.org/node/50278. Even if you don't take advantage of Features that other people created, the Features module is a great way to modularize the way you build sites. If you find yourself doing the same thing in every site you create, start saving your own features to eliminate repetitive work and speed up development.

Show transcript

This video is part of

Image for Drupal 7 Advanced Training
Drupal 7 Advanced Training

72 video lessons · 11563 viewers

Tom Geller
Author

 
Expand all | Collapse all
  1. 4m 51s
    1. Welcome
      1m 7s
    2. Planning your Drupal career
      3m 44s
  2. 25m 46s
    1. Comparing development and production environments
      6m 22s
    2. Configuring your settings.php file
      7m 10s
    3. Running multiple sites from one Drupal installation
      7m 32s
    4. Troubleshooting common issues
      4m 42s
  3. 51m 20s
    1. Understanding your Drupal site's place on the web
      2m 44s
    2. Selecting a web host
      7m 20s
    3. Using Unix's command-line interface
      8m 23s
    4. Working with your web host's access restrictions
      4m 51s
    5. Using cPanel and other graphical web host interfaces
      3m 40s
    6. Transferring files to and from your web host
      5m 49s
    7. Moving databases using phpMyAdmin
      6m 34s
    8. Moving databases using Unix commands
      6m 8s
    9. Modifying server configuration files
      5m 51s
  4. 27m 10s
    1. Learning from case studies
      3m 13s
    2. Planning your site
      4m 18s
    3. Populating your site with Devel Generate
      3m 42s
    4. Managing URL paths
      3m 20s
    5. Restricting access to downloadable files
      5m 55s
    6. Reusing site components with the Features module
      6m 42s
  5. 21m 53s
    1. Understanding and installing Drush
      5m 23s
    2. Installing Drupal using Drush
      7m 24s
    3. Building a site using Drush
      9m 6s
  6. 31m 59s
    1. Backing up with the Backup and Migrate module
      8m 17s
    2. Moderating comment spam
      6m 47s
    3. Migrating from Drupal 6
      4m 28s
    4. Migrating to Drupal 7
      12m 27s
  7. 22m 24s
    1. Letting users log in through OpenID
      5m 10s
    2. Letting users log in through Facebook, Twitter, and other services
      9m 43s
    3. Republishing posts on Facebook and Twitter
      7m 31s
  8. 1h 5m
    1. Understanding Drupal's base themes
      5m 55s
    2. Introducing base themes: Zen and subtheming
      11m 35s
    3. Introducing base themes: Fusion and extensibility
      10m 44s
    4. Introducing base themes: AdaptiveTheme and responsive design
      7m 25s
    5. Introducing base themes: Omega and mobile devices
      7m 9s
    6. Using Firebug and other theming tools
      7m 20s
    7. Modifying themes with Sweaver
      6m 59s
    8. Modifying themes with Livethemer
      8m 45s
  9. 49m 35s
    1. Understanding the Rules module
      6m 48s
    2. Demonstrating how Rules works in Drupal Commerce
      3m 53s
    3. Creating practical rules
      6m 37s
    4. Improving rules
      9m 10s
    5. Defining conditions with the Context module
      7m 51s
    6. Varying layout with the Context and Delta modules
      5m 0s
    7. Varying layout with the Panels module
      10m 16s
  10. 52m 46s
    1. Enabling social features
      9m 46s
    2. Implementing a voting system
      9m 15s
    3. Rewarding good behavior with the Userpoints module
      5m 57s
    4. Setting up Organic Groups
      6m 28s
    5. Adding content to groups
      2m 21s
    6. Seeing group activity better with views and panels
      10m 13s
    7. Making groups private
      4m 54s
    8. Letting each group have its own permissions
      3m 52s
  11. 25m 32s
    1. Understanding packaged Drupal distributions
      2m 8s
    2. Getting a head start with Acquia Drupal
      7m 28s
    3. Creating online storefronts with Drupal Commerce
      6m 53s
    4. Creating government web sites with OpenPublic
      9m 3s
  12. 1h 30m
    1. Taking the assignment
      3m 26s
    2. Planning the project
      3m 43s
    3. Preparing the infrastructure
      8m 42s
    4. Starting the design
      7m 35s
    5. Filling in the content
      7m 29s
    6. Developing the layout
      10m 27s
    7. Finishing the layout
      7m 8s
    8. Refining the CSS
      6m 32s
    9. Setting up sections for regional offices
      4m 53s
    10. Configuring regional offices
      7m 18s
    11. Connecting to social media
      5m 9s
    12. Cleaning up
      12m 32s
    13. Securing the site
      5m 56s
  13. 37s
    1. Next steps
      37s

Start learning today

Get unlimited access to all courses for just $25/month.

Become a member
Sometimes @lynda teaches me how to use a program and sometimes Lynda.com changes my life forever. @JosefShutter
@lynda lynda.com is an absolute life saver when it comes to learning todays software. Definitely recommend it! #higherlearning @Michael_Caraway
@lynda The best thing online! Your database of courses is great! To the mark and very helpful. Thanks! @ru22more
Got to create something yesterday I never thought I could do. #thanks @lynda @Ngventurella
I really do love @lynda as a learning platform. Never stop learning and developing, it’s probably our greatest gift as a species! @soundslikedavid
@lynda just subscribed to lynda.com all I can say its brilliant join now trust me @ButchSamurai
@lynda is an awesome resource. The membership is priceless if you take advantage of it. @diabetic_techie
One of the best decision I made this year. Buy a 1yr subscription to @lynda @cybercaptive
guys lynda.com (@lynda) is the best. So far I’ve learned Java, principles of OO programming, and now learning about MS project @lucasmitchell
Signed back up to @lynda dot com. I’ve missed it!! Proper geeking out right now! #timetolearn #geek @JayGodbold
Share a link to this course

What are exercise files?

Exercise files are the same files the author uses in the course. Save time by downloading the author's files instead of setting up your own files, and learn by following along with the instructor.

Can I take this course without the exercise files?

Yes! If you decide you would like the exercise files later, you can upgrade to a premium account any time.

Become a member Download sample files See plans and pricing

Please wait... please wait ...
Upgrade to get access to exercise files.

Exercise files video

How to use exercise files.

Learn by watching, listening, and doing, Exercise files are the same files the author uses in the course, so you can download them and follow along Premium memberships include access to all exercise files in the library.


Exercise files

Exercise files video

How to use exercise files.

For additional information on downloading and using exercise files, watch our instructional video or read the instructions in the FAQ .

This course includes free exercise files, so you can practice while you watch the course. To access all the exercise files in our library, become a Premium Member.

Are you sure you want to mark all the videos in this course as unwatched?

This will not affect your course history, your reports, or your certificates of completion for this course.


Mark all as unwatched Cancel

Congratulations

You have completed Drupal 7 Advanced Training.

Return to your organization's learning portal to continue training, or close this page.


OK
Become a member to add this course to a playlist

Join today and get unlimited access to the entire library of video courses—and create as many playlists as you like.

Get started

Already a member ?

Become a member to like this course.

Join today and get unlimited access to the entire library of video courses.

Get started

Already a member?

Exercise files

Learn by watching, listening, and doing! Exercise files are the same files the author uses in the course, so you can download them and follow along. Exercise files are available with all Premium memberships. Learn more

Get started

Already a Premium member?

Exercise files video

How to use exercise files.

Ask a question

Thanks for contacting us.
You’ll hear from our Customer Service team within 24 hours.

Please enter the text shown below:

The classic layout automatically defaults to the latest Flash Player.

To choose a different player, hold the cursor over your name at the top right of any lynda.com page and choose Site preferences from the dropdown menu.

Continue to classic layout Stay on new layout
Exercise files

Access exercise files from a button right under the course name.

Mark videos as unwatched

Remove icons showing you already watched videos if you want to start over.

Control your viewing experience

Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.

Interactive transcripts

Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.

Learn more, save more. Upgrade today!

Get our Annual Premium Membership at our best savings yet.

Upgrade to our Annual Premium Membership today and get even more value from your lynda.com subscription:

“In a way, I feel like you are rooting for me. Like you are really invested in my experience, and want me to get as much out of these courses as possible this is the best place to start on your journey to learning new material.”— Nadine H.

Thanks for signing up.

We’ll send you a confirmation email shortly.


Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

   
submit Lightbox submit clicked
Terms and conditions of use

We've updated our terms and conditions (now called terms of service).Go
Review and accept our updated terms of service.