Site building is for coders too.

  • 6 minute read

New to Drupal, but you're an experienced coder? Drop the API, and step away from the command line.

In one of our most popular webinars of 2011 about developing with Drupal, developer Camilla Jensen (naxoc) admitted that- even with her experience with J2EE and PHP development, much of her work on a typical Drupal project starts with *research*.

Acquia DrupalCon training

During the morning tea break at our last DrupalCon training in London, a student confided that he expected we'd have started with more "coding". In fact, our "Making the Switch" course started with quests to research various scenarios, and a discussion of the best solutions to the scenarios. As a side note, these scenarios come from our client RFPs, and represent the typical kinds of client requests you might come across. [Plug: we're teaching another "Making the switch" course for developers in DrupalCon Denver this year.]

However, this student said he expected we'd be working mostly in the command line- to show exactly where he could intercept and modify functionality. He gave the following example of a site he was developing in Drupal 6:

"I used the Staff List module, and it makes a list of staff... yet it displays the username for each person. Problem is, sometimes these are not that appropriate for a professional setting. I wanted to modify the Staff List module so I could add first names and last names to it.. I followed it through and it looked like the only place I could fix it was in the node module... but I knew that didn't sound right."

He asked had I heard of the staff list module, and well, I had to admit - no, I didn't know it. I was actually surprised it existed.

I pulled back for a second and told him about "Content profile". This is a solution to leverage the generic nodes and fields system in Drupal 6. It creates a separate record, a "profile" associated with a user account. To that, you can add fields... and before I finished the sentence, he said, "Oh" and he realized he could add "firstname" and "lastname" fields. And... of course, select these fields with Views, and show the professional staff list you want. [I should note, with Drupal 7, you can now add fields to users without Content profile, but you can get similar functionality with Profile2 to separate user profiles from accounts.]

Later, we did delve into Module development so he could have figured out where to alter that contributed module. More importantly he knew when to do code, and when to configure.

Best practices in Drupal development depend on a developer knowing the existing systems within Drupal, and leveraging them. Most of what you want to do can be done with the abstract tools such as fields, taxonomy, views; so that you can spend your time coding and developing the really tricky stuff for your own client's unique needs. Contributed modules may even be a basis for your own custom code, but it's also important to understand the main sub-systems of Drupal so you can evaluate the modules.

That's why site building skills are crucial for experienced developers who are new to Drupal. For many projects the Drupal offers sustainability in the fact that systems like fields or views allow non-coders to maintain and alter configuration. Thus allowing others on the team to understand how a site or service has been assembled.

There are a number of great learning resources out there, but we do hope you'll join our network of experienced partners for Drupal 7 in a Day and Site Building course this winter. We can also make a custom training package for you, contact us.

Drupal 7 in a Day

Learn Site building in Drupal 7