Planet Drupal

Syndicate content - aggregated feeds in category Planet Drupal
Updated: 7 hours 10 min ago

Lullabot: A Lullabot’s Guide to Successful Meetings

Wed, 2015-03-04 14:00

One of the core skills of our client services team is the ability to communicate clearly, efficiently, and humanely to each other and to our clients. It’s this communication that gets us through gnarly project roadblocks and beyond the purely technical solutions. Unfortunately, this can lead to the dreaded wave of “calls”, “syncs”, “touch-bases”, and “meetings” which eat up our calendar hours.

Categories: FLOSS Project Planets

Drupal core announcements: Drupal core updates for March 4th, 2015

Wed, 2015-03-04 11:48

Since the last Drupal Core Update, the Seventh Beta of Drupal 8.0 was released (and Drush 7.0.0-alpha9 was released to coincide with it), and Mink and Goutte were added to core to support behavioural testing!

Some other highlights of the month were:

How can I help get Drupal 8 done?

See Help get Drupal 8 released! for updated information on the current state of the release and more information on how you can help.

We're also looking for more contributors to help compile these posts. Contact mparker17 if you'd like to help!

Drupal 8 In Real Life
  • DrupalSouth Melbourne is happening March 5—7 at the Melbourne Convention and Exhibition Centre in Melbourne, Victoria, Australia, featuring sprinting and lots of speakers.
  • DrupalCamp Hyderabad will be on March 7th and 8th in Hyderabad, Telangana, India.
  • DrupalCamp China will be held on March 14th in the famous Pudong district of Shanghai, China, featuring a session on open-source e-commerce by Ryan Szrama, VP of Community Development at Commerce Guys.
  • European Drupal Days will be March 19—21 in Milan, Italy. The 19th will have sessions on Drupal 8 theming, the future of commerce in Drupal 8, #d8rules; the 20th will have workshops on continuous integration, Symfony, dependency injection and theming, and the 21st will be lots of sprinting!
  • MidCamp is coming up on March 19—22 at the University of Illinois in Chicago, Illinois, USA. There will be training, speakers, and lots of sprinting! Tickets are still available, but hurry before they're sold out!

Also, don't forget to vote for your Drupal Association Community Director — voting is open March 9th through 20th!

Whew! That's a wrap!

Do you follow Drupal Planet with devotion, or keep a close eye on the Drupal event calendar, or git pull origin 8.0.x every morning without fail before your coffee? We're looking for more contributors to help compile these posts. You could either take a few hours once every six weeks or so to put together a whole post, or help with one section more regularly. If you'd like to volunteer for helping to draft these posts, please follow the steps here!

Categories: FLOSS Project Planets

Amazee Labs: Drupal Elections: The Drupal Association Board and it’s responsibilities

Wed, 2015-03-04 11:18
Drupal Elections: The Drupal Association Board and it’s responsibilities

Voting for the Drupal Association Board’s Director At Large position opens this Monday, March 9th. My two main reasons for seeking this role, why I feel I am a qualified candidate, and a discussion on the responsibilities of this position are outlined in the following post.

My Main Reasons For Running

First, the “Director At Large” position is representing the whole Drupal Community inside the board. Therefore the person holding the board position should need to know and understand the community in all it’s facets. I believe I am one of those individuals who reaches across a wide spectrum of the community and can offer a higher representation. I help organize DrupalCons and Camps, speak at different Drupal events all over the world, give trainings, along with mentoring new users at sprints. I meet with other CxO’s and interested high level business associates to teach them how to contribute back to Drupal, and still maintain steady code contributions to core via the Drupal 8 Multilingual Initiative and contrib modules.

A Note Regarding Board Responsibilities

One really important piece of information I want to stop and make sure is understood, is what it REALLY means to be on a board of this nature. The Drupal Association Board is a strategic board, meaning the Board defines the strategic direction and policies of the Drupal Association. The execution of these goals is then in the hands of the Executive Director (Holly Ross) and her staff within the Drupal Association. My personal experience with this structure comes from being on the Board of Amazee Labs Zurich, where we define strategies and directions for the CEO. I feel I should explain and offer further definition of the role of a strategic board member. Often on a strategic board you are faced with wonderful ideas you would like to execute immediately or at times even execute yourself as the board. It is important to keep the responsibilities clear however, that you are there as a strategic guide and must let the company executives figure out how best to pursue and execute strategies.

