Drupal Fire - Quick Roundup from important Drupal blogs and sites

Subscribe to Drupal Fire - Quick Roundup from important Drupal blogs and sites feed
News, views, tips, and tricks from the best Drupal developers, designers, and writers. All Drupal, all the time.
Updated: 2 hours 16 min ago

Toadcast 22

Wed, 2014-04-16 20:38

Metal Toad Media (via DrupalFire)

Toadcast 22 hosted an All-Star cast including: Dave Bellous, co-owner of Yellow Pencil, Jacob Redding, Open Source Manager at Accenture's Emerging Technology Innovation Labs, Jeff Walpole, CEO of Phase2, and Joaquin Lippincott, President of Metal Toad Media to discuss Open Source, Oracle, and and the healthcare web-tech industry (Cover Oregon).

Categories: Drupal Universe

Legally Binding your Web APIs

Tue, 2014-04-15 15:00

Lullabot (via DrupalFire)

As web architecture evolves towards building distributed, independent applications, and away from single-purpose omnibus websites, Drupal implementations are including services, APIs, and feeds almost by default. While Services, RestWS, and Drupal 8 all simplify creating APIs to distribute content, it's important to step back and think about API design before writing a single line of code.

Categories: Drupal Universe

Module Monday: TableField

Mon, 2014-04-14 17:00

Lullabot (via DrupalFire)

Drupal's custom fields allow site builders to tweak out their content types with all kinds of data: phone numbers, file uploads, maps, and more. When it comes to tabular information, though, most of us fall back on simple HTML tables in the body field. The TableField module aims to fix that by storing and editing data tables with a single consolidated Drupal field type.

Categories: Drupal Universe

The Functional PHP tour

Mon, 2014-04-14 04:35

Larry Garfield (via DrupalFire)

Ever heard of functional programming? Not procedural programming, but actual functional programming. Probably, as some fancy academic thing that no one really uses, right?

Did you know you can do it in PHP, too? It's true. In fact, I'll be speaking about it four times in the next couple of weeks!

read more

Categories: Drupal Universe

The NYC Camp Drupal 8 Multilingual session that wasn't

Sun, 2014-04-13 14:54

Gábor Hojtsy (via DrupalFire)

Did you expect to see how Drupal 8 improves multilingual tasks at NYC Camp? Well, bad luck! I'd like to apologise in place of the NYC Camp team for their messing up the schedule yesterday and their lack of communication following. I was told to set up for my presentation in a room that was not even meant to be a presentation room, let alone my presentation room, even though it was confirmed by several volunteers coming to the room. Later on yesterday, several people asked me why I did not show up for my session. I did.

The good news is that I delivered this talk before, and although the latest recorded copy is definitely not as up to date as the one I worked on for NYC Camp, you can watch it here (fast forward to 12:04 to the start of the presentation itself):

I would have loved to talk to you, bring you all the good news, answer your questions and hopefully inspire you to join our efforts. I did not get a chance this time. Hope to catch up with you sometime later at other events!

Categories: Drupal Universe

Learning From Distributed Companies

Thu, 2014-04-10 15:00

Lullabot (via DrupalFire)

Once upon a time, back in 2005, Lullabot was just two guys collaborating across several time zones. In those days, Lullabot was predominantly a Drupal consultancy and Drupal was much, much smaller. The talent, like the open source project, was spread out around the globe. We’ve stayed that way ever since, even as we’ve grown to become a nearly 60-person full-service digital agency. All of our employees at Lullabot work from home, or from a coffee shop, or a co-working space, or a library… We work from Copenhagen, Denmark; or Normal, Illinois; or Portland, Oregon.

Categories: Drupal Universe

Programming RESTful Endpoints to Accept POST in Drupal

Thu, 2014-04-10 13:58

Drupal Connect (via DrupalFire)

Expanding on Drupal to accept data from other sources is key to building a viable business solution. Most modern applications integrate data from sources other than user forms. One standard approach to integrating data from outside sources is to use a RESTful endpoint to accept JSON data. There are several contributed options to accepting JSON POST, but you may find a custom option best fits your needs. If you have a need to expand your Drupal platform by programming a custom RESTful endpoint this post will help get you started.

