Projects

Hover to pause slideshow, click arrows to navigate, click to open.

Blog

Drupal development, project updates, occasional knee / head slappers

Jan 24, 2012

Higher Education Rebate on DrupalCon Training

As many subscribers know already, we'll be hosting a Mentored Training at the Denver DrupalCon in March. But what's new is that we're offering a $25 higher education rebate to faculty and students of universities and colleges. Simply send us:

  1. A copy of your DrupalCon training receipt, which must be purchased with a .edu email address, and
  2. A PayPal address or a mailing address

And we will send you a $25 PayPal payment or check once the training is complete.

Register for the training on March 19th and get $25 off.

Learn more about the training (includes a short video).

New videos on overriding feature modules

This week we begin by wrapping up our chapter on overriding Feature modules. In particular we demonstrate how to override strings and get common settings.php overrides in a version controlled file. Also, we walk you through cloning a feature module - one of the most common first steps to overriding a feature module in any Drupal distribution.

We then move onto our chapter on upgrading Drupal and contributed modules in a sustainable way. This week's free video - How to Patch a Module - will likely prove particularly useful to many of you.

How to use a version controlled settings.php include to share settings - 5:19

The settings.php file is the ideal place to put a number of different overrides, like to PHP variables or translatable strings But, since it's not typically under version control, it typically requires a manual process to get all your environments up to date. But, with a little include, we can save a ton of time and reduce errors. This video show you how to do it.

How to find and override strings with dynamic content or links - 6:09

Some strings are easy to override, but others include dynamic text. To find exactly what the structure of these strings are, you'll need a couple tricks that we demonstrate in this video.

How to override a feature module by cloning - 7:15

When you're working with Drupal distributions like Commons or Open Atrium, you're rarely override an existing feature module directly. One technique to keep things clean is to duplicate an existing feature module and set it up as your own. In this video we run you though this process.

How to upgrade a module sustainably - 3:46

If you have a contributed module that has been patched, it pays to commit to a method of upgrading modules that saves and modifications you've made. In this video we show you how.

New FREE Drupal video tutorial of the week

How to patch a module - 8:38

In this video we walk you through the process of patching a module - a fairly common but tricky procedure you'll need to understand in order to pull in updates to a module before they're officially released.

Jan 27, 2012

In preparation for our DrupalCon Denver training, we're rounding up some of the free Drupal videos tutorials on Build a Module.com so potential attendees can get a feel for the style of training. We will be leveraging the Mentored Training model I posted about several months ago, and piloted successfully at BADCamp. In this model, the traditional 'lecture' is pre-recorded in order to free up the instructors to help students with specific issues and provide that critical face-to-face time for the entire duration of the training. It's really quite awesome.

If you're considering doing any training at DrupalCon but haven't quite hopped on the boat yet - due to cost or time commitment - let me point out a couple of the less obvious benefits. While the information you learn will be useful, what you'll find even more valuable is the time you get to spend directly with skilled Drupal instructors who can help you over your specific hurdles. A second subtle benefit is the connections you'll make both with the instructors and your fellow students, connections that I guarantee will pay back dividends throughout DrupalCon and way beyond.

If you're curious about our particular training (we have 9+ amazing trainers lined up), check out this writeup which includes a short video outlining how the training works and some of the benefits. If you'd just like to peruse some of our free videos on using Git and getting every essential Drupal 7 configuration component or piece of content into code, check out the videos below:

Free videos on Git and getting everything into code

How to use a scalable Git branching model called Gitflow - 6:41

In this free (but information packed) video, we take our develop-master branch workflow and expand it to include several branch tracks in a system commonly called "Gitflow". This system, while it looks kind of crazy as a chart, takes the guesswork out of branch organization and lays down a set of sustainable rules for a project of any complexity.

How to create, deploy and clean up a release branch - 8:37

With a release branch, you capture a (hopefully) stable state of your code base and push it to a production site. In this video we walk you through each step of the way, from creating and working within the release, pushing it to production, and cleaning up after the push.

Overview of database components you can add to version control - 5:50

Getting our code into version control is a great start, but that's just half the battle with Drupal, since so much information is captured in the database. In this video, we begin the process of exploring the best way to get database components into our Git repository.

How to download and install the Features module - 1:50

The new videos this week walk you through the first steps of using the Features module, but before you do that, you'll need to actually install it. It's pretty straightforward, but we wanted to walk you through the process to make sure we get all the steps covered.

