Paragraphs Features

New Drupal Modules - 23 February 2018 - 7:25am
Categories: Drupal

Autocomplete Field Match (Free text)

New Drupal Modules - 23 February 2018 - 6:56am

A module for those who need to allow free text in autocomplete fields that matches to a field on either the same entity or a field within a referenced entity. Module falls back to standard autocomplete functionality.
Field types available are Entity Reference, Field collection, or Paragraphs, though it may work on other referenced entities. File an issue in the queue if needed. Note that this module currently only matches to a referenced entity one level deep. (i.e. it will not match a field on a referenced entity of a referenced entity.)

Categories: Drupal

Random Frontpage

New Drupal Modules - 23 February 2018 - 6:55am

Creates a page which displays a different, random node of a selected type every time it's accessed.

Categories: Drupal

Commerce add to cart matrix

New Drupal Modules - 23 February 2018 - 2:51am

Commerce add to cart matrix allows you to configure a new way of displaying the add to cart form.

All the possible variation combinations can be displayed in a table and allow instant add to cart for all of those.

The variation combination can be configured from the field formatter.

Categories: Drupal


New Drupal Modules - 22 February 2018 - 6:49pm
Manage custom third-party embeds with entity bundles.
Categories: Drupal

Any Dependency

New Drupal Modules - 22 February 2018 - 6:15pm

This module does nothing on its own other than provide an API that
allows modules a way to specify any dependency, based on a list.

This is, in part, due to the vast Drupal ecosystem where there are tons of "similar" projects that do almost the same thing but just "slightly" different. To compensate for a site that may use one variety of "popular" module over another, this allows a module to support multiple projects.

Categories: Drupal

Entity Form Block

New Drupal Modules - 22 February 2018 - 4:36pm

This module provides simple entity forms as blocks like Ctools provides Entity view (Content) block and others. It supports contexts and different form modes.

Categories: Drupal

Build and operate your own CDN

Dries Buytaert - 22 February 2018 - 2:31pm

Janos Pasztor built his own Content Delivery Network. While I wouldn't want to operate my own personal CDN, it does sounds like a fun project for those interested in web performance.

Categories: Drupal

A Drupal distribution configurator

Dries Buytaert - 22 February 2018 - 2:11pm

Today, Commerce Guys shared a new initiative for Drupal Commerce. They launched a "Drupal Commerce distribution configurator": a web-based UI that generates a composer.json file and builds a version of Drupal Commerce that is tailored to an evaluator's needs. The ability to visually configure your own distribution or demo is appealing. I like the idea of a Drupal distribution configurator for at least three reasons: (1) its development could lead to improvements to Drupal's Composer-based workflow, which would benefit all of Drupal, (2) it could help make distributions easier to build and maintain, which is something I'm passionate about, and last but not least, (3) it could grow into a more polished Drupal evaluator tool.

Categories: Drupal

Dries Buytaert: A Drupal distribution configurator

Planet Drupal - 22 February 2018 - 2:11pm

Today, Commerce Guys shared a new initiative for Drupal Commerce. They launched a "Drupal Commerce distribution configurator": a web-based UI that generates a composer.json file to build a version of Drupal Commerce that is tailored to an evaluator's needs. The ability to visually configure your own distribution or demo is appealing. I like the idea of a distribution configurator for at least three reasons: (1) its development could lead to improvements to Drupal's Composer-based workflow, which would benefit all of Drupal, (2) it could help make distributions easier to build and maintain, which is something I'm passionate about, and last but not least, (3) it could grow into a more polished Drupal evaluator tool.

Categories: Drupal

TFA Basic self-setup

New Drupal Modules - 22 February 2018 - 12:55pm

This module is used to address the UX concerns and general problems that exist when trying to allow users to set up their own two-factor authentication.

#2838432: Self login and tfa account setup

The module alters core user login, profile and one-time login forms to route users to the TFA setup screens if they have not yet completed them.

Categories: Drupal

OSTraining: How to Use the New Media Module Features in Drupal

Planet Drupal - 22 February 2018 - 12:35pm

Since the release of Drupal 8.4 in late 2017, Drupal has contained new media handling features.

For many years, Drupal has shipped with almost no media handling. This was the most commonly requested feature whenever we did Drupal training.

In this tutorial, we'll walk you through how to use Drupal's new media options. We'll update this post as soon as Drupal 8.5 is available.

Categories: Drupal

Elevated Third: WATCH E3 Takeaways: Drupal 8 Works for SaaS

Planet Drupal - 22 February 2018 - 11:29am
WATCH E3 Takeaways: Drupal 8 Works for SaaS WATCH E3 Takeaways: Drupal 8 Works for SaaS Zach Ettelman Thu, 02/22/2018 - 12:29

In this edition of E3 Takeaways Business Development Strategist, Zach, talks Drupal 8 and why its flexible workflows, ability to integrate, and internationalization suite of modules work so well for the SaaS industry.