Contributed Options

The Drupal community has contributed several modules for processing RESTful POSTs. Perhaps the most popular, the Services Module, supports multiple formats including SOAP, JSON, REST, XMLRPC and AMF. Services operates on predefined endpoints and can be extended with support from modules like the Services Views module and Services Rules module. One disadvantage with using Services is the lack of backwards compatibility between versions; with a history of breaking upgrade paths between major point releases.

Another option is the RESTful Web Services module. This module only focuses on RESTful services. Instead of providing endpoints it accepts HTTP header content type request and returns JSON or XML when requested. The RESTful Web Services module does not currently have other supporting modules, but should be very forward compatible with Drupal with its ground up entity support.

A Web Services initiative to provide a core RESTful solution has been under development for Drupal 8. At the time of this writing Drupal 8 is in alpha stage and does not have a release date scheduled. With stability in question and a lack of contributed module available using Drupal 8 in your project is probably not a current option.

Custom Option

You may also choose to develop a custom module and write your own handling of a RESTful POST. Some reasons for developing a custom approach is to control consistency between module upgrades and core upgrades. Not only is consistency within Drupal an important factor, but maintaining consistency between applications outside Drupal may also weigh heavily in your decision process. This post will document how to program your own API to accept JSON via POST. How to define your own URI structure for flexibility and upgradeability, how to return proper header response codes and how to save the data as a Drupal object.

Define URI

Establishing a URI structure requires creating a hook_menu() entry defining the path to accept POST. Consider planning for versioning of the API and provide a declaration for the object type. In the example below we define our version and object type in our URI path as version “v1” with an object type of “json”. If/when we make changes to the API we can provide a new version number and point any application to the new version as they update. We also have the opportunity to add new object types and define a new URI for their POST.