How to organize features and implications of getting everything into code - 4:09

Once you wrap your mind around the power of a feature module and the basics of updating and manipulating it, the next question you're likely to have is 'where do I put which component?' In this video, we talk you through how to organize components in a sustainable, reasonable way.

How to create and modify a Selenium macro that builds a node - 7:08

To demonstrate using Selenium IDE, we begin by recording a macro that generates a new node. You can record virtually any change with Selenium, but this would be one common use of the tool. We'll follow it up with one more test to demonstrate some additional techniques.

The challenges of overriding shared feature modules and some solutions - 4:53

One of the biggest hurdles to adopting Features as a configuration management solution is that overriding configuration options captured in a feature module isn't always straightforward. In this video we begin the review of best practices when overriding these features.

Jan 17, 2012

Why you should attend our DrupalCon Denver Mentored Training


If you or someone you know is climbing up the Drupal learning curve, our DrupalCon Denver training is guaranteed to give you a huge boost. In this short video, I talk about the structure of the training, and why it works so well regardless of your experience level.

Training is only partially about the information. The biggest benefit I've seen students get from trainings has been the one-on-one time with trainers, time where students can get difficult questions answered. In this training, you will have access to at least 9 highly skilled trainers for the entire day to connect with.

I've put together a short video (~9 minutes) explaining how the training works, the benefits of this training versus more traditional training, and a way to look at the cost that really enhances the value. If you need convincing, or need to convince your employer, definitely take a look.

Watch the video and learn more about the training >>

New videos on overriding views, menus and variables in feature modules

How to override a Views query, like changing node type or order - 4:40

It's handy knowing how to override a Views query through code anyway, but it's essential for manipulating the output of a feature module view. In this video we show you how.

How to override a menu item title - 2:52

This video demonstrates changing a menu item title with code. Again, while this is something that can be done through the menu item configuration page, reverting a feature module will blow those changes away. If you're working with any Drupal distribution, this will be one of the most common configuration change requests.

How to override variables and how the Strongarm module works - 4:51

With a feature module, variables are stored and overridden through the Strongarm module. In this video we show you how the module works, and how to override these variables in code.

How to modify interface text and version control the overrides - 3:44

The String Overrides module is great for overriding text, but it doesn't store the changes in a way that can be captured in code. So, we look at another method for overriding this text that will persist even if you have to update or revert a feature module.

New FREE video of the week

How to override Views options like title, ajax and number per page - 5:40

It requires a little finesse to override a view that has been captured by a feature module in such a way as to not risk completely obliterating your changes later on. In this video we look at overriding some common views parameters in a sustainable way.

Jan 10, 2012

DrupalCon training retweet contest

We will be giving away a free 4-month membership ($116 value) to anyone who gets retweeted the most for tweeting about our innovative DrupalCon training session. The tweet must:

  1. Mention the training in a way that encourages people to check it out
  2. Include a link to the training page (http://is.gd/bamtrain)

Submit the count of retweets along with proof (i.e. a link to a Twitter search for your tweet) by January 20th and we will announce the winner on the 24th (2 weeks from now)

New videos on overriding feature modules

This week we wrap up our coverage of using Selenium IDE to record and play back browser macros to change configuration and create content. From there, we begin looking at how to override feature modules you may be sharing between sites, or that are part of a Drupal distribution like Commons or Open Atrium.

Sometimes you may be using a shared feature module and need to be able to override certain bits without compromising your ability to update the feature module later on. This can be tricky, but we'll cover some of the most common overrides you need to make, and how to both capture these changes in code and allow you to easily update the feature module later on.

How to load and play back Selenium tests to update another environment - 6:02

Wrapping up our coverage of using Selenium to automate configuration or content creation, we show how to take a Selenium test we added to our repository and run it in any other environment.

How to override a box title, and how to learn about what else we can change - 4:45

We begin demonstrating feature overrides by looking at how to sustainably modify the title of a block. We also dig into how to you can discover other bits that can be overridden.

How to override block position, and a brief overview of the Context module - 4:00

In this video we take a look at how to use the Context module to display blocks in certain positions and how to properly override these positions.

How to override user permissions - 2:57

If you need to manipulate user permissions set by another feature module, this tutorial will show you how.

New FREE video of the week

The challenges of overriding shared feature modules and some solutions - 4:53

One of the biggest hurdles to adopting Features as a configuration management solution is that overriding configuration options captured in a feature module isn't always straightforward. In this video we begin the review of best practices when overriding these features.

Jan 7, 2012

Thank you all for a great year!

For all of you who have supported the Build a Module.com project, through kind words, making purchases, spreading the word, or sending positive mental vibes, thank you, thank you, thank you!!! Because of your support, more and more people are getting the chance to learn Drupal with a cutting-edge set of learning tools, innovations are being made for live training techniques that could change the face of training forever, and we have quickly become one of the biggest, highest quality single-source video tutorial libraries for Drupal.

This next year is going to be an exciting one. We're going to be covering more and more territory with our tutorials, we'll be helping groups and individuals conduct live trainings across the globe with our Mentored Trainings (including at DrupalCon), and we'll introduce some great new features that will make learning on Build a Module.com an even more enjoyable experience.

Thank you again, this has been an amazing year and here's to another one that's even better!

Sincerely,
Chris Shattuck

5 new videos on capturing everything else in code

Last week we wrapped up a series of videos on how to manage feature modules, and in this week we fill in some of the gaps by looking at how to capture those bits of content and configuration that we can't quite get directly into a feature module. We also explore how to use a central list and a set of basic rules to keep track of changes that require a little manual finagling.

If you're excited about capturing everything in code that you possibly can (if you're not excited about that, then watch some of the previous videos on why code capturing is so awesome), then this will get you that last 10% that doesn't quite fit into the other tools we've covered.

