Drupal Association blog: DrupalCon Baltimore: Learn how to delight your customers

Planet Drupal - Mon, 2017/03/13 - 3:24pm

Join us at DrupalCon Baltimore from April 24-28 for a week of inspiration, networking, and learning. Meet Drupal experts and industry leaders who will share new ways to create digital experiences that delight customers, citizens, students, patients, and more.

The event offers programming for decision makers (CIO/Director) as well as digital teams (developers, project managers, site builders, content strategists). Be sure to check out these suggested sessions for both audiences.

Top Five Reasons To Attend DrupalCon
  • Get inspired! Hear Dries Buytaert’s vision for digital transformation and Drupal.
  • Network with peers at 4 industry summits and case study sessions on Bluecross Blueshield, Cornell University, Mass.gov, NBA, Quicken, YMCA, and more.
  • Level up your team's skill with 10 trainings and 161 sessions taught by Drupal masters.
  • Find solution partners. Visit the exhibit hall to meet Drupal’s robust vendor ecosystem.
  • Be Amazed. Meet the open source community that powers Drupal.

Register today. Prices increase March 24th. Attendees can come for the week or just for a day. Plus, the Baltimore Convention Center is easy to reach - just 30 minutes from Baltimore Washington Airport and 15 minutes from the Amtrak Station.

We look forward to seeing you at DrupalCon Baltimore!


MD Systems blog: Drupal 8 security features: SQL injection

Planet Drupal - Mon, 2017/03/13 - 11:40am
Recently, we had to create a security report for one of our clients about their Drupal 8 project. We described how Drupal 8 protects against most common vulnerabilities and added some project specific tests to secure as good as possible that it cannot be attacked. This resulted in a document that we thought is worth to be transferred into a series of blog posts.

jmolivas.com: Executing Drupal Console commands on a project with DrupalVM using vagrant-exec plugin

Planet Drupal - Mon, 2017/03/13 - 9:20am
Executing Drupal Console commands on a project with DrupalVM using vagrant-exec plugin

I am currently working on a project where we are using DrupalVM as composer dependency.

Since ssh into the VM machine to execute commands could be a little cumbersome, and providing a site configuration file to take advantage of the --target option to execute commands remotely was not an option, because the generate commands can not be executed remotely if you want to use the interactive mode.

My options got narrowed to execute vagrant ssh and run commands within the VM (which I already mentioned I am not a big fan) or take advantage of the vagrant-exec plugin.

I decided to give a try to the vagrant-exec plugin and this what you need to do to use it in your project when DrupalVM is required via composer.

Install plugin

Execute plugin install command.

jmolivas Mon, 03/13/2017 - 08:20

Web Omelette: More Complex Services Using Factories in Drupal 8

Planet Drupal - Mon, 2017/03/13 - 8:57am

The Symfony service container that Drupal 8 ships with allows us to define a large number of services (dependency objects) that we can inject in our controllers, forms, plugins, other services, etc. If you don't know about dependency injection yet, you can read more about it here. In this article we will look at how we can use our own factory class to instantiate a service via the Symfony - Drupal 8 service container.

The typical (barebones) service definition consists of a class name to be instantiated and an array of arguments to be passed to its constructor as it gets created (other service definitions or static parameters). For more information, check out the documentation on services.

In some cases, though, we would like our service to be built dynamically based on certain contextual conditions, such as the current user. The implication is also that we don’t rely on the service container for the actual object instantiation, but our own factory class. We do still want to benefit from most of what the container offers us, such as caching.

Let’s see a very simple example. Imagine a UserContextInterface which can have multiple implementations. These implementations depend on some value on the current user account (such as role for instance). And we want to have a service we can inject into our other objects which implements this interface but which is also the representation of the current user. Meaning it is an implementation specific to it (not always the same class).

We can go about achieving this in two ways:

  • We can have a Factory class we define as a simple service (with the current user as an argument), use this as our dependency and then always ask it to give us the correct UserContextInterface.
  • We can have a Factory class we define as a service (with the current user as an argument) but use it in the definition of another service as a factory and rely on the container for asking it for the UserContextInterface.

The first option is pretty self-explanatory and not necessary in our case. Why should we keep asking the user context at runtime (the process to determine the context can be quite complex) when we can have that cached for the duration of the request. So let’s instead see how the second option would work:

my_module.user_context_factory: class: Drupal\my_module\UserContextFactory arguments: ['@current_user'] my_module.user_context: class: Drupal\my_module\UserContextFactory factory: 'my_module.user_context_factory:getUserContext'

So these would be our service definitions. We have the factory which takes the current user as an argument, and the user context service which we will be injecting as our dependency wherever we need. The latter uses our factory’s getUserContext() method to return the relevant UserContextInterface implementation. It is not so important what class we set on this latter service because the resulting object will always be the result of the factory.

