Planet Drupal

Subscribe to Planet Drupal feed - aggregated feeds in category Planet Drupal
Updated: 13 hours 35 min ago

Freelock : 11 Questions Businesses need to ask themselves when choosing a Drupal host: The Comprehensive Freelock Hosting Guide

6 October 2016 - 5:17pm

When choosing any service provider, a crucial question is, "What happens if something goes wrong?" When you're choosing a hosting provider, we like to dig a bit deeper, and ask what risks are likely to be an issue for you?

Here are some of our questions:

DrupalHostingDrupal PlanetSecurityBackupmaintenanceUpdates
Categories: Drupal

Cocomore: Recap DrupalCon Dublin 2016: These Were The Highlights

6 October 2016 - 3:00pm

After a week on the Emerald Island we are back from DrupalCon Dublin. Like every year, we have seen members of the community that we don’t get to see as much as we would like to. We have attended fantastic sessions and learned new things that we want to apply in our daily business. Read more about our favorite sessions that are now also available on video for those who could not attend the event.

Categories: Drupal

Lullabot: Wi-Fi & Coffee, A Vacation? The DrupalCon Dublin Recap

6 October 2016 - 1:00pm
Matt and Mike sit down with fellow Lullabots Joe Shindelar and Chris Albrecht to talk about DrupalCon Dublin. We talk about our favorite sessions, bofs, social events, and attempt to answer the question, "Is DrupalCon a vacation?".
Categories: Drupal

Third & Grove: Creating a Custom REST API in Magento2

6 October 2016 - 9:34am
Creating a Custom REST API in Magento2 curtis Thu, 10/06/2016 - 12:34
Categories: Drupal

Four Kitchens: Team Work on the New NYU Nursing

6 October 2016 - 9:04am

Founded in 1932, the NYU Rory Meyers College of Nursing is the second-largest private university college of nursing in the US, and NYU wanted a new online experience that was as modern as their user base… […]

Categories: Drupal

Drupal Commerce: Drupal Commerce 2.0 Enters Beta

6 October 2016 - 8:55am

During the Commerce 2.x session at DrupalCon Dublin we officially tagged Drupal Commerce 2.0-beta1, our first production ready release. This does not mean it is feature complete or bug-free, but it does mean that from this point on, we support updating between 2.x releases - a key requirement for production usage. Start a Drupal 8 eCommerce site today, and you will be able to update your way to the full 2.0 release and beyond.

Photo credit Will Jackson during the "Launching online stores with Commerce 2.x on Drupal 8" session.

For a quick overview of our project philosophy and the improvements we've included in Commerce 2.x, watch our session from DrupalCon Dublin.

The session heavily features the Sport Obermeyer case study, one of the first major eCommerce projects built on Drupal 8 by Bluespark and Commerce Guys. Their project influenced and shaped Commerce 2.x development in a big way, validating our ideas and providing solid use cases for features like fancy attributes, promotions, coupons, and more.

Additionally, we helped build the project as a single site serving three unique customer personas with a different purchasing workflow for each one. That drove development on our add to cart and checkout flow APIs, ensuring they have the needed flexibility to allow parallel implementations from day one. In addition to the case study linked above, check out Matt Glaman's interview with Bluespark for more information.

So... what has changed since alpha4?

Read on to find out...

Categories: Drupal

Mediacurrent: MagMutual Teams with Mediacurrent to Launch New Site

6 October 2016 - 8:54am

MagMutual, the Southeast’s premier provider of medical professional liability insurance to physicians and hospitals in the United States, launched its new corporate website this week. Founded by physicians in 1982, MagMutual is one of the leading privately-held providers of medical professional liability insurance to physicians and hospitals in the United States.

Categories: Drupal

Flocon de toile | Freelance Drupal: Translate programmatically with Drupal 8

6 October 2016 - 3:00am

Drupal 8, natively multilingual, offers a GUI to be able to translate both the site configuration (field's label, view's title, etc.) and the contents themselves. But we sometimes need to translate programmatically contents  or configurations, particularly in the context of a website factory to generate such a multilingual site.