Overview of using Selenium IDE to store config-building macros - 2:07

Selenium IDE - a tool we've covered a bit in the past - is a great way to capture site modifications in a way that's easy to automate in other environments. In this video we take a top-level view of how this process works.

How to export Selenium tests and creating one more test - 4:17

Once you have a 'test' (a macro), the next step is to capture the test in code. To do this, we export the test and create one more test to explore some of the other options available to us with Selenium.

How to keep team members up to speed with manual changes using a simple list - 2:36

Automating is awesome, but sometimes it's just not possible. For those changes that require real human interaction, it's great to have a set of rules and central location for keeping track of the changes as you push them to other team members and launch them into staging and production sites. In this video we show you one way to do this.

How to package several repository modifications into multiple commits - 3:39

In this video we step back into Git techniques and look at using several commits for one group of changes to make it easy to roll back and document changes from one revision to another.

New FREE video of the week

How to create and modify a Selenium macro that builds a node - 7:08

To demonstrate using Selenium IDE, we begin by recording a macro that generates a new node. You can record virtually any change with Selenium, but this would be one common use of the tool. We'll follow it up with one more test to demonstrate some additional techniques.

Dec 27, 2011

Get 30% off everything until the new year

From now until the new year (January 2nd), get an unprecedented 30% off of everything, including memberships*, downloads and DVDs. We are tremendously grateful to everyone who made this year so amazing, and this is a small way of saying "thank you". To apply the discount, simply use the code THANKYOU when checking out. Thank you!

Killer feature contest has a winner

Thank you for everyone who submitted killer features this last month as part of our "Killer Feature Contest". We got some great ideas, and are looking forward to incorporating many of them before too long. Because we got so many equally great suggestions, we chose the winner randomly. Thanks again!

5 new videos on managing feature modules

This week we wrap up our chapter on creating and modifying feature modules. We talk a bit about strategies around organizing components, and re-organizing them as your site and various components evolve in purpose and function. Next week things will get even more fun as we explore how to get everything else that we can't wrap up as a feature module into some kind of version-controlable code.

Pushing a feature modification and explaining unsolicited changes - 3:04

The first changes you make to a feature module can be the most daunting. In this video we walk you through getting these changes to your production site and explain why sometimes we'll see changes in a feature module's code that we didn't actually make.

How to merge our feature component changes and update a feature module - 8:41

In this video we take our changes and merge them with our coworker's changes to demonstrate one of the most powerful features of Features: the ability to merge configuration changes without blowing away someone else's work.

How to re-organize components into new features with the UI or the .info file - 2:57

From time to time you may want to re-organize feature-based components into different feature modules in a way that makes more sense for an evolving web site or application. In this video we explain how.

Overview of other exportable components and enabling a copied feature module - 4:52