The rest is boilerplate and we won’t be going into it. However, what needs to happen next is create our UserContextFactory class which takes in the AccountProxyInterface representing the current user and which implements the getUserContext() method tasked with building the UserContextInterface implementation. The latter method is not bound to any return type by the service per se, however, we must ensure that we return a UserContextInterface  in every case to preserve the integrity of our application. One good practice to ensure this is creating a UserContextNone implementation of UserContextInterface which would be returned by the factory in those edge cases when the context cannot be determined or values are missing, etc.

So that is pretty much it on how and why you would or can use a factory instantiation of services from your container. There is nothing new here, in fact the Symfony documentation has an entry specifically about this. However, I believe it’s a neat little trick we should all be aware of.


Matt Glaman: DrupalCamp London, my first keynote.

Planet Drupal - Sun, 2017/03/12 - 10:14pm

is, according to various sources and rumors, the biggest camp in Europe. It comes up in size next to BADCamp and DrupalCamp Mumbai, coming in the 400 to 600 attendee range. That is quite a feat, and I am honored to have gotten to experience this DrupalCamp.

In January I was asked to be one of the keynotes. After a mini jump around and freak out, I, of course, said yes. Then I had a moment of "what in the world am I going to talk about." I've presented at camps before, and I have been able to copresent at the past two DrupalCons about Drupal Commerce alongside Ryan and Bojan.

But a keynote can't just be another "here's Drupal Commerce" or "Here's how this development process goes!" To me, at least, I look at keynotes to plant a seed of motivation that gets me kicked in gear for the conference. It reminds me of why I was excited to go to the camp and see all these amazing people again.

This was my first keynote. It was my first time going to London. It was my second time going to Europe, following up to DrupalCon Dublin. Two known names in the Drupal and open source community were slated as the Sunday keynotes. I spoke on Saturday, the mood setter. I guess a slight panic can describe my mentality at first.

So, I sat and I thought. And then I remembered the . How he highlighted Drupal changing lives. And I thought, "well, Drupal sure as hell did make some changes my life." So I wanted to tell my story. Drupal opened opportunities for me and I made some lucky choices at the right place and time. That made me think: what if I shared my story and how open source, specifically Drupal, made this impact. Maybe it'd catch a handful of newcomers in the crowd and inspire them like many people did at my first DrupalCamp in Atlanta.

So I shared my story. I showed how the progression of finding Drupal, becoming part of the community, and having the community support provided a career and very big changes in my life.

Five years ago I was slinging half barrels, full of dyed green beer for St. Patricks day, into bar basements. Four years ago I built my first major Drupal (via Drupal Commerce) site. Three years ago I got to speak at DrupalCamp Florida. Two years ago I went to my first DrupalCon in Los Angeles. Now I'm here, shocked and awed at this journey which is only beginning.

The conference was great. The organization was spot on, great venue and session rooms. Unfortunately, I did not catch any other sessions. Right after the keynote, I hit the sprint room to finish up my slides and wrap up some pull requests. Right after lunch, . And right afterward gave his . Then it was party / social time!

I think we also rocked the social night pub just a bit. We drained them of Guinness and spent over £5000. Granted, some of that was food. Well, maybe a little. 

It was a great camp. I am more than looking forward to attending it once more.


Stanford Web Services Blog: Lessons Learned from 2+ Years of Using Behat

Planet Drupal - Sun, 2017/03/12 - 6:39pm

At the 2017 Stanford Drupal Camp, I facilitated a conversation about "Lessons Learned from 2+ Years Using Behat".

Check out the video of the session here.


DrupalCon News: Announcing the first-ever DrupalCon Nonprofit Summit

Planet Drupal - Sun, 2017/03/12 - 6:00pm

One of best things about DrupalCon is sharing ideas with and learning from other Drupal users who are facing similar challenges in their work. The Nonprofit Summit will be a chance to connect with technologists, from small and large organizations, to share best practices, ask questions, and get advice about common themes such as CRM integrations, fundraising and campaign management, web accessibility, and how and when to transition to Drupal 8.


Out & About On The Third Rock: Empathy mapping – Drupal community and Drupal 8

Planet Drupal - Sun, 2017/03/12 - 12:03am

I carried out a empathy mapping exercise at Drupal Camp London 2017 to capture the community’s perspective towards Drupal 8.  The community perspective from Drupal Camp London towards Drupal 8: I would encourage you to download the template, use it capture the community perspectives at your own Camps and meetups. The template can be downloaded […]

The post Empathy mapping – Drupal community and Drupal 8 appeared first on Agile Transformation - Eradicating Poverty - Human Rights - Open Source - Random - Batman.


Drupal core announcements: Drupal core security release window on Wednesday, March 15, 2017