Hello there, I'm Zach Ettelman, Business Development Strategist here at Elevated Third. Today I'm going to talk about why Drupal is a good fit for software as a service companies. 


Takeaway #1: The old adage "content is king" is not dead and that means companies are still having to create a ton of content. With so many content cooks in the kitchen that means there are many approval layers to even get the smallest piece of content onto your site. Thanks to Drupal's content authorization workflow, we can personalize and customize it to meet the needs of your team. 


Takeaway #2: In today's digital world, virtually every SaaS organization is serving an international audience. Thanks to Drupal 8's internationalization suite of modules, we can now translate and localize content based on where the product's services are available for your offerings. 


Takeaway #3: SaaS companies leverage a multitude of tools in their digital arsenal to get daily business operations done, including CRM, marketing automation tools, and inventory management tools. Drupal 8 specifically is built API first making it easy to handle all these third-party integrations. Thanks to contributed modules and custom modules, we can keep up with your daily business operations and connect them to your digital website. 

Need more about Drupal 8? Download our D8 whitepaper. 

Download asset
Categories: Drupal

Hook 42: January Accessibility (A11Y) Talks

Planet Drupal - 22 February 2018 - 10:42am

In January, we were happy to have Ashley Bischoff as our guest speaker. Ashley talked about embracing plain language for better accessibility. Ashley is an accessibility expert and copy editor for The Paciello Group.

Writing reports and documentation is nothing new for many of us — we write them all the time. But even though we may do our best to write clearly, those who receive our reports and documentation might not be as familiar with accessibility as we are.

At the end of the day, no matter how technically correct a document may be, our words won't do much good if those who are reading them can't understand what we're trying to say. But writing isn't a black box — there are straightforward techniques that we can use to help ensure that our writing remains accessible.


Categories: Drupal

OSTraining: Check Out the New Page Builder in Drupal 8.5!

Planet Drupal - 22 February 2018 - 10:42am

The Release Candiate version of Drupal 8.5 was released today.

At this point we can see the final features that will be in the official release of 8.5 on March 7.

In this blog post, I'll give you an introduction to 3 of the main new features you can look forward to in 8.5.

This is "Day 1" post giving my quick reactions. We'll improve and expand on this post in the days before the final release.

Categories: Drupal

Drupal blog: Drupal 8.5.0-rc1 is available for testing

Planet Drupal - 22 February 2018 - 10:28am

The first release candidate for the upcoming Drupal 8.5.0 release is now available for testing. Drupal 8.5.0 is expected to be released March 7.

Download Drupal-8.5.0-rc1

8.5.x makes the Media module available for all, improves migrations significantly, stabilizes the Content Moderation and Settings Tray modules, serves dynamic pages faster with BigPipe enabled by default, and introduces the new experimental Layout Builder module. The release includes several very important fixes for workflows of content translations and supports PHP 7.2. Finally, 8.5.0-rc1 also includes the same security updates that are provided in 8.4.5.

What does this mean to me? For Drupal 8 site owners

Drupal 8.4.5, a security update and the final release of the 8.4.x series, has also been released this week. 8.4.x sites should update immediately to 8.4.5, but going forward, 8.4.x will receive no further releases following 8.5.0, and sites should prepare to update from 8.4.x to 8.5.x in order to continue getting bug and security fixes. Use update.php to update your 8.4.x sites to the 8.5.x series, just as you would to update from (e.g.) 8.4.2 to 8.4.3. You can use this release candidate to test the update. (Always back up your data before updating sites, and do not test updates in production.)

If you're an early tester who is already running 8.5.0-alpha1 or 8.5.0-beta1, you should update to 8.5.0-rc1 immediately. 8.5.0-rc1 includes security fixes (the same fixes that were released in Drupal 8.4.5).

Site owners should also take note of the fact that Drupal 8's support for PHP 5 will end in one year, in March 2019. PHP 7.2 is now the best recommended PHP version to use with Drupal 8.

For module and theme authors

Drupal 8.5.x is backwards-compatible with 8.4.x. However, it does include internal API changes and API changes to experimental modules, so some minor updates may be required. Review the change records for 8.5.x, and test modules and themes with the release candidate now.

For translators

Some text changes were made since Drupal 8.4.0. Localize.drupal.org automatically offers these new and modified strings for translation. Strings are frozen with the release candidate, so translators can now update translations.

For core developers

All outstanding issues filed against 8.4.x were automatically migrated to 8.5.x. Future bug reports should be targeted against the 8.5.x branch. 8.6.x will remain open for new development during the 8.5.x release candidate phase. The 8.5.x branch will be subject to release candidate restrictions, with only critical fixes and certain other limited changes allowed.

Your bug reports help make Drupal better!

Release candidates are a chance to identify bugs for the upcoming release, so help us by searching the issue queue for any bugs you find, and filing a new issue if your bug has not been reported yet.