function example_menu() {
 $items = array();
 $items['api/v1/post/json'] = array(
   'page callback' => 'example_json_accept',
   'access arguments' => array('access content'),
   'type' => MENU_CALLBACK,
 return $items;

*note: Consider accepting arguments in your URI in order to provide a more dynamic API that can serve all your POST needs.

In the menu array above we not only define our path, version and object type, we also define the function called when the URL is requested. Our function will be responsible for validating the request, accepting a PHP input stream, returning status codes, decoding the JSON and processing the data into Drupal before returning a response code of success.


For minimum validation consider validating the request as a POST, authenticating a specific user, or key and performing data validation for data type and data structure (field and object validation).

When authenticating a user, or key, one option is to pass the information via the header userpwd.

Curl request with userpwd:

curl --user username:password -X POST -d @file.txt --header "Content-Type: application/json" http://yourapp.com/api/v1/post/json/

In order to check for the username and password from the example above use PHP’s $_SERVER['PHP_AUTH_USER'] and $_SERVER['PHP_AUTH_PWD']. If you are only validating on a key you can pass the key as the username and validate the username in your application.

Response codes:
When validating request consider returning a proper status code for post method failure, not authorized and incorrect data to inform the application attempting to post the reason for failure.

// Validate the request is a post and return proper response code on failure.
   header('HTTP/1.1 405 Not Post');
// Authenticate the user, or key and return proper response code on failure.
elseif ($_SERVER['PHP_AUTH_USER'] != 'trusted user') {
 header('HTTP/1.1 401 Not Authorized');
// When data type and field validation fails return a 204.
elseif ($validation == FALSE) {
 header('HTTP/1.1 204 Incorrect Data');
Processing the JSON

PHP provides a method to obtain stream inputs by using file_get_contents and requesting “php://input”. File_get_contents streams the input and processes it into a string. Once the input is returned as a string use Drupal’s json_decode to return the string as an associative array.

 $received_json = file_get_contents("php://input",  TRUE);
 $json = drupal_json_decode($received_json, TRUE);
Note: Consider detecting if json_decode returns null or false.

Once validation has passed and your JSON is available, iterate and save the object to Drupal.

foreach($received->doc as $value) {
   $item = (object) NULL;
   $item ->type = “example”;
   $item->title =$value[‘title’];
  // Prepare object for saving to Drupal.
  // Save the prepared object to Drupal.

After completing the payload a notice of success to inform the application it’s POST was a success.

// Set header to indicate the item was saved.
 header('HTTP/1.1 201 Created');

Knowing how to process a POST request helps developers to evaluate when to use a contributed module, or when the requirements call for a custom module. Programming your own RESTful endpoint is simple, is light on code count and provides flexibility.

Technology: DrupalPHP

Categories: Drupal Universe

Pond Life Ep.2

Tue, 2014-04-08 23:09

Metal Toad Media (via DrupalFire)

Hello Everyone!
Welcome back to the pond! Last week we touched on the importance of mentoring juniors and Github best practices. In this week's episode, we'll be following up on the junior workflow from last week by discussing two tools you should definitely have and how to install them, exploring new ground by touching on some entry level SCSS techniques, sharing my AHA! and FAIL moments of the week, and lastly, our weekly query for you good people out there to ponder. So lets jump right into it shall we?

Categories: Drupal Universe

Drupal 8 progress from my / MongoDB perspective: update #26

Thu, 2014-04-03 04:28

Károly Négyesi (via DrupalFire)

At DrupalDevDays Szeged, skipyT, fgm and myself made tremendous progress with writing the MongoDB drivers. All the override mechanisms work as expected and things in general, work. Most importantly, we have an entity storage backend and a significant percentage of the entity storage query tests pass (it is not expected all ever would pass, for example relationships are not supported). I have also managed to get the "add aggregator feed" test pass (going in ABC order among entities), this hit a snag where a recent rewrite of the testing framework broke overriding services during testing and I am not allowed to fix this so automated testing will require a small core patch. Otherwise we would need to create a mostly empty testing class for every test, this is clearly not desirable. Also at DDD, Ricardo Amaro and Jeremy Thorson have made significant strides in creating a more modern testbot based on Docker, I intend to run an instance at home and see how MongoDB fares with all the tests. I am reasonably confident by the time the beta happens, you will be able to run it solely on MongoDB.

Meanwhile, migration got stalled by an unrelated core issue, it's close to a resolution now. Other core changes broke many migrations but by now we should be back on track and again, I am reasonably sure by beta time the Drupal 6 to Drupal 8 path will be there to test. Will Drupal 7? I hope too but nothing is certain.

Categories: Drupal Universe

DrupalDevDays Szeged 2014

Tue, 2014-04-01 20:45

Cocomore (via DrupalFire)

The last week three of us from Cocomore went to the little town of Szeged in Hungary, around 175km south east of Budapest.

The DevDays were all about developing Drupal 8 further and enhance drupal.org. The only topic was contributing to Drupal in the one way or the other. Whatever you are, either a developer, a themer, a site builder, a devop or a business man, everyone has his/her part in this amazing community and everyone found a spot where he/she could help to foster Drupal further.

read more

Categories: Drupal Universe

Pond Life - Pt.1

Mon, 2014-03-31 21:09

Metal Toad Media (via DrupalFire)

Assimilate and Elaborate!

Categories: Drupal Universe

Lessons from Distributed Companies

Fri, 2014-03-28 09:00

Lullabot (via DrupalFire)

"34 million Americans work from home at some point during the week. This number is expected to reach a staggering 63 million – or 43% percent of the U.S. workforce – by 2016." - Forrester Research’s US Telecommuting Forecast

Categories: Drupal Universe

Do well and do good

Wed, 2014-03-26 14:38

Dries Buytaert (via DrupalFire)

Topic: DrupalAcquiaBusiness

This blog post is on purpose, Open Source, profit and pie. This week I had an opportunity to meet Professor Klaus Schwab, Founder and Executive Chairman of the World Economic Forum. I was inspired by the following comment he made (not his exact words):

"Because companies strive to have a positive balance sheet, they take more in, than they give out. However, as individuals, we define success as giving more than you take. Given that many of us are leaders as individuals *and* also leaders in our businesses, we often wrestle with these opposing forces. Therein lies the leadership challenge."

I’ve seen many Open Source developers struggle with this as they are inherently wired to give back more than they take. Open Source developers often distrust businesses, sometimes including their own employer, because they take more than they give back. They believe businesses just act out of greed and self-interest.

This kind of corporate distrust comes from the “fixed-pie concept"; that there is only so much work or resources to go around, and as pieces of the pie are taken by some, there is less left for everyone else. The reality is that businesses are often focused on expanding the pie. As the pie grows, there is more for everyone. It is those who believe in the "expanding-pie concept" who can balance the opposing forces. It is those who believe in the "fixed-pie concept" who worry about their own self-interests and distrust businesses.

Imagine a business that is born out of a desire to improve the world, that delivers real value to everyone it touches. A business that makes employees proud and where team members are passionate and committed. A business that aspires to do more than just turn a profit. A business that wants to help fuel a force of good. That is Acquia for me. That should be your employer for you (whoever your employer is).

The myth that profit maximization is the sole purpose of business is outdated, yet so many people seem to hold on to it. I started Acquia because I believed in the potential and transformative nature of Drupal and Open Source. The purpose of business is to improve our lives and create value for all stakeholders.

Acquia's growth and capital position has given me power and responsibility. Power and responsibility that has enabled me to give back more and grow the pie. I have seen the power that businesses have to improve the world by accelerating the power of good, even if they have to take more than they give. It's a story worth telling because business is not a zero-sum game with one winner. I believe Open Source companies are in a prime position to balance the opposing forces. We can do well and do good.

Categories: Drupal Universe

A Call for an Open Source CoverOregon.com

Tue, 2014-03-25 17:53

Metal Toad Media (via DrupalFire)

This is a copy of an open letter written to the Governor of Oregon regarding the Oregon health exchange. (PDF)


Dear Mr. Kitzhaber,

In light of the recent resignation of the Oregon Health Authority director, Bruce Goldberg and the previous resignation of Cover Oregon director, Rocky King, I feel that I need to speak up.

Categories: Drupal Universe

Drupal core committer takes Acquia Certification exam. You won't believe what happens next!

Mon, 2014-03-24 20:43

Angie Byron (via DrupalFire)


AcquiaCertificationStudyGuide.pdf121.27 KB
logo.png5.99 KB

TL;DR I passed. :P Here's a run-down of what the experience was like.

Up-front disclaimer: I work for Acquia. However, I was not involved in the creation of Acquia Certification and had no insight to the test beforehand apart from a single sample question. I'm also writing this on my personal blog, rather than Acquia.com, because these are *my* thoughts/impressions, and haven't been vetted by anyone else. :) Carry on!

Some background

I'm originally from the United States (Duck, Duck, Gray Duck represent!) and moved to Canada in my early 20s to be with my now wife of 15 years. :) I had no family in Canada and very little work experience, so my only option was to come into Canada as a student. As a foreign student in Canada, you are only allowed to earn money through a job at the school you're attending. So, since I was already a huge nerd who'd been building all of my family's computers since I was a teenager, I knuckled down and got my A+ Certification and then taught computer hardware and A+ prep courses in the evenings.

So while I empathize with detractors of certification, and I'm sure lots of people would criticize A+ Certification in particular—and they'd pretty much be right on all counts—I do think certifications have their place. For me, it was an important enabler at a time when I was young and unestablished in my career, which allowed me to combine what I already knew from hands-on experience with a bit of book-cramming to get a piece of paper that allowed me to get a quite decent job. Many of the people I taught were older adults doing late-life career changes, or younger people like me trying to augment skills and knowledge they'd acquired as hobbyists into something that could be meaningful to a prospective employer (or at least their HR department).

My interest in teaching is also what got me into Drupal in the first place. During Google Summer of Code in 2005, Drupal stood out among the list of mentoring organizations, not just because I'd seen it used on the old Spread Firefox website (which originally put Drupal on my radar), but also because one of the GSoC project ideas was the Quiz module, which could help educators like me deliver web-based learning built on open source software. Cool! So I applied to write Quiz module for Drupal, and lo-and-behold that decision seems to have worked out pretty well. ;)

However, although I've been very active in the Drupal community for almost 10 years(!), the last time I actually built a Drupal site of any level of seriousness was back in the Drupal 6 era, circa 2009. In late 2008, I was becoming more of a "project manager" at work while at the same time I was appointed Drupal 7 core co-maintainer (which basically made me a "project manager" in the community as well), so although I read lots and lots of code, my knowledge of day-to-day troubleshooting of "real world" problems on Drupal sites is on much shakier ground these days. OTOH, I could tell you the reason behind almost every weird inconsistency in core, and also the names of all the main core developers' pets, so you know, there's that. ;)

So, basically, I have a background in both taking and delivering training around certification, so I was of course intrigued to see what Acquia's take on Drupal certification was all about, and how it compared. I was also very curious how I would do on this exam, given I have several years of hard-fought "real world" experience on Drupal 4.6 => Drupal 6, but then much more academic (although deeply academic, since I read most of the core patches at one point or another) knowledge of Drupal 7, though a lot of it lost to the fog of Drupal 8, where we're actively removing most of that stuff. ;)


Start by taking a look at the Acquia Certified Developer Exam Blueprint which nicely outlines the "domains" (subject matter) that the test covers:

Domain 1.0: Fundamental Web Development Concepts

1.1. Demonstrate knowledge of HTML and CSS
1.2. Identify PHP programing concepts
1.3. Identify JavaScript and jQuery programing concepts
1.4. Demonstrate the use of Git for version control

Domain 2.0: Site Building

2.1 Demonstrate ability to create and configure Content Types with appropriate fields and field settings for building basic data structures
2.2. Demonstrate ability to configure field display and view modes for content types
2.3 Demonstrate ability to create and use Taxonomy vocabularies and terms for classification and organization of content
2.4 Demonstrate ability to configure Blocks for building layouts from information widgets
2.5 Demonstrate ability to build main and alternative navigation systems by using Menus
2.6 Demonstrate ability to create and configure Views for building content list pages, blocks and feeds

Domain 3.0: Front end development (theming)

3.1 Given a scenario, demonstrate ability to create a custom theme or sub theme
3.2 Demonstrate knowledge of theming concepts
3.3 Demonstrate ability to build or override PHP templates for defining layout content
3.4 Demonstrate ability to use theme () functions for overriding custom output
3.5 Demonstrate ability to write template pre-process functions for overriding custom output

Domain 4.0: Back end development (coding)

4.1 Demonstrate ability to develop Custom Modules using Drupal API for extending Drupal functionality
4.2 Demonstrate ability to work with Drupal's Database Abstraction Layer for managing tables and CRUD operations on data
4.3 Demonstrate ability to debug code and troubleshoot site problems
4.4 Demonstrate ability to write code using Drupal Coding Standards
4.5 Demonstrate ability to analyze and resolve site performance issues arising from site configuration and custom code
4.6 Demonstrate ability to analyze and resolve security issues arising from site configuration and custom code

My impression of this curriculum-wise is that it's a pretty complete list. If someone actually has knowledge of all of these concepts, as well as a couple of years experience learning what to do / what not to do in practical terms, they'd be a really decent, well-rounded Drupal developer.

One thing I'd love to see in future revisions of the exam is a "Community" domain that demonstrates knowledge of how to engage and participate in the Drupal community. I terms of overall Drupal success, community interaction is just as fundamental a skill as knowing how to properly debug code or troubleshoot site problems, in my experience.

I've attached a "study guide" to the bottom of this post, which I prepared by going around and gathering links to free resources under each of these headings in case it's helpful to other folks rounding out their skills. (In particular, I needed to study up on performance and JavaScript, for example.) Since I prepared this before taking the exam, I don't think it will give anyone any particular advantage, but it'll at least save you a good half hour of Googling. :)

Exam pre-requisites

A couple of things you need to know ahead of time:

1) There are two ways you can take the exam: either in "real life" through one of Kryterion's worldwide test centers, or online "proctored" exam via Web Assessor.

(Note: "Proctored" sounds like something horrible that might happen to you at a doctor's office, but it means "supervised" — they are going to record your face and your computer movements while you take the test and this will be reviewed by a human to make sure you're not cheating.)

2) Whether you take it in real life or online, you *must* schedule a time for the exam, at least 24 hours in advance. You do that at Acquia Certification Program site:

  • Register for an account
  • Pick the exam style you want ("onsite" vs "online" — be careful to click on the right one, the distinction is very subtle ;))
  • Pay for it ($250, which puts it more on the low end... A+ is about $200 vs. Cisco/Microsoft which can be upwards of $1500). Unless of course you work for Acquia, since employees can get vouchers to take the exam for free. (Did I mention we're hiring? ;))
  • Pick a date/time.

3) If you're doing the online method, you also need to download and install a software called "Sentinel Secure" to record your webcam/microphone/screen during the test (and this needs to be installed on your actual machine, not in e.g a virtual machine, since you could very easily cheat on the host machine if that were the case), as well as provide a "biometric profile." This involves typing your name like 12 times on the keyboard, and then taking a picture of your face via your web cam (you're required to have a web cam to take the test).