Discover some examples to help us translate on the fly both configurations and contents. The examples below assume that we have an original content in French and that we wish to associate their English translation.

Categories: Drupal

Annertech: Retrospective: My First Time at DrupalCon

6 October 2016 - 12:37am
Retrospective: My First Time at DrupalCon

It is hard to describe my excitement at DrupalCon Dublin, my first DrupalCon indeed. After a year of preparations by the local Irish community it was hard to believe that it was actually happening.

I think I was pretty well prepared and knew what to expect. A couple of blogs from fellow Annertechies had helped to plan it, especially Mark's Get the Most out of DrupalCon Dublin.

Categories: Drupal Blog: AGILEDROP: History of Drupal

6 October 2016 - 12:05am
Drupal is one of the leading free and open-source content-management frameworks. It provides a back-end framework for at least 2.2% of all Web sites worldwide. But to establish itself at this level, Drupal overcome a long and painful path. We will therefore guide you through the early beginnings of Drupal and present you how everything started. In a year 2000 Dries Buytaert and Hans Snijder, two students on the University of Antwerp, needed an internet connection. Latter was rare for Antwerp students, so they set up a wireless bridge between their dorms. They also needed a place to talk to… READ MORE
Categories: Drupal Blog: AGILEDROP: History of Drupal

6 October 2016 - 12:05am
Drupal is one of the leading free and open-source content-management frameworks. It provides a back-end framework for at least 2.2% of all Web sites worldwide. But to establish itself at this level, Drupal overcome a long and painful path. We will therefore guide you through the early beginnings of Drupal and present you how everything started. In a year 2000 Dries Buytaert and Hans Snijder, two students on the University of Antwerp, needed an internet connection. Latter was rare for Antwerp students, so they set up a wireless bridge between their dorms. They also needed a place to talk to… READ MORE
Categories: Drupal

Janez Urevc: Drupal dev environment on Docker

5 October 2016 - 3:50pm
Drupal dev environment on Docker

I've been using a Docker based development environment for about a year. The purpose of this post is to document how I do it and hopefully get some feedback from other Docker users.

I will update this post as I evolve my approach and learn better ways of doing things.

Why would anyone do that?

Modern web applications can become very complex. Days when LAMP was enough to run them are a distant past. Nowadays we need much more; Apache Solr for running search, Memcached or Redis as a fast cache storage backend, reverse proxies like Varnish and more. In order to make the development as similar as possible to the production environments we need most of those services. Installing all this services to the developer's workstation can be complicated and can eat a lot of resources. Docker solves both problems by allowing you to clearly describe your stack and share this definition among your team members. It also allows you to easily start and stop the entire stack with one command, which means that your services only run when you really need them.

There is more... Ever needed to test your app on a different PHP version and tried to run two different versions of PHP in parallel? With docker you simply download the images that you need and change the one that is being used with a trivial change in your definition file.

Ever wanted to try a new software, but you didn't want to install a ton of dependencies on your machine? With Docker you don't need to do that. Simply download an image from Docker Hub, give it a try and remove it when you don't need it any more.


I am mostly relying on Drupal Docker images, which are maintained by Jakub Piasecki (big thanks!) with the help of other members of the community. Its goal is to provide Drupal-tailored set of images that will help anyone to get started quickly and save a lot of time building custom ones. There are of course a PHP and Drush images, but there is more. You will find a Nginx, MySQL and MariaDB images with default configuration suitable for Drupal projects.

Besides Drupal Docker I use the default Redis image and PhantomJS, which is needed to run some types of tests.

Bringing it all together

Every project needs multiple containers to function properly. I am using Docker compose to describe environment for every Drupal project I work on. Drupal compose is a tool tool that allows you to describe docker containers that you need and links between them. This is my standard docker-compose.yml file, which lives in the root of a given Drupal project:

maria: image: drupaldocker/mariadb:10 environment: MYSQL_ALLOW_EMPTY_PASSWORD: 'True' MYSQL_DATABASE: drupal ports: - 3306 web: image: drupaldocker/nginx:1 ports: - 80 volumes_from: - php links: - php php: image: drupaldocker/php-dev:7 links: - maria volumes: - ./docroot:/var/www/html drush: image: drupaldocker/drush:8 links: - maria - web - phantomjs volumes_from: - php solr: image: solr:5.5-alpine ports: - 8983 volumes: - ./modules/search_api_solr/solr-conf/5.x:/solr-conf/conf entrypoint: - - solr-precreate - d8 - /solr-conf redis: image: redis:3-alpine phantomjs: image: wernight/phantomjs:2 volumes_from: - php links: - web entrypoint: phantomjs command: "--ssl-protocol=any --ignore-ssl-errors=true /var/www/html/vendor/jcalderonzumba/gastonjs/src/Client/main.js 8510 1024 768"

One thing that experienced Docker users will notice is the fact that I do not include Drupal codebase in the PHP image. I prefer to check it out on my local machine and mount it into the running container. This allows me to use IDE that is installed on the host machine while still being able to run my Drupal applications inside containers.

With the compose file in place I can now control my environment from anywhere inside the checkout with a few simple commands:

# To bring the environment up. docker-compose up -d # To stop it. docker-compose stop # To remove all containers (and their data). docker-compose rm # To see the status of all running containers. docker-compose ps

This approach works quite well, but I am aware that is not perfect. It would be very interesting to hear how others approach this (check the comments section below!).


Drush is a crucial part of any Drupal development workflow. I run it through a separate container, which shares volumes with the main PHP and is linked to the database container. In order to run it I do:

docker-compose run --rm drush drush

This will run the drush command inside drush container (see definition in the compose file above) and remove the container when done. The command is a bit too long to type it into the console every time so I created an alias for it:

# To install drupal. dcdr site-install --account-name=admin --account-pass=admin # To enable the Entity browser module. dcdr en entity_browser Debugging with xdebug

It has become practically impossible to develope for Drupal without the step debugger. In order to enable this in my setup I use PHP development images that Drupal Docker provides and come with the Xdebug extension pre-installed. Debugging http requests is as easy as enabling debugging for the requests and making sure that the IDE or text editor is listening to the incoming connections from Xdebug.

It is also possible to debug drush requests by setting a few environment variables:

docker-compose run --rm drush sudo -u root XDEBUG_CONFIG="idekey=PHPSTORM_XDEBUG remote_host=" php /root/.composer/vendor/bin/drush.php

PHPSTORM_XDEBUG is the session id that my IDE listens for and IP of the host machine from within the container. I have an alias for that too:

# To debug migration of users. dcdrd migrate-import users Running tests

I run tests through the drush container. In order to run Simpletest I have to do the following:

docker-compose run --rm drush sudo -u www-data php ./core/scripts/ --color --directory modules/entity_browser

And to run PHPUnit:

docker-compose run --rm drush sudo -u www-data MINK_DRIVER_ARGS="[\"http:\/\/phantomjs:8510\"]" SIMPLETEST_DB="mysql://root@maria/drupal" ./vendor/bin/phpunit --verbose -c core modules/entity_browser

And yes, there are aliases for those too. See the pattern? :)


The described approach has been working quite well so far. I like Docker and I am planning to keep using it in the future. It is clear to me that my approach probably isn't the most standard and that there are probably better ways.

Exactly for that reason I'd like to hear from you. Do you believe that your solution works better? Do you like to approach things differently? Let us know in the comments section below so we'll learn together!

slashrsm Thu, 06.10.2016 - 00:50 Tags Drupal Docker Enjoyed this post? There is more! runs on Drupal 8! Call for Drupal 8 media ecosystem co-maintainers Releases of various Drupal 8 media modules

View the discussion thread.

Categories: Drupal

Evolving Web: Improve Drupal Usability with Context Active Trail

5 October 2016 - 12:53pm