This same distinction of responsibilities applies to the Drupal Association Board, and it’s candidates are signing onto a role within a structured system. The ‘Director at Large’ role gives an insight into the Drupal community’s general needs and stress points. The role does not include actions like the power to give direct orders to Drupal Association staff. While many may understand this distinction, it is important to make sure voters expectations are managed and candidates are reminded what they are stepping forward to take part in. This might sound overly structured (especially for a volunteer based community), but in the end the Drupal Association is a nonprofit with goals and budgets to follow. In fact budgets are more important than many realize. The Drupal Association Board is actually responsible for the financial oversight of the Drupal Association. What does this mean? It translates in legal terms to direct financial responsibility by all board members should the Association financially fault. That responsibility translates to a great deal of deep budgetary spreadsheet analysis conducted by members, both a very important and very tedious task. It’s like the issue queue: Someone has to review the code and mark it RTBC!

Thank you for taking the time to read where I stand on important issues and my public service announcement around what the responsibility of this candidacy truly means. I’m really looking forward to the upcoming vote beginning March 9th and ending March 20th. Until then, I strongly suggest everyone in the community check out all the passionate Drupal candidates keeping in mind not only their vision but experience in this type of role.

Should you have any further questions for me, I will be conducting a Reddit AMA this Thursday March the 5th starting at 5pm CET (11am ET).

Categories: FLOSS Project Planets

3C Web Services: How to accept payments of varying amounts with Drupal Commerce.

Wed, 2015-03-04 09:42


The websites we build often require accepting a payment for something that isn't a product. For example, service payments, down payments or donations. There are different ways to handle this with Drupal Commerce and here we’ll outline the method we've adopted for use and explain how to implement it yourself.


Categories: FLOSS Project Planets

Drupalize.Me: New Multisite Series plus Installing Drush with Composer

Wed, 2015-03-04 09:15

This week, we're kicking off a new series, Working with Drupal Multisite. We're also releasing a new video in our Drush series, Installing Drush with Composer.

Categories: FLOSS Project Planets

Victor Kane: Five Things I didn't know about

Wed, 2015-03-04 08:54

I want to share some exciting things I'm only just finding out about (the “Develop, Deploy, Rinse, Repeat” continuous delivery cloud platform for Drupal, Symfony and PHP based projects) that look as if they might have a lot to do with folks finding a straightforward way of enabling a truly Lean process applied to website and web application projects. We'll cover five things I didn't know about

  1. The Standard Platform Workflow is just what modern, serious PHP, Symfony and Drupal developers might expect and can easily be set up for all team members.

  2. The Standard Platform Architecture is container based and scales tremendously well for most use cases.

  3. They don't use Varnish! They use CDNs (content delivery networks)!

  4. There's an Enterprise Platform with its own truly scalable architecture and unique benefits

  5. A chance to get a first-hand report from someone actually using the Enterprise Platform.

read more

Categories: FLOSS Project Planets

Acquia: Working with and

Wed, 2015-03-04 04:01
Language Undefined

Tips and tricks for getting the most out of – Patrick Drotleff is a passionate contributor to the Drupal project whose work – including,, and the tongue-in-cheek BreakingHead card game – often centers around building tools that help others contribute to Drupal. Within minutes of Drupal 8 beta being announced at DrupalCon Amsterdam, I saw a tweet saying it was available to try out on Though I had used the service before, I wanted to know how it actually worked and Patrick was kind enough to agree to show it off here on jam's Drupal Camp.

Categories: FLOSS Project Planets The Drupal 8 plugin system - part 3

Wed, 2015-03-04 02:32

Checkout part 1 and part 2 for understanding the concept of plugins.
In this installment, we will be

  1. Implementing a new plugin from existing plugin types.
  2. Implementing a new plugin type using the annotation based discovery mechanism.

As an exercise, let's first construct an imaginary scenario where the user of your Drupal site wants choose what they want for breakfast from a list of breakfast menu items. To add a dash of variety, all the breakfast items in the code are of South Indian culinary. You can checkout the code and suit yourself, change the breakfast items etc.

For this exercise, checkout the module code first and enable it.

$ git clone