If all of that sounds overly creepy to you, you should register for a real-life exam instead. ;)

Taking the exam

I went the online route, and here's what that experience was like.

First, remember that you need to be at the computer the entire time until you finish the 60 question exam, which means up to 90 minutes. And while that sounds like plenty of time, the questions often require reading and re-reading to make sure you have all the details before picking an answer. So make sure you are properly hydrated, caffeinated, and have urinated ;) before your test time.

Also, make sure you are in a quiet place and don't have any "real life" distractions happening during that 90 minutes. Web Assessor doesn't mess around. For example, a co-worker had to re-take the exam because he took the test in an office setting where people were seen walking behind his desk (because they could've been looking at his screen and whispering answers to him, presumably). For my part, I started mumbling along as I was reading a question and it gave me a warning to not read the test questions aloud. :P I'm sure if I'd kept that up, I would've had to do a force-retake as well.

Then, close out of everything except for Firefox, IE, or Safari (for whatever bizarre reason you can't use Chrome). Log back into the Acquia Certification Program site and you should see a link to your exam that becomes active within a few minutes of your test time.

(Note: If you're like me and you do a dumb thing and accidentally pick the wrong date for your exam, you will find Kryterion's support actually helpful. I was able to call an 866 number and get a person on the phone within 30 seconds, and they had me up and rescdeduled in about 2 minutes. w00t!)

Once in, it'll repeat your bio profile, you'll have to agree to a terms of use which basically says you're not allowed to talk about what's on the exam (so I'll be very vague about it here), and then you're off to the races.

All questions are multiple choice. Most are single-answer, but a few are multiple answer. On any question you're allowed to check a box and "flag" it for later review, so if you're not sure of something you can always come back to it. You can review all of your answers at any time, the ones you've flagged will be starred so they stand out.

Then at the end, you'll get your mark, as well as a breakdown of how you did per-domain, and you get this e-mailed to you as well (since obviously you can't take screenshots or copy/paste out of the Secure Sentinel app :P). A few minutes later you'll also get a fancy certificate to print out and badge for your website e-mailed to you as well.

Blah, blah, blah. How'd you do already?

I got.... 85%! Which I was actually pretty happy with, especially since I've been told the highest exam mark atm is under 90%. :) (I did the worst on the "Basic Web Concepts" part. Damn you, CSS/JS.) Overall I'd say about 30% of the questions were easy for me, another 50% made me go "Hmmm" and about 20% I needed to flag, a handful of which required resorting to Wild Ass Guesses. ;)

The reason I was able to score relatively high despite my lack of extensive hands-on D7 experience is that most of the questions on the exam are "scenarios" that are highly focused around common issues you hit in the "real world" while building Drupal sites, and most of these are pretty timeless (especially the site builder-related topics). This also makes the exam much harder to "book-cram" for, because unless you've smacked your head into the desk a few times with Drupal, you could have a hard time because all of the answers at least sound plausible.

I found this format very refreshing and very unlike the A+ certification, which was to a large extent (at least back when I took it) a bunch of mindless memorization of useless facts. For example, I will forever have the number of pins in an IDE vs. floppy cable etched into my memory, even though that is completely useless knowledge because you know what? One fits, and the other one doesn't. :P~ So don't expect your ability to recite all of the hook_menu() bitmask flags from memory to help you much on this exam. (Darn, I had worked so hard on developing that party trick, too.)

I also did spot a few typos and some places where question wording could be more clear, and I'll try and work with the certification team to clean those up (it'd be nice if there was a "report a problem with this question" link for things like that). But overall, this seems like a pretty solid entry point into certification for Drupal, and I'm looking forward to see what the team comes up with for the more focused and "hardcore" exams.