Planet Drupal - Sat, 2017/03/11 - 5:14am
Organizers:  xjm cilefen Fabianx catch stefan.r David_Rothstein Event type:  Online meeting (eg. IRC meeting)

The monthly security release window for Drupal 8 and 7 core will take place on Wednesday, March 15.

This does not mean that a Drupal core security release will necessarily take place on that date for any of the Drupal 8 or 7 branches, only that you should watch for one (and be ready to update your Drupal sites in the event that the Drupal security team decides to make a release).

There will be no bug fix or feature release on this date. The next scheduled minor (feature) release for Drupal 8 will be on Wednesday, April 5.

Drupal 6 is end-of-life and will not receive further security releases.

For more information on Drupal core release windows, see the documentation on release timing and security releases, and the discussion that led to this policy being implemented.


MidCamp - Midwest Drupal Camp: MidCamp 2017 keynote, sessions, and trainings, oh my!

Planet Drupal - Sat, 2017/03/11 - 1:07am

Keynote Speaker

We are pleased as punch to announce that Emma Karayiannis will be the keynote speaker for MidCamp 2017.

Emma is a huge Open Source community advocate. Over the past 4 years Emma has taken part in many (if not all) forms of contribution within the Drupal community. Emma's current focus has put the code aside to support the people who contribute to Drupal. Her current responsibilities include being a member of the Drupal Community Working Group and the creator of the 'Being Human' track for DrupalCon.

Get tickets

Accepted Sessions

We had a record breaking number of sessions submissions this year, making our job extremely difficult on how to choose the best content for this year's camp.  We have 45 sessions spread across four concurrent rooms planned for Friday and Saturday.

With sessions like Inclusive Development: Using Styleguides to Improve Website AccessibilityUnderstanding DrupalThe Butler Did It: Putting Jenkins To Work For You; and Building Great Teams, we have something for everyone!

View all sessions

Training Day

On Thursday, we have four great full day Training sessions planned.  We have lined up a group of incredible trainers who are going to donate their time to lead full day, in depth training sessions.  Each session is $40, and is additional to the price of the camp.

View all trainings sessions

Drupal Development Best Practice Workflows on Pantheon

Pantheon is a website management platform for Drupal & WordPress that provides lightning-fast hosting and best-in-breed web development tools for your team. Learn how to use Pantheon like a seasoned Drupal developer and level up your Drupal development game.

We'll walk through time-saving development workflows on Pantheon's development platform where you'll be using Git and high-performance technologies like Varnish and Redis to keep your clients happy.

Learn more or get your ticket now!

Introduction to Drupal 8

Drupal is known for being a powerful platform with a steep learning curve. This course will give you an introduction to the world of Drupal and soften that learning curve so you can get up-to-speed with Drupal quickly. We'll cover fundamental Drupal concepts and terminology, and give you the hands-on experience you need to dive deeper.

Whether you're a developer using Drupal for the first time, a content editor looking for an introduction to Drupal administration, or a site builder wanting to know how to structure a new Drupal website, this course will get you started on the right foot.

The course includes step-by-step exercises to help you understand the process of creating a Drupal site. It also includes independent exercises to help you think through the process of building out a website for your particular use case or organization.

Learn more or get your ticket now!

Theming Drupal 8

Themes combine HTML, CSS, JavaScript, and Drupal in order to make beautiful websites. Creating truly unique themes requires knowing how to use the Twig template language to manipulate HTML, how to add CSS and JavaScript assets in a way that's compatible with Drupal's caching, all while maintaining the flexibility that Drupal is known for.

This workshop will familiarize front-end developers with Drupal 8's theme system through a combination of presentations, and hands-on exercises. Whether your goal is to theme your personal site, pass the Acquia front-end developer certification, or upgrade your skills for a job our goal is to provide students with a solid foundation on which to start and enough knowledge to continue to practice and learn on their own.

Learn more or get your ticket now!

What Am I Getting Myself Into? A Drupal Crash Course for Non-developers

Are you responsible for project management, content, or vendor selection and preparing to work with Drupal? This one-day training delivers all of the tools you need to get started. Delivered by an Acquia Certified Drupal Developer, this training will answer the questions you didn’t even know to ask!

Targeted to the non-developer, this training is perfect for individuals that need to get up and running in Drupal - fast! Attendees will benefit from a unique perspective at the intersection of Drupal expertise and marketing, that only Margaret can deliver as a former marketing executive and author of the Drupal 8 Acquia curricula. Individuals that are brand new to Drupal will walk away with the confidence to work within the Drupal framework and community.

Learn more or get your ticket now!


At MidCamp 2016, the Sprint room was always abuzz with activity.  There was so much activity on those who work on the Frontend of Drupal, and a concentrated effort to get Drupal Commerce to it's first Release candidate.

