Drupal Fire
The State of Drupal 7 Contrib
Cocomore (via DrupalFire)
img.right {float: right; clear: right; padding-left: 1em; padding-bottom: 1em; }
img.left {float: left; clear: left; padding-right: 1em; padding-bottom: 1em; }
h2, h3 {clear: both; padding-top: 10px; }
While this article focuses primarily on the state of Drupal “contrib” (modules and themes which are not part of the “core” Drupal download), it also takes a look at the greater “State of Drupal” in terms of sites known to be running on some version of Drupal, comparisons of the rate of uptake after Drupal 6 and Drupal 7 release, and a small case study involving attempting to perform a “major upgrade” from Drupal 6 to Drupal 7 on a site using a significant number of contributed modules.
The recent history of Drupal core usage
As a starting point, I think it is helpful to look at the recent history of Drupal core usage and compare the uptake of Drupal 6, after its release, with the uptake of Drupal 7. On June 22nd, 2008, when Drupal 6.0 was released, there were already significantly more sites using Drupal 6 than Drupal 5 (almost 32,000 on Drupal 6 vs almost 17,000 on Drupal 5). Both core versions of Drupal steadily gained users for a time, with Drupal 5 reaching a peak of about 24,000 sites about 7 months later, but by that time Drupal 6 was running on more than 100,000 sites. By late July 2009 (a similar point to now in terms of months after the major version release), Drupal 5 usage had dropped to about 20,000 sites and Drupal 6 was running on more than 160,000 sites; more than eight times as many installations. Since then, Drupal 5 usage has tapered to about 7,000 sites; a bit more than 1% of total Drupal usage (please note: it’s likely that many of the existing Drupal 5 sites do not report usage back to Drupal.org).
Now let’s look at the usage of Drupal 6 and Drupal 7 since the time of Drupal 7’s release. Drupal 6 peaked with about 355,000 sites, shortly after Drupal 7’s release in January 2011. At that time Drupal 7 was running on about 24,000 sites, a fraction of Drupal 6 usage at that time. Since then, while sites running on Drupal 7 have steadily increased to their present values, about 280,000 sites, Drupal 6 has hovered around the same value, drifting between about 320,000 and 350,000 sites, but not yet significantly dropping. Almost 13 months after Drupal 7’s official release, we still have more sites running Drupal 6 than Drupal 7 (and I suspect that a significant percentage of the Drupal 7 sites are in development rather than production). But what does this really say? Let’s look a bit closer at the numbers and trends:
Note: I banged this graph out in Excel since the Google chart of Drupal usage, normally displayed on project pages, seems to fail as “too large to process” for “core” usage statistics.
Drupal usage has grown by leaps and bounds since Drupal 6’s release. In June 2008, there were fewer than 50,000 sites using Drupal 5 and 6 combined. Now, a bit more than three-and-a-half years later, there are more than 615,000 sites running on some version of Drupal — more than a 12-fold increase in that time period! A year ago, this figure was less than 400,000, so Drupal 7 sites make up a large proportion of the more-than-200,000 Drupal sites added since then. The growth was steeper after Drupal 6’s release, but we still did not have 200,000 sites, total, by July 2009. In any case, it’s safe to say that for most use cases, we have the modules necessary to build a good site based on Drupal 7, so if you are hesitant to use it, don’t be. There are many great advantages to Drupal 7 and with the continual improvement of the contributed modules, we should probably build new sites on Drupal 6, only if modules critical to the use case are lacking for Drupal 7 (or if the “new” site is another site in an existing Drupal 6 “multi-sites” installation). Even if a “critical” module exists for Drupal 6 and not yet for Drupal 7, it may still be worth building the site on Drupal 7 if you have the coding experience to port the Drupal 6 module to Drupal 7, which would help alleviate the current issue that many significant modules are not yet available for Drupal 7.
State of Drupal 7 contrib (modules)
Good news: Almost all “Top 100” Drupal 6 Modules are ported to Drupal 7
The good news, especially for site builders creating a new Drupal 7 site, is that most of the top 100 modules are ready for use on Drupal 7. Nine of them are redundant (now included in “core”), 43 have “stable” releases, 23 have beta or RC, 11 have an alpha release, and 9 are in “dev” status, while a couple others recommend using another module which performs similarly.
Per style private files
Károly Négyesi (via DrupalFire)
Private files are great but they are a huge resource hog. In certain scenarios, lower-resolution versions of the pictures are absolutely fine to be public, only high resolution originals need to be protected. In this case you can use Drupal's private file handling as it is and the following simple trick to make a style public.
Using Drupal Contextual Filters in Views
Metal Toad Media (via DrupalFire)
It can take a while when you're new, but once you start to wrap your head around Views, that is when Drupal gets really fun. In this tutorial, I'll go over how to use Contextual Filters in Views to alter your content dynamically based on information in the URL. If you're a visual learner, you can skip to the video at the end of this post for a detailed walk through of the process.
DrupalModules.com Acquired by iO1
John Forsythe (via DrupalFire)
It's true, after four years of running DrupalModules.com, I'm moving on.
It's been an interesting ride, to say the least. When I started building the site back in 2007, I knew the idea of combining powerful search tools with user reviews had real potential, but looking back, it's amazing to see just how much impact it had.
To date, DrupalModules.com has served more than 1.8 million people (and 17.5 million page views), according to Google Analytics.
Thanks to the thousands of people who submitted reviews, rated modules, reported bugs, and helped spread the word about my little project.
To the thousands of Drupal developers that use the site every day, don't worry, you're in good hands. iO1 has the time and resources to continue bringing innovation to the site, and I look forward to seeing where it goes next.
Thanks to all my sponsors over the years: Acquia, DrupalConnect, AN Hosting, DrupalCon, OSTraining and iCopyright. And a very special thanks to everyone who donated personally. Keeping the site running all these years wouldn't have been possible without you.
My CSS theming setup
Sacha Chua (via DrupalFire)
“Why is your window transparent?” a coworker asked me when she noticed my screen. I told her about how I do my CSS theming, and she pulled another coworker over and made me repeat the explanation. Since that seems like something other people might find handy, here it is.
Sass: Syntactically Awesome Sytlesheets
I rarely do CSS/front-end theming work, but when I do, I try to make it as fun and easy as back-end development. I use Sass (Syntactically Awesome Stylesheets) so that I can use nested selectors, variables, and mixins. This makes my code cleaner and easier to write. You’ll need Ruby in order to install Sass, but the tool will give you CSS that you can use on any web platform.
Browser-based tools
I prefer doing the initial tweaking in Google Chrome, because I like the way that the developer tools make it easy to modify the stylesheet. The Chrome CSS Reloader extension is handy, too. Most of the time, I make my CSS changes in the text editor, then use the CSS Reloader to reload the stylesheet without refreshing the page. This makes it easy to manually toggle the display of some elements while allowing me to refresh style rules. If I want to figure out the values for a few simple changes, I’ll sometimes make the changes directly in Chrome (you can use arrow keys to adjust values), then copy the values to my Sass source file.
Colors, sizes, and spaces
A second monitor is totally awesome and well worth it.
Designs rarely specify all the colours, sizes, and spacing needed. To quickly get the color of a pixel, I use WhatColor. This shows the hex code for colors, and allows me to quickly copy the code with the F12 shortcut key. If you want to change the shortcut key, the source is available as an AutoHotkey script.
To make it easier to match sizes and spaces, I use WinWarden to make my browser window 20% translucent. Then I carefully position it over my design reference until the important features match. Magnifixer makes it easier to line things up because it can magnify a fixed portion of the screen. By focusing Magnifixer on the part I’m working on, I can tweak CSS without straining my eyes.
When I know I’m going to be making a lot of changes, I use AutoHotkey to map a shortcut so that I can refresh the CSS with one keystroke instead of several. When I happen to have my USB foot pedal handy, I rig it up to refresh my stylesheet.
Regression testing
Sometimes my CSS changes modify other rules. Instead of laboriously checking each page after changes, I’ve figured out how to use Selenium WebDriver to write a Java program that loads the pages in Mozilla Firefox and Internet Explorer, capturing screenshots and numbering them according to the pages in my design reference. This means that I can run the program in the background or start it before taking a break, and then flip through all the screenshots when I get back.
Cross-browser testing
What’s CSS theming without the requirement of browser compatibility? Someday, when I need to deal with more browsers, I might look into Selenium RC. In the meantime, I develop in Chrome, my Selenium-based program makes it easier to test in Firefox and IE, and it’s easy enough to try the URLs in Safari as well. Virtual machines handle the rest of the requirements.
So that’s how I’ve been doing CSS theming on this project. What are your favourite tips?
Read the original or check out the comments on: My CSS theming setup (Sacha Chua's blog)
Mollom.com website redesign (Woot!)
Dries Buytaert (via DrupalFire)
We're proud to present a new design for the Mollom.com website.
We first launched the Mollom.com site in 2007. For more than four years, Mollom.com was using the same design. As we grew Mollom, we wanted to address some of the issues that we've been stewing over since our original design. We have been planning to redesign the site for over a year now but work on the Mollom web service and developing new Mollom products have always had a higher priority so we haven't found the time to complete the new design until now.
The old Mollom.com design that we used from 2007 to early 2012.
The new design is the first step in our plans to reorganize the website. We still have updates to make to the content of some pages, for example. Already, we think the new design is a fresh new change that improves usability.
Take a look at the new mollom.com, we hope you like it!
The new Mollom.com website design.
Module Monday: Pagepeeker
Lullabot (via DrupalFire)
Whether you're building a Delicious-style link archive or a personal portfolio site, Drupal's Link Field is a great solution for storing user-entered URLs as part of a node. If you want to display something more visual than a URL, however, things get tricky. Third-party thumbnail generation services can create screenshots of URLs, but most rely on clunky client-side scripts to layer the thumbnails on top of your design. The Pagepeeker module offers a slick alternative: it leverages an up-and-coming thumbnail service to generate site screenshots without any Javascript code.
Setting up the module is simple: create a Link field, then select the PagePeeker display formatter. You can choose from several thumbnail sizes, or pull in the 16x16 Favicon for the linked URL. If you're working with links that aren't stored in FieldAPI fields, the module also provides a helpful theme function. Just toss a URL at it, specify the size of thumbnail you want, and it will output a linked image tag.
Break
Károly Négyesi (via DrupalFire)
I am taking a break from core development for personal reasons. After writing close to 800 core patches and spending years almost nonstop on core development, I need a break. Please leave me out of core debates on IRC, emails etc. Thanks! Contrib work will continue especially on redis_ssi and relation (mostly thanks to my generous sponsors). I am not against paid core bugfixes either :) contact me for paid core or contrib work, I promise to charge a lot less than normal for code contributed back to drupal.org.
Integrating Compass with a Git / Capistrano deployment workflow
Metal Toad Media (via DrupalFire)
When we added the Compass CSS authoring framework to our projects, new wrinkles appeared in the deployment process. Committing the artifacts to Git was used for our first prototypes, but is unsuitable for team projects because it's a sure-fire way to introduce merge conflicts. Running compass on the server (either with Cap or the Drupal module) is appealing, but a minority of our projects deploy to hosts without the ability to install Compass. Rather than support multiple strategies, we decided on executing Compass locally on the workstation running Capistrano. Changes are needed to several files:
Core Conversations at DrupalCon Denver
Dries Buytaert (via DrupalFire)
Like at previous DrupalCon's, I'm co-organizing a Core Conversations track at DrupalCon Denver.
The Core Conversations track is a place for people actively working on Drupal or Drupal.org to meet and plan the future of Drupal. Each session is either two 15 minute or one 30 minute presentation, followed by 30 minutes of discussion.
I know a lot of you contribute to Drupal or want to start contributing. If so, Core Conversations are a unique opportunity to present in front of key Drupal contributors, and to make the case for why we need to do more of A or B (e.g. authoring experience improvements, API overhauls, etc.). We need UX conversations, performance conversations, feature conversations, etc. Please share your ideas with the world through Drupal core.
If you have ideas for Drupal core, and you are attending DrupalCon, I suggest that you submit a proposal as soon as possible. The deadline is February 1st so don't wait too long. To get your ideas flowing, here are our conversations from Drupalcon London and Drupal Chicago.
Installing and Configuring Tomcat 6 and Apache Solr for Drupal 6 on Ubuntu
Cocomore (via DrupalFire)
Installing Tomcat6 and Apache Solr
Installation procedure
While there are several ways to install Tomcat 6 and Apache Solr, we will use the repository version to gain the benefit of automatic updates.
What is needed:
-
Tomcat6 as Servlet container
sudo apt-get install tomcat6
sudo apt-get install tomcat6-admin -
Apache Solr Search Server
sudo apt-get install solr-tomcat
Once everything has been correctly installed, you should see the message, “It works!” at http://localhost:8080 and “Welcome to Solr!” at http://localhost:8080/solr/
Configuring Tomcat 6
In the default Tomcat installation, no privileges are created for the Tomcat Manager, so in order to make use of the Tomcat Manager GUI, we still have to create the proper role and a corresponding user.
Top Ten Reasons To Go To DrupalCon Denver
Larry Garfield (via DrupalFire)
You mean you aren't already attending what will likely be the largest web developer conference in the Western US this year? What are you waiting for? Not sure if it will be worth it? It will be. Oh, it will be...
If you still need some convincing, or if your boss still needs some convincing, here's the top ten reasons you want to be at DrupalCon Denver:
Drupalcon Denver - What's the ROI?
Matthew Saunders (via DrupalFire)
p.one
{
border-style:dotted;
border-width:2px;
padding:10px;
width:750px;
}
Disclaimer: None of the following quotes reflects any specific individual, company, agency, or person.
From Corporate Land:
Why on earth would you need or want to go to this Drupalcon thing? It sounds an awful lot like your just going on a trip on the company's dime! Can't you just learn this stuff from a book?
If you want to go, you need to pay for it yourself and take vacation time.
From Agency Land:
We can't really afford to send all of you, how about we give you a fixed stipend to offset the cost. But we do really NEED all of you to go. Who knows who might be there who is looking for a job that you might be able to recruit. So, you all need to go.
From Independent Contractor Land:
Dear Husband/Wife - Drupalcon just seems like an excuse for you to spend our travel money. Why should you get to go to [insert city here]? And twice a year? We simply can't afford for you to do this!
So, what is the return on investment by going to Drupalcon? How will your experience change over several Drupalcons? What are the best reasons you can give your employer and/or significant other why you should go?
How to Become a Web Developer
Metal Toad Media (via DrupalFire)
So you want to become a web developer? Smart move. The web is a growth industry and I don't know of any university curriculum that adequately prepares people for this career. A good web developer can pull in well more than the median annual wage and job benefits and promotion opportunity are great.
So what do you need to know?
Talkin' Blackbaud Blues
CivicActions (via DrupalFire)
As mentioned in the previous post, the recently announced Blackbaud acquisition of Convio - two giants in the closed-source world that provide web services primarily for non-profits - caused a stir not only in the non-profit world but also in the Free and Open Source software world. Allen Gunn of Aspir
Free And Open Source Alternatives To Proprietary SaaS Offerings
CivicActions (via DrupalFire)
With this week's announcement that Blackbaud will buy Convio there have been many questions whether this will be good or bad for the nonprofit organizations both companies count as their clients. We have often had clients and other nonprofit organizations we come into contact with us ask about the open source tools we specialize in, and how they compare with the proprietary tools or Software as a Service offerings that they've heard about. One very clear difference is that the open source tools don't get bought up and consolidated.
Drupal Association community elections
Dries Buytaert (via DrupalFire)
When we designed a new governance structure for the Drupal Association last year, we decided that most of the board is selected through a nominating committee with the goal to carefully balance many factors like needed skills and geographical and sector representation. However, it was also deemed important that we have directors chosen directly by the Drupal community to make sure that the community is always well-represented.
I'm excited that we're holding our first open community elections. Two community "at large" directors will be elected to the Drupal Association Board of Directors. If you'd like to consider running, please have a look at the "At-large" nominations page. And if you're a Drupal community member, please make time to participate in discussions with candidates and of course to vote, starting January 26. (This process was vetted openly in the community by the Elections Committee and numerous community volunteers at http://groups.drupal.org/drupal-association.)
Your participation will help us take this next important step in implementing a new improved governance structure to strengthen the Drupal Association. Thanks!
Installing PHP PEAR and PECL extensions on MAMP for Mac OS X 10.7 (Lion)
Lullabot (via DrupalFire)
MAMP is an easy to install set of tools for that provides a great local development environment for Mac users (Mac Apache MySQL PHP). OS X does ship with its own built in versions of these tools, but MAMP adds lots of goodies. The newest version of MAMP includes a graphical configuration tool, a choice of PHP versions, web-based tools for administering your databases, and a variety of useful PHP extensions.
Unfortunately, MAMP doesn't include everything. If you're developing a site that needs additional PHP extensions like the Memcached library or exotic database drivers, you'll need to use the PEAR and PECL tools to build and install them. PECL (PHP Extension Community Library) and PEAR (PHP Extension and Application Repository) both provide access to a large pool of useful PHP add-ons, but using them with MAMP requires you to do a bit of extra configuration. In this article, you'll learn how to get them running on the latest version of MAMP (2.x).
Installing Components
The usual method for installing PEAR and PECL components is via the command line. Here is an example for installing PHPUnit.
$ pear channel-discover pear.phpunit.de
$ pear install phpunit/PHPUnit
Drupalcon Denver Jobs - Sign Up Now!
Matthew Saunders (via DrupalFire)
The time has finally come. You can sign up for volunteer jobs and time slots You may have received an email if you signed up previously on the general interest form or you expressed interest through Mailchimp. Sign up quickly for the spots you are interested in!
How can you help? We need tote bag stuffers, power strip placers and strikers, help desk helpers, and room monitors. What's in it for you? Well, first of all awesome karma and the knowledge you are contributing to our amazing community.
Not convinced? Well, you will also get a nifty t-shirt that calls you out as one of the elite - an awesome volunteer!
How do you sign up? Fill out the form below or go directly to the signup sheet.
Module Monday: Bundle Copy
Lullabot (via DrupalFire)
Back in the olden days of Drupal 5 and 6, the venerable CCK module came with a useful add-on: Content Copy. While it had rough edges, Content Copy allowed you to export a given content type and all of its custom fields into a snippet of PHP. The same module could be used to import that snippet of PHP code on another site and re-create the content type, with all of its settings and custom fields.
Sadly, that feature didn't make the cut when the CCK module became Drupal 7's built-in FieldAPI. While the Features modules has eclipsed Content Copy for serious site deployment, sometimes it would be handy to have the same easy "Export, save, and reuse later" option in Drupal 7. Enter Bundle Copy, the successor to Content Copy.
Like is ancestor, Bundle Copy is pretty straightforward: visit Content Types administration page and click the Export tab, then choose the content types you want to export. Pick the individual fields, submit the form, and voila -- a pile of PHP that can be saved to a text file, and re-imported to another site running Bundle Copy. The module also supports the new entity types that ship with Drupal 7: Users and Taxonomy Terms. If you've heavily customized user profiles with Drupal 7's FieldAPI, it's a quick and easy way to share the tweaks.

Recent comments
6 days 22 hours ago
1 week 16 hours ago
5 weeks 1 day ago
5 weeks 2 days ago
5 weeks 2 days ago
5 weeks 2 days ago
5 weeks 3 days ago
5 weeks 4 days ago
5 weeks 4 days ago
6 weeks 4 days ago