Do you need to take this exam? If you've worked on Alexa top 1000 sites and/or have a great track record of public contributions on Drupal.org, obviously no: your resume speaks for itself. But if you've been prevented by either personal or professional circumstances from having built up a robust D.o profile or client base over the years, this certification seems like a pretty solid way to get your foot in the door at a Drupal company.


Tags: drupalacquia

Categories: Drupal Universe

Module Monday: Token Insert Entity

Mon, 2014-03-24 16:00

Lullabot (via DrupalFire)

WYSIWYG editing tools make placing media like images into your content easy: it's not too complicated, and even editors who don't know HTML can make it work. What if the media you're using isn't a simple image, though? What if it's an entire Drupal node, or some other sort of entity? With Token Insert Entity, you can place just about anything you want right your content.

Categories: Drupal Universe

Acquia certification for Drupal

Thu, 2014-03-20 20:16

Dries Buytaert (via DrupalFire)

Topic: DrupalAcquia

I'm proud to share that Acquia announced its certification program today. You can now get "Acquia certified" in Drupal development, something I'm pretty excited about.

This is something I've been hoping to see in the community. While there have been other experiments around certification, we as a community have lacked a way to ensure professional standards across Drupal. Over the years, I've heard the demand coming from partners and clients who need a way to evaluate the skills of people on their teams. More and more, that demand has drowned out any perceived criticisms of a certification for Drupal.