If you want to sprint, stop by these rooms any of the days.  If you are interested in mentoring, or leading sprints, please contact midcampsprints@gmail.com.  We ask if you are coming on Thursday and Sunday that you get a free ticket so we can make sure to get enough food and coffee.

  • Thursday sprints will take place in Room 220, with room for 80 people
  • Sprinting during sessions Friday and Saturday will take place in Room 120AB, starting after the keynote
  • Sunday sprints will take place in Room 314A and 314B, with room for 60 people in each room

Sponsor MidCamp 2017!

Are you or your company interested in becoming a sponsor for the 2017 event? Sponsoring MidCamp is a great way to promote your company, organization, or product and to show your support for Drupal and the Midwest Drupal community. It also is a great opportunity to connect with potential customers and recruit talent.

Find out more at:

Thanks for reading this far!  We hope to see you at the camp!


Palantir: The Importance of Strategy to Design

Planet Drupal - Fri, 2017/03/10 - 9:44pm
The Importance of Strategy to Design brandt Fri, 03/10/2017 - 14:44 Ashley Cyborski Mar 14, 2017

Strategy-driven design helps create a common language for project teams and clients to discuss design decisions.

In this post we will cover...
  • Why a common language is important
  • How each individual design deliverable impacts the design process
  • How combining strategic goals with design deliverables creates the ability to set goals and test

We want to make your project a success.

Let's Chat.

Strategy-driven design is a process that is heavily informed by the research and goals established during the strategy phase of a project. At Palantir, our design and strategy teams work together closely. I’ll be using this post to talk about how different strategic deliverables help to inform the design process and keep it on track throughout the project.

Creating a Common Language

The biggest benefit of strategy-driven design is the creation of a common language for the design team, the strategy team, and the client to discuss design decisions. This benefit extends into each step of the process.

Many non-designers have trouble talking about and providing feedback on design. I’ve had experiences where I get feedback like “the blue isn’t working, so I think we should use orange more,” or “the image at the top is too small, let’s make it bigger.” Though this type of feedback isn’t all that bad, it could be more effective. The reasoning behind the feedback isn’t clear, and it lacks a relationship to the user experience.

By using the strategic deliverables as a benchmark, we can reframe the feedback in a way that keeps the goals and user experience in mind. Instead a client might say “The blue on this button does not have enough emphasis, and since this CTA is one of our primary KPIs, we should explore alternative colors to improve its hierarchy on the page.” You can see how the core meaning of the feedback didn’t really change, but the conversation around that feedback has been reframed to be goal-oriented and problem based.

When we have a common language, communicating is easier and the reasoning behind design decisions becomes clearer to a client. This results in clients being more confident in the design decision and also gives them language and reasoning when presenting them to their stakeholders.

Strategic Deliverables’ Relationship to Design Competitive Analysis

Competitive Analysis involves looking at an industry’s competitive landscape and determining what your website is doing well and where there is room for improvement. Basically, this piece of strategy is about sizing up the competition and figuring out how to surpass them.

Though the competitive analysis does not directly affect the design process, it can help us to understand an industry’s best practices and standards. We can compare our designs to what already exists and find unique ways to improve our user experience and the overall brand impressions from that experience.

For example, Competitor A’s site also has a newsletter signup pathway. As we navigate through it with the mindset of a user, we can uncover areas of improvement. For example, their form element doesn’t tell you what information it is looking for, and they do not have any descriptive information about what you are signing up for. By navigating through this process on our competitor’s site, we can gain a lot of insightful ideas to improve the user experience on our own site.

Business Goals and KPIs

The business goals and KPIs (Key Performance Indicators) of a project are the guiding light of the design phase. As we work through each part of the design process, we look at the goals as our design targets. Through the design, we want to ensure that we help set the project up to accomplish those goals.

For example, a site goal could be to increase newsletter sign-ups, and a KPI might be to increase them by 25%. So as we move through the design process, we consider the sign up form’s placement on a page as well as the style decisions that give it the appropriate hierarchy and visual weight, like color and size.

In addition to the site wide goals, each section of the site may also have its own unique goals. Part of the design and strategy collaboration process includes balancing these section specific goals with the project goals. The design helps to guide the user through each section of the site, ensuring that the section’s goals are understandable and navigable, and that the site goals are visible, without being overpowering.

User Research

User research builds on the existing KPIs and explores how and why a user explores the site. Empathy mapping provides insight into the feelings, thoughts, and actions of a user as they try to accomplish their goals. Personas then define the types of users at a high level by focusing on their specific needs, motivations, and limitations. User journeys combine this information to plan an improved pathway to help users more easily accomplish their goals on a site.

It is the designer’s job to help realize these goals and translate them into a clear and usable interface that meets the needs of individual users. By using hierarchy, color, clear indicators, and subtle animations, design can help guide users through the site without getting in the way and slowing them down. We begin to consider accessibility and functional needs. With the user journey as the direction, we can visualize how a user gets from point a to point b and where they may need to stop, or get help, along the way.