Drupal has a powerful menu system, but most of the content on a typical Drupal website doesn't end up in the menu navigation. Articles, blog posts, events, you name it. Most content is linked to from views, not directly from a menu. So how do we make it easy for users to know where they are in the hierarchy of the site if they are looking at content that isn't in a menu?

read more
Categories: Drupal

Mediacurrent: Drupal 8 - The Entity CMS

5 October 2016 - 10:59am

Much like previous versions of Drupal, version 8 of the CMS revolves around the concept of Entities. These are objects that have an ID, Language, Type, and Storage. Some optional properties are URLs, Bundles, and labels. They can be viewed, loaded, created, saved, and deleted, as well as have access permissions set for them. Most things in Drupal are entities, such as Users, Nodes, or Blocks. Many of the core services provide functionality for interacting with entities, and a great deal of caching functionality serves to make entities perform better.

Categories: Drupal

Four Kitchens: Launch Announcement: NYU Rory Meyers College of Nursing

5 October 2016 - 9:27am

We’re excited to announce the launch of the new NYU Rory Meyers College of Nursing website. […]

Categories: Drupal Writing a custom authenticator in Drupal 8

5 October 2016 - 8:39am

Drupal 8 allows module developers to write their own customized authentication schemes. In this post, we shall see how we create one. Let's take a hypothetical custom authentication mechanism called the token authentication mechanism. It works like this:

The site administrator has a limited set of auto generated tokens. They issue these tokens to users who want to access the site's resources. These resources can only be accessed by giving the correct token as a part of the URL parameter, like my-page?token=ABCXYZ.

First, let's generate a module to hold our token authenticator.

drupal generate:module Enter the new module name: > Token Authentication Enter the module machine name [token_authentication]: > token_auth Enter the module Path [/modules/custom]: > Enter module description [My Awesome Module]: > Token based custom authenticator Enter package name [Custom]: > Examples Enter Drupal Core version [8.x]: > Do you want to generate a .module file (yes/no) [yes]: > no Define module as feature (yes/no) [no]: > no Do you want to add a composer.json file to your module (yes/no) [yes]: > no Would you like to add module dependencies (yes/no) [no]: > no Do you confirm generation? (yes/no) [yes]: > Generated or updated files Site path: /var/www/html 1 - modules/custom/token_auth/

Next, we need a way to store and retrieve access tokens, preferably with UI. Config entities fit this bill, so let's go ahead and create a config entity called auth_token.

drupal generate:entity:config Enter the module name [email_management]: > token_auth Enter the class of your new config entity [DefaultEntity]: > AuthToken Enter the name of your new config entity [auth_token]: > Enter the label of your new config entity [Auth token]: > Authentication Token Enter the base-path for the config entity routes [/admin/structure]: > /admin/config/system Generated or updated files Site path: /var/www/html 1 - modules/custom/token_auth/config/schema/auth_token.schema.yml 2 - modules/custom/token_auth/ 3 - modules/custom/token_auth/token_auth.links.action.yml 4 - modules/custom/token_auth/src/Entity/AuthTokenInterface.php 5 - modules/custom/token_auth/src/Entity/AuthToken.php 6 - modules/custom/token_auth/src/AuthTokenHtmlRouteProvider.php 7 - modules/custom/token_auth/src/Form/AuthTokenForm.php 8 - modules/custom/token_auth/src/Form/AuthTokenDeleteForm.php 9 - modules/custom/token_auth/src/AuthTokenListBuilder.php

We shall polish the config entity a bit to include 2 new properties, token to hold the token, a boolean flag enabled to indicate whether the token is enabled or not.


token: type: string label: 'Auth Token' enabled: type: boolean label: 'Enabled'

The token is a readonly property which is autogenerated and set at the time of creating a new entity instance.


if($auth_token->isNew()) { $auth_token->set("token", Crypt::randomBytesBase64()); } $status = $auth_token->save();

Let's create a custom authentication provider to implement token based authentication.

