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.
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.
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! :-)
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.
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
- 248: What's in a Driesnote? ASH 'n jam talk community stories. In this podcast, I talk with Acquia Office of the CTO Multimedia Designer, Alena "ASH" Heath about her history in Drupal, this project and what we learned along the way!
- 249: Changing lives, changing the world - voices from the Dublin Driesnote - Hear Vijaya Chandran Mani, Zsófi Major, Drew Gorton, Franck Seferiba Salif Soulama, Suchi Garg, Ronan Dowling, Jack Holding, Sheena Morris, and Crispin Read as featured in DrupalCon Dublin "Driesnote" keynote address.
- 250: Dublin Driesnote Voices - Suchi Garg
Subscribe to the Acquia Podcast in iTunes and rate this episode!
Subscribe via our RSS feed.Skill Level: BeginnerIntermediateAdvanced
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.
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.
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 Accessibility; Understanding Drupal; The Butler Did It: Putting Jenkins To Work For You; and Building Great Teams, we have something for everyone!
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.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.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.Theming Drupal 8
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.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.
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 firstname.lastname@example.org. 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!
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.
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 […]
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.
DrupalCamp London 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 Dries keynote at Dublin. 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, I gave my Drupal Commerce session. And right afterward Scott Hooker gave his site builder Drupal Commerce session. 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.
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.
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
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!
An OSTraining member asked us how to create a CNN / BBC-style news site, with a breaking news ticker.
In this tutorial, I'll show you how to build a slideshow in Drupal 8 that uses text rather than images.
If you're using Drupal 7, we have a version of this tutorial for you.
After 2½ years, Chapter Three in San Francisco is reaping the rewards from its early commitment to Drupal 8.Tags: acquia drupal planet