In order to select their breakfast item of choice, the user needs to be presented with a list of choices in their profile. The lame way is to create a list field in the user profile and add all the breakfast choices. This offers limited functionality and is not pluggable. We can do better than that. So, let's ahead and create a custom field called breakfast choice.

This functionality is there in the custom-field-no-plugin tag of the code you previously checked out. You can switch to that tag by:

$ git checkout -f custom-field-no-plugin

After you enable the breakfast module, go to the user profile and create a new field of type "breakfast choice". As the tag says, we haven't created any custom plugin type yet. But we do create a new plugin from the existing plugin types for our custom field. In fact, we create 3 new plugins(one each for the field type, field formatter and field widget). Our directory structure looks like this:

All the breakfast menu items come from a single location, your custom field widget, the BreakfastWidget.php file.

public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) { $value = isset($items[$delta]->value) ? $items[$delta]->value : ''; $options = array( 'idly' => 'Idly', 'dosa' => 'Dosa', 'uppuma' => 'Uppuma', ); $element = array( '#type' => 'select', '#options' => $options, '#default_value' => $value, '#multiple' => FALSE, ); return array('value' => $element); }

Though it works, this is not a good design for 2 reasons:

  1. You are hardcoding in the presentation layer. Widgets define the way you present the input element in a form. You can't define your data there.
  2. It is not pluggable. Other developers have to open BreakfastWidget.php to add new Breakfast items.
  3. It cannot be extended. What if I want to add additional properties to my breakfast items, like images, ingradients or price? I cannot do this in the current setup.

We will address problems 1 and 2 for now. i.e., we add the ability to create new breakfast items outside of the Breakfast Widget file. We make breakfast items "pluggable". Other modules can add new breakfast items it were a plugin, which is exactly what we do next.

To get the plugin version of the module, do:

$ git checkout -f plugin-default-annotation

Now, our directory structure looks like this:

The BreakfastPluginManager is, as the name says, a service used to manage various breakfast plugins across modules.
The plugin manager's constructor class deserves some explanation.

public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, LanguageManager $language_manager, ModuleHandlerInterface $module_handler) { $subdir = 'Plugin/Breakfast';

The $subdir tells the plugin manager where to look for Breakfast plugins in a module.

$plugin_definition_annotation_name = 'Drupal\Component\Annotation\Plugin';

The $plugin_definition_annotation_name is the namespaced name of the annotation class which is used to annotate all Breakfast plugins. Plugin is the default annotation. We can define custom annotations as well, which will be the subject of the next installment in this series.

parent::__construct($subdir, $namespaces, $module_handler, $plugin_definition_annotation_name); $this->alterInfo('breakfast_info'); $this->setCacheBackend($cache_backend, 'breakfast_choice'); }

alterInfo tells us that this plugin definition can be altered by implementing hook_breakfast_info_alter.

Plugin definitions are cached, which is why we need to run drush cr(the equivalent of drush cc all in D8) every time we alter the plugin definitions. The setCacheBackend defines the cache backend for our plugin. In the current context, we are not customizing it too much.

Another major change is the new file It contains metadata about the breakfast plugin manager service which we discussed above.

services: plugin.manager.breakfast: class: Drupal\breakfast\BreakfastPluginManager arguments: ['@container.namespaces', '@cache.default', '@language_manager', '@module_handler']

One or more services can be defined in the services.yml file. Each entry contains a machine name of the service, the class that implements the service and dependencies(if any) can be passed as arguments. The @ prefix for the arguments indicates that the corresponding argument is in itself a service.

The field type we added earlier hasn't changed, but the widget has been revamped. We no longer hardcode any breakfast items. Instead, we dynamically pull all plugin instances of type Breakfast.

Here's how:

$options = array(); $breakfast_items = \Drupal::service('plugin.manager.breakfast')->getDefinitions(); foreach($breakfast_items as $plugin_id => $breakfast_item) { $options[$plugin_id] = $breakfast_item['label']; }

Any module can now define a new breakfast menu item and expect it to show up in the user profile's breakfast field dropdown. We've created 3 breakfast items in our module to illustrate this. Let's pick an example breakfast plugin, my favorite. Masala dosa.

Image courtesy

err, I meant:

/** * Adds Masala Dosa to your Breakfast menu. * * * @Plugin( * id = "masala_dosa", * label = @Translation("Masala Dosa") * ) */ class MasalaDosa extends PluginBase { // Nothing here yet. Just a placeholder class for a plugin }

Nothing fancy there. Just a placeholder class and some metadata in the @Plugin annotation.

Phew! It took more time to add a masala dosa plugin that to make a masala dosa. Each breakfast item being a unique plugin instance sounds a bit like an overkill. We will address this and problem #3 detailed above(plugins having different properties like picture) in the next post!

Categories: FLOSS Project Planets

Mark Ahrens: Backdrop Does a Disservice to Developers

Tue, 2015-03-03 23:00
I have been thinking awhile about why the Backdrop fork bothers me so much. At first I thought it would just be the fact that it will be splitting the community some or taking resources away from the Drupal project. But lots of projects I have worked with have been forked in the past, and it … Continue reading Backdrop Does a Disservice to Developers
Categories: FLOSS Project Planets

Drupal @ Penn State: Memory profiling in hooks

Tue, 2015-03-03 16:19
To start..

This tutorial involves hacking core. If you aren't comfortable with doing that, you're probably in the wrong place :).  I created a drop called Memory profiling in hooks which has all the code details in case you want to dig in yourself.  You'll need to modify includes/ and also have devel module enabled for this to work.

Categories: FLOSS Project Planets

Mediacurrent: Premature Optimization is (still) Bad

Tue, 2015-03-03 16:13
Knuth is a pretty smart person

A long time ago, in a galaxy right here, Donald Knuth wrote “premature optimization is the root of all evil”. This was in his 1974 paper “Structured Programming With Go To Statements”, yet this issue is still with us in various forms.

Categories: FLOSS Project Planets

Urban Insight: What to visit while at the Los Angeles DrupalCon

Tue, 2015-03-03 16:07

So you are planning to visit LA for DrupalCon? Want to site see or enjoy local flavors but not sure where to focus your efforts? I polled the team at Urban Insight, and we collected ected a few of our own favorites that will, hopefully, become some of your favorites as well.

#10 LA Metro

Categories: FLOSS Project Planets

Red Crackle: Using Views Exposed Filter In Drupal 8

Tue, 2015-03-03 14:05
This article takes you through the steps required to use Views Exposed Filter in Drupal 8. Exposed filters provide users with the freedom to sort content on their own. This feature is beneficial, in particular, for online stores where customers seek to filter products of their choice. The filter could be based on price, brand or size. In this article, a new view is created, a path provided and the display format altered to showcase content titles. The Filter Criteria is then configured. The screenshots accompanying this article will provide you with clear instructions in setting up exposed filters in your application.
Categories: FLOSS Project Planets

Open Source Training: How Do I Get a Job in Drupal?

Tue, 2015-03-03 12:59

Are you looking for a job? Have you considered working in the Drupal world?

Several OSTraining members have. They wondered about the skills they would need and the income level they could expect.

To give you an overview of what it takes to make a living in the Drupal world, we spoke with Mike Anello. Mike is a long-time Drupal contributor, based near us in Orlando, Florida. If you've ever seen a Dries keynote address at a Drupal, Mike is often the person asking Dries questions at the end.

One of my key takeaways from talking with Mike -  the Drupal jobs are out there, but companies are now expecting applicants to bring more than just Drupal knowledge.

Categories: FLOSS Project Planets

Drupal Association News: Thank you for a great Global Training Day

Tue, 2015-03-03 12:31

As many of you know, Global Training Day was this weekend, and it was a great one. We had 29 trainings in 20 countries around the world, showing once again that our community is second to none in passion and enthusiasm.

It's so exciting and humbling to help make GTD a reality. Watching the tweets pour in from around the world is truly awe-inspiring. Here's a selection of a few of our favorites from this year.

For those of you who didn't participate this time around but want to join in next quarter, check our Global Training Day page and sign up to host a training in your community. Again, thank you to everyone who helped make this GTD a reality.

150 new Drupalistas in the last #Drupal Global Trainind Day in Barcelona . Thanks @DrupalAssoc @lsheydrupal !

— Atenea tech (@ateneatech) March 2, 2015


After 8 hours of #Drupal_Global_Training Days at #EPI Sousse #Tunisia #Drupal #DrupalGTD @lsheydrupal

— Ward Marzouki (@digitives4ward) February 28, 2015



Drupal Global Training Day concludes at @drupakpakistan #Peshawar #Pakistan #DrupalGTD @lsheydrupal