drupal generate:authentication:provider Enter the module name [email_management]: > token_auth Authentication Provider class [DefaultAuthenticationProvider]: > TokenAuth Provider ID [token_auth]: > Do you confirm generation? (yes/no) [yes]: > yes Generated or updated files Site path: /var/www/html 1 - modules/custom/token_auth/src/Authentication/Provider/TokenAuth.php 2 - modules/custom/token_auth/

The authentication scheme here is to allow only logged in users to view a page, provided they give a valid and enabled token as a part of the URL. This functionality partly overlaps with the cookie authentication provider which ships as a part of core. Hence, this can be built on top the cookie based authentication scheme. For any new authentication provider, we have to implement 2 functions, applies() and authenticate(). The former checks if the request has appropriate credentials needed to authenticate a request, like request headers or tokens. The latter returns a user object pertaining to the credentials.

This is how both functions play out in lib/Drupal/Core/EventSubscriber/AuthenticationSubscriber.php.

public function onKernelRequestAuthenticate(GetResponseEvent $event) { if ($event->getRequestType() === HttpKernelInterface::MASTER_REQUEST) { $request = $event->getRequest(); if ($this->authenticationProvider->applies($request)) { $account = $this->authenticationProvider->authenticate($request); if ($account) { $this->accountProxy->setAccount($account); return; } } ...

Our authentication works exactly like cookie based authentication, with an extra check on the given token. So, we override the Cookie authentication provider implementation.

public function applies(Request $request) { $token = $request->query->get('token'); return parent::applies($request) && $this->isCorrectToken($token); }

The isCorrectToken() function checks if the given token is valid and enabled against all valid tokens in the system.

protected function isCorrectToken($tok) { $query = \Drupal::entityQuery('auth_token') ->condition('enabled', TRUE); $token_ids = $query->execute(); $tokens = entity_load_multiple('auth_token', $token_ids); foreach($tokens as $token) { if($token->token() == $tok) { return TRUE; } } return FALSE; }

Our authentication provider service looks like this:

services: authentication.token_auth: class: Drupal\token_auth\Authentication\Provider\TokenAuth arguments: ['@session_configuration', '@database'] tags: - { name: authentication_provider, provider_id: token_auth, priority: 100 }

Now, let's effect this new authentication provider onto a route which we created earlier.

myroute.greeting_controller_greeting: path: 'hello/{name}' options: _auth: [ 'token_auth' ] defaults: _controller: '\Drupal\myroute\Controller\GreetingController::greeting' _title: 'Greeting' requirements: _permission: 'access content' _user_is_logged_in: 'TRUE' name: '[a-zA-z ]+'

You might note 2 important changes here. First, we explicitly specify the authentication scheme for this route as token_auth. Second, we enforce a rule saying only logged in users can see this route using the _user_is_logged_in mandate.

Rebuild the cache(make sure the token_auth module is enabled before that) and hit the above route(as a logged in user), first without the token parameter, as /hello/foo. You should get the access denied error.

Now, try with the token parameter, hello/foo?token=771iKzLs4UU8aYkOF1-TkRUvaE3P_IBqeZZl6x91D78.

The above code can be checked out here under the tag custom-auth.

$ git clone $ cd token_auth $ git checkout -f custom-auth
Categories: Drupal

Vardot: Learning Drupal: Your Guide to Main Resources

5 October 2016 - 4:32am
Resources Read time: 8 minutes

Drupal as a Content Management System (CMS), is known for its versatility and power. Unfortunately, it is also known to have a steep learning curve. The task of mastering the building of a Drupal-powered website can be quite daunting to novice users. The good news is that many online resources are available to help you overcome the learning challenges.

This article is your guide to the main online resources for mastering Drupal. Some resources are generally applicable to any modern Drupal releases, others are specific to Drupal 8 (the most recent release), or Drupal 7.


General resources Acquia Academy


Acquia is a company specializing in using Drupal to build enterprise websites. Drupal's original creator, Dries Buytaert, currently serves as Acquia's CTO. Acquia Academy is the training division within Acquia. It provides both free and paid training services.

The free training component comprises of videos as well as instructor-led online courses. If you want a quick introduction to Drupal 7 or 8, watch the videos. If you want a more formal course experience with exercises and reading assignments, you can take the online courses.

Drupal learners need a live Drupal website so that they can practice their skills. The Acquia training materials include instructions on how to obtain free trial access to the Acquia Drupal platform. This is a bonus to those learners who are not ready to install and run Drupal on their own machines. is a paid Drupal training website created in 2010 by Lullabot. After you become a paid member, you will have access to a library of 1,400+ Drupal videos. You can watch the videos in any browser on your desktop or mobile device, but you cannot download them. They don't offer a free trial. However, a small subset of the videos are free for you to sample.




BuildAModule is another membership-based, paid training service. It has 1,900+ Drupal videos. A very nice feature is that their videos are displayed with a clickable transcript. The transcript makes following and navigating a video much easier.

The introductory chapters in their videos are often free for you to sample. With a paid membership, you can watch, but not download, entire videos on their website.


Drupal Answers


Drupal Answers is a community-based, question-and-answer database for Drupal developers and administrators. The database contains answers to 63,000+ questions. Because of the target audience, the questions are technical in nature, and often involve how to accomplish particular tasks in Drupal. Many technical questions that Drupal beginners ask are answered there.

Drupal Answers is hosted by StackExchange, and sign-up is free.


Drupal Forums


Drupal Forums is the official question-and-answer database. In addition to technical, "how-to" support problems, this forum covers news and announcements about the Drupal community. Sign-up is free.


Drupal 8 Links & Resources


Drupal 8 Links is an aggregator website which collects links to Drupal-8-related resources. It has 120+ links to code examples, blog posts, videos, and podcasts. This is a great resource for Drupal 7 practitioners who want to update their knowledge to Drupal 8.


Beginner’s resources Drupal First Time User Guide


If you are a first-time Drupal user, this user guide is a great starting point. It is a community-maintained document. So, don't be surprised that this document is written with varying levels of details on a variety of topics. Some topics are substantiated with original text while others are links to external webpages.

You will find well-formed opinions from people who had done it and are now contributing back their experience in the form of best practices. For instance, you will find publishing workflow suggestions as well as a list of which contributed modules to learn.


Drupal Installation Profile and Distributions


Drupal beginners are often confused about which contributed modules to use and how to configure them to implement a particular type of service, e.g., e-commerce. The good news is that you can download pre-packaged Drupal distributions that are tailored for some common services. This article provides details on how to create installation profiles and distributions for Drupal 7. Although beginners may not need to package their own distributions at the early stage of learning, you will find the overview useful, especially the link to existing distributions that you can install and try out.


Exploring Themes in Drupal 8

This article explains how to create a starter theme in Drupal 8. It begins with an overview of starter themes and learnes you to work with libraries.


Site builders' resources What is a Drupal Site Builder?


This podcast explains the basic roles in Drupal development, namely, site builders, front-end developers, and back-end developers. It also explores the basic skill requirements for each role. If you are new to Drupal development, this will help you plan your career path.


Basic Site Building Concepts

Before you actually start developing a Drupal website, it is highly recommended that you read this article to get familiar with the concepts and terminology of Drupal. This article is especially helpful if you have some previous background in WordPress. You already know about modules, pages, and posts. But, with Drupal, you need to learn some new concepts such as nodes, content types, blocks, views, hooks, and articles.


How to Build a Website with Drupal

This article does not teach you how to create contents for your Drupal website. Instead, it focuses on how you should do the initial setup and configuration. For example, you will learn how to customize the title and slogan for your website, change the theme, and import basic contributed modules. This article was written for Drupal 7.


Developers' resources Drupal API Reference

Drupal is highly extensible. You can use the Drupal API to customize its most minute behavior.
All Drupal developers should bookmark the official API documentation portal. The documentation there is generated directly from the comments embedded in the source code. It is the most up-to-date and accurate source of information about the Drupal API.


What is a Drupal Developer?


This article is a perfect, written companion to the aforementioned podcast "What is a Drupal Site Builder?" It discusses the 3 main roles in Drupal development (site builders, front-end developers, and back-end developers), and the corresponding skill sets required. In addition, it introduces the non-development roles which you will see in a large Drupal project. Examples are system administrators, testers(QA), project managers, and user-experience (UX) designers. Toward the bottom of the article, you will find some good advice on growing your Drupal career.


Become a Drupal Developer

This article is best described as a lesson plan on how to become a Drupal developer. You will find links to video tutorials on  Note that only some of the videos are free.

The emphasis is on back-end PHP development. Drupal 7 information is presented in the beginning of the article; Drupal 8, near the end.

The plan to become a Drupal developer includes the learning of PHP coding fundamentals as well as the Drupal APIs. Also, it advocates the learning of tools to increase productivity and promote teamwork. The tools include git, Drush, and Composer.


Guide to Theming in Drupal

This guide is your launchpad for learning how to change the theme of a Drupal 7 (or 8) website. It contains links to both as well as third-party resources. The guide is community-maintained.


Introduction to Drupal 8 Configuration Management

This article first explains what configuration management (CM) means with respect to a Drupal website. Then, it expounds on the changes introduced by Drupal 8 to CM. You will find the CM video embedded in the article very useful.


Custom training resources

Private training is available if you want a training program that is customized to your specific Drupal needs and requirements. Vardot is an Acquia Training Partner which delivers customized professional training.

Tags:  Drupal Drupal Planet Training Title:  Learning Drupal: Your Guide to Main Resources
Categories: Drupal

Drupal Blog: Drupal 8.2.0 is now available

5 October 2016 - 2:57am

Drupal 8.2.0, the second minor release of Drupal 8, is now available. With Drupal 8, we made significant changes in our release process, adopting semantic versioning and scheduled feature releases. This allows us to make extensive improvements to Drupal 8 in a timely fashion while still providing backwards compatibility.

What's new in Drupal 8.2.x?

This new version includes additional experimental modules to place blocks on pages, to edit configuration related to blocks without leaving the page, to create content moderation workflows, and to use date ranges. Several smaller authoring experience, site building, and REST and decoupled site improvements are included as well. (Experimental modules are provided with Drupal core for testing purposes, but are not yet fully supported.)

Download Drupal 8.2.0

Easier to place and configure blocks on pages

The new experimental Place Block module allows placing blocks on any page without having to navigate to the backend administration form. After selecting the region for placement, block configuration can be adjusted in a modal dialog allowing full control of all the details.

There is also a much easier way to modify block configuration, with the experimental Settings Tray module. Editing a block opens a tray in a sidebar with the block's title and other settings. For the site name block, for example, you can edit the site name directly in the sidebar. For menu blocks, you can adjust the menu there.

Content moderation now included

Drupal has always supported both published and unpublished content, but more granular workflow support was not available in Drupal core. The new experimental Content Moderation module, based on the contributed Workbench Moderation project, allows defining content workflow states such as Draft, Archived, and Published, as well as which roles have the ability to move content between states.

Support for date ranges

The Datetime module included with core only supports storing single points in time. The experimental Datetime Range module provides a new field type that also allows end dates. This is important for helping contributed modules like the Calendar module to work with Drupal 8 core.

Site building, content authoring, and administrative improvements

Drupal 8.2.0 also improves stable functionality for administration, site building, and authoring. Drupal now enables revisions by default for new content types, to provide better accountability, to create a "safety net" for recovering from unintended changes, and to integrate with future workflow features. Content editors will enjoy a more seamless experience, as CKEditor's built-in dialogs are now styled to match Drupal-native dialogs, and creating any entity will always display a message linking to the new entity.

Other incremental enhancements include:

  • The user interface text has been improved on numerous administrative pages.
  • The redirection of site-wide contact forms is now configurable.
  • The comment view mode can now be selected in the display formatter form.
  • Relative URLs are converted to absolute ones in generated RSS feeds (ensuring that images and links work wherever the feeds are used).
  • Administrators can now elect to remove a module's content entities in order to uninstall the module.
  • The internal page cache has been improved for 404 responses.
Platform features for web services

The Drupal 8.2 release continues to expand Drupal's support for web services that benefit decoupled sites and applications, with bug fixes, simplified configuration, improved responses, and new features. It is now possible to read (GET) configuration entities like vocabularies and content types as REST resources, resolving a significant limitation for REST functionality in 8.1.x and earlier. Login, logout, and user registration are also now possible with REST. The authentication mechanism used by a REST Export Views Display is now configurable, and a cors.config service parameter was added for enabling and configuring cross-origin resource sharing (CORS). REST resource configuration is now also significantly simpler.

Developer API improvements

Minor releases like Drupal 8.2.0 include backwards-compatible API additions for developers as well as new features. Read the 8.2.0 release notes for more details on the improvements for developers in this release.

What does this mean to me? Drupal 8 site owners

Update to 8.2.0 to continue receiving bug and security fixes. The next bugfix release, 8.2.1, is scheduled for November 2, 2016.

Updating your site from 8.1.10 to 8.2.0 with update.php is exactly the same as updating from 8.1.7 to 8.1.8. Modules, themes, and translations may need small changes for this minor release, so test the update carefully before updating your production site.

Drupal 6 site owners

Drupal 6 is not supported anymore. Create a Drupal 8 site and try migrating your data into it as soon as possible. Your Drupal 6 site can still remain up and running while you test migrating your Drupal 6 data into your new Drupal 8 site. Core now provides migrations for most Drupal 6 data, but the migration of multilingual functionality in particular is not complete. If you find a new bug not covered by the known issues with the experimental Migrate module suite, your detailed bug report with steps to reproduce is a big help!

Drupal 7 site owners

Drupal 7 is still fully supported and will continue to receive bug and security fixes throughout all minor releases of Drupal 8.

The migration path from Drupal 7 to 8 is not complete, especially for multilingual sites, so you may encounter errors or missing migrations when you try to migrate. That said, since your Drupal 7 site can remain up and running while you test migrating into a new Drupal 8 site, you can help us stabilize the Drupal 7 to Drupal 8 migration path! Testing and bug reports from your real-world Drupal 7 sites will help us stabilize this functionality sooner for everyone. (Search the known issues.)

Translation, module, and theme contributors

Minor releases like Drupal 8.2.0 are backwards-compatible, so modules, themes, and translations that support Drupal 8.1.x and Drupal 8.0.x will be compatible with 8.2.x as well. However, the new version does include some changes to strings, user interfaces, and internal APIs (as well as more significant changes to experimental modules). This means that some small updates may be required for your translations, modules, and themes. See the announcement of the 8.2.0 release candidate for more background information.

Categories: Drupal

Annertech: Wow, What a DrupalCon. Observations from a First Time Speaker

5 October 2016 - 2:55am
Wow, What a DrupalCon. Observations from a First Time Speaker

This year's DrupalCon, in my home town of Dublin, was a brand new experience for me. As a seasoned DrupalCon Veteran, (my first DrupalCon was in Paris in 2009), I thought I knew the ropes - how to choose sessions, what to expect, how to party like a bad-ass... I thought I knew what I would get out of it. Man, was I wrong.

Categories: Drupal

Drop Guard: It was us a pleasure! #DrupalConDublin

5 October 2016 - 1:00am
Dublin, 27. Sept. 2016. “Describe the DrupalCon in just one word!” - “EXCITING!”

First of all, I want to thank everyone who made my first DrupalCon this awesome and extra special!

Our whole team enjoyed a week full of new experiences, great sessions and - of course - old and new friends! The place, Dublin, was perfect to “seal” a new friendship or strengthen an old one with a good morning coffee (thanks to Commerce Guys by actualys and Mailchimp, the two coffee break sponsors!) or a good cold Guinness (I tried to remember the bar names, but actually I guess I sealed a lot of new friendships..).

Drupal Drupal Planet Drupalcon Drupal 8 Events Security
Categories: Drupal