To continue our “newsletter sign-ups” example, this step involves ensuring that the placement of the signup form is in a location that makes sense, but doesn’t interfere with the other content on that page. It also means ensuring that users know where the submit button is and what information goes into the inputs by using appropriate labels. We can also begin considering different user needs. For example, a visually impaired user may need higher contrast levels or may need to navigate the signup form using their keyboard.

Content Strategy

The content audit looks at existing content, and the content type definition begins to define what content will be used on the site and how and where it will be used. Design uses this definition to plan components and templates. Without the content, there would be nothing to design and there would be nothing of value for a user. Content is really key.

A lot of people think good design can compensate for poor content, but that isn’t true. Content and design are like a pair of dancers, if only one is good, then the act is mediocre at best. If both are good, however, then the act is a beautiful work of art that communicates its message clearly and seamlessly to the audience. Good design cannot compensate for poor content, and you cannot have a great design without great, well thought out, and consistent content.

Once you have a good content plan the design can begin to form the structure and the hierarchy of that content. The strategy helps to inform how and where the content is connected, and the design works to tie those threads together with clear, navigable pathways.

For our newsletter example, this means first determining which content pathways lead to the newsletter signup form, and how important that form is compared to other content within that content type. On a news or blog article page, that form may be more relevant than on a contributor’s biography page. Additionally, the content strategy helps articulate the language around the form itself, defining the title and description blocks.

Information Architecture

If the User Journey is the direction from point “A” to point “B”, then the Information Architecture is the map. When it comes to integrating the IA into the design, the work is a lot more literal than the other examples. It involves creating waypoints that help users know where they are and how to navigate.

This involves things like clear labeling of “you are here” type information, such as bread crumbs or section headers. It can also entail active states on the navigation to show “you are in this section”. However, there are multiple pathways to get to point “B”. We can’t always tell where a user came from on the site or if they even landed there from the site at all. This means that each page has a goal of informing the user of where they currently are, as well as showing them other routes that they can take to get around. Having a clear navigation with understandable labels goes a long way. Design works to ensure that these are discoverable and usable.

To go back to our newsletter example, this would mean having a clear path to the newsletter signup in the navigation and surfacing alternative navigation pathways through the rest of the site.

Goal Setting and Testing

Above, I talked about how each individual deliverable impacts the design process. As a whole, these deliverables give the design process clear objectives, benchmarks, and a common language for discussing design decisions. This process helps to marry the strategic goals with the design goals of a project.

Oftentimes, design goals are not very rigid or specific. For example, a design-based goal might be to improve the brand presence on a site. This goal has a wide range of acceptable solutions and can be very hard to test in a meaningful way. By leveraging the strategic goals, we can set more specific design goals that directly tie into the project KPIs. These hybrid goals are much easier to test with an end user and lend themselves to the creation of benchmarks that the site can be tested against in the future.

The Wrap-Up

In my experience, when we do not have strategic goals, the design process can become frustrating, extended, and a bit detached from the overall process. Since there is no common language, it becomes harder and more frustrating to resolve design feedback in a meaningful and productive way. When we have that common language, communicating is easier and the reasoning behind design decisions becomes clearer to a client.

Additionally without clear project goals, it is also a lot harder to determine when a design is “finished” as there is a real lack of measurement. Oftentimes, clients will continue to iterate because they do not feel it is “quite right”, and are feeling a lot of pressure to be successful with large projects. With the goals in mind, we can look at a design and say “This is accomplishing this goal”, and we can test that statement. This gives clients a lot more confidence in the design deliverables as well as a platform for talking to their stakeholders about design decisions.

By leveraging the strategy deliverables in the design process, our final product is goal-oriented with a focus on the user experience. Ultimately, this creates a better final product for both the client and their users.



Stay connected with the latest news on web strategy, design, and development.

Sign up for our newsletter.

DrupalEasy: Installing Drupal Console in an Existing Drupal 8 Project

Planet Drupal - Fri, 2017/03/10 - 9:42pm

Drupal Console is a fantastic tool for helping to write Drupal 8 modules; of that there is little debate. Its "generate" functionality takes much of the pain out of setting up the scaffolding for many types of Drupal 8 modules, and in the process that alone saves developers a significant amount of time. When using Drupal Console, module developers usually don't have to worry too much about basic "use" statements, PSR-4 directory structures and file names, annotations, and much boilerplate code that is normally part of the development process.