A good certification is not just a rubber stamp, but a way for people to evaluate their own abilities, and make plans for improving their knowledge. In some countries, certification is really important to create a career path (something I learned when visiting India). For these reasons, I feel Drupal's growth and development has been hindered without a formal certification in place.

The certification we've built is based on the combined years of experience among Acquia staff who oversee and manage thousands of Drupal sites. We've observed patterns in errors and mistakes; we know what works and what doesn't.

People have debated the pros and cons of software certifications for years (including myself), especially where it involves evaluating candidates for hire. Certainly no certification can be used in isolation; it cannot be used to evaluate a candidate's ability to perform a job well, to work in teams or to learn quickly. Certification can, however, provide a valuable data point for recruiters, and a way for developers to demonstrate their knowledge and stand out. It is undeniably valuable for people who are early in their Drupal career; being certified increases their chance to find a great Drupal job opportunity.

One of the biggest challenges for Drupal adoption has been the struggle to find qualified staff to join projects. Certification will be helpful to recruiters who require that job candidates have a good understanding of Drupal. There are many other aspects to recruitment for which certification does not provide a substitute; it is only one piece of the puzzle. However, It will provide organizations added confidence when hiring Drupal talent. This will encourage the adoption of Drupal, which in turn will grow the Drupal project.

The community has been talking about this need for a long time. One approach, Certified to Rock, evaluated an individual's participation and contribution in the Drupal community. Acquia's certification is different because we're assessing Drupal problem-solving skills. But the community needs more assessments and qualifications. I hope to see other providers come into this space.

Categories: Drupal Universe

Views Query Plugins, Part 4

Thu, 2014-03-20 15:00

Lullabot (via DrupalFire)

Welcome to the fourth part of our series on writing Views query plugins! I hadn't planned on writing a fourth installment, but after a couple of people asked to see how pagers could be implemented, I couldn't resist putting an example together. As a reminder, we have been building a query plugin to interact with Flickr groups.

Categories: Drupal Universe

Drupal 7 Tutorial: Using Entityqueue with Views

Thu, 2014-03-20 04:24

Metal Toad Media (via DrupalFire)

Last time I gave a quick introduction on how to create and manage queues using Entityqueue. This time I'll show you how to use them with Views to display content sorted by their position in the queue.

First create your view like you normally would. The screenshots in this example, we are using a view of Content (aka Nodes), but this should be the same process for any entity type.

Then click add in the "Relationships" section. Select the Entityqueue relationship handler.

Categories: Drupal Universe