Categories: Drupal


New Drupal Modules - 22 February 2018 - 9:19am
Categories: Drupal

Aten Design Group: Capturing Webhooks in Drupal 8

Planet Drupal - 22 February 2018 - 8:45am

When using traditional APIs your application is typically requesting or pulling data from an external service, requiring a request for fresh data if you want to see recent changes. When using webhooks, that process is reversed: data is pushed from an external service in real-time keeping your application more up to date and your project running more efficiently. Here are a few examples:

  • Facebook - Receive an alert anytime a message is read
  • Stripe - Get alerted anytime a transaction comes through
  • Eventbrite - Get alerted if an event is created or updated

This of course is not an exhaustive list; you'll need to check the application you are integrating with to see if they are implementing webhooks. A Google search like "Stripe Webhooks" is a good first step.

Implementing a webhook in your application requires defining a URL to which your webhook can push data. Once defined, the URL is added to the application providing the webhook. In Drupal 8, controllers are a straightforward way to define a path. See the complete code for an example.

When the webhook is fired it hits the defined URL with applicable data. The data that comes from a webhook is called the payload. The payload is often a JSON object, but be sure to check the application’s documentation to see exactly what you should be expecting. Capturing the payload is straightforward using the Request object available in a controller like this:

public function capture(Request $request) { $payload = $request->getContent(); }

If your payload is empty, you can always try some vanilla PHP:

$payload = file_get_contents("php://input"); Inspecting the Payload

Debugging webhooks can be a bit challenging if you are developing locally because your local environment typically does not have a public URL. Further, some webhooks require that the receiving URL implement SSL, which can also present challenges locally. The following options can help you navigate debugging webhooks locally.


When capturing the payload, you can log it in Drupal. This option requires pushing your code up to a publicly available URL (a dev or staging environment).

$this->logger->debug('<pre>@payload</pre>', ['@payload' => $payload]);

Once you know what the payload looks like, you can copy it, modify it and make your own fake webhook calls locally using Postman. Feel free to checkout the importable Postman example in the repo.

Most Flexible

There is a utility called ngrok that allows you to expose your local environment with a publicly available URL; if you anticipate a lot of debugging it is probably worth the time to set up. Once ngrok is in place, you use the same logging method as above or use XDEBUG or something similar to inspect the payload. Ngrok will give you a unique, public URL which you can register, but which forwards to a server you have running on localhost. You can even use it with a local server that uses vhosts, such as yoursite.test with the command:

ngrok http -host-header=rewrite yoursite.test:80 Capturing and Processing the Payload

I'm a big fan of Drupal's queue system. It allows quick storage of just about anything (including JSON objects) and a defined way to process it later on a CRON run.

In your controller, when the payload comes in, immediately add the payload to your defined queue rather than processing it right away. This will make sure it is always running as efficiently as possible. You can of course process it right away if you choose to do so and skip the rest of this post.


Later when the queue runs, you can process the payload and do what you need to do, like create a node. Here is an example from the queue plugin (see ProcessPayloadQueueWorker.php for the full code):

public function processItem($data) { // Decode the JSON that was captured. $decode = Json::decode($data); // Pull out applicable values. // You may want to do more validation! $nodeValues = [ 'type' => 'machine_name_here', 'status' => 1, 'title' => $decode['title'], 'field_custom_field' => $decode['something'], ];   // Create a node. $storage = $this->entityTypeManager->getStorage('node'); $node = $storage->create($nodeValues); $node->save(); }

Once a queue is processed on CRON, the item is removed from the queue. Check out Queue UI module for easy debugging.


As when building any web application, security should be a major consideration. While not an exhaustive list, here are a few things you can do to help make sure your webhook stays secure.

  • Check your service's webhook documentation to see what authentication protocols they provide.
  • Create your own token that only your application and the webhook service know about. If that is not included, do not accept the request. See the authorize method in the controller.
  • Instead of processing the payload and turning it into a node, consider doing an API call back to the service using the ID from payload and requesting the data to ensure its authenticity.
  • You should consider sanitizing content coming from the payload.

Once you implement a Webhook, you'll be hooked! Here's all the code packaged up.

There are of course Drupal contrib modules around webhooks. I encourage you to check them out, but if you have specific use cases or complex needs, rolling your own is probably the way to go.

Categories: Drupal

Session based temporary storage

New Drupal Modules - 22 February 2018 - 8:10am

This module is designed for developers only. It provides a service for storing and retrieving temporary data for a given owner through the session.

This service can be used as like PrivateTempStore to make temporary, non-cache data available across requests. The data is stored in one key/value collection and expires automatically after a given timeframe.

Categories: Drupal

Entity Access Conditions

New Drupal Modules - 22 February 2018 - 7:47am
Categories: Drupal


Subscribe to As If Productions aggregator - Drupal