Here at DrupalEasy, we're such big fans of Drupal Console, we've designed our "Introduction to Drupal 8 Module Development" full-day workshop around it (we're offering it at DrupalCon Baltimore). To some newcomers, getting Drupal Console up-and-running can be a bit tedious as there are a few ways to install it. Plus, the distinction between the Drupal Console Launcher (global executable) and the rest of Drupal Console can be confusing.

This blog post's goal is to describe one method for installing Drupal Console Launcher and Drupal Console on an existing Drupal 8 site. This example will not utilize a fully-Composer-ized™ Drupal 8 install (possibly expect a second blog post once best practices evolve a bit more - see below), rather it will focus on a "standard" (old school?) Drupal install via traditional methods. That being said, you'll still need Composer installed, as we're going to use it to install part of Drupal Console (a bit confusing, I know). 

So, let's assume you have a local Drupal 8 instance installed and up-and-running on your local machine. For this exercise, your local development environment doesn't matter all that much unless you're running a virtualized solution. If you are, you're probably clever enough to modify these instructions appropriately. In the past, I've often used Acquia Dev Desktop when teaching new students to use Drupal, so I can confirm that these instructions work just fine in that environment. The only real prerequisite is that Drupal Console requires PHP 5.5.9 (on the command line) or higher.

As mentioned above, there are actually two parts of Drupal Console that users are strongly recommended to install - the "Drupal Console Launcher" and "Drupal Console" itself. The launcher is installed globally on your machine, while Drupal Console is installed separately on each of your local Drupal 8 projects. This is a bit different than earlier (pre-release-candidate) versions of Drupal Console, and can be a source of confusion.

Installing the launcher should be pretty straight-forward on Mac or Linux as there's a simple curl command:

curl https://drupalconsole.com/installer -L -o drupal.phar

On Windows the project documentation is pretty good (as well as this Evolving Web blog post by Dave Vasilevsky). With just the launcher installed, you're limited to just a few Drupal Console commands involving installing (via the very cool "chain" command) Drupal, working with generic .yml files, and some Drupal Console non-site-specific functionality. 

You can verify the launcher is installed properly by doing a drupal about command from anywhere in your file system - this will show you the current version of the launcher as well as some available commands. 

It is the launcher's job to provide the global executable for which to run Drupal Console commands against any site on your system from any location (using the --root option - similar to the Drush --uri option) or by running the command from inside the site root. 

But, in order to run most Drupal Console commands (including the glorious "generate" related ones), each Drupal 8 site on your local must have Drupal Console (and its dependencies) installed. Luckily, this is pretty easy to do as well. Navigate into your site root, then (because Drupal 8 ships with composer support) run the following command to install:

composer require drupal/console:~1.0 --prefer-dist --optimize-autoloader --sort-packages

This will modify your site's composer.json and composer.lock files with their new Drupal Console dependency and then download Drupal Console and all of its dependencies into the site's vendor directory. That's it - you're done! Remember - you must do this for each Drupal 8 site on your local. 

You can test the Drupal Console goodness with a drupal site:status command (similar to drush status). Once confirmed, you're good to start using Drupal Console to help you generate all those custom modules.

Updating Drupal Console

Looking at the Drupal Console project page, it's easy to see that it's still a work in progress (there are commits almost daily). So, the next (hopefully) obvious question is "how do I update Drupal Console"? Well, first off, remember that there are now two things to update - the global launcher as well as all the Drupal Console stuff in your site's vendor directory. 

To update the global launcher, navigate to somewhere outside of your Drupal 8 site (your home directory works) and run drupal self-update (you may need to use "sudo"). 

To update your site's Drupal Console "stuff" (I'm struggling to figure out exactly what to call it - "files"? "dependencies"?, "code"? I'm open to suggestions), navigate to your site root and, remembering that we used Composer to install it, run the following command to update it:

composer update drupal/console --with-dependencies

Keep in mind that you'll need to do this for each Drupal 8 site on your machine.

The Future?

So, what will the differences in this blog post be once we all fully embrace Composer as the-one-and-only-way-to-manage-Drupal-projects? I'm not entirely sure there will be any. Stay tuned.


Acquia Developer Center Blog: 250: Suchi Garg - Career makes Community

Planet Drupal - Fri, 2017/03/10 - 4:58pm

What's in a Driesnote? Interviews from the DrupalCon Dublin "Driesnote" keynote address. Suchi Garg is an IT professional through and through and happened upon PHP and Drupal essentially by accident at work. As of 2017, she has been working exclusively in Drupal for a decade and is still very passionate about code, contribution, the community, and passing on her knowledge through training. She is Technical Services Manager at Acquia.

DrupalCon Dublin Community Voices podcasts

Subscribe to the Acquia Podcast in iTunes and rate this episode!

Subscribe via our RSS feed.

Skill Level: BeginnerIntermediateAdvanced

DrupalCon News: Win a Week at DrupalCon

Planet Drupal - Fri, 2017/03/10 - 3:59pm

DrupalCon is a magical experience where you not only learn new things and make new Drupal friends, but it also inspires and refuels our Drupal passion. We know that not everyone can attend and experience this DrupalCon magic. That's why we created The ULTIMATE DRUPALCON EXPERIENCE SWEEPSTAKES. 

One lucky community member could win a flight, hotel, full-pass, and a one-on-one coffee with Dries Buytaert.


InternetDevels: A whiter shade of WSOD: clearing your Drupal cache as a way to fix it

Planet Drupal - Fri, 2017/03/10 - 2:37pm

This phrase has long been a famous Internet meme: in any situation, keep calm and clear your cache! And the power of Drupal cache is really strong, because it can be helpful even in the case of so-called White Screen of Death or WSOD.

Read more

Drupal core announcements: New Drupal 8 core committers: Gábor, Roy and Lauri

Planet Drupal - Fri, 2017/03/10 - 2:25pm

In order to achieve a steady stream of innovation in Drupal 8 core, it's important to keep up velocity. To do so we aim to clearly define and scope our top priorities and support the contributors that choose to work on these high impact changes. Another way to do this is through timely reviews and commits of "Reviewed and tested by the community" (RTBC) issues, which is done by the core committer team.

As we've experienced unprecedented contributor growth with the release of Drupal 8, so too has the growth of new ideas, bug fixes, and feature improvements. I'm pleased to announce that we are growing the core committer team in response to these increasing demands, by appointing two new Product Managers (Gábor Hojtsy and Roy Scholten) and a new front-end focused Framework Manager (Lauri Eskola) to the team.

Gábor Hojtsy

Gábor started working on Drupal back in the 4.3 days, about 14 years ago. Using it for a Hungarian web development community site, he found some parts hard to translate, and immediately got involved to fix those bugs. He has wide ranging experience in managing core itself as the release manager of Drupal 6, setting up localize.drupal.org -- a unique community translations platform --, co-leading major international events such as DrupalCon Szeged and Drupal Dev Days Szeged, and working with 1600+ contributors in the Drupal 8 Multilingual Initiative to level up multilingual support in core. He received the Aaron Winborn award in 2016.

Gábor is looking forward to enable and unblock the community working on all kinds of user facing improvements from the smallest fixes to the larger revamps.

Roy Scholten

Roy has been working with Drupal for over 10 years. Since bootstrapping the Drupal UX team in 2007 he has consistently focused on making Drupal easier to understand and use. He started contributing with his user interface work for the Views and Panels contributed modules. During the development of Drupal 7 he helped make big usability improvements happen in the D7UX project. These efforts made him a top 30 contributor to Drupal 7 core and he has been a core “usability maintainer” since then.

He collaborated on the redesign of major parts of Drupal 8 and helped define the process for adding big new features to new releases of Drupal 8. He’s a regular speaker at DrupalCons and local events, was part of the Drupal.org Content Working Group advising on an improved content strategy for drupal.org and likes to rewrite your interface texts.

Roy will focus on helping people decide which features and improvements to work on and supporting those design and development efforts that will make Drupal easier to understand, learn and use.

Lauri Eskola

Lauri has been working with Drupal for almost nine years. He is one of the Drupal 8 Theme API maintainers, and he was listed as a top 30 contributor to Drupal 8.

During the last four years, Lauri has made efforts around cleaning up markup and creating the Classy base theme, making improvements to the theme system to improve theming experience, and helping to fix some of the security criticals related to the theme system that were blocking Drupal 8's release. He is also passionate about improving the user experience, and have helped the UX team to implement changes to Drupal’s user interfaces.

Lauri's primary goal is to help user-facing improvements take place. He will also pay attention to enabling improvements to underlying theming systems.

Welcome to the team! :-)