— Drupak (@drupakpakistan) February 28, 2015


Categories: FLOSS Project Planets

Another Drop in the Drupal Sea: Drupal + Udemy = Drudemy. Come join in the fun!

Tue, 2015-03-03 11:35

I have settled on using Udemy as my exclusive platform for delivering Drupal education. I'm so excited to start taking advantage of all the great tools the platform offers and I am laying the groundwork for engaging extensively with my students. I've got four challenges I'll be issuing to my students during the month of March, with a prize for each one as well as a Grand Prize at the end. It would be great to have you play along!

Join for free!

Categories: FLOSS Project Planets

Promet Source: Developing the Promet Way: Part III

Tue, 2015-03-03 11:30


Part I highlighted the challenges of deployments, defined good deployments, and introduced the tools for developing the Promet way. If you haven’t already, you should probably read Part I now.

Categories: FLOSS Project Planets Featured Case Studies: The Roman Baths

Tue, 2015-03-03 11:01
Completed Drupal site or project URL:

The Roman Baths is the primary attraction of the six Bath & North East Somerset Council Heritage Services; the Roman Baths, the Fashion Museum, the Victoria Art Gallery, Bath Venues, the Bath Record Office and the World Heritage Site.

The Heritage Services team wished to migrate all six of the websites from Immediacy to Drupal, and included a full re-design as part of the project. The contract was won in open tender by Microserve and Torchbox against stiff competition nationwide.

Torchbox carried out the Design and UX Phase before passing responsibilities to Microserve for the Development Phase. By working to each organization's individual strengths, Microserve and Torchbox were able to provide an efficient and cost effective partnership whilst still keeping a collaborative and concise communication channel between all three parties throughout the project.

Key modules/theme/distribution used: FeedsSassonAdminimal - Responsive Administration ThemeCKEditor - WYSIWYG HTML editorDraggableViewsGatherContentHoneypotStyle GuideFeaturesEntity Construction Kit (ECK)Flex SliderOrganizations involved: MicroserveTorchbox
Categories: FLOSS Project Planets

Cheppers blog: Rebuilding the Cheppers website with Drupal 8: The Age of Innocence

Tue, 2015-03-03 10:50

After a lively meeting, the Cheppers team decided to make our new website with Drupal 8. You can read about how and why we made this decision in the previous post. The following series of posts will document our progress, share the important lessons we learn, and highlight any mistakes we make in order to help others as they set out to use Drupal 8. This post will focus on our initial work for this project.

Categories: FLOSS Project Planets

Modules Unraveled: Free Command Line Basics Series is Complete!

Tue, 2015-03-03 09:59

Command Line 00 - IntroductionWhen you're just getting started with a new operating system you have to learn how to get around and perform basic actions like navigating the file structure reading and writing files and creating and deleting files and directories. The command line (once you're familiar with its commands) can be used to navigate a computer's file structure much faster than through the GUI (Graphical User Interface). It is also very helpful when working with a remote machine, like a web server. One stumbling block for many first time command line users is the fact that when you first startup your command line, you're just given a blank screen with a prompt where you can type in your command. Since there isn't anything to indicate what you should do next you have to already know the commands before you get started. This series will lay out some of the most basic command line commands. These are the ones you'll likely use every time you start up the command line. We'll take a look at the pwd, ls and cd commands to see where you are in your file structure what files and folders are in your current directory and moving to other directories. We'll create and edit text files with the VI application and learn the basics of utilizing VI. We'll learn how to move, rename, copy and delete files and folders with the mv, cp and rm commands. There are plenty of other commands you might want to know but this is an introductory class and a quick Google search will give you all of the information you need.

TL;DR: Watch the full series here for FREE!

If you're serious about building your Drupal site right, you'll find yourself looking into command line tools like Git and Drush.

If you don't work in the command line on a regular basis, that might be intimidating. Well, not any more!

This series is designed to be a primer on the command line basics, to get you comfortable enough with the command line that you can utilize command line tools without hesitation.

Once you've watched the series, you can move on to the Drush series to improve your Drupal-fu, and will be ready for the upcoming Git series (which will be awesome, by the way!)

When you're ready, you can watch the entire series, for free.

When you do, let me know if you have any questions or comments!

Tags: Command LineBasicsplanet-drupal
Categories: FLOSS Project Planets