In this video, we explain various other components that can be bundled in a feature module, and how to leverage an existing feature module to deploy a whole series of configuration changes on a completely separate site (one of the other huge benefits of wrapping up configuration in a feature module).

New FREE video of the week

How to organize features and implications of getting everything into code - 4:09

Once you wrap your mind around the power of a feature module and the basics of updating and manipulating it, the next question you're likely to have is 'where do I put which component?' In this video, we talk you through how to organize components in a sustainable, reasonable way.

Dec 20, 2011

Register for our live DrupalCon Training

We're happy to announce that we will be conducting a live DrupalCon training on Friday, March 19th, using our innovative Mentored Training method. The focus of the training is on Site Building, but more experienced Drupal users and developers can still attend and learn more advanced material. You can read more about the DrupalCon training here, and how we're able to cater to such a broad experience range, but here are some benefits of the training:

If you will be attending DrupalCon, this training will be a great way to kickstart the week and let you to get much more out of the sessions and other events you'll be taking part in. The cost is $350 for an entire day of excellent training with highly experienced trainers, plus a free 3-month membership.

Learn more about the DrupalCon training >>

Register for the DrupalCon training >>

New FREE video of the week

How to deploy a feature module - 3:08

So what happens now that we have a local feature module, and a group of configuration components on our production site? In this video, we show you how to move the feature module to production without anything exploding.

Deploying Features with 5 New Videos

Last week we looked at how to create a feature module and roll back changes. This week we dive even deeper, looking at how to review the actual feature module code, and use Git to review changes between one version of our module and the next. We then dive into a practical example of deploying our feature module to a live site, and bringing configuration changes from multiple users together in a single features module. For those of you who have experiences configuration deployment woes, this will be really exciting to see in action.

How to learn more about your feature by reviewing the code - 7:44

The Features administration can give us a great birds-eye view of what's in our feature module, but reviewing the actual code can tell us more about the specifics. In this video we show you how nearly every feature module is structured and what you can learn from digging into the code.

How to update a feature and review updates with Git diff - 5:33

Previously we looked at using the Drupal Diff module to review changes between our feature module and our current configuration. In this video we show you how to get updates to configuration back into our feature module and then look at the changes between our two module versions with Git diff.

How to revert a feature once changes are in code - 1:43

Once we have our configuration changes in code and under version control, we can roll back the changes with Git, and in this video we show you how.

Overview of merging multi-user changes to the same component - 2:38

This is where features starts to get really fun. Without features, when multiple people make changes to the same configuration - a view, for example - and attempt to import these changes to a production site, things can get a bit wonky. WIth a feature module, however, these changes can be pulled together easily and deployed very quickly. In this video we walk you through how this is done.

Dec 13, 2011

Get 20% off our new collection

For this week only, you can purchase a download or DVD of the newly released "Change Management and Version Control" collection for 20% off. This collection walks you through how to use powerful Drupal utilities like the Features module and Drush, and teaches you how to use the Git version control system from the ground up.

Learn how to work side by side with team members on the same code base, develop clear strategies for deploying from development to production, and clear up any questions you might have on building a solid personal workflow for dealing with code changes in the long term.

Weighing in at over 9 hours and 120 individual videos, this is an extensive, thorough overview of critical techniques you will use every day.

Diving into Features with 5 new videos

Last week we looked at how to get your entire database into version control, which isn't always a perfect fit, but can come in handy especially in the development phase. This week we begin a multi-week exploration of using the Features module to capture the most essential configuration components from our database into code.

Features can be a little tricky, but we walk you through the creation, deployment and syncing of Feature module step by step, and explain the reasoning behind each step.

How to build a feature module, and how each component group works - 10:09

In this video we create our first "feature module" (a module created through the Features module). We also talk about each of the database components we're able to pull into our module.

The 3 big benefits of having our components in a feature module - 1:47

Once you've seen how the Features module works, we'll step back and talk a little bit about why Features makes so much sense for many projects.

How to revert a modification to a feature module component - 2:48

One of the biggest hurdles to using Features is figuring out what to do to update configuration that has already been captured into a feature module. Do you just update your view or content type and hope for the best? In this video we start discussing the various options, beginning with how to roll back a configuration change that we don't intend on keeping.

How to install and use the Diff module to view feature module overrides - 3:41

Sometimes it's difficult to tell exactly what changes have been made to configuration that has been captured in a feature module, but with the Diff module we can look at exactly what the changes are and decide from there what we're going to keep and what we might need to roll back.

New FREE video of the week

How to download and install the Features module - 1:50

The new videos this week walk you through the first steps of using the Features module, but before you do that, you'll need to actually install it. It's pretty straightforward, but we wanted to walk you through the process to make sure we get all the steps covered.

Suggest a killer feature and win a DVD

Only 2 more weeks left in our Killer Feature contest. Send us an email with a killer feature suggestion and we'll pick one of our favorites to receive a free DVD of your choice. This is a great way to contribute to making Build a Module.com an even more awesome experience than it is.

Jan 27, 2012

Change Management Collection Released!

Change Management and Version Control Released!

After several months of hard work, the "Change Management and Version Control" collection has been released to DVD and as a download. The collection contains over 9 hours and 120 videos covering how to manage a Drupal workflow using Git, the Features module, Drush and other tools. In the collection, we cover:

  • How to use the command line
  • How to use Git from the ground up
  • How to get everything in your site under version control for piece of mind and rapid deployment
  • How to push from a development to a production site using version control
  • How to work with a team on the same code base using Git
  • How the Features module works and best practices when using it
  • How to use Drush to speed up deployment of features, manage users, and more
  • How to build a Drush Make file and create your own Drush commands

This collection is ideal for anyone who is actively managing a Drupal project. The techniques covered - as always - are practical and used in real-world situations. When you complete the series, you'll have a set of incredibly powerful tools at your disposal that will help you work within or manage a team, and greatly increase your productivity as an individual developer.

5 More New Drupal Videos for Members

Last week we talked about how to manage assets with version control, and in this week we dive a little deeper by going into how to get our full database into version control, and what the implications of that are. We then roll this into a feature branch and talk about best practices for managing your database in your repository over time.

How to export a database schema for version control

Generally, getting your database schema (data about table and fields) into version control is a good idea both for backups and for looking at changes over time. In this video we talk you through how to do this via the command line for easy future automation.

How to export database content for version control

While it's not always a great idea to store the full content of a database in your repository, there are some situations where it makes a lot of sense. In this video, we walk you through how to do this and exclude certain big, temporary tables you might not want to pull in.

Cleaning up our assets folder and rolling our assets into a feature branch

In this video, we take the logical next step and pull our changes into a new feature branch.

How often should you update version controlled database dumps and why

It's not always clear when you would need to record database changes in version control, so we explore some ideas in this video on the best way to approach updates.

FREE video of the week

Overview of a typical push cycle, with and without version control

In this video, we talk through the process of a typical push cycle where we migrate all of the changes we've made to our development site to a our live (production) site, and compare it side-by-side to a process that includes Features-based modules that wrap up configuration changes into code. After this, you'll want to dig into the Features module if you haven't already.

Nov 29, 2011

Suggest a killer feature and win a DVD!

We work hard at Build a Module.com to make sure you have an amazing experience, but we also believe there's room for awesome new features. If there's an awesome feature you'd like to see, send it to us. In 1 month, we'll choose the best feature suggestion and award the winner with a free DVD of their choice!

Send us your killer feature suggestion.

More new Git videos

This week we begin by wrapping up our feature branch workflow, and then start diving into how to capture the other half of Drupal (i.e. the database) into version control. This is where things can get a little complicated, but getting our database information and configuration captured into version control as possible will help you roll back mistakes, review changes, and sleep at night, knowing you have a solid backup.

Merging an update into a feature branch, then deploying and cleaning up

In this video, we prepare our feature branch to merge with the main develop branch by first merging in the changes in the develop branch. Then we deploy the feature branch back into the develop branch and clean up the feature branch. Whew!

Summary of lessons learned in the feature branch cycle

In finishing up our feature branch, we take a step back and review what we learned in the process.

Where to store version controlled assets

Since there's not a default place to put additional assets that aren't part of our code base, we talk about the best place(s) to put them.

How to set up an assets folder that is not accessible via the web

If we decide to put our assets somewhere in our main Drupal directory, it's important to keep it safe from prying eyes. In this video we demonstrate how to use the .htaccess file to do just that.

FREE video tutorial of the week

Overview of database components you can add to version control

Getting our code into version control is a great start, but that's just half the battle with Drupal, since so much information is captured in the database. In this video, we begin the process of exploring the best way to get database components into our Git repository.

Syndicate content