ADCI Solutions: Drupal modules for ratings

Planet Drupal - Fri, 2017/03/10 - 6:54am

What if we tell you that you can boost your Drupal website's user activity without much effort? Consider implementing voting and rating features: we all love expressing our opinion and pushing the button. The following mini-guide will show you 7 Drupal modules that will help you with that: Voting API, Fivestar and several more. See the full set here.


Third & Grove: Mastering AJAX in Drupal 7

Planet Drupal - Thu, 2017/03/09 - 8:31pm
Mastering AJAX in Drupal 7 spencer Thu, 03/09/2017 - 14:31

DrupalCon News: Reserve your room for DrupalCon Baltimore

Planet Drupal - Thu, 2017/03/09 - 7:12pm

Staying true to Drupal’s water theme, DrupalCon Baltimore and our partner hotel, Baltimore Hilton, are located in the fun Inner Harbor where you can stroll from the Baltimore Convention Center to restaurants, shopping, and educational destinations like the famous Baltimore Aquarium, USS Constellation, and the Maryland Science Museum. And, the hotels we chose are perfect hubs connecting you to a rewarding DrupalCon and culture experience.


Drupal.org blog: What’s new on Drupal.org? - February 2017

Planet Drupal - Thu, 2017/03/09 - 5:17pm

Read our Roadmap to understand how this work falls into priorities set by the Drupal Association with direction and collaboration from the Board and community.

Drupal.org updates Industry Pages Launched

After a great deal of preparation, user research, and content development we've launched the first three 'Drupal in your Industry' pages. These first three pages highlight the power of Drupal in Media and Publishing, Higher Education, and Government. Each of these pages uses geo-targeted content to reach audiences in: the Americas; Europe, the Middle East, and Africa; and the Asia Pacific, Australia and New Zealand regions.

These pages are targeted at evaluators of Drupal in these specific industries. From our research, we've found that these evaluators typically have Drupal on their short list of technology choices, but are not familiar with how a complete solution is built on Drupal, and they're eager to see success stories from their industry peers.

We'll be expanding on this initiative with additional industry pages as time goes on.

Project Application Revamp

In February we completed phases 1 and 2 of the Project Application Process Revamp. This has meant polishing up the security advisory coverage messages that are provided on project pages, adding a new field for vetted users to opt-in to advisory coverage for their projects, and adding security advisory coverage information to the updates xml served from Drupal.org. With these issues complete we'll be able to move forward with Phase 3 (opening the project promotion gates) and Phase 4 (improving code quality signals and incentivizing peer review) as we roll into March.

[Author's note] The project application revamp hit a major milestone in early March with the completion of Phase 3. Now, any user who has accepted the git terms of service may now promote sandbox projects to full projects with releases, and the application process has been re-purposed for vetting users who want the ability to opt into security advisory coverage for their projects. Look for more information in our upcoming March post.

2017 Community Elections are Live

On February 1 we opened self-nominations for one of the two community-at-large seats on the Drupal Association Board of Directors. At the time of this post, self-nominations have closed and now it's time to vote!.

Each year we make incremental improvements to the elections process. This year we've allowed each candidate to present a short 'statement of candidacy' video - and we've updated the ballot to allow easy drag-and-drop ranking of candidates.

Voting closes on March 18th, so make sure to vote soon!

Documentation polish, and new "call-out" templates

As the migration of content into the new documentation system continues, we've continued to polish and improve the tools. In February we made a few small improvements including: help text for maintainers and fixes for links to the discuss page in email notifications. We also made one large improvement: Call-out templates for highlighting warning information or version-specific notes within a documentation page. These templates are available using the CKEditor Templates button when editing any documentation page.

The documentation editor may select from the 'Warning note' template, which will highlight cautionary information in a visually distinct orange section on the page, or the 'Version-specific note' template, which allows users to highlight information that may only be relevant to a specific minor release of Drupal.

Here are two examples of what the call-outs will look like to a documentation reader.

DrupalCI Coding standards testing

DrupalCI continues to accelerate the pace of Drupal development as we make the system more efficient and add new features. In February we enhanced the coding standards testing that was added DrupalCI in January. Using PHPCodeSniffer, ESlint, and CSSlint coding standards results are available in the test results' Build Artifacts directory, including automatically generated patches to fix found issues. We've also begun displaying summary information about coding standards testing on Drupal.org test results. Again we'd like to thank community contributor mile23 for his work on this feature.

More useful error output

We also made DrupalCI's error output more detailed, to make it more immediately clear to developers what the issue with a particular patch might be. Developers will now see messages on the test result bubbles, for example a 'patch failed to apply' error rather than a generic 'CI error' message.

Community Initiatives Contrib Documentation Migration

We want to continue to encourage Project maintainers to create documentation guides on their projects using the new documentation content types. Maintainers can then migrate their old documentation content into these new guides, or create new documentation pages. For more information about this process, please consult our guide to contrib documentation.

Help port Dreditor features to Drupal.org

Are you a Drupal.org power user who relies on Dreditor? Markcarver is currently leading the charge to port Dreditor features to Drupal.org, and invites anyone interested in contributing to join him in #dreditor on freenode IRC or the Dreditor GitHub.

Infrastructure Special note: Drupal Association seeks Infrastructure Services vendor

We'd also like to announce a Request for Information. The Drupal Association seeks an infrastructure services vendor to help us manage the underlying infrastructure that supports Drupal.org, our sub-sites, and the services we maintain. Our internal engineering team will continue to manage the sites and services themselves, while this vendor will help us with systems administration, virtual machine management, monitoring and pager responsibilities, disaster recovery, etc.

For more details about this request for information, please see our post on the Association blog.


As always, we’d like to say thanks to all the volunteers who work with us, and to the Drupal Association Supporters, who made it possible for us to work on these projects. If you would like to support our work as an individual or an organization, consider becoming a member of the Drupal Association. Follow us on Twitter for regular updates: @drupal_org, @drupal_infra