- or -

Drupal Planet

New Docs Challenge and Our Last Winner

New Challenge!

I was inspired by discussions of Drupal's online documentation on this week's Drupal Easy podcast. The importance of our docs cannot be understated! Thus, our brand new Module Off challenge is centered on Drupal's code docs. Here's the challenge:

Fixing up or adjusting parts of Drupal's code docs is a great way to dip your toe into the wonderfully warm pool of core development. In fact, my first ever core patch was a docs update! It's a great way to learn how to create/submit patches without a deep understanding of the complexities of Drupal's innards. This Module Off challenge asks you to submit a recent commit that you made to help Drupal's core code docs. If you want to make a screencast talking about the process, or showing the code before and after, more power too you! At a bare minimum, to take home this challenge, we'll need a link to the issue, and a brief description of what you did.

Make doc commits all the time? Now's your time to show off! Never worked on core before? Here's your chance to get started. Go to it!

We hope to see some really great submissions! There's an awesomely-free 6-month BuildAModule subscription for the winner!

Previous Challenge

Our last challenge asked you to demonstrate the use of the batch API. Alexander Ross submitted an awesome example of the API's use. If you've never used the Batch API before, the example is amazingly clear, so check it out!

Login or Sign Up to comment.

Drush Integration Challenge is Over

Another Drupal module development challenge has ended here at The Module Off. This challenge asked the community to submit a Drush integration. Here's the details:

The Challenge

Thank the good lord (or more accurately, moshe weitzman, greg.1.anderson, and the rest of the committers) for Drush. The amount of time that I've saved using the command line with Drush instead of clicking through the Drupal web interface is incredible. One of the best features of Drush is its extensibility; modules can add drush commands to control their custom functionality. Extensions can also register global Drush commands that aren't tied to any specific module on a Drupal site. In this challenge, we invite you to create either one. Essentially, this challenge calls for you to create something awesome that uses or integrates with Drush. This could be a Drush interface for an existing module, a new global Drush command, or even a cool Drush script that you use in your development or deployment workflow. Let's see what you got!

The Winner

We had three great submissions this time around, but the Drush extension submitted by greg.1.anderson takes the cake. Greg submitted his Drush Issue Queue Extras code, which allows you to POST A PATCH TO THE ISSUE QUEUE FROM THE COMMAND LINE! Not only is that the coolest frickin' thing imaginable, but the code itself is easy to read and well commented. If you want to learn a bit about writing an extension for Drush, take a look!

What's Next?

We've alrady begun our next challenge which asks for an example using the Batch API. If you haven't tried The Module Off yet, this is a pretty easy challenge to start with; jump on in!

Login or Sign Up to comment.

Views Plugin Challenge is Complete

Our Views plugin challenge has just finished, and we got some great submissions for you to check out.

The Challenge

Thank the good lord for Views (which is now in Drupal core!). If it wasn't for Views, we'd be writing custom queries to list data all the time. Sometimes, though, Views doesn't do exactly what you need it to do, and when that happens you'll have to create either a handler or a plugin. Views has 10 different types of plugins! For this challenge, you pick any type you want, and create something useful. The submission that does something useful and is well explained in a screencast / text gets the win. Get crackin'

The Winner

We had a few great submissions, but Mike Miles submitted an excellent module and accompanied it with an excellent description / screencast, which is why he's taking home our prize. Mike created an access plugin for views that uses a taxonomy reference on the user to control whether the user can see a view. His code and explanatory screencast are definitely worth checking out. There are two other great submissions that you can learn from as well. Mike earned himself a free year of hosting from DreamHost. Congrats!

Here's Mike's screencast so you can see the module in action:

Coming Up: Drush!

Our next contest calls for submissions with examples of Drush craziness. We want to see cool Drush integration for existing modules, new global drush commands, or even helpful drush scripts that you use in your workflow. Check it out!

Login or Sign Up to comment.

No Submissions Yet for Our Views Plugin Challenge!

Nothing Yet!?

So far, we haven't had any submissions for our most recent challenge, which asks for you to submit a views plugin of some kind. This could mean one of a few things:

  1. You are hard at work on Drupal 8 core development (and you should be!).
  2. You didn't realize how amazing a free year of DreamHost hosting is for a prize!
  3. You didn't realize that there's just 2 days left to submit!

Regardless of your reason, we here at The Module Off forgive you...as long as you submit something immediately! :) Don't forget that you can definitely submit work from past projects that you've worked on, just throw it in a git repo and submit!

Why Should You Care?

What value does The Module Off bring to the Drupal community? The purpose of our challenges is to provide educational resources on Drupal development topics. Once this challenge is over, it is our hope that folks might find the uploaded Views plugins useful when they need to produce a similar piece of functionality on a project. When you submit something to one of our challenges, you're not just taking a shot at a prize, you're also helping other community members to learn Drupal module development. So get on it! There's just two days left.


Here's a few resources you could use to produce a plugin if you want to code one up:

We hope to see some great submissions in the next 2 days!

Login or Sign Up to comment.

Node.JS Awesomeness Achieved

Another Module Off has ended! This challenge called for submissions that did something super-mega-sweet in Node.JS. Here's the full challenge:

Challenge Summary

This one's a tad looser; no specific use cases to code up. Just do something cool! Node.JS is a really awesome technology for real-time stuff within your Drupal site, and the Node JS Integration Module on drupal.org makes it pretty easy to get up and running. We're excited to see what you all can whip up.

The Winner

Alex Hripak whipped up some really a really cool real-time analytics dashboard for your Drupal site! Here's a screencast showing it off.

We encourage you to download the module and checkout the code! Congrats to the Alex who will be getting himself a free VPS on WebEnabled.

Coming Up: Views Plugins

Our next challenge has begun! There's lots of different plugins that you can incorporate into Views. This challenge asks you build one and show it off! We're excited to see what you all can create.

Login or Sign Up to comment.

The Module Off Challenge #4 Complete!

We've finished up another challenge here at The Module Off! This challenge asked you to solve a problem with producing change notifications in rules:

The Challenge

Ever want to have rules send you change notifications via email? What if you only want the email to show the differences between the old and the new? Rules doesn't have a simple or structured way to get the difference between two entities. Your mission is to fix that. For instance, let's say you've implemented a help desk ticketing system in Drupal where a support ticket is a content type. When someone updates a ticket in Drupal, (i.e. set priority from low to high), you want to send an email to the ticket's assigned user showing them the change. You don't want to send the entire ticket over again, and you don't want to have to make a million different rules with individual conditions for the individual fields.

Winner: e0ipso!

e0ipso put together some great integration between the rules and diff modules. He added a new rules action to compute the difference between two entities, and then you loop over the differences and do whatever you'd like with them. You could stick them in an email, create a heartbeat news-feed-style entity out of the tokens, whatever you'd like! Definitely check out the solution and download the module. Here's his screencast showing the module in action and a bit about how its coded.

Next Up: Node.JS

The next challenge at The Module Off has a simple title: Do Something Cool with Node.JS. We're excited to see what real-time integrations you can create with the amazingness of Node.JS. So give this challenge a whirl! There's some free WebEnabled hosting at stake!

Login or Sign Up to comment.

The Module Off Challenge #3 Complete!

Challenge #3 has just ended at The Module Off! For this challenge, we only had one submission, but it was great work, so I suggest you check out.

Challenge Summary

One of the major purposes of The Module Off is to help along Drupalists who are just learning to do module development. Thus, this challenge will be a little more open ended than the past two. Your module can have whatever user-facing functionality you'd like; it's up to you, and it doesn't need to be complicated. However, your PHP code should demonstrate the ins and outs of EntityFieldQuery, a powerful query builder for quickly getting lists of entities by filtering on their field and property values. You might want to look at the examples module for examples of example modules :). An EntityFieldQuery example never quite made it in. As a head start, you might want to check out the efq_views module to see EFQ in action.

And the Winner!

Congratulations to HAMbrozilla who created a really solid example of how you can extend EntityFieldQuery and use it in your module. Check out the screencast below and head over to The Module Off to download the code.

The Next Challenge!

The next challenge is all about rules. We're hoping to get some great submissions that will help in finding the difference between two entities within the rules interface. Check it out! A free subscription to Drupalize.me goes to the winner!

Login or Sign Up to comment.

Challenge #2 is Over!

Cross-posted from Mike Kadin's Technical Blog


The Module Off has just finished its 2nd challenge! We had a bunch of great submissions and a ton of people have come by the site to check it out. Thanks to all of you who have participated or learned something from the site. We hope to keep it growing!

Challenge Summary

Drupal core's autocomplete form element is an excellent way to avoid select lists with a million options. Sometimes, however, when you're creating a bunch of nodes in a row, the autocomplete field can be a pain; you have to wait for the little blue throbber to spin each time. Let's try to streamline this a bit. Your mission for this challenge, should you choose to accept it, is to build a module that adds a small list of 'recent selections' below an entity reference form element. The 'recent selections' list should contain links that quickly fill in the form element with javascript, so the user can just click the link and move on to the next part of the form. It's up to you to decide how your module figures out what to put on the list - bonus points if you do something really smart.

And the Winner!

Congratulations to Kevee who put together a great module and explained it well. Check out the screencast below and head over to The Module Off to download the code.

The Next Challenge!

The next challenge asks participants to create an example module that clearly explains how to use EntityFieldQuery(). The purpose of this challenge is totally educational, so hopefully we can create some great examples for Drupalists to learn from.

Login or Sign Up to comment.

Challenge #1 Complete!

Cross-posted from Mike Kadin's Technical Blog

The Module Off is off to a great start. We've had more than a thousand visitors to the site, and 12 intrepid Drupalists took a shot at the first ever challenge. We've received a lot of feedback from the community, which we really appreciate. We're listening! Here's what we've done so far.

The first challenge called for a module that would add an AJAX-y link to a date field on a node display that would update the field to the current date. We had a ton of great submissions (which have all been published). After much deliberation, the award for the first ever Module Off challenge goes to theunraveler! theunraveler's module 'date_today' went above and beyond and was very well explained in his screencast. If you're interested in how to create AJAX forms, I encourage you to check it out! He'll be taking home a brand new Nexus 7 tablet! Congratulations! Big ups to tim.plunkett who receives an honorable mention for a really great module as well. Tim's explanation for some tricky parts to working with languages as well as his use of hook_field_extra_fields() is definitely worth examining.

Without further adieu, I present theunraveler's module and explanation video!

Download the Module: tar.gz | zip

P.S. check out the next challenge! Streamline the entity reference autocomplete by adding some 'recent selections' links. You've got two weeks to win some free Pantheon hosting so get on it!

Login or Sign Up to comment.

Subscribe to Drupal Planet