Sep 18 2019
Sep 18

The Drupal world is looking forward to the “ninth edition” of the great drop. It’s going to continue Drupal’s chosen path with its API-first orientation, the latest versions of third-party libraries, advanced editor-friendliness, and much more.

The Drupal 9 release is scheduled to come on June 3, 2020. One more big step has just brought it closer — the Drupal 8.7.7 version.

This is a very special update indeed. In this blog post, we will tell you what’s new in it and why you should update to Drupal 8.7.7 as part of your site’s easy and smooth journey to Drupal 9.

What’s new in Drupal 8.7.7: a big surprise inside

Drupal 8.7.7 came on September 4. Although it’s called not even a minor but a patch release, it brought a major new feature. It introduced a new core versioning system that helps websites be more ready for Drupal 9.

New core version requirement key in Drupal 8.7.7

The new core version requirement key is meant for module and theme creators to mark their project’s compatibility with Drupal core versions. This compatibility can apply to multiple versions — for example, D8 and D9. This was not possible with the old “core: 8.x” key.

Drupal core contributor Gábor Hojtsy described this feature in his blog post. He emphasized that 8.7.7 is the first release to support modules compatible with multiple major core versions.

Gábor Hojtsy's quote about Drupal 8.7.7

The key is to be added to the info.yml file of the module or theme:

name: My Module Name

type: module

core_version_requirement: ^8 || ^9

Websites that update to Drupal 8.7.7 now will have another benefit. The new requirement key also allows marking the compatibility with minor and patch releases (e.g. ^8.7, ^8.8, ^8.7.7, ^8.8.0, ^8.7.23, and so on). “Such precision was never possible before!”, Gábor Hojtsy writes.

What happens to the old “core: 8.x” key?

  • The old key still exists for core versions prior to 8.7.7. They do not work with the new core_version_requirement key. So developers will need to list both types of keys in order to allow their code to work with the older and newer versions.
  • If modules or themes are not supposed to work with versions older than 8.7.7, it’s enough to just use the new key.

You can read more details about the key in the drupal.org announcement. But why is marking the Drupal 9 compatibility so important, and how should an update to D8.7.7 help your website’s future? The reason comes next.

Drupal 8.7.7 is a step to your smooth upgrade to Drupal 9

The topic of D9 compatibility for modules and themes is so hot because many D8 websites have a chance to be fully ready for Drupal 9 the day it arrives.

The thing is, D9 is being built on the basis of D8, but without deprecated code and with new versions of third-party libraries. Websites that are clean from deprecated code and are kept updated will be instantly welcome to “cloud number 9”!

So if you update to Drupal 8.7.7 now, you will be closer to D9 than ever. Thanks to using the new core versioning system, your modules and themes will be ready to “jump” to the ninth Drupal as soon as it comes.

Update to Drupal 8.7.7 and prepare for Drupal 9 with our team!

Our development team will help you prepare for Drupal 9 easily:

  • perform your website’s update to Drupal 8.7.7
  • update your modules and themes
  • find and replace the deprecated code
  • apply the new core version requirement key
  • follow all subsequent updates for your Drupal 9 readiness
  • make an upgrade to Drupal 8 (if you are still with the seventh version)

The future looks really bright for websites that follow the latest recommendations. Let yours be among them!

Sep 04 2019
Sep 04

Your website’s users are its dearest treasure. Drupal 8 offers everything to make your users happy and satisfied. They can publish content with ease, quickly find things through the robust search in Drupal 8, use their native language thanks to Drupal 8’s multilingual improvements, and so much more.

But let’s get to the beginning of their journey — user profiles. We will take a tour of building the structure of user profiles in Drupal 8.

First, let’s talk about some basics before moving on to a few interesting tweaks that make profiles richer and more engaging. These will involve new Drupal 8 core modules such as:

  • the Media Library to enrich profiles with multimedia
  • the Layout Builder to shape the profile layout with the handy drag-and-drop feature

And we will also use the not so new but always essential Views module that is part of the Drupal 8 core to help us display the needed data more precisely. Let’s begin!

Building user profiles in Drupal 8

1. Introduction: using fields to build user profiles

Users are fieldable entities in Drupal 8 just like content types. This means you can build user profiles with any fields, and every account will have them.

These can be any fields imaginable — first name, last name, picture, email, link to the website, and so forth. They can be created in Configuration — People — Account settings — Manage fields with the use of the relevant field types.

Managing fields in Drupal 8 profiles

The order in which the fields will appear to visitors can be specified by the drag-and-dropping at “Manage display,” hide or show their labels and use formatters.

Manage display to reorder fields in Drupal 8

Every field can be made required or optional on the field “Edit” page.

Making fields required or optional in Drupal 8

A special group of field types is “Reference”. It allows you to connect to other entity types. With this, you can allow users to:

  • list other users of your website (i.e. “My mentors”)
  • select options from taxonomy vocabularies (i.e. counties, cities, or spoken languages)
  • list their favorite content from your website

and much more.

One of interesting referenced entity cases comes next with the Media Library.

adding referenced entity field in Drupal 8

2. Making profiles richer with the Media Library

You can allow users to embed media of various types from Drupal 8’s Media Library into their profiles. This includes images, videos, audio, files, and remote videos from YouTube or Vimeo. For example, they can list their featured photos, favorite music videos, and so on.

The Media Library appeared as an experimental module in Drupal 8.6 for media handling. New Media Library interface in Drupal 8.7 impressed even the experts with its stylish design and handy features.

Media Library in Drupal 8

For media embedding, the Media and the Media Library core modules need to be enabled. Then it’s necessary to set the Reference field type to “Media,” specify the allowed number of values and select the media type.

Media field settings in Drupal 8

Adding Media field in Drupal 8

With these settings like on our picture, the user’s account will have the fields for up to 5 featured photos that users can embed into profiles directly from the Media Library.

Adding media from Media Library in Drupal 8

It’s great to know that in Drupal 8.8, there will be a media embed button added to the CKEditor dashboard.

3. Displaying the needed data in profiles via Views

More opportunities are open thanks to adding collections of entities, or Drupal Views. Remember, for example, we mentioned the referenced entity field open to other users such as the “My mentors” field?

referenced entity user field in Drupal 8

However, this just listed the mentor’s usernames on the user profile. What if we want the mentors’ pictures to be shown?

Views comes to the rescue! We can arrange mentors’ photos as Views and attach it as a block or page to the user profile.

We need to:

  • go to Structure — Views and create a new view block of the “user” type that will use fields
  • add the field for the user picture and, in the field settings, relate it to our “My Mentors” field
  • add a relationship in the “Advanced” section of Views to the “My Mentors” field
  • create a contextual filter in the “Advanced” section of Views that will display only the mentors of the particular user

Views in Drupal 8 that shows each user's mentors

Contextual filter by user ID in Drupal 8

With this done, we now have a block that shows the pictures of mentors on each user page. However, this block is not yet added anywhere to the site.

4. Shaping user profiles with the Layout Builder

It’s time to finally unite it all together. The Views block can be attached to the profile using the traditional Drupal block layout as a simple option. However, the new Layout Builder that appeared in Drupal 8.5 offers an amazing drag-and-drop interface for this purpose!

The Layout Builder is used with all fieldable entities, including user profiles. In addition to enabling the module, we need to enable the Layout Builder on the Manage Display tab of the particular entity type (in this case — user account settings).

Enable Layout Builder for entity type

The Manage layout button takes us to the drag-and-drop interface where we can add sections with a different number of columns, set their width proportions, and add blocks to them. Blocks include Drupal fields, Views blocks, forms, menus, and much more.

adding blocks in Layout Builder Drupal 8

Every Drupal block is configured on the right sidebar with all settings traditionally available in “Manage display.”

Configuring field in Drupal 8's Layout Builder

We are creating a three-column section and adding profile fields as blocks, including the “My featured photos” filed and the “My mentors” Views block. We will save the result and see how our profile looks.

User profile created in Drupal 8's Layout Builder

Of course, it still needs a good touch of HTML and CSS. However, we have only touched the tip of the iceberg of what core Drupal 8 modules can do for building user profiles. The opportunities are endless!

Building user profiles in Drupal 8 with our team

Let your user profiles look exactly as you wish, with no limits to your imagination. Entrust building user profiles to our Drupal team who will use core, contributed, or custom modules created specifically for your case. Contact us!

Aug 15 2019
Aug 15

Drupal is moving to the future and adopts more and more innovative trends. No wonder that high tech engineering leaders trust Drupal and build their sites with it.

Drupal in high-tech: innovative companies + innovative CMS

They have found each other! Thinking about Drupal’s innovative spirit, we want to mention plenty of its capabilities, so here are at least a few:

Great examples of high tech company websites built on Drupal

So let’s learn more about Drupal for high tech company websites by looking at the following examples.

Tesla

Electric cars, solar panels, and renewable energy are the three pillars of expertise of the incredible innovator — Tesla. The high tech giant has also chosen the right CMS — the Tesla’s site is built with Drupal.

Tesla website built with Drupal

Amazing web design with background videos and zooming effects allows customers to see the products almost like in real life and get inspired. Users can select among 30+ regions to see the website version in their native language.Tesla website built with Drupal

While choosing the products, you can specify all parameters and see the changed picture without a page reload. There is also an online payment feature.

Tesla website built with Drupal

General Electric

Discussing Drupal for high tech industry leaders, we are glad to mention General Electric Company (GE). Its innovation builds, powers, moves, and cures the world. And Drupal powers their website where we can learn this and more about their activity.

The site’s users can select among such GE businesses as aviation, power, renewable energy, healthcare, lighting, and so on. The large and handy search bar on the main page also quickly takes them to where they wish. The stylish design of many sections features background videos.

GE website built with Drupal

As 130 countries are currently home to GE operations, users can select and visit their specific site version.

GE website built with Drupal

Iteris

Iteris Inc. produces innovative sensors and other solutions that predict the state of traffic, weather, soil, etc., to boost the agriculture and transportation industries. While Iteris products win high tech innovation awards, Drupal has won their trust as a CMS.

Iteris website built with Drupal

They chose Drupal 8 to revamp their website as part of the rebranding campaign. The site is great from frontend to backend — from the stylish design with the main page’s slider to complex permissions for particular user types.

Iteris website built with Drupal

Pfizer

The Pfizer multinational pharmaceutical corporation uses technology and innovative science for advanced patient care.

Pfizer website built with Drupal

Their website has 50+ country/region and language options. The content is presented in five key categories: “Your Health,” “Our Science,” “Our People,” “Our Purpose”, and “Our products.”

Pfizer website built with Drupal

There is a strong search feature for Pfizer’s products, the option to find the clinical trial results, and much more.

What about your future website?

Hopefully, these examples of high tech company websites built on Drupal have inspired you. They are just a few from a million+ Drupal sites worldwide in various industries — e-commerce, education, business & finance, and so on. In addition to being innovative and powerful, the CMS is very versatile and flexible.

So contact our development team to discuss how Drupal can be helpful in your case or with your website idea!

Jun 26 2019
Jun 26

Streamlining the content creation and approval processes is necessary on many websites. Editorial workflows in Drupal 8 are easy to create and manage. This is achieved by the Content Moderation and Workflows modules.

These modules are Drupal 8’s innovation — they have appeared in the core and reached stability during the time between the introduction of Drupal 8.2 and Drupal 8.5. So welcome on this tour of creating and managing editorial workflows with them!

Drupal 8 editorial workflows with Content Moderation in a nutshell

By default, Drupal offers you the “Published” and “Unpublished” states for content, as well as a system of permissions for particular roles to manage it. However, with the Content Moderation and Workflows modules, the process gets much more advanced.

With them, you, out-of-box, have an editorial workflow that has such content states as “Draft,” “Published,” and “Archived”, as well as configurable transitions between them. Transitions look like “Publish” (move from Draft to Published), “Archive” (move from Published to Archived), and so on.

The workflow can be customized to your liking. This is achieved by adding custom content states (like “First edit”, “Second edit,” “Needs review,” “Needs work,” or any other) and creating the appropriate transitions.

An important benefit is that you can have a published version of content available to visitors, and at the same time have a working copy to review or edit. The content revisions are stored in the database.

You are also able to create multiple content workflows and apply each to a specific content type. And, of course, granular content moderation permissions are available.

Our Drupal development team will be happy to help you create the content moderation workflows to meet your organizations’ needs.

A closer look at managing editorial workflows in Drupal 8

Enabling the modules

It begins with enabling the Content Moderation and Workflows modules on the Extend tab.

  • The Workflows module provides a UI and an API for managing the states and transitions between them. The states and transitions are supplied by other modules (in our case, Content Moderation).
  • The Content Moderation module provides the content states and transitions for editorial workflows.

Enabling modules for editorial workflows in Drupal 8

As soon as the two modules are enabled, we see the built-in “Editorial” workflow in Configuration — Workflow — Workflows.

Built-in editorial workflow in Drupal 8

Managing the states and transitions

We see states and transitions listed and provided with the options to “Add a new state” and “Add a new transition.”

Managing states and transitions in Drupal 8 editorial workflows

The transitions should be named clearly, with the use of verbs. They should show from which state and to which state they lead. In this example, the “Restore to Draft” transition restores the content from Archived to Draft:

Transition between states in Drupal 8 content workflows

Applying the workflow to specific content types

Our workflow can be applied to particular content types, custom block types, or media types (the latter is true if you have the Media module enabled). So you can have different editorial workflows for articles, news, blog posts, photos, videos, and so on.

Applying Drupal 8 editorial workflows to content types

Setting content workflow permissions

It’s important to make sure that all workflow participants have the necessary permissions. This is configured on the People — Permissions tab. The appropriate roles like Author, Editor, and so on, can be created on your website according to your workflow needs.

The permissions are in the “Content Moderation” section and many of them are in the “Node” section. Both thesesections should be carefully checked.

For example, the Author should be able to create new content, edit their own content, view their own unpublished content, have the permission to “Create New Draft” transition, and so on. The Editor should be able to restore content from draft to publish, view any unpublished content, and so on. Both should be able to view the latest version, view revisions, and revert revisions.

Permissions for content workflows in Drupal 8

With everything configured, your editorial workflow could look, for example, like this.

  • The author creates a draft and the editor checks it and transfers it to the published state.
  • The author then suddenly decides to change something and edits this piece of content. The edited copy is saved as draft and is seen to the Author and the Editor in the “Latest version” tab of the content piece.
  • The editor reviews the content again.
  • All this time, the published version remains available all readers as before.

Let’s create an editorial workflow for your team

No matter how complex your desired workflows are, they can be configured with just Drupal 8 core features. Entrust our development team with creating editorial workflows for your website. Enjoy efficiency in content editing!

Jun 12 2019
Jun 12

It’s exciting to see how once unimaginable things become popular digital practices! A vivid example is artificial intelligence. We have shared with you an article about artificial intelligence coming to your apps thanks to cognitive services. What about Drupal websites — are they ready for AI? The answer is a definite yes! Let’s see how artificial intelligence and Drupal 8 come together.

Benefits of artificial intelligence for Drupal 8 websites

Smart machine thinking is meant to create a new level of user experiences. By leveraging the huge potential of artificial intelligence on your Drupal website, you will be able to:

  • offer smarter, more engaging, and more advanced features to your users
  • better analyse your users’ behavior
  • create more personalized experiences for them
  • raise e-commerce conversions through more targeted offers
  • streamline and automate many workflows and take the load off your staff
  • raise your company’s image as customers see you using advanced technologies

and much more.

Useful Drupal modules for artificial intelligence & their capabilities

The Drupal community is highly interested in innovative trends. The AI has been a hot topic at the biggest Drupal meetups including DrupalCon Baltimore and Drupal Europe Darmstadt. And, of course, useful Drupal modules have been created that bring artificial intelligence to websites. Let’s review a few of them.

Azure Cognitive Services API 

We have mentioned Microsoft Azure Cognitive Services at the beginning, and here is a module that connects them to Drupal websites. 

The Azure Cognitive Services API Drupal module allows developers to enrich Drupal websites with features like speech, vision, and facial recognition, emotion detection, and much more. There is a pack of 4 submodules.

  • Azure Face API

The Azure Face API module integrates with Microsoft Face API service. It is meant to detect and recognize human faces. The tool is able to compare similar faces and group their pictures together, as well as identifies people who were previously tagged. Face API can detect age, gender, hair color, and more.

Azure Face API

The current capability of the module is detecting up to 64 human faces with a high level of precision. The detection result is specified in a file.

Azure Face API

  • Azure Emotion API

The Azure Emotion API connects the Microsoft Face API to your website. It recognizes the emotions of one or more persons on the picture (happiness, sadness, surprise, anger, neutral, and so on). The tool puts a bounding box on a person’s face and returns the result in a JSON file.

Azure Emotion API

Azure Emotion API

  • Azure Computer Vision API

The Azure Computer Vision API module analyzes the content on images and returns information about them. It uses tags and descriptions, identifies image types and color schemes, and can be your helpful assistant in content moderation. For example, you can configure it to apply restrictions on adult or abusive content.

Azure Computer Vision API

  • Azure Text Analytics API

The Azure Text Analytics API module is meant for natural language processing. Its key features are:

  • Sentiment analysis. It detects negative or positive sentiments and gives them a score.
  • Key phrase extraction. It extracts the key points in the text. 
  • Language detection. It detects the text language. (The module supports almost 20 languages for now).

Azure Text Analytics API

Azure Text Analytics API

Automatic Alternative Text

Adding ALT text to images is a rule of thumb in today’s web. It is vital for web accessibility and SEO. The Automatic Alternative Text module provides ALT text automatically by using Microsoft Cognitive Services — namely, Computer Vision API.

It detects the content of images and describes it in human-readable text while specifying the level of confidence. The tool can generate more than one ALT tag, create thumbnails, and much more. 

Automatic Alternative Text

Cloudwords for Multilingual Drupal

It’s a fact that Drupal 8 is a great choice for multilingual websites, but everything is even greater with this module. The Cloudwords for Multilingual Drupal module uses AI to help you create high-quality multilingual campaigns. 

The module lets you manage your content localization quickly and efficiently. It also has strong workflow automation and project management capabilities. 

Drupal Chatbot

The era of chatbots is already here! The Drupal Chatbot module allows you to create a basic voice or text-based chat bot. The module uses Dialogflow as natural language processing agent, but you can also extend it with Alexa. 

The Drupal Chatbot can be enabled as a block and extended with various functionalities. For example, it supports Latest Pages, Top Rated Pages, Latest Article Search, and so on. The module is actively being developed.

Drupal Chatbot

Drupal Chatbot

Chatbot API

The Chatbot API module facilitates the integration of various chatbots and personal assistants with your Drupal website. It creates a layer to serve Drupal data to these services.

For now, the module supports Alexa and Dialogflow, for which it uses submodules, and works together with the corresponding modules (Alexa and Dialogflow Webhook). However, it’s just the beginning, and more integrations are expected.

Acquia Lift Connector

The Acquia Lift Connector module integrates your website with the Acquia Lift personalization tool. It enables you to create highly personalized offers based on user’s behavior. The module offers real-time audience segmentation, behavioral targeting, A/B testing, and more.

It has a unified drag-and-drop user interface with all the customer information where you can create personalizations. Acquia Lift uses machine learning to automatically recommend content to users.

Acquia Lift Connector

Acquia Lift Connector

Embrace artificial intelligence on your Drupal 8 website

Just imagine, all this and much more could come to your website today! Our Drupal team is ready to help you with building AI integrations based on these and other modules. And if there is no module yet for your idea, we will create a custom one. Enjoy artificial intelligence and Drupal 8!

May 22 2019
May 22

Drupal allows you to find the most effective solution for every business case. Large organizations often need more than one website but a collection of related sites, which would be easy to manage. To meet this need, there is the Drupal multisite feature that has become popular among education websites, government websites, corporate websites, and so on. Let’s explore what Drupal multisite is, how it works, and when it is the best choice.

What is Drupal multisite?

Multiple sites combined in the same Drupal installation — that’s the basic essence of Drupal multisite feature. Instead of one site, you have a collection of websites that are created, managed, deployed, and updated from one place because they share one codebase. They have different web addresses and also may differ in nuances according to your requirements.

Drupal multisite architecture

In the multisite setup, different Drupal sites share:

  • Drupal core
  • codebase
  • available modules
  • available themes

At the same time, they do not share:

  • base domains or URLs
  • databases
  • enabled modules
  • enabled themes
  • configurations
  • files
  • user profiles
  • content

Here is an example of Drupal multisite feature created by our company for a global retail chain of goods for homes. Websites for different countries work from the same Drupal core and have different features enabled from the admin dashboard and saved in configuration.

Drupal multisite example

Drupal multisite benefits

For some companies, a strong multisite feature is one of the reasons they have chosen Drupal at all. Here’s why.

The Drupal multisite is valued for its big savings in time, effort, costs, and resources across website development, installation, and management. Sites are hosted on the same server, have the same codebase, and all the processes can be performed on them at once. This is especially noticeable when there are numerous sites.

For example, updates and upgrades don’t have to be repeated for all websites — one action is enough. This includes core, module, and theme updates, as well as updates to the server OS, applications, and database software.

With multisite, it is also easy to introduce new features. Say you create a new module for your site — and it is easy to share it across others.

Another benefit of Drupal multisite is the presence of useful solutions and tools. Among them:

Drupal multisite risks

In some cases, Drupal multisite can present risks — the "flip side" of its benefits. They have caused some heated discussions in the Drupal community.

Namely, if there are any traffic spikes or security issues on one site, this can potentially influence others. And any mistakes during website updates or changes can harm other websites as well.

So Drupal multisite setup and maintenance is a responsible task for experienced teams with advanced technical skills. Websites should be managed with great care, best practices and tools, and always kept up-to-date.

And, of course, multisite should be chosen when it suits the particular case, recommendations for which we will discuss next.

When Drupal multisite is the best choice

As usual with benefits and risks, they are relative, and depend on the situation. Here is when Drupal multisite is a good fit, smooth in management, and most beneficial:

  • First of all, a “rule of thumb” for choosing multisite is that functionality should be similar across websites.

They may look differently due to different enabled themes, or even represent completely different industries.

Alternatively, they may look similar (like in the case of departments for the same organization), and have similar functionality with slight differences necessary for specific departments.

  • You can consider multisite if you are not planning to introduce serious feature changes to selected sites from your “cluster.” If serious changes are planned, they should apply to all sites.
  • Multisite is most successful if sites in the collection are the responsibility of the same development and support team. And, remember, it should be a careful and experienced one.

If the functionality on websites is significantly different, it is better to use other approaches instead of multisite. It’s possible to considerably optimize codebase management using Git version control system, Composer package manager, and more. 

Let’s discuss multisite for your case

To decide whether you will benefit more from the multisite setup or from separate sites, from just multilanguage, and so on, you can always consult our development team. We will also be your development or optimization team to fulfil these ideas. Our 11 years of expertise let us do it perfectly.

Remember, we started this post by saying that Drupal has an effective solution for every business case. And it’s true. Let’s find one for you!

May 02 2019
May 02

“After soliciting input and consulting others, I felt JSON:API belonged in Drupal core.”

Dries Buytaert, creator of Drupal

Here is the news that will make the supporters of API-first Drupal simply lose their breath. Among the new features of the freshly released Drupal 8.7.0, is JSON:API in Drupal core! It is now part of Drupal 8 web services responsible for data exchange with third-party applications. Let’s learn more about JSON:API’s work, its road to Drupal’s “main squad,” and why JSON:API in Drupal core as of the release 8.7 is a significant achievement.

API-first Drupal future has arrived

New times dictate new trends. Businesses today can benefit from much more than just websites. They can embrace different channels through the “Create Once, Publish Everywhere” (COPE) method. Their content can “fly” to mobile applications, Internet of Things devices, and so on, via an API.

Being API-first means being fully ready for this interaction. API-first Drupal future has been the Drupal community’s priority in a recent couple of years. The new Drupal 8 in 2015 came packed with a REST API, which became more and more enhanced in the subsequent minor releases. This is the result of the API-first Drupal Initiative and hard work of the community.

In addition to Drupal 8 core RESTful web services, there emerged an ecosystem of projects for API-first Drupal:

  • contributed modules like GraphQL, Simple OAuth, Open API, Consumers, RELAXed Web Services, Subrequests etc.
  • decoupled distributions Contenta CMS, Reservoir, and Headless Lightning
  • Waterwheel.js SDK

Among the tools, of course, the JSON:API contributed module, which has now finished its way to Drupal core. Congrats!

The road of JSON:API to Drupal 8 core

The JSON:API specification was increasingly popular in the JavaScript community. Dries Buytaert in 2017 recommended the young JSON:API contributed module for Drupal 8 core. As the Drupal creator said, he felt JSON:API belonged there. Still, enormous work was ahead.

The module’s main creator and maintainer was Mateu Aguiló Bosch (e0ipso). But Dries asked Wim Leers and Gabe Sullice of Acquia to devote as much time as possible to helping to get this module ready for the core. Overall, as Wim Leers wrote in his article, the project had as many as 103 contributors.

According to Dries Buytaert, by the time JSON:API was committed to Drupal 8.7 branch, it had taken:

  • 28 months
  • 450 commits
  • 32 releases
  • 5,500+ test runs

Record-breaking module: immediately stable in core!

Usually, Drupal contributed modules are added to the core as experimental and only become stable when polished to perfection. However, JSON:API was the first module in history to be added to Drupal core as stable from day first! This is what Mateu Aguiló Bosch, the module’s main creator, said.

How JSON:API module works

When enabled, JSON:API in Drupal core immediately makes your Drupal entities (blog posts, users, comments or whatever) available via a web service API. For JSON:API, your entities are resource objects. It creates URLs by which the entity types and bundles can be accessed using HTTP methods.

According to Dries, both developers and content editors can create their content models directly in the Drupal user interface. In addition to the great authoring experiences, Dries said, they get a powerful and standards-compliant web service API that allows to pull this content to JS applications, digital kiosks, chatbots, voice assistants, and so on.

It is possible to:

  • fetch the selected entity fields only (for example, blog titles)
  • include relationships (for example, blog authors) and avoid additional requests
  • filter the resource collections
  • sort the resource collections
  • do the pagination of the resource collections

and much more.

What this news means for the users of JSON:API contributed module

According to Wim Leers, the users of JSON:API 8.x-2.x contributed module on Drupal 8.5 or 8.6, can simply update to Drupal 8.7 and delete the contrib. There should be no disruption in its work. Please note that the contributed module will no longer be supported by the end of 2019.

Update to Drupal 8.7 and enjoy JSON:API in core!

Congrats again to the tireless team of JSON:API creators! The API-first Drupal approach gives us an unlimited freedom in fulfilling our customers’ third-party integration ideas. So if you wish to: smoothly update to Drupal 8.7 create data exchange solutions with JSON:API in Drupal core expand your business reach to new channels Contact our Drupal developers!

Apr 10 2019
Apr 10

When it comes to creating websites quickly and easily, there’s hardly anything that compares to Drupal distributions. These are ready Drupal builds with core, theme, set of modules, libraries, and configuration ready for a particular industry, website type, or use. One of the hottest uses today is decoupled Drupal architecture. Of course, Drupal has got distributions for it that give you decoupled Drupal out-of-box. They include Reservoir, Headless Lightning, and the hero of our article — Contenta CMS.

Decoupled Drupal as the trend of the day

One of the main creators of Contenta CMS distribution, Mateu Aguiló Bosch aka e0ipso, in his speech mentioned the following. He noticed “the explosion of devices and places where people want to consume content.”

Projects are no longer about websites, said the developer. They are also about having an iOS and an Android application, putting something on a Roku, an Apple watch… or even at a smart oven!

Here is where decoupled Drupal comes in. This is an architecture that allows you to entrust front-end experiences to other technologies, while Drupal serves as a data source.

This results in expanding your digital reach and, in many cases, using the best characteristics of these front-end technologies. The popular choices for Drupal today are JavaScript frameworks like Vue, React, Angular, Gatsby (built with React), and more. They are primarily characterized by blazing fast performance and interactive features.

Thanks to the API-first Initiative, Drupal is well-suited to this kind of interaction. Great helpers for developers are RESTful web services in Drupal 8 core, and now — JSON:API in Drupal 8.7 core as of May 2019. This is enhanced by useful contributed modules like GraphQL, Subrequests, Relaxed web services, and so on.

Contenta CMS distribution for decoupled Drupal out-of-box

Despite the wealth of decoupling tools in Drupal, distributions offer the easiest approaches to the setup. The idea about a decoupled distribution emerged at DrupalCon Baltimore, and then the Contenta CMS distribution was created.

Contenta works on an “API-First” basis and uses JSON:API. Its main aim is to make decoupled Drupal setup easy even for Drupal novice. It also allows front-end developers get a powerful Drupal backend without having to know “drupalisms.”

In addition to the decoupled Drupal CMS (Contenta JSON:API), there are demos for the most popular front-end technologies — Contenta React, Contenta Vue Nuxt, Contenta Angular, Contenta Gatsby, and so on.

The benefits of Contenta CMS distribution

  • decoupled Drupal out-of-box from first second
  • collection of the most needed modules
  • friendliness to non-Drupal developers
  • demo content
  • detailed documentation
  • demo front-end applications

Key modules included into Contenta CMS

  • JSON:API is a zero-configuration module that automatically creates API endpoints to expose your Drupal entities in the JSON format.
  • JSON:API Extras helps you make settings for the JSON:API module (enabling or disabling the resources, overwriting their names, and much more).
  • JSON-RPC implements a remote procedure call (RPC) protocol. It lets you execute remote actions, for example, clear caches or put the site in maintenance mode.
  • ContentaJS improves performance even in case of frequent requests. This is achieved by creating configuration endpoints that Node Server reads for automatic bootstrapping.
  • GraphQL helps you expose data based on a GraphQL schema. The main benefits are exact queries and improved performance with no round-trips to the server.
  • Decoupled Router helps you manage page routes on the front-end by providing an endpoint for exact path aliases.
  • Consumers registers your Drupal data consumers and helps you create variations based on which consumers is requesting the data.
  • Consumer Image Styles integrates with JSON:API and allows application developers to specify the image styles they need.

Let your decoupled Drupal setup be the smoothest!

If you want to try decoupled Drupal, be it Contenta CMS distribution or “classic” Drupal installation, you can always entrust this to our Drupal team. We offer development and support services, so you can reach out to us at whatever step you are in. Maybe decoupled Drupal is the luckiest choice for your website!

Mar 27 2019
Mar 27

Every store owner dreams that their shopping cart stay full of goods and successfully proceeds to checkout. There are some general shopping cart tips to achieve this. Today, we will focus on Drupal Commerce stores that have many ways to make your cart convenient and attractive. To implement them, there are useful Drupal 8 modules for your  Drupal Commerce shopping cart, which we will review right now.

The built-in Drupal Commerce shopping cart

Drupal Commerce 2.x for Drupal 8 online stores comes with a full-fledged shopping cart. It offers a add-to-cart form, which allows customers to add and remove goods.

The add-to-cart form is customizable and fieldable. It is found on the "Manage form display" tab of the “Order item types” section. You can enable the product quantity field, the unit price field, and add more fields.

The form can be attached to content types as referenced entity, so that you can, for instance, post articles with the option to buy a product.

Drupal Commerce 2 offers a shopping cart as a block that can be put anywhere on your website. The shopping cart contents can show on every page. The cart can also be customized via Drupal 8 core Views.

HTML and CSS can further customize its display. Finally, extra features can be added by contributed modules.

Useful Drupal 8 contributed modules for Drupal Commerce shopping cart

Commerce Cart API

The Commerce Cart API module was introduced at Drupal Europe in Darmstadt by its creator, Matt Glaman of Commerce Guys. In his speech “The road to a headless Drupal Commerce future” he emphasized the importance of JavaScript-based e-commerce solutions.

As Matt also wrote in his article, the Commerce Cart API module improves the shopping experiences by providing users with progressively decoupled components.

The module offers lightweight RESTful endpoints for dynamic shopping cart interfaces. Its default implementation is the Commerce Cart Flyout module.

Commerce Cart Flyout

The Commerce Cart Flyout module uses progressive decoupling principle to give users modern cart update experiences.

It provides a flyout sidebar that shows whenever a user clicks on the shopping cart block or presses the “add to cart” button. The user can view the cart contents, change the product quantities, or remove products without the page reload.

The module’s JavaScript logic is built on Backbone.js and Underscore.js, which provides for a very clean structure. According to Matt Glaman, they were chosen because they ship with Drupal core. The module is highly customizable and offers nine ready Twig templates.

Commerce Ajax Add to Cart

The Commerce Ajax Add to Cart for Drupal Commerce shopping cart is a popular module with 25,420+ total downloads, but it is in the beta stage for Drupal 8. With it, the add-to-cart actions are performed using AJAX. The shopping items are updated with no page refresh, and a popup message shows when a new product is added.

Ajax Add to Cart

Here is another module that ajaxifies the process of adding products to cart. This is the Ajax add to Cart module for Drupal 8 shopping cart. When a user adds a product, a popup is instantly generated, and the shopping items are updated.

Commerce Variation Cart Form

The Commerce Variation Cart Form module provides an add-to-cart form for individual entities of product variations. The form is added to product variations as a field.

This is useful when you need to display individual entities with its own add-to-cart functionality. You can also replace the standard Drupal Commerce add-to-cart form with them.

Commerce Add To Cart Link

With the Commerce Add To Cart Link Drupal 8 module for Drupal Commerce shopping cart, you can have the “add to cart" field as a link instead of a form. A common use case is to display the link on product listings (overviews, related products, and so on).

The link is rendered via Twig template, which lets developers feel free in customization. The module has a submodule Commerce Add To Wishlist Link that provides a link for adding products to your wishlist with the Commerce Wishlist module.

Commerce Combine Carts

The Commerce Combine Carts combines multiple shopping carts of the user into one. The module is in the beta version for Drupal 8.

It works in two ways:

  • combines all of a user’s order items into this user’s main shopping cart
  • combines all of a user’s shopping carts into one when the user logs in

Let’s shape your Drupal Commerce shopping cart and whole store

Our Drupal team is ready to help you use these and other modules, or create custom ones for your Drupal Commerce shopping cart. We can also build you a Drupal 8 online store from scratch or optimize your existing one. Contact us!

Mar 06 2019
Mar 06

Drupal 8 has dozens of useful performance optimization modules. We have already reviewed the core BigPipe module and the contributed Subrequests module. Today, we are pleased to discuss a new tool to speed up Drupal sites — the Quicklink module in Drupal 8. Using the example of its work, we will see that a fast website is always a step ahead of the users’ intentions. Let’s go.

The essence of the Quicklink module in Drupal 8

The Quicklink module is meant to speed up Drupal 8 sites through the mechanism of link prefetching.

First, links in the user’s viewport are detected. These are links that the user might want to visit next. When the browser goes idle, the content from the links begins to be saved in the cache. If then the user navigates to one of these links, the content is there already.

The Quicklink module is based on GoogleChromeLabs Quicklink library. This lightweight JavaScript library weights less than 1 kb when compressed.

To detect the links, the module uses the Intersection Observer API. The requestIdleCallback method is responsible for waiting until the browser goes idle. Quicklink also discovers slow connections, for which it does no prefetching.

The module follows good Drupal performance improvement practices. More details are coming below.

How the Quicklink module in Drupal 8 works

Installing the Quicklink module

The Quicklink library will be loaded from a CDN by default, or you can choose to store it locally. The module can be installed manually or via Composer. Its creators recommend installation with Composer, for which you will also need to check the Composer.json file.

Configuring the Quicklink module

When the module is installed and enabled, its settings are available in the site admin dashboard at Configuration — Development — Quicklink Configuration.

The Quicklink module’s default settings are suitable for most websites. Let’s take a closer look at its options, which are presented in 5 tabs.

1) In the “Prefetch Ignore Settings” tab, we can choose which links to ignore (not prefetch). To follow Drupal performance practices, the module ignores these links by default:

  • admin links (that have /admin, edit/, or are otherwise known to be admin links)
  • AJAX-enabled links (the ones that have a use-ajax class or end in /ajax)
  • links that have hashes (#)
  • links that have file extensions (so we don’t prefetch PDFs, MP3s etc.)

It is also possible to add particular URL patterns to ignore.

2) In the “Optional Overrides” tab, we can:

  • override the CSS selector where the module looks for hyperlinks (the default is the whole document)
  • override the domains allowed for prefetching
  • provide the specific paths allowed for prefetching

3) In the “When to Load Library” tab, we can control in which context the Quicklink library will load. The recommended Drupal defaults are:

  • to load the library for anonymous users only
  • disable prefetching during sessions (for example, in Drupal Commerce cart)

We can select the content types for which the library will not load.

4) In the “Extended Browser Support” tab, we can choose to use or not Intersection Observer polyfill from polyfill.io. This will allow the Quicklink to work with such browsers as Safari or Microsoft Edge.

5) In the “Debug” tab, we can turn debug mode on. This will save Quicklink logs for further display on the Developer Tools console. This will give us detailed information when we want to analyze the performance and see why prefetching was ignored for some links.

We can see the prefetching process on the Network tab of Chrome Developers Tools. The “Initiator” column will list the request initiator as “Quicklink.”

Performance improvement for your Drupal 8 website

Quicklink module in Drupal 8 expands developers’ arsenal of speed optimization options. Our Drupal team is ready to help you use the Quicklink module, as well as examine your website from different angles and improve its speed.

Feb 27 2019
Feb 27

Drupal 8 websites can easily exchange data with third-party websites or apps. These can be iOS or Android devices, applications on Vue.js, React, Angular, or other JS frameworks, and so on. Web services in Drupal 8 core take care of the smooth interaction. To share Drupal data, developers often use REST export with Views in Drupal 8. Today, we will take a closer look at Views REST export.

REST export with Views in Drupal 8

The Views module is in Drupal 8 core, and lets us quickly create collections of content, users, taxonomy terms, and more. We can organize Drupal data into a View and prepare it for export in the JSON format needed by third-party apps. As a result, we will have a RESTful API endpoint, where other resources can call to get our data.

Enabling the Drupal 8 modules for REST export

To provide REST export with Views in Drupal 8, we begin with enabling the core “Web services” modules. Two of the four will be enough for today’s example — RESTful Web Services and Serialization.

Creating a RESTful View

We are going to share Drupal content. For this, a custom content type or a default one (“Article” or “Basic page”) will be OK. Let’s use “Article.” We can create a couple of test articles (Article 1, Article 2, Article 3) and then move on to the View creation.

In the “Structure — Views” tab of our site’s admin, we click “Add new view,” and do 3 things:

  • Give our View a name.
  • Check “Provide a REST export” option (which we see next to the usual “Create a page” and “Create a block” options).
  • Write a REST export path (where other resources can call to get our content).

Configuring the RESTful View

Our RESTful View looks almost like the classic version, but the output is in JSON. It has standard Views capabilities, so we can:

  • choose to display fields, entity, or search results
  • do filtering and sorting
  • limit the amount of results
  • create contextual filters

and much more.

Let’s filter our View to only show the “Article” content type.

Now we choose to display fields:

And we add a couple of fields to the View — “title” and “body.” It is also possible to specify a custom URL path for each field in the field settings, if we for some reason do not want to use their default ones.

An unusual but important element in the RESTful Views interface is the “Serializer” tool in the “Format” section. In its “Settings,” we can select the formats to output our content in.

In our case, we have a choice between JSON and XML (other modules would add more formats). If no format is chosen, the default output will be in JSON.

Let’s save our View. The data in JSON is available through the URL path that we provided (json/content). This is our REST API endpoint, and it has this structure:

website-example/json/content.

We receive JSON output in ASCII format that is encoded for security reasons. Our JSON is ready to be sent to third-party apps and then decoded by them.

To check if the code validates, as well as to see how it looks in a more “attractive” way, we can use a Chrome app or one of online JSON formatters & validators.

Here’s how one of them processes our code:

Another JSON formatter does more decoding for our JSON better, and makes it even more human-readable:

JSON validates, so our View is ready to share content. We have successfully configured REST export with Views in Drupal 8.

Let’s create the desired export for your Drupal website

Although the REST architecture supports CRUD (create, read, update, and delete) operations, Views is only for R (reading).

So if you want mobile app users to be able to edit your Drupal 8 content, REST export with Views in Drupal 8 will not do for you. We could offer you a different solution then like a full REST API in the JSON format, custom endpoints, and so on.

Whatever are your ideas about third-party integration, our Drupal team will help you implement them!

Feb 13 2019
Feb 13

Various forms are the heart of website’s interaction with the user. They are vital for usability, conversions, marketing analytics, and more. So form building tools are in demand — the Drupal Webform module ranks 7th on the 42,000+ list of contributed modules. The Webform module has recently received its stable version for Drupal 8. We will give it an overview and show an example of creating a simple form with the Webform module.

Webform module in Drupal 8: finally stable

The Webform module lets us create any kind of forms from simple to complicated multi-page ones. It also adds settings and features to them like statistics collection, email notifications, confirmations, data export in various formats, fine-tuned access, conditional logic, filtering and sorting, pushing results to CRM, downloading results as CSV, and more.

The stable version for Drupal 8 finally arrived on December 25, 2018. Drupal creator Dries Buytaert congratulated the Webform module creator Jacob Rockowitz via Twitter and called the release a big milestone.

The release was soon followed by Webform 8.x-5.1 on January 1 and Webform 8.x-5.2-beta1 on January 25.

Defining forms in a YAML file or admin interface

One of the most remarkable new features of Webform module in Drupal 8 is the ability to define a form in a YAML file. Webform module creator Jacob Rockowitz also built the YAML Form module specifically for Drupal 8. As of Webform 8.x-5.x, the YAML Form merged into Webform. So developers now can go to the YAML file by clicking the “Source” tab.

But there is also a user interface for form creation that is intuitively understandable even for website administrators. The admin dashboard contains examples and videos, as well as a built-in contact form.

The Webform ecosystem of modules in Drupal 8

The Webform module for Drupal 8 is a complex module with 20 submodules that demonstrate its varied capabilities. The minimum ones to enable are Webform and Webform UI modules.

There is a also number of contributed modules that work together with Webform and extend the its capabilities still further: Webform Views, Webform REST, Webform Analysis, Webform Encrypt, Webform Composite Tools, Webform Invitation, CAPTCHA, Honeypot, MailSystem, SMTP, and more.

Creating a simple webform with the Webform 8.x-5.1 module

We will create a feedback form for customers from scratch. With the Webform and Webform UI modules enabled, we go to Structure — Webforms, click “Add webform," name “Let us know your thoughts," and save it.

The form then needs to be completed with fields that are called “elements” in Webform. The “Add element” button leads us to the list of 60+ available fields, both simple and complex.

We will need a field for the customer’s name. For this purpose, there is a complex “name” element with sub-elements (First name, Last name etc.) that can be checked or unchecked to be included in the form or not.

If no complex name structure is needed, we can use a simple “Text field” element for the name. Let’s call it “Your name (optional)” in the “Title.”

For the email field, we select an “Email” element and add a placeholder for email addresses

An element of “Checkboxes” type will let customers check some options. For our feedback form, we list the company’s services as “option values”.

To let customers give their votes, we will us an element of the “Rating” type and set the value range from 1 to 10.

A “Text area” element will host customers’ comments.

On the list of all fields for our form, we can drag and drop the fields to change their order, or check them to quickly make them required/optional.

Let’s choose where the submitted forms will go. On the form’s dashboard, we select Settings — Emails/Handlers and click “Add email.” There, we configure the “sent to” email address (in our case, it’s the default [site:mail] is OK). We also add a custom subject “You received a new form submission.”

The “View” tab takes us to our form on the website. If we submit something and check the admin email, we see new messages about form submissions.

Let’s create the forms your Drupal website needs

This was just a very simple form example where we have not even touched advanced options — conditional logic, access, submission handling, JS effects, and so on. The Webform module in Drupal 8 has unlimited capabilities, and our Drupal team can create you the forms that will work in accordance with all your requirements.

Jan 09 2019
Jan 09

Everyone loves attractive layouts for web pages. Luckily, Drupal has plenty of awesome page building tools. You will hear tool names like Panels, Panelizer, Paragraphs, Display Suite, Page Manager, Twig, and more. Our Drupal team loves to take the best of them from our arsenal, combine them when needed, to achieve amazing results for our customers. But today we would like to focus on a wonderful new tool, Layout Builder, that appeared in Drupal 8.5. We will take a closer look at creating layouts in Drupal 8 with its help.

Layout Builder in Drupal 8: let’s get acquainted

The Layout Builder module has already been compared to the Panelizer, Panels, or Display Suite modules in its capacities. This makes sense, because according to the Layout Initiative, it is meant to become the number one tool for creating layouts in Drupal 8 core. The module is currently experimental but is expected to reach stability in Drupal 8.7 in the spring of 2019.

The Layout Builder lets you define the layout of any fieldable entity type (content type, user, and so on), or its individual entity. You just select from the predefined sections and add blocks and fields to them as you wish.

The module’s UI is simple and intuitively understandable for administrators, as well as equipped with the drag-and-drop feature to swap the blocks and shape your page. Developers, in their turn, will appreciate that layouts can be defined in a module or theme and have Twig templates.

Creating layouts in Drupal 8 with the Layout Builder

Let’s take a look at Layout Builder in action. We will see how it works on this example of creating a layout for articles. We will begin with enabling the Layout Builder module in core.

Creating a layout for a content type

We go to our Article content type in Structure and select “Manage Display.” Instead of the traditional fields, we see “Manage Layout” button. We also make sure the “Use Layout Builder” option is checked in the “Layout Options.”

The “Manage Layout” button takes us to the page where we configure the article content type layout.

By clicking “Add Section”, we can select from the ready layouts with a different number of columns. The unnecessary sections can be removed.

By clicking “Add Block,” we can add standard Drupal blocks and content type fields (like “Authored by,” “Body,” “Image” etc.) from the list on the right, as well as create custom blocks. The blocks can be dragged anywhere you wish throughout the layout.

Every block has a “Configure” and “Remove” tabs in the right-hand corner next to it. Blocks can also be configured when clicked on the list to the right of the page. For example, we have just configured the article image by attaching a custom image style of 500x500 to it.

So here goes our simple two-column layout with the image and the author on the left and body on the right.

When everything is ready, we click “Save Layout.” After that, all articles will be created according to this pattern.

Creating a layout for an individual node

In many cases, you do not need the same layout for all content type items. Layout Builder lets you make every content item layout customizable by checking the appropriate option on the “Manage Display” tab.

The Layout Builder offers the handy “Layout” button near each node that leads you to its individual layout customization page. The procedure is the same as in creating a layout for a content type.

Creating different layouts within the same content type

We see how Layout Builder can build articles pages, but let’s now complicate things a little and review a special case. What if you are using the same content type for several actual types of content, and want your website to generate different layouts for them?

That was exactly the case with one of our customers. They wanted different layouts to be generated for every content type on the homepage and on the content listing page. A select list menu was used to switch between the actual types of content within the same content type, which was based on the “list” field. According to this field value, specific types of content were filtered out in Views for homepage and content listing page.

The Layout Builder could be helpful here. If the Views is based on ‘Content,” it can choose a specific view mode. And it is awesome that the Layout Builder module can create layouts for particular view modes within the same content type!

View modes can be registered in the “Manage Display” tab of the content type, and each of them needs to have the “Use Layout Builder” option enabled, and each will have its own “Manage Layout” button.

When we worked with this customer, the Layout Builder was in alpha and we successfully used a different solution, which involved Display Suite and Twig templates. Every case is unique, and deserves a special approach.

Let’s build the perfect layout for your website pages!

We have made a little overview of creating layouts in Drupal 8 with the Layout Builder. Let your website have beautiful and properly arranged layouts that work exactly according to your wishes. Just contact our Drupal development team, and we will select the optimal tools from Drupal’s “treasury,” as well as apply customization when needed, to build you the layouts that you will love!

Dec 12 2018
Dec 12

Your future awesome e-commerce website may be closer than you imagined. Drupal makes site creation quick and easy thanks to distributions. Ready distributions in the sphere of commerce are among the numerous reasons why Drupal is the best solution for e-commerce websites. They allow to quickly create an online store and spend much less on it.

You can always rely on our Drupal team for any help in selecting the optimal distribution for you and brushing it up to meet your needs. So now let’s review top e-commerce Drupal distributions.

For a start, what are Drupal distributions?

Distributions are Drupal packages that contain the core, particular modules and theme, predefined configuration, useful libraries, and so on. Drupal has 1200+ distributions, usually tailored for websites of a certain type or industry. When nothing extraordinary is needed, distributions let you avoid reinventing the wheel and get your desired website sooner.

Great e-commerce Drupal distributions

Commerce Kickstart

Commerce Kickstart is more than number one among Drupal e-commerce distributions — it is also the most popular Drupal distribution of all. It has been downloaded more than a million times. Why? Commerce Kickstart lets you quickly create an online store based on Drupal Commerce, the famous e-commerce platform for Drupal.

In addition to Drupal core, Drupal Commerce, and a set of helpful modules, Commerce Kickstart offers an attractive theme, preconfigured catalog of products, shopping cart, user login feature, search feature including filters for refined searches, product category page, social media integration, payment gateway integration, hero banner, and more.

Commerce Kickstart comes in 3 versions:

  • Commerce Kickstart 1.x for Drupal 7: The version with the minimum modules and configuration.
  • Commerce Kickstart 2.x for Drupal 7: The improved package for creating a full-featured store
  • CommerceKickstart.com for Drupal 8: Instead of the Drupal 8 version for the distribution, there is a browser-based tool to build a Composer file for your future online store.

Easy Booking

This distribution is primarily designed for hotel, hostel, or inn websites. However, it can be refurbished to fit many other kinds of websites that need a good booking system.

Easy Booking is available for Drupal 7 website and has not yet been ported to Drupal 8. The distribution is powered by Drupal Commerce and Drupal Rooms, two famous solutions for websites. Among the interesting and useful features of this distribution are:

  • an online booking system with a checkout
  • email notifications to the the administrator
  • a flexible system for managing rooms and their properties
  • an easy-to-manage room availability calendar
  • a front-page slideshow
  • “Our services,” “News,” and “About” sections
  • a colorized Google Map
  • responsive design

and more.

Presto! — Drupal 8 Starter Kit with Commerce Integration

“Presto!” is a distribution for Drupal 8 that contains optimally pre-configured e-commerce features based on Drupal Commerce. However, its maintainers only recommend installation via Composer to make the e-commerce functionality work.

The distribution also has plenty of general configuration that will be very helpful for online stores. This includes Google Analytics integration, XML sitemap generation, automated human-readable URL creation via Pathauto, social sharing options, pre-configured Paragraph types (Promo bar, Carousel, Block etc.), and more.

Opigno LMS

The next on our list of Drupal e-commerce distributions is Opigno LMS, which is primarily associated with education thanks to the famous e-learning platform at its base —.Opigno LMS. However, online learning is a blend of education and e-commerce.

So the Opigno LMS distribution has strong features for online selling of of learning courses that could also be useful to many other websites. It also offers quizzes, awards for successful students, certificates, forums, chats, and much more.

The distribution has a stable version for Drupal 7 and a release candidate version for Drupal 8, which means its full-fledged Drupal 8 version is underway.

RedHen Raiser

Here is an interesting distribution designed for Drupal 7 websites with fundraising campaigns. The RedHen Raiser distribution is based on the RedHen CRM with its useful RedHen Donation and RedHen Campaign modules.

This distribution is commerce-ready and allows for the easy adding of payment methods. It offers single-page donation forms, progress widgets, mini blog, automated start and end dates, and much more.

Let’s quickly create an online store for you with a distribution!

E-commerce Drupal distributions are definitely a huge time and cost saver, so there are no more excuses for you in not getting your desired website today ;) Drupal e-commerce development is one of our areas of expertise, so contact our Drupal team — and we will help you select the optimal distribution and customize it to meet your ideas!

Nov 07 2018
Nov 07

Every big Drupal release opens fantastic opportunities for websites. Three years ago, the eighth Drupal version came to this world — and the world fell in love with top-notch Drupal 8 improvements. Drupal 8 has been getting more and more awesome on its way from Drupal 8.1 to Drupal 8.5, and the latest version, Drupal 8.6, is cooler still. Drupal 8 is on its peak, but the cycles of development never stop. That’s why the Drupal community has already announced the expected release of Drupal 9 and end-of-life for Drupal 8 and 7. Let’s see what it means for Drupal 8 and 7 website owners and what action is needed from them. And, of course, our Drupal team is ready to help them take this action.

The planned release of Drupal 9 and end-of-life for Drupal 8 and 7

A little while after D8 was released, the most impatient and curious users began to ask questions about the future Drupal 9. When will it be released? What will it offer? Will websites need another upgrade?

Despite the fact that the development branch for Drupal 9 was started years ago, no one could know its release year for sure. There were even suggestions that Drupal 9 would never come at all — raised by a totally new approach to updates in Drupal 8 and the regular innovation mode.

However, the situation changed in September 2018, at the world-wide meetup for drupalers — Drupal Europe in Darmstadt. The “phantom” of Drupal 9 finally took shape. D9 will come, and the year is set! Drupal founder Dries Buytaert announced the Drupal community plans on it, as well as illustrated it  with images:

  • Drupal 9 release: 2020
  • Drupal 8 end-of-life: 2021
  • Drupal 7 end-of-life: 2021

What the future release of Drupal 9 means for Drupal 8 and 7

End-of-life for Drupal versions: hey, what does it mean?

End-of-life, or EOL, is the moment when official support for a particular Drupal version drops. The Drupal team stops watching over it and creates no more updates and patches for it, including those in the security area. This means more vulnerabilities to hacker attacks and, of course, no new features.

For example, February 24, 2016, was the EOL for Drupal 6. The service of upgrades from Drupal 6 to Drupal 7 or 8 became a very popular one with our Drupal team, because many customers applied for that. By the way, if you are still using Drupal 6, it’s high time to upgrade — better late than never!

Usually the two latest Drupal versions are supported: the newly released and the previous one. However, in the case with D9, the EOL for D7 comes a little bit later and for D8 a little bit earlier than usual — in 2021 for both.

Although the end-of-life sounds a little scary, there is no need to worry. See the next chapters for more information.

What Drupal 9 release means for Drupal 8 websites

What the future release of Drupal 9 means for Drupal 8 and 7

Drupal 8 is in the center of community’s ideas and is getting lucrative technological innovations all the time. Despite the EOL in 2021, the future looks particularly bright for D8 website owners. And here’s why.

Compared to Drupal 7, Drupal 8 is a technological breakthrough. That’s why upgrades from D7 to D8 are often lengthy (depending on the site complexity). But if you have moved to D8 from D7, that was your LAST cumbersome upgrade. No more of that from now on!

Drupal 8 websites will move to D9 quickly and smoothly. Lightning-fast upgrades will be provided for those that are using the latest Drupal 8 minor version and no deprecated APIs. This golden rule of keeping up-to-date and avoiding deprecated APIs helps even contributed and custom Drupal 8 modules be instantly compatible with Drupal 9! Our Drupal web studio is always ready to take care of this for you.

So an upgrade from D8 to D9 will be something you will barely notice. The secret is, according to the principle of continuous innovation, Drupal 8 releases backwards-compatible minor versions every half a year. Drupal 9 promises to be almost identical to the latest minor version of Drupal 8 with deprecated code removed, as stated in the article by Dries Buytaert “Making Drupal upgrades easy forever”.

What Drupal 9 release means for Drupal 7 websites

What the future release of Drupal 9 means for Drupal 8 and 7

We wrote that the future looks bright for Drupal 8 website owners, but it also looks good for Drupal 7 website owners! They only need to take more decisive action. So what should they do considering the dropping of support in 2021?

  • They might hope for a commercial support program for Drupal 7 that the community is thinking to implement, but relying on it looks like staying with the past.
  • They might also wait for Drupal 9 and jump directly to it. But they will need a big upgrade someday anyway — to Drupal 8 or 9, which are very close relatives. The time passes, and all this time they could be enjoying Drupal 8 without putting their success on the shelf.
  • The best option is to move to Drupal 8 in the nearest future. Just one upgrade will be their ticket to the future hassle-free upgrades (to Drupal 9, 10, and beyond). And, of course, they will be in line with the times and have all the Drupal 8 innovations. Our migration experts are ready to smoothly move you to Drupal 8.

So there’s no need for a fortune-teller to predict your future in relation to the release of Drupal 9 ;) The future looks bright for you in any case! The only condition is that have good drupalers on hand.

Drupal updates and upgrades, as well as Drupal support are among our areas of expertise.

Contact our Drupal team, and let’s choose the best action for your website!

Oct 03 2018
Oct 03

Hopefully, content editors and website owners are ready to gasp in admiration — because we know they will when they discover Gutenberg editor in Drupal 8. The eighth version of Drupal already boasts with easy content publishing, custom layout creating, and, as of Drupal 8.6.0, improved media handling and remote video embedding. However, there is no limit to perfection! Gutenberg editor is bringing unprecedented content creation features to Drupal 8.

Gutenberg editor in Drupal 8

Where the Gutenberg name comes from

In the XV century, Johannes Gutenberg of Germany invented the printing press, which revolutionized book creation forever. The Gutenberg editor was named after him, and is expected to bring revolutionary web content creation experiences. Well, every epoch needs its own Gutenberg!

The essence of Gutenberg editor’s work

Gutenberg is a modern, open-source user interface for creating rich pages. It is an app built in JavaScript — more precisely, React.js.

Content editors can play with Gutenberg UI to shape the exact look of their pages. They can achieve theming effects otherwise available only to CSS and HTML experts — but easy for anyone with this editor.

Any page elements can be added as blocks and formatted to your heart’s content. These can be image galleries, texts, tables, lists, shortcodes, buttons, columns, social media embeds, paragraphs, quotes, verses, files, and so much more.

Bringing Gutenberg editor to Drupal 8

Gutenberg.js was created with WordPress in mind. WordPress has already adopted the editor, which is promised to be fully ready with the release of WordPress 5. However, this JavaScript app was so lucrative that the Drupal community also decided to get it.

Drupal developers Per Andre Rønsen and Marco Fernandes introduced Gutenberg to everyone at Drupal Europe in Darmstadt and created the Gutenberg Drupal module to connect the editor to Drupal 8 websites.

This Drupal 8 module is in alpha state for the moment of writing, so it is not completely ready for use. The module has a number of issues, and the same applies to Gutenberg editor itself.

Considering the extensive works being performed for both the app and the module, this situation can change very quickly.

How the Gutenberg module in Drupal 8 works

With the Gutenberg Drupal 8 module installed and enabled, the Gutenberg editor needs to be switched on for the desired content types. The “Gutenberg experience” option needs to be selected and checked.

Enable Gutenberg editor for content type in Drupal 8

The module requires a field of “long text” type with the Gutenberg text format selected.

Select Gutenberg text format for content type in Drupal 8

When it’s done, every node opens for editing in the Gutenberg UI. As we see, its interface is pretty much white space, with the menu options hidden until you need them.

By clicking a plus icon in the left-hand corner, you are offered the list of page elements that can be added as blocks. For your convenience, blocks are searchable via the search box.

They fall into six main categories:

  • Drupal blocks

Content body, title, image, user ID, picture, email, comments, and many more.

  • Common blocks

Paragraph, image, heading, gallery, list, quote, audio, cover image, file, video.

  • Formatting

Coding, preformatted, pullquote, table, verse.

  • Layout elements

Button, columns, “more,” page break, separator, spacer.

Shortcode, archives, categories, latest comments, latest posts.

Over 30 social networks and media providers to embed content from.

List of blocks in Drupal 8's Gutenberg editor interface

Once a block is added, you can open its detailed settings in the right hand corner. For example, you can choose the background and text color, the size of the letters, the number of columns, and so on, depending on the block. Many blocks have an advanced option to add CSS styles.

Configuring a block in Drupal 8's Gutenberg editor

You can move the blocks up and down, align them as you wish, switch their block type, duplicate or remove them. In addition to the visual editor, Gutenberg also has the code editor.

To recap

Drupal itself works like the best of Legos. And now it is getting another interesting Lego box inside it — Gutenberg editor.

The time has come for exclusive content creation opportunities! If you wish to migrate to Drupal 8 to enjoy them, or if you need help with installing and configuring any modules like Gutenberg editor in Drupal 8 or other, contact our Drupal web development company.

Sep 06 2018
Sep 06

Congrats to everyone on the release of Drupal 8.6.0! ;) The new minor version of Drupal promises to be especially attractive for website users, owners, editors, and developers alike. Six months ago, when Drupal 8.5 was released, we approached it from a historic point of view, and described the exciting road from Drupal 8.1 to Drupal 8.5. However, the new Drupal 8.6.0 has already been called the greatest update in history! So let’s now take a tour of the awesome Drupal 8.6.0 opportunities for websites.

Drupal 8.6.0 release: so what’s new?

Reusable media thanks to the Media Library

The first two Drupal 8.6.0 novelties go hand in hand, so their descriptions will be closely connected. Let’s start with the Media Library — an experimental but incredibly useful module. Editors now can save various media for further reuse on websites.

The Media Library module only works with the Media module enabled as well. All media is available for managing and deleting on the Media subtab of Content. 

Media Library - Drupal 8-6-0

You can also grab the media from the library during your content creation by using the “Browse” button. For this, the “Media” field needs to be added to a particular content type. As with all other fields, media can be positioned in your content to your liking.

Media Library - Drupal 8-6-0

Remote videos in your content with oEmbed

In the previous description, we purposely chose to add media from the new built-in media type — “Remote video.” It appeared in Drupal 8.6.0 in addition to the existing “Audio,” “File,”“Image,” and “Video.”

This shows another awesome Drupal 8.6.0 feature in action — oEmbed. It is meant for embedding remote YouTube and Vimeo videos into your site’s content just with a simple URL.

OEmbed offers a lightweight and modern way of adding videos to content that is supported by many video content providers. Your users and editors will be delighted!

remote videos - Drupal 8-6-0

The “Media” field for the desired content type just needs to be specified as “Remote video,” and off you go with adding videos to content from your Media Library!

oEmbed - Drupal 8-6-0

A colorful demo site showing Drupal’s capabilities

Everyone will be able to know from the start how tasty Drupal’s features are! Thanks to Drupal Out of the box Initiative, users now get a ready-to-use demo food site.

All they need to do is, during the Drupal installation, to select “Umami Food Magazine” installation profile. It is not intended for use on live sites — just a test drive… or, let’s say, tasting session!

Drupal demo Umami Food Magazine - Drupal 8-6-0

The Umami Food Magazine is already filled with tasty content, and the “Recipe” content type has appropriate fields. The fictional site also demonstrates views, image styles, view modes, menus, and much more.

This experience is absolutely different from getting an empty Drupal website. It shows Drupal in action in a very informative and inspiring way.

Drupal demo Umami Food Magazine - Drupal 8-6-0

Drupal demo Umami Food Magazine - Drupal 8-6-0

The Workspaces module for switching between environments

A new and interesting experimental module Workspaces arrived in Drupal 8.6.0. In the right top corner of your website, the green “Live” button appears, inviting you to manage your workspaces. You immediately have the option to enable the “Stage” workspace.

So the module lets you switch between workspaces — “Stage” and “Live,” or custom ones that can be created. You can deploy your content changes to live as long as it is ready for it, which is very handy when working with multiple content items.

Workspaces - Drupal 8-6-0

Workspaces - Drupal 8-6-0

Stable migration modules and multilingual migrations

Drupal website migration is going to be smoother than before. In the friendly family of migration modules — Migrate, Migrate Drupal, and Migrate Drupal UI — another two reached the stable status in Drupal 8.6.0.

In addition, we welcome a newcomer — Migrate Drupal Multilingual, which is meant to handle “polyglot” websites migrations. It is still experimental, but we know that Drupal 8 experiments are usually lucky!

Drupal 8.5.6:

/home/user/Desktop/Drupal 8.6.0/Migration modules - Drupal 8-6-0.png

Drupal 8.6.0:

/home/user/Desktop/Drupal 8.6.0/Migration modules - Drupal 8-6-0.png

More options for the Layout Builder

Nice surprises continue to arrive from Drupal 8.5’s sensation — the Layout Builder module. Now, on the Manage Display tab of your content, media, taxonomy, comments, and more, you can see the options for using Layout Builder and for allowing individually customizable layouts for every content item. 

If you check the second option, each node will have the "Layout" button next to the traditional "View," "Edit," and "Delete."

The “Manage layout” button, just as before, takes you to the page where you can add layouts with different amount of columns, add blocks to them, and otherwise format it to your liking.

Layout Builder - Drupal 8-6-0

Final thoughts

This is just a brief rundown of all Drupal 8.6.0 improvements. And you could start enjoying them all right now! To update your website to Drupal 8.6.0, configure its new modules for your benefit, or finally migrate to Drupal 8, you are always welcome to contact our Drupal company.

Aug 08 2018
Aug 08

The dream of many website owners is to have email sending opportunities on their websites. Of course, it’s possible with Drupal 8, because it has infinite powers. We’ve already discussed how your Drupal 8 website can “speak” multiple languages, cooperate with any third-party systems, connect to all imaginable social media, make your images perfect on any device, engage your users with super interactive menus, win their hearts with high loading speed, let them publish content on the fly, and what not! It’s now time for a closer look at the options for a perfect mail sending setup.

Drupal 8’s mail sending opportunities

The default mail system in Drupal 8

Drupal 8 has a built-in mail system — MailManager, which also serves as a plugin manager. In addition to basic core mail plugins, developers can also declare their own plugins that implement two main methods — the format() and the send(). There are important hooks to use when working with the MailManager. The main ones are the hook_mail() for sending emails and the hook_mail_alter() for editing the existing setup.

In addition to the default mail system, there also are contributed Drupal modules that add in some important things missing in core, or connect various third-party email sending services to your Drupal website.

Some great contributed Drupal 8 modules for mail sending

The Mail System module

Definitely, here is the most important one among contributed Drupal 8 module in this area — the Mail System module. It fills in the most noticeable gap of Drupal default mail system — namely, provides an administrative interface and an API for working with Drupal mail. This module is also successfully used in combination with other modules.

The Mail System module lets you configure the default mail system by selecting:

  • the standard plugin for email formatting before sending it
  • the standard plugin for sending an email after formatting it
  • the theme that will render the emails

In addition, you can make module-specific settings by selecting:

  • the module
  • the key for identifying specific mails
  • the formatter plugin
  • the sender plugin

the Mail System module in Drupal 8

Integration modules with the example of SendGrid

You could also rely on some popular third-party email service. For instance, consider connecting your Drupal 8 website to a service for transactional and marketing emails — SendGrid, which is trusted by Uber, Spotify, Glassdoor, Airbnb, Yelp and other large companies.

The SendGrid module for Drupal will help you with the integration, after which you will be able to send emails from your Drupal 8 website quickly, reliably and with flexible options. Your emails will be sent via SendGrid cloud-based delivery system with the help of their strong RESTful API.

We have chosen this service as an example, because the Drupal module for it has had a fresh stable version in June. Others include Mailgun, Mandrill, Elastic Email, Sparkpost, PeytzMail, as well as tools like the Swift Mailer library, and so on. All these Drupal third-party integration modules are now in different levels of stability.

The Views Send module

Meet the module that lets you send emails using the power of Views, which is now part of Drupal 8 core. It allows for personalized mass mailing from a View, where each row generates one email.

Using tokens with the Views fields, you can fully personalize your emails. They will have a subject, a body, a recipient's name, email address, and more taken from the View.

The Contact Emails module

Here is another module that adds advanced features to Drupal 8 core — namely, to the core module Contact, which allows users to send email to other users or site administrators via contact forms.

The Contact Emails module brings in such options as sending emails to multiple recipients, using text formats, tokens, and more. You can send as many emails as you wish with different messages.

The Simple Mail module

As the name suggests, the Simple Mail Drupal module makes mail delivery extremely simple, which is great for simple use cases.

With it, you can also queue your emails and manage the queues with the help of another useful module — the Queue UI, which provides a handy user interface for that.

The Reroute Email module

In many cases — for example, when you do some testing — you do not want the users of the site to receive your emails. So it is useful to be able to reroute all outgoing emails to another address. The Reroute email Drupal 8 module will take care of these scenarios.

The HTML Mail module

The HTML Mail module for Drupal 8 adds some theming to your emails. Namely, it lets you theme your email messages in the same way as you theme your website.

To recap

These is just a glimpse at useful modules and opportunities for mail sending in Drupal 8. In addition, there is a very simple way of providing a perfect mail sending system on your website in accordance with all your wishes. Send a short message here to just one recipient — our Drupal 8 team! The rest of the magic will be in our hands.

Jul 05 2018
Jul 05

Convenient searching is a keystone of good website navigation and usability. Help your website users always find what they want, and they will lose all the addresses of your competitors, completely forgetting their names. It’s great that Drupal 8 has excellent search opportunities that are fulfilled by a host of helpful modules. You don’t have to to go far to seek them — we are going to give a little overview of them right now.

Drupal 8’s awesome search opportunities and modules

Core search in Drupal 8

Drupal’s core search has greatly improved in the 8th version. With nothing extra to install, the core Search module in Drupal 8 now lets you create custom search pages. These pages allow for searching for full words in any content nodes, as well as for users.

You can also decide on indexing settings and define the factors that influence the rankings (for example, the time of content creation, number of comments, keyword relevance, and more).

The core search in Drupal 8 works pretty well and is a nice choice for smaller websites that do not have much traffic or complex search needs. If this description fits you, you could order the creation of search features from a good Drupal team right now.

For more advanced search features, let’s move on to the next options.

Search API

Almost unlimited opportunities for searches in Drupal 8 are provided by the contributed Search API module. This flexible and extensible toolset is loved by Drupal developers, because it lets them to create even the most complex search interfaces.

In Drupal 8, Search API unites the functions that used to be scattered around many Drupal 7 modules. For example, it allows you to provide multiple search indexes, which you used to need a separate Search API multi-index searches module. If you are also interested in Search API’s work in Drupal 7, here is a detailed overview by our developers.

If Search API is used, the core Search module should be uninstalled to avoid conflicts like duplicate indexing.

Search API now includes Database Search submodule that provides a search backend. However, Database Search is the best fit for smaller sites, and larger ones would be better relying on more powerful and fast backends like Apache Solr or Elasticsearch.

Search API also comes packed with the Database Search Defaults module that helps with the default setup for Database Search. In addition, there is the Search API Taxonomy Term Handlers submodule that works with taxonomy.

It is awesome that Search API can index absolutely any imaginable entities in Drupal 8 from any desired data sources like content, custom blocks, comments, taxonomy, users, files, and more.

Search API lets you use highlighted search results, use stop words, apply transliteration, ignore the case, stem words for finding single-rooted words, split text into individual words — and that’s just the beginning of the out-of-box possibilities.

Combinations with other modules greatly enhance the powers of Search API. For example:

Finally, one of the greatest features of Search API is the ability to connect your site to famous search platforms like Apache Solr, Elasticsearch etc. Details are below.

Search API Solr Search

Apache Solr is a lightning-fast and powerful open-source search engine, based on Lucene and written in Java. Even websites with extremely high traffic or complex search queries are not a problem for it — Solr easily takes the load off their database.

Search features include faceted search, alternate spellings, content recommendations, highlighted results, attachment search, multisite search, and so much more.

For integrating Solr with Drupal websites, there is the Search API Solr Search module that provides a Solr backend. It work togethers with the Search API, and also needs an Apache Solr server.

By the way, we want to say congratulations on the fresh release of Search API Solr Search — on June 1, it got a stable 8.x-2.0 version!

Another great piece of news is that, as of version 8.x-2.x, the Search API Multilingual Solr Search module has merged into Search API Solr Search. It has a high level of support for non-English languages, cross-language information retrieval (CLIR) and a handy administrative interface.

We also shared with you a detailed review of Search API and Apache Solr in Drupal 7, so check that out if you are interested.

Facets

Amazon, Zappos, Walmart, eBay, and many other famous e-commerce websites have faceted searches. Basically, this means searching by multiple categories and parameters, which allows users to quickly sift out the unnecessary items and narrow down their results.

The Facets module, created purely for Drupal 8, lets site builders create interesting faceted search interfaces. It works both with the core search and the Search API. Especially popular and powerful are faceted Solr search solutions, created in combination with Apache Solr and Search API.

Elasticsearch Connector

When it comes to search platforms, Elasticsearch is a great alternative to to Solr. It is also very scalable, powerful, and flexible, based on Lucene, and written in Java. Elasticsearch can quickly index even large volumes of data. It is API-oriented and can be used with various programming languages.

Just like Solr, Elasticsearch has impressive and extensive search features. The nuances of differences between the two are worth a separate blog post. In any case, we can always help you choose what suits you best.

Of course, Drupal 8 has modules for Elasticsearch integration — for example, Elasticsearch Connector to be used together with Search API.

To recap

There are many other modules for searching in Drupal 8, and they combine with each to offer exactly what your website needs. Additional customization by developers can do miracles in fulfilling your wishes.

For choosing the suitable tools and applying them correctly, you can always rely on our Drupal development team.

We have plenty of experience with Drupal search, including the creation of a large international multi-domain online store with custom facets and Solr.

It is easy to find us without special search features — we are always here for you! ;)

Jun 27 2018
Jun 27

Dear reader, we would like to invite you to follow us. Where? On an exciting virtual journey to DrupalCamp Kyiv 2018! The 10th anniversary of the drupalers’ meetup was amazing, and unusual moments added some spicy flavor to it. A mysterious bearded man in a pilot’s helmet, bikes on the speakers’ stage, the phantom of Drupal 9, and much more lies ahead. Ready? Follow us! ;)

The creators of the future

Just like at DrupalCamp Kyiv 2017, DrupalCamp Kyiv 2016, and before, InternetDevels was a sponsor and attendee of DrupalCamp Kyiv 2018. So we happily arrived in Kyiv wearing our red T-shirts, which were noticeable from anywhere. “Follow us” read the phrase on the T-shirt’s back.

By following us, anyone could find their way through the huge, loft-styled IZONE Creative Community building.

But following us means more than that! Anyone can follow us in being active members of Drupal Ukraine Community, contributing to the development of Drupal, teaching new talents, doing everything with passion, and reaching new heights. These are one of the ways we are all creating the future! That’s why our banner said: “We are more than developers — we are the creators of the future.”

The mysterious bearded man

The future and the new heights were shown on our banner. It featured an energetic man with a pilot’s helmet and an amazing beard, which caused a lot of interest. Who was he?

The “original” was also present at DrupalCamp Kyiv 2018. This was Butmax from InternetDevels. Look at the photo and find 10 differences!

DrupalCamp Kyiv and its air

Oh, that unique atmosphere at Drupal Camps! The organizers may be busy, the participants may be tired after their trip to Kyiv, but everyone is so enthusiastic, happy to see each other, and ready for complete drupalization!

Great speeches: the 3 dimensions of Drupal

Drupal unites people of various professions. At DrupalCamp, you can see Drupal developers, QA engineers, HR managers, project managers, marketing specialists, and many others.

So the speeches at DrupalCamp Kyiv were divided into 3 main areas: development, business, and project management.

The complexity level of all speeches was also graded from 1 to 3. So, looking at the schedule, everyone could decide what suited them better.

But even with that, it was hard to choose among the speeches. They came in 4 streams at the same time. Brilliant speakers and the freshest Drupal topics gave you a real torment of choice!

We all immersed ourselves into the intricacies of Vue.js integration with Drupal 8, the novelties in Drupal 8 core, the ins and outs of GDPR, the use of the Lazy Builder, Drupal 8 caching, custom entities, Robo and BLT, and so much more.

We also heard the expected release date for Drupal 9, whose phantom is already in the air, attracting everyone’s interest. It may arrive two years from now. It may, or it may not — only time will tell! ;)

And, of course, InternetDevels representatives were active at the speeches!

InternetDevels speaker at DrupalCamp Kyiv 2018

Contribution makes the world go round! Our senior Drupal developer Andrew Zahura, aka Ahiles, gave a truly useful speech about how to contribute to Drupal.

Drupal is an open-source CMF that everyone can use for free. But it’s great to share something back! Any drupaler can contribute their modules to Drupal, create patches, make translations, update the documentation, and much more.

However, many think they are too busy for that, and many do not know what steps to take exactly. But, after the speech by Ahiles, drupal.org will hopefully be bursting with new contributions!

Certificates of appreciation

All sponsors received their certificates of appreciation. Noticeably, this year’s DrupalCamp had many individual sponsors who wanted to develop Drupal.

Here is our certificate of appreciation. InternetDevels are happy to support DrupalCamp Kyiv 2018 and Drupal itself!

Prizes: from toy RC cars to full-sized bikes

A very nice part of the event was dealing with prizes from the sponsors and the organizers. Here are some of them.

Even when drupalers grow up, they cannot resist playing with toy RC cars. One of the sponsors arranged a car race whose winner got a car! We are not sure he was able to drive home on it, but nothing is impossible for drupalers!

Another “vehicle” prize was a full-sized bike whose winner was chosen in a draw — and it turned out she had a birthday on the same day as the DrupalCamp 10th anniversary!

The organizers also held a drawing with PhpStorm licenses by JetBrains. As is known, PhpStorm is every Drupal developer’s best assistant.

Afterparty: time to have fun!

All the guests from other cities and from abroad could feel the might of the Dnieper river, because the afterparty was held at River Port Pub. And, of course, everyone enjoyed the communication with old and newly-made friends.

Code sprint: time to code!

A code sprint the next day after a party? Challenge accepted, as real drupalers would say! Saturday was a very productive day for great Drupal minds at Port Creative Hub.

Wrap-up

Congrats on the 10th anniversary to DrupalCamp Kyiv 2018, and many thanks to its organisers, sponsors, and participants!

We would like to note what one of the sponsors said in their speech. DrupalCamp Kyiv gathers 400 people, while DrupalCon gathers 2,000. So the difference is only 5 times, which is very little, considering it’s Ukraine vs. the whole world. DrupalCamp Kyiv is 1/5 of the global DrupalCon!

So let’s continue bringing DrupalCon Ukraine closer — with events like DrupalCamp Kyiv, DrupalCamp Lutsk, and more. We know we can make it!

Let’s create the future together!

May 02 2018
May 02

Sites have truly unlimited opportunities in Drupal 8 — they are not even limited by the “website” concept! They can go far beyond it, and easily exchange data with all imaginable applications. Special opportunities for that have appeared thanks to built-in web services, which are listed among Drupal 8’s main improvements. Let’s see what web services can give you, how they work, and what extra special options are added by other Drupal 8 modules.

Web services: benefits and principles of work

The main web services role is that of a “communicator” between a Drupal website and an external application. This may mean pulling data from a Drupal website, or, vice versa, pushing it there.

Could you imagine the possible gains from outputting your website content, say, to an iOS or Android app? In addition, payment gateways, CRMs, inventory management systems, smart watches and any other apps are ready to work with your Drupal 8 website. And that’s just the beginning of what is possible in the hands of good Drupal developers!

Web services help websites and apps find “common language” — Drupal’s HTML data is magically transformed into the formats that are easily understandable for apps (JSON, XML, HAL+JSON, and so on).

Thanks to web services, you can create an API on your site that other apps can ask to connect to, and you can grant permissions to them. Drupal nodes, taxonomy, collections of content (views) or other information can be fetched from your site.

A glimpse at headless Drupal

The icing on top of the cake is a headless, or decoupled Drupal approach. More and more websites are adopting it nowadays. Drupal backend, as a source of data, is combined with a front-end based on some JavaScript framework (React, Vue, Angular, Node, Ember, etc.).

In this way, JavaScript frameworks can share their best with your Drupal website! You can engage users to the maximum with dynamic features. Interactive dashboards, fast chats, push notifications are just the beginning of the list. And the speed can be fantastic!

Web services in Drupal 8

Drupal 7 and even Drupal 6 had some support for web services, but that was in the form of contributed modules.

Thanks to Web Services and Context Core Initiative (WSCCI), Drupal 8 has web services built into core, and it has been greatly enhanced.

Core Drupal 8 modules for web services

So the big integration story begins with enabling the four core Drupal 8 modules responsible for web services.

  • The Serialization module serializes and deserializes your Drupal website data to and from formats like JSON, XML, or HAL+JSON by normalizing and encoding it.
  • The HAL module adds data normalization by means of the Hypertext Application Language.
  • The RESTful Web Services module exposes your site’s entities or other data in particular API endpoints.
  • The HTTP Basic Authentication (Basic Auth) module authenticates the username and password from a request.

Some contributed Drupal 8 modules for web services

In addition, there are extra opportunities brought by very helpful contributed Drupal modules.

REST UI

This contributed module offers a handy user interface for using core web services. When it is installed and enabled, this interface appears in Configuration — Web services — REST.

GraphQL

Here is a module that lets API builders use GraphQL — a modern query language. This is a nice alternative to the REST architecture traditionally used for APIs. Queries are shaped by the client side precisely to get all they want immediately. Obtaining structured data (including that with a complex hierarchy) is based on the schema.

JSON API

The JSON API contributed module also offers an alternative to REST. It generates an API server with the JSON API specification. According to Drupal founder Dries Buytaert, both JSON API and GraphQL couuld be promising modules in Drupal core some day.

Services

The most popular module for web services in Drupal 7, the Services module has changed greatly for its 8th version. Its benefits include great API customization options, support for configuration entities, multiple response formats, etc.

RELAXed Web Services

While providing a RESTful API, this module offers advanced support for translations, file attachments, revisions, UUID references, opportunity for clients to subscribe to real-time change notifications, etc.

Subrequests

The Subrequests module we once described is a new and interesting module for Drupal 8. It groups any sets of requests together to improve performance. The JSON document named “blueprint” contains all the necessary information.

Final thoughts

All these core modules, as well as these and other contributed modules, do an awesome job! However, unlike simple cases of setting up an API, more complex ones usually require some custom code writing.

Whatever your ideas about third-party integration are, you can contact our Drupal developers. They will handle even the most complicated projects with web services.

Let your website go beyond the boundaries and give you more!

Apr 18 2018
Apr 18

Let us invite you to an exciting masquerade! Its mission is to check what each user can see or do on your website. Drupal has an awesomely flexible system of user roles and permissions, as well as opportunities for fine-grained user access. These are the keystones of Drupal security, smooth user experiences, and cool features. You can make the most out of them, and then test the result for different users with the help of the Masquerade module. Interested? Let the masquerade begin!

How the Masquerade module works

The essence of Drupal Masquerade

To check new features or settings related to user access or permissions, site builders and administrators usually create test user accounts.

Without the Masquerade module, they have to log in and out of these test accounts, which is not always convenient. The Masquerade module lets them switch accounts with no login procedures and surf the site as a particular user. They can easily try on the “mask” of any user and then take it off by clicking “Unmasquerade.”

Who can masquerade as who: user permissions

Usually, it’s only the administrator that’s allowed to do the masquerading. However, permissions to use masquerade can be fine-tuned in People — Roles — Permissions.

As you see, there is no option to masquerade as anonymous user, since it is considered a little buggy.

How to masquerade as a user

The module works a little differently in Drupal 6, 7, and 8. In today’s example, we will look at Drupal 8.

So, with the Masquerade module  installed and enabled, the “Masquerade as” option will become available next to each user in the dropdown list of “operations.” We can also see it on each user’s page.

In addition, there is a handy form for quick user switching that can be placed anywhere on the website, like any other block. In Structure — Block layout, we click on the site’s region where we want to see it, click “Place block”, find “Masquerade — Forms” on the list, click “Place block” again, and finally save the blocks.

It is very handy to have the “Masquerade as” form in the left sidebar. The “Unmasquerade” link is at the top of the page.

An example of Masquerade module’s use

It’s now time to invite a couple of our masquerade participants! Our authenticated users will be Colombina and Arlecchino.

In our example, authenticated users can post their content, and each user should have a “My masquerade photos” page where only they see the photos they authored.

For this experiment, let’s make sure that at least some pieces of content for this content type are authored by Colombina and Arlecchino. We can change this in the “Authored by” option of each piece of content.

Let’s now create a simple views with all photos. It now shows all of them yet with no filtering according to user.

To achieve this, we will go to views advanced settings. There, let’s add a relationship to author, as well as create a contextual filter that only displays the content if its author matches the current user ID. And the Masquerade module will then help us check if each user really sees their own photos only.

So our roleplay begins — we are going to the “Masquerade as” form in the left sidebar and masquerading as Colombina. That’s right, we can only see her content. Awesome!

Since only the administrator can use masquerade and we are now “Colombina,” the “Masquerade as” form disappeared from the sidebar.

Let’s click “Unmasquerade” at the top of the page to return to admin’s account, and then masquerade as Arlecchino. We only see Arlecchino’s content. Wonderful!

We should never forget to unmasquerade back. The masquerade has been successful and it is now over.

Final thoughts

That’s been a brief overview of what the Masquerade module can do for testing purposes. Drupal hides many more secrets, and its possibilities are unlimited.

Contact our team if you want to create amazing access-based features for your users, set up an order to all roles and permissions, get help with testing, and so much more!

Mar 29 2018
Mar 29

Audience boosters, sales increasers, brand builders… All this and more applies to social networks! Drupal lets you easily integrate these unmatched promotion tools with your website. We have shared a great collection of Drupal social media integration modules in part 1 and 2. Time flies, and we would now like to make an overview of social media integration modules that are specific for the latest Drupal version — Drupal 8.

Drupal 8 social media integration modules

So here are some modules that will be very useful in your business promotion via Facebook, Twitter, LinkedIn, Pinterest, Instagram, Flickr, Tumblr, YouTube, Google+, Delicious, and lots of other social networks. Some of them are general, or cross-network modules, while others are made for particular social networks.

Some general Drupal 8 social media integration modules

Easy Social

As the name suggests, this Drupal 8 module is meant for those who want to quickly set up simple social sharing buttons. It includes default widgets for Twitter, Facebook, LinkedIn, and Google+.

AddToAny Share Buttons

This social media integration module has vector buttons with AddToAny icons in SVG format, as well as a universal sharing button. Its pros include displaying well on Retina devices, Ajax support, loading optimization and more.

Social media share

Here is a tool that also makes it easy to share your site’s content to various social networks. It offers a special social media field type. The flexibility of the module makes absolutely all kinds of pages shareable.

Social Media Links Block and Field

The module offers an easily configurable “Follow us” block, various icon sets of all sizes, support for Panels, and more. As of Drupal version 8.x-2.4, it also has a Social Media Links Field submodule.

Social Timeline

Share various social network content on your site’s timeline! Here is a social media integration module that offers a wide choice of networks by default, supports keywords, hashtags, social filters, multiple custom feeds, and more.

Social Counters

This module will count your likes/subscribers in various social networks and save this information in the Drupal cache. The Drupal 8 version has the ntegration with the Views and Plugin API.

Shortcode Social

The Shortcode module lets your website’s users easily embed social media content into WYSIWYG editor with the help of shortcodes. No traditional iframes or embed codes are needed.

OneAll Social Login

Your users will be able to register and login to your Drupal 8 site from their accounts in over 35 social networks. This makes registration easy, as well as giving you their social data based on permissions.

Sharethis block

Encourage your users to “share this” by showing the appropriate block of buttons thanks to this social media integration module. You can put it wherever on your website you want it and enjoy flexible block configuration options.

Social SimpleSharer

Here is a module that creates two social sharing blocks on your Drupal 8 site: for a full-sized icon and for a smaller one, too. It offers nice styling options and is unique for not using JavaScript.

Some network-specific Drupal 8 social media integration modules

Facebook Instant Articles

Here is a fresh module whose stable Drupal 8 version has been released on March 15. It allows posting Drupal content to Facebook as Instant Articles, which load lightning-fast on mobile devices.

Facebook Page Plugin

The module offers a block about your Facebook page for your site. It shows how many people liked your page, and which of them are users’ friends. It also lists recent posts and encourages readers to like your page in one click.

Facebook Album

You can display public albums from Facebook pages as galleries or Colorbox pop-ups. The module offers options like configuring album and photo height and width, including or excluding albums from display, and more.

Twitter_Feed

Your Drupal 8 site will have a nice Twitter feed of latest posts. The module uses Twitter REST API and the jQuery Timeago plugin, has a user-friendly way of showing dates (for example, “3 hours ago”), and is highly configurable.

Pinterest Hover button

The Pinterest “Pin it” hover button will appear on your Drupal 8 site’s images. You can configure its size, color, shape, and more. The Drupal 8 version of this module supports responsive images.

YoutubeChannel

Thanks to this module, your Drupal 8 site will show videos from a particular YouTube channel. The first video will come as iFrame, others as thumbnails, and there will be a handy vertical scroll bar.

Video Embed Instagram

This is a special module for Instagram that works with the general Video Embed Field module. It allows for posting Instagram videos on your Drupal 8 site by adding the video URL in the video embed field.

Wrap-up

Let your website be sociable! And great Drupal 8 social media integration modules will let it socialize to the maximum.

For help with the perfect social media integration — from configuring Drupal 8 modules to creating custom solutions — always contact our Drupal team!

Mar 21 2018
Mar 21

What should a dream theme for a Drupal 8 website be like? Responsive, modern-looking, highly customizable, rich in powerful features, and intuitively understandable, perhaps? Many developers would say a theme based on the Bootstrap framework includes all these things. It is a good practice to create Drupal 8 Bootstrap subthemes for websites from the Drupal Bootstrap theme. In addition, there are many free Bootstrap-based Drupal 8 themes ready to be installed on your site right away.

So Drupal offers options for everyone! If you wish, use the popular Drupal Bootstrap theme that has 160,000 overall installs and recently had its fresh release — 8.x-3.11. You can create a subtheme from it or make your own theme from scratch — theming in Drupal 8 is very convenient thanks to novelties, like the use of Twig engine and YAML files.

Or you can choose one of nice, free, ready-made Bootstrap-based themes for Drupal 8. They can also be further customized to your liking — by yourself or with the help of our Drupal developers. Let’s start enjoying our little collection!

Some nice free Bootstrap-based Drupal 8 themes

Startup Growth Lite

The Startup Growth Lite theme is based on the latest Bootstrap 4. It features 12 excellent color schemes with 2 versions of each, layouts for 1, 2, and 3 columns, mobile menus, and more. It is also meant to work great with Drupal Commerce.

Bootstrap Mint

Thanks to the mobile-first Bootstrap Mint theme, Drupal 8 sites can enjoy a responsive slideshow (Bootstrap carousel), dynamic columns, a responsive multi-level dropdown menu, layout choice from 1 to 4 columns, Retina-ready icons, 25 regions etc.

BusinessGroup Zymphonies Theme

This free Bootstrap-based theme is created in a business style. Its attractions are multi-level responsive menus, a custom Bootstrap slider, a sidebar that can be positioned left, right, or to full width, Font Awesome icons, flexible social media link options, and so on.

Aegan

Aegan is a lightweight and modern-looking theme that is available in 8 colors, supports multi-level menus and Font Awesome, features a customizable slideshow, offers flexible options to configure social media icons, and more.

Paxton

Here is a multipurpose, easy-to-use, and responsive theme for corporate, business, and portfolio websites. It has 17 regions, Font Awesome support, 1, 2, and 3 column layouts, and other features.

Bootstrap Business

Drupal 8 business and corporate sites may enjoy another free responsive Bootstrap-based theme. It offers 20 regions, HTML5 and CSS3, supports the Superfish module for great menus and the Color module for color adjustments, and more.

BonVoyage

All travel agencies can say “Bon Voyage” to their customers in a beautiful way! Perfect cross-browser compatibility, easy navigation, the “back to top” button, animation, CSS3, HTML5, JQuery, and other features make this theme a good choice.

Showcase Lite

The Showcase Lite is a mobile-first Drupal 8 theme for companies that want to showcase their products or services. It features 34 regions, Superfish menus, HTML5 and CSS3, a layout for 1, 2, or 3 columns, and so on.

Magazine Lite

Here is a free mobile-first theme from the same creators and with very similar features (Superfish menus, HTML5 and CSS3, a 1, 2, or 3-column layout, and 34 regions to present your content). However, it is specially designed for news and magazine sites.

Ice Magic

Ice Magic is a free responsive Drupal 8 theme that has unmatched color adjustment opportunities thanks to the Color module and Google Material Design Colors. It also offers great integration with Bootstrap CSS and JS components, Font Awesome, and more.

Wrap-up

Inspired by these free Bootstrap-based Drupal 8 themes? These are just a couple of nice examples. If you wish to choose one and install it on your Drupal 8 website, customize it to your liking, or maybe create a new theme, free free to contact our developers.

Let your dream theme present your content in the best way, capture your users’ attention, and easily guide them through your website.

Mar 07 2018
Mar 07

To honor the Drupal 8.5.0 release on March 7, we will not just describe what’s new in it. Drupal 8 has already had 5 awesome minor releases: Drupal 8.1.0, Drupal 8.2.0, Drupal 8.3.0, Drupal 8.4.0, and now Drupal 8.5.0. Each of these versions gives us great novelties that make Drupal 8 easier to use for editors, faster, more innovative, and more.

So let’s now flashback and look at 5 great features in each of the 5 great releases. Drupal 8.5.0 will receive the most of our attention. And, for dessert, we will sum it up with a colorful infographic.

Drupal 8.5.0 release: how we have arrived to it

The road to Drupal 8.5.0: step 1 — Drupal 8.1.0

The BigPipe module

Drupal 8.1 gives us a new awesome experimental module for performance optimization. The BigPipe module lets site users immediately see the static page elements and receive the dynamic ones next.

Modules for migration

We get a “family” of experimental modules for smoother upgrades and migration from Drupal 6 or 7 to Drupal 8. They are the Migrate, Migrate Drupal, and Migrate Drupal UI modules.

CKEditor improvements

As of Drupal 8.1, CKEditor begins to support native browser spell-checking. It also gets a language button in its toolbar for adding language attributes to parts of multilingual text.

Easier help tours

Drupal help tutorials, aka “tours,” throughout a website’s administrative interface, becomes easier to find and use. Everyone can better understand how Drupal works.

Better Composer support

Composer, the greatest assistant of all times to PHP-based CMSs, can be used for managing all third-party packages needed by websites as of Drupal 8.1.0 .

The road to Drupal 8.5.0: step 2 — Drupal 8.2.0

The Place Block module

It is now easy to place and configure blocks with the experimental Place Block module. It offers a “Place block” link in the admin toolbar, which opens the theme regions with quick block adding and editing options.

The Settings Tray module

Another experimental module for configuring blocks emerges in Drupal 8.2. The blue “Edit” button initiates the block editing mode with a handy block configuration tray popping up in the sidebar.

The Content Moderation module

This experimental module lets site administrators define content moderation states. They also can decide which user roles are allowed to change these states.

The Datetime Range module

Drupal 8.2 gets a new experimental Datetime Range module. It offers a new field type for defining not just simple dates but date ranges (the beginning and end dates).

Content revisions enabled

For new content types, content revisions will be enabled by default. This makes it easy to roll back to the needed content versions and never lose any important content.

The road to Drupal 8.5.0: step 3 — Drupal 8.3.0

New CKEditor 4.6

We get a fresh version of CKEditor with an updated UI, a new feature for pasting from Word, drag-and-drop options, the AutoGrow plugin for working with large screen sizes, and more.

The Workflows module

This new experimental module gives us a handy UI for creating workflows with certain states. It can pair well with the Content Moderation module, but can also be used for non-content workflows.

Field Layout and Layout Discovery

We enjoy a new pair of experimental modules for layouts, the Field Layout and the Layout Discovery. They make it handy to arrange fields and allow modules or themes to register their layouts.

BigPipe stable & improved

One of Drupal 8’s hottest novelties, the BigPipe module, reaches stability in Drupal 8.3.0. It has also received some improvements, for example, better usability on mobile devices.

More support for web services

Drupal cooperates with external applications better and better! The REST API allows for user registration, 403 responses coming with explanations, anonymous REST API performance rises, and more.

The road to Drupal 8.5.0: step 4 — Drupal 8.4.0

Multiple modules reach stability

In Drupal 8.4.0, a bunch of modules become stable (Layout Discovery, Workflows, Datetime Range, Inline Form Errors, and Media). Next come more details about the latter two.

The Media API

Here is a remarkable novelty for media handling (e.g. creating media types, saving media to your library, and reusing them). In Drupal 8.4.0, the Media API is ready, but the module is currently hidden from the dashboard.

The Inline Form Errors module

A great usability and accessibility improvement arrives with Drupal 8.4.0 with the Inline Form Errors module. It lists form validation errors both next to the form and in the summary above.

Even more support for web services

In Drupal 8.4.0, web services receive still more attention, which results in a 15% performance boost for authenticated REST requests, REST features enhancement, and more.

New Symfony, jQuery, Drush, and more

In Drupal 8.4.0, we see updates of Symfony to 3.2, jQuery to 3, and jQuery UI to 1.12. Drush 8.1.12 becomes required. The support for Internet Explorer 9 and 10 discontinues.

Drupal 8.5.0 and its new great features

The Layout Builder module

Drupal 8.5.0’s long-expected sensation is the experimental Layout Builder module. Editors can now easily create layouts by selecting from the predefined ones, adding sections and blocks, and arranging them in various ways.

After enabling the module, you see that the “Manage display” tab in a particular content type’s configuration page no longer shows the list of fields. Instead, it has a “Manage layout” button. The button leads you to the incredibly handy layout management page for this content type items. Before you press it, you can also allow each content item to have a special layout by checking the appropriate option in “Layout options”.

The Media module stable and improved

Compared to Drupal 8.4, where the Media module is hidden by default and needs contributed modules, Drupal 8.5 makes it stable and available on the dashboard, as well as improves its user experience.

In Structure — Media Types, you can see four default types (Audio, File, Image, and Video) and can add your own. In the list of fields, there is now a Media field available, for which you can define media types. Editors are able to create their media or reuse existing ones by starting to type their name.

The Settings Tray module stable

Here is another famous module that has moved from experimental to stable in Drupal 8.5.0. Its magic blue “Editing” button and handy tray for block editing is ready to work reliably on production websites.

After enabling the module, just click on the “Edit” button in the left upper corner of your site, with no need to go to the admin dashboard. You will see the block configuration page. To call the helpful tray in the sidebar, click “Quick edit” next to any block of your interest.

The Content Moderation module stable

One more popular module is ready for production sites. It works together with the Workflows module and lets you choose Content Moderation workflow type, which is ideal for editorial processes.

You can use the default “Editorial” workflow or create your own. In the workflow, create states (like Draft, Published, Archived etc.) and transitions (like from Draft to Published etc.). It is also possible to define which items this workflow applies to (which content types, media types, and custom block types).

The Migrate API stable

Great news for all who want to safely migrate their content from Drupal 6 or Drupal 7 to Drupal 8! The Migrate API is stable and works in a tandem with its experimental “collegues”: Migrate Drupal and Migrate Drupal UI.

We almost have the whole “company” stable in Drupal core. This is very important, because more and more websites want to move to Drupal 8.

And more!

In addition, Drupal 8.5.0 has the BigPipe module enabled from the start, thus offering an out-of-box feature that allows you to deliver content to website users much faster. BigPipe is an example of a module that has travelled its path from experimental in Drupal 8.1.0 to a member of the “main squad” in Drupal 8.5.0 core!

Drupal 8.5.0 also brings in API-first improvements, which make Drupal third-party integration capabilities even stronger. They include better serialization for getting Drupal data via REST API, enhanced documentation, translation support, handier file uploads via REST API, JSON API, and GraphQL, more flexible permissions, better test coverage, optimized performance, and more.

Drupal 8.5.0 is awesome, and it’s been great to look back at how “the great eight” evolved from 8.1.0. And sky’s the limit for further Drupal 8’s innovations!

If you wish to get an awesome Drupal 8 website, upgrade your existing site to Drupal 8 or update it to Drupal 8.5.0, feel free to contact our team.

And now please enjoy the infographic!

Feb 07 2018
Feb 07

In the world of business and finance, a website should as reliable as a Swiss watch, unbreakable like an armored safe, irresistibly attractive like George Washington’s portrait on a banknote, fast like a business-class car — the list could go on. And Drupal fits all these and other requirements! The ability to easily integrate the site with third-party systems, output data to any application and “lock and seal” the site in terms of security — these advantages alone put Drupal at the head of the pack. But this is just the beginning of the list, because everything is possible with Drupal. So it is no wonder that business & finance companies choose Drupal for their websites, just like they do for e-commerce, healthcare, educational, and other businesses. Here’s a couple of examples.

Examples of great business & finance websites built with Drupal

Mint

This is a website for a popular money management tool, which offers a unified interface for customers to track their financial activities (credit card, banking, and other operations), create budgets, get alerts, etc. This website wasn’t originally on Drupal, but moved to it to satisfy its high requirements.

NCR

Here is another example of a business website for a company that found Drupal’s benefits irresistible and migrated to Drupal. The website for the NCR corporation features an extensive catalog of business solutions per industry, powerful data analysis, interactive tools, internationalization, and more.

Voya Financial

A global provider of financial, retirement, investment and insurance services got a powerful Drupal site to present them all. It includes online savings and expense calculators, financial planners for various purposes, comparison tools, and much more.

Societe Generale

Here is a Drupal website for a multinational company specializing in banking and finance services. It uses Drupal’s awesome multilingual features and includes a collection of sites (for private banking, corporate and investment banking, careers, and more). It also has versions for customers from different countries.

Webster Bank

Drupal was a great solution for this famous commercial bank’s website. It presents all of the bank’s services and offers a user cabinet, as well as online banking with features like online bill payment, mobile deposit, account alerts, mobile banking, chats with bank staff, and more.

The Carlyle Group

Drupal 8, with its unprecedented multilingual improvements and easy content editing, became the best fit for this famous investment firm with staff working on 6 continents. Their website with over 20 thousand pieces of content was migrated from Drupal 6 to Drupal 8. It has English, Japanese and Chinese language versions, a media room, analytics, and much more.

Principal

This global investment management company chose Drupal as well. The site offers handy and interactive ways to present all the company’s financial products and services related to retirement, asset management, insurance, etc. It also has two languages, an online payment feature, and more.

Swift

On the multilingual website of this global messaging service provider, you will read that they are trusted by 11,000 financial organizations in over 200 countries. And who does this provider trust? Drupal, of course! The site has everything users need to discover Swift services, as well as offering a user cabinet for tracking orders and invoices, receiving online support, and more.

Final thoughts

Let’s get down to business ;) If you would like to have a feature-rich, powerful, and attractive website in the business & finance industry or any other, contact our team of developers with 10 years of experience!

Dec 06 2017
Dec 06

Hearing the words “migration from Drupal to WordPress,” some Drupal developers would shrug their shoulders and WordPress developers would applaud. However, there is no place for rivalry, even for such life-long competition as that between Drupal and WordPress, where the most important result is an absolutely happy customer. For every case, there is a platform that fits a website like a glove. And if a customer for whatever reason feels the “glove” is not perfectly comfortable, maybe it’s time to go ahead and change it. Though, it will take, of course, a little longer than a change of outfit :)

When it comes to choosing between Drupal and WordPress, migrations from WordPress to Drupal are more frequent. This is due to Drupal’s unlimited opportunities for various powerful features, fortress-level security, ability to handle more content and users, and so on.

Still, some customers wish to jump from Drupal to WordPress, seduced by the unmatched simplicity of the interface, a gentle learning curve to start working straight away, many beautiful free themes, and more — they just do not need what Drupal has to offer.

For those who are determined to move from Drupal to WordPress, we describe the opportunity to do so.

Drupal-to-WordPress migration via the FG Drupal to WordPress plugin

You can use the handy FG Drupal to WordPress plugin, which is ready for all Drupal and WordPress versions including the latest ones (8 and 4.9, respectively).

It migrates Drupal’s articles, basic pages, categories, tags, images, and more. It also resizes images according to WordPress settings, modifies URLs, preserves the ALT attributes for images, and does lots of other useful things.

The premium version promises to go even further and migrate custom taxonomies, fields, content types, users, comments, node relationships, as well as redirect URLs from Drupal to WordPress, accept user’s Drupal passwords, and so on.

To do a Drupal-to-WordPress migration with the FG, you will basically need to:

  • Install and enable the FG Drupal to WordPress plugin on the WP site.
  • Find the “import” option and enter your Drupal database parameters there.
  • Configure the FG’s content import options and perform the import.

Before the migration, stay safe and do not forget to backup your Drupal website, as well as your WordPress website (if you are migrating to an existing one, not a blank new WP installation).

Drupal to WordPress migrations from our experience

The CMSs are different, so custom content migration needs great care. For many cases, ready tools are not enough and you will need custom migration scripts for Drupal-to-WordPress migration. That’s what we faced when performing migrations from Drupal to WordPress for our customers.

Let’s look at a little example — a website with Books and Quizz content types. We created the appropriate post types in WordPress with extra customization.

  • Books. In Drupal, relationships are provided by the Books module where every book page has its weight. In WordPress, we created a custom type of post and expressed relationships via additional fields.
  • Quizzes. We customized the look of quizzes in the WP Pro Quizz plugin by providing an XML file generation to import all test categories, test topics and issues. This included answers of two types: true-false and multichoice.

Final thoughts

To insure that all your content moves safely and accurately to a new place, contact our WordPress team. We have both Drupal and WordPress developers in our company, so the process is bound to be smooth, with the smallest details, specific to both CMSs, taken into account. Enjoy your Drupal-to-WordPress migration!

Dec 01 2017
Dec 01

What a busy and interesting life an online store has! The Black Friday excitement is replaced with the holiday season rush, and so it goes on and on. But, no matter the season or occasion, your products will be always be ready to attract customers. Great product customization opportunities are among the numerous great features of Drupal Commerce 2.0, the new version of the famous module for building Drupal 8 online stores. So let’s take a glimpse at how product customization works in Drupal Commerce 2.0.

Product customization in Drupal Commerce 2.0

The new version of Drupal Commerce offers a better user experience as well as a new product architecture. In Drupal 7, all products had to be created in their own UI. In the eighth Drupal version, you can easily and quickly create product variations of the same product right away and customize them to your liking.

Unique product variations

Everyone loves a broad range of choices. Your products may (as products usually do) come in various colors, sizes, etc. In Drupal Commerce, these are called product attributes. Each attribute has values (for example, S, M, L for size or red, green, blue for color).

A combination of these attribute values makes a unique product variation. For example, a red, S-size sweater is a product variation that has the “red” value for the “color” attribute and the “S” value for the “size” attribute.

Each product variation is assigned its own SKU (machine-readable ID). Among other benefits, SKU lets you easily track how many products of each variation has been purchased and how many remain in stock.

Product creation and customization: a little step-by-step “crib”

  • Creating product attributes. First, in admin/commerce/product-attributes, create product attributes and define their values. You can configure the options display for the buyers in the cart, drag to reorder the values, make them translatable and more. For extra customization, use fields.
  • Creating product variation types. Next, in admin/commerce/config/product-variation-types, create product variation types and add attributes to them. You can also add fields, like an image field.
  • Creating product types. In admin/commerce/config/product-types, you can create product types and select the newly created variation types.
  • Creating products and their variations. Finally, in admin/commerce/products, create new products by filling in all the required information (description, price, SKU, and more). Use the “Add new variation” button for multiple variations.

The Commerce Fancy Attributes built-in module

Let’s return to our attributes for a second. Thanks to the Fancy Attributes module now built into Drupal Commerce 2.0, you can display creative selectors for product attributes. For example, you can show a color swatch to your customers instead of just a color list.

The Commerce Customizable Products built-in module

Here is another interesting novelty among built-in Commerce 2.0 modules. It’s not just you and your website’s editors who can product customization. Buyers can do it, too (for example, visiting cards require a contact information and a logo). Here is a module that lets your buyers customise products during the checkout process.

The automatic SKU generation option

There is also a contributed module called Commerce AutoSKU that will generate SKUs for you automatically based on the product field values. You can configure the SKU generation pattern for each product type. The Token module will be additional help in this process.

Final thoughts

This has been a short glimpse at product customization opportunities in Drupal 8 online stores, which are truly endless. To organize this process exactly in accordance with your preferences, or get a fresh new online store, contact our Drupal developers who know Drupal 8 well and love Commerce!

Nov 28 2017
Nov 28

In every corner of the world, your potential customers are waiting for your website to start “speaking” their language. And it’s easy to provide that with Drupal 8, a true polyglot among CMSs. Unmatched multilingual capacities are among Drupal 8’s most lucrative features that inspire website owners to choose “the great eight” — either to get a website or to upgrade their existing one. Well, it’s really hard to resist! Just as we cannot help giving these multilingual improvements a little overview.

The multilingual sensation of Drupal 8

In Drupal’s previous version, Drupal 7, multilingual features required installing dozens of contributed modules and making plenty of complicated configurations.

Changing this was the dream of the Drupal community, which started the Multilingual Initiative (D8MI), led by Gábor Hojtsy of Acquia and contributed to by over a thousand enthusiastic developers.

The results are stunning! Drupal 8 understands languages at all levels, since it has a language-first approach. And you will immediately understand what this means when you hear the names of the four core modules that contain Drupal 8’s multilingual capacities: Language, Configuration Translation, Content Translation, and Interface Translation. They let you translate anything!

Translating your interface, configuration, and content

You can feel it already the moment you install Drupal 8. It lets you select your language from an impressive list of a hundred languages, and even gives you a hint by looking at your browser language. If you select a language other than English, Drupal automatically downloads the latest available interface translations from https://localize.drupal.org/. You can then go through the installation and setup process in your own language with no need for a dictionary. This includes RTL (right-to-left) languages.

But it’s just the beginning. You can stay with that single language, or you can choose to add more languages to your Drupal 8 website and make it multilingual. The four above-mentioned multilingual core modules are waiting to be enabled by you and set the wheels turning.

Then, in Configuration — Regional and Language — Languages, you can add any languages you wish to your site, and just watch Drupal download the available interface translations!

They will be displayed in percents next to the language, so you can click on this figure and translate the rest manually. But, most likely, you will be lucky, and almost everything will be translated:

You will also be able to set the default language, provide language switching on your website, set up language detection and selection, and more.

Then, of course, everyone is interested in translating the content. In Drupal 8, it’s possible to make any content translatable — nodes, user profiles, menu items, comments, contact messages, taxonomy terms, and much more. You can set up in every detail, field by field, what should be translatable and what should not, in Configuration — Regional and Language — Content Translation.

In addition, Drupal will let you translate the configuration, like image styles, content fields, account settings, user roles, comment types, and much more, in Configuration — Regional and Language — Configuration Translation.

And you also get a handy user interface for user interface translations! It enables you use the available translations, correct them to your liking, or add your own.

You are absolutely free to decide in every detail which elements should be multilingual on your website, according to your needs.

Wrap-up

This is just a little drop in the ocean of Drupal 8’s multilingual opportunities. For making your website awesomely multilingual, building a shiny Drupal 8 website, or migrating to “the great eight,” you are welcome to contact InternetDevels developers!

Nov 21 2017
Nov 21

The unmatched capabilities to interact with other systems is listed among Drupal 8’s best improvements (along with the Views and BigPipe in core, easier migrations, handier configuration management, excellent web accessibility, and much more). And there are various ways to provide great performance in this interaction. One of them is the new and fresh module called Subrequests. We will briefly get acquainted with the Subrequests’ principle of work and features for speed enhancement today.

Drupal 8 and third-party integration

Let’s first take a glance at your Drupal 8 site’s ability to share its data to any external systems you need. These can be native mobile applications on Android or iOs, super dynamic JavaScript apps (based on Angular, React, Node, Ember, Backbone, etc.), or any other third-party systems.

Among other things, this lets you use the trending “headless”, or “decoupled” approach, when Drupal serves as a back-end and outputs its data to some front-end system for the sake of exceptional speed, interactivity, real-time features, and more.

The key thing here is to present Drupal’s HTML data in the formats needed by these applications (JSON, XML, or HAL+JSON). Just like good interpreters help people who speak different languages, there are high-class “synchronous interpreters” between Drupal and third-party apps.

These great assistants transform the data into the required formats. The Drupal core now has a “team” of these built-in. These are web services: Serialization, HAL, RESTful Web services, and HTTP Basic Authentication.

In addition, there also are great contributed modules, one of which we will present right now.

Subrequests module and its performance-improving mission

How to help the “synchronous translation” work exceptionally fast? Here is where the Subrequests module comes in.

The Subrequests module groups any sets of requests together, with absolutely no limitations. Thanks to this aggregation, all JSON API requests are sent in just one. The absence of round-trips for fetching Drupal’s data greatly improves performance. Drupal bootstrap is only needed once.

The single request contains all the information that the app needs from Drupal. It’s kept in a JSON document called “blueprint.” The blueprint lists multiple subrequest objects.

The Subrequests module allows for very handy options like sending parallel requests, sending requests that depend on the response to previous request, and more.

Installing the Subrequests Drupal 8 module

This module did not exist in Drupal 7. Subrequests are a true novelty of Drupal 8, with its 8.x-2.0-beta3 released just a month ago.

For efficient work, the module needs some external PHP libraries. So to install the Subrequests module with all these libraries, you could use this Composer command:

composer require drupal/subrequests:^2.0

More technical details along with the code samples can be found in the article of the module’s maintainers, Lullabot, and on the module’s drupal.org page.

Wrap-up

To get the best of the Subrequests Drupal 8 module, create custom solutions for your website’s great performance and handy integration, or migrate to Drupal 8, contact InternetDevels developers. Get more news from our newsletter and on our social media pages!

Nov 17 2017
Nov 17

Even when salt, shells or stones were used instead of money, the most successful sellers were those relying on marketing and analytics! After, it was always important to find ways to persuade people to buy goods, as well as to figure out which goods were most in demand. Today, with modern online stores and platforms such as Drupal that are great for e-commerce, the importance of marketing and analytics remains the same. But the tools for them have become far more advanced! In today’s article, we’ll cover some special Drupal modules of this kind.

Nice marketing & analytics Drupal modules for e-commerce sites

You could bring your online store’s usability sky-high, provide perfect display on mobile phones, and make it impeccable from shopping cart to checkout (as shown by the examples of famous e-commerce websites). But even this is not enough.

It’s the marketing and analytics tools that will be the missing piece in the puzzle of your e-commerce website’s success!

Let’s see at least some of them right now. You will find modules both for online stores built on Ubercart and on Drupal Commerce.

Ubercart Early Bird Discount

Encourage your customers to be early birds that catch good discounts! Here is a module for the Drupal store on Ubercart that lets you easily create discounts with a particular end date, as well as set discount amounts in currency or by percent.

Commerce Wishlist

With the help of this handy tool, you can get a Wishlist on your Drupal Commerce store. It provides an “Add to Wishlist” button for products, builds a customizable list of “wishes,” lets users quickly move products from their Wishlist to their cart, etc.

Ubercart Recommender

We recommend you consider this module for Ubercart that allows you to give purchase recommendations to your customers. There are two types of recommendations: those based on the user’s purchasing history and on what other shoppers “also chose.” It works with the Views and is highly customizable.

Commerce Recommender

Here is a similar module for Drupal Commerce. It also gives recommendations on the basis of purchases. If a user has no purchases, nothing will be displayed in the first type of recommendations. To fix this, you could also consider using the Browsing History Recommender module, which uses viewing history instead of the purchasing history.

Commerce Google Analytics

The Commerce Google Analytics module lets you send your order data to Google Analytics. Using Rules, you can determine when to send this data. GA Push integration is one of its additional useful features.

Who Bought What|Ubercart

Get some priceless information to use in your marketing campaigns by discovering “Who bought what.” This special tool will give it to you as a handy list containing all the shoppers’ name, purchase amount, and all other attributes.

Commerce MailChimp

Here is a handy way to track the statistics on your MailChimp e-mail marketing campaigns. The Commerce MailChimp module that offers integration with the popular MailChimp’s eCommerce360 tool.

Commerce Campaign Monitor

Here is a module that smoothly connects your Drupal Commerce website to Campaign Monitor and lets your customers subscribe to your mailing list after the checkout.

Mailjet

You can effortlessly send triggered marketing emails to your customers about abandoned cart and more via the Mailjet. In addition, it lets you track the sales generated by each of your newsletters.

MailUp Newsletter Module

This is a tool that provides the integration between your Drupal online store and the MailUp email marketing platform. Its great features include multiple newsletter subscriptions, extra subscriptions options, automatic data transfer and synchronization between Drupal and MailUp, and much more.

Commerce Reporting

An advanced reporting system included in one module is at your disposal. It gives you table-based and filterable reports about sales, customers, products, payment methods, and more. You can manage all reports in the same handy dashboard, export them as CSV files, etc.

Commerce Conversion Tracking

You can easily track conversions in your online store with Google Analytics, Clicky, or other system of your choice, if you use the Commerce Conversion Tracking module.

Wrap-up

These are just a couple of cool marketing and analytics Drupal modules in e-commerce. In addition, custom ones can also be created, which will work exactly how you wish. For creating custom modules or building a Drupal online store from scratch, you are welcome to contact our developers. Enjoy the age of e-commerce with its modern tools!

Nov 03 2017
Nov 03

When does “smaller” mean “bigger”? When your images grow smaller to perfectly adjust themselves to various devices, while your user satisfaction, audience coverage, website’s speed, and profits grow bigger. A nice formula, isn’t it? This magic ability of images to adjust themselves to screens is how responsive web design works. And it works especially well in the latest Drupal version, Drupal 8, which has built-in support for responsive images. That’s what we’re going to discuss right now.

Responsive images: impeccable in Drupal 8

What does Drupal 8’s native support for responsive images mean? Using Drupal out-of-the-box, you will see that its built-in themes are already fully responsive and look awesome on all devices.

Any other theme can be configured in the same way, since Drupal 8 offers modern and convenient built-in tools for responsive image setup. Let’s take a look.

Drupal 8’s native tools to configure responsive images

These tools include the Breakpoint and the Responsive image modules that have become part of Drupal 8’s core. The Breakpoint module is even enabled by default. The Responsive image (formerly knows as the Picture element module) needs to be enabled by you, though.

Together, they let you set up the responsive output of images on various devices depending on their screen width. The images can be both resized and elegantly cropped. Forget about a heavy 2000px banner on a mobile screen. Those days are past!

Responsive images of appropriate sizes will be displayed according to the breakpoints that you define. Defining breakpoints means choosing window widths at which your image size should change (for example, min-width: 600px). Let’s briefly look at the process.

A glimpse at responsive image setup process in Drupal 8

  • Defining the breakpoints. You can define breakpoints in the YAML file (yourtheme.breakpoints.yml) in your theme’s folder, and organize your breakpoints into groups.
  • Creating the image styles for breakpoints. For each breakpoint, you will need to create an image style here: Configuration — Media — Image Styles. Use the “crop and scale” effect.
  • Creating your responsive image style. In Configuration — Media — Responsive Image Styles, the "Add responsive image style" button will help you put all these styles together to create your final responsive image style.
  • Selecting the style for your field. The final step is to use your style for your actual image field: go to Manage Display — Format — Responsive image and select your responsive image style. Done!

Retina: when “bigger” means “bigger”!

In some cases, the ability of images to get bigger is as important as their ability to get smaller. A great example are HD/Retina displays that have a very high resolution. Here, it’s a great idea to provide a larger image style that’s twice the size using a 2x multiplier in breakpoints. And, of course, the quality of your original images should be impeccable.

Wrap-up

Responsiveness is among Drupal 8’s numerous improvements, for which our two overviews (1 and 2) were not enough. More interesting stories, news, and examples are waiting for you in our newsletter and on our social media pages.

And if you need help with configuring responsive images in Drupal 8, or are thinking to migrate to the latest Drupal version, feel free to contact our developers. Everything’s gonna be responsive!

Oct 27 2017
Oct 27

The Views module lets even non-developers organize and present the website's content in the desired ways. Website administrators love it, Drupal newbies start with it, and Drupal ninjas perform miracles with it. No wonder it used to be the most downloadable contributed module. Well, it still is — in Drupal 7. But, with the arrival of Drupal 8, it got an even higher position — the Views became part of Drupal 8 core, so it no longer needs to be downloaded separately. The Views “inside Drupal” is listed among Drupal 8’s best improvements. Let’s discover a couple of special capabilities of the Views that will let you enhance your Drupal 8 website.

The Views: a true behind-the-scenes architect for websites

Lists, graphs, maps, tables, blocks, calendars, comments, contact forms, photo galleries and carousels, blog posts… The Views module shapes all this and much more with the data it fetches from the database. It looks attractive!

However, despite the name, the essence of Views lies much deeper than the attractive content presentation. Its behind-the-scene work is priceless. The module lets you not just list your entities, but also filter and sort them in all kinds of ways, change attributes, create relationships, and give or deny user access. The Views caches the data to improve your website’s performance. The list could go on. Here are a few examples of its special capabilities.

Some special ways to use Views on your Drupal 8 website

Views and REST export

Share your content with some other system — for example, a mobile application or one built on the basis of JavaScript. It’s possible to output your views in JSON, XML, HAL+JSON, or other non-HTML formats.

Setting up REST API export with Views is easier in Drupal 8 thanks to built-in web services like Serialization, RESTful Web services, HTTP Basic Authentication, and HAL. They need to be enabled.

The “Provide REST export” field is already included into the Views setting form and just waits for you to check it.

Using Views with a third-party data store

Your Drupal website’s “classic” SQL database is far from being the only possible data store for the Views. There are useful data source plugins ready for Drupal 8 — Views XML Backend, EntityFieldQuery Views Backend, Socrata, Elasticsearch Connector, Google Analytics Reports, and more.

Slideshows and carousels

Make your website even more attractive by creating slideshows and carousels, which can include various kinds of content and be responsive. Add-on modules for the Views like Views Slideshow, Slick Carousel, Slick Views, and Views Bootstrap will help you with it.

Contextual filtering

Among the great filtering and sorting options of the Views there’s an option to set up content-based filtering based on dynamic information. For example, you can display all content created by certain users. Contextual filters are very convenient because the values are fetched programmatically or via an URL.

Adding a relationship to Views

To present related content on your Drupal 8 website, it’s necessary to create a relationship to a view. Then you will receive information that is not contained in the base table selected during the Views creation. In the advanced settings of the “Display” page, you will find the “Add relationship” button and a selection of tables to pull data from.

Embedding Views

Sometimes it’s necessary to embed Views in your pages using PHP code. For this, there is a special views_embed_view() function.

Final thoughts

This has just been a very small collection of the Views module’s special powers. It also has many more to supercharge your Drupal 8 website with. Our Drupal developers are ready to use them to the full for your website’s benefits!

Oct 20 2017
Oct 20

Let’s talk about secret ingredients in menus. Like the right spices, they create special flavours that your guests really enjoy. When it comes to your Drupal website menus, the recipe is simple: just add some jQuery! Using the Superfish Drupal module, which integrates the jQuery Superfish menu plugin, you can create interactive multi-level menus with exceptional usability features. Let’s see how it works on Drupal 8’s example.

The Superfish Drupal module and its special menus

Drupal core provides easy ways to create multi-level drop-down menus with great customization opportunities. However, the Superfish module goes even further and brings menu interactivity to the next level.

The Superfish offers great web accessibility enhancements, which are so important for Drupal 8’s philosophy. Superfish menus are available to screen readers. They are keyboard accessible and touch-screen compatible.

These menus can automatically adapt their width to that of smaller screens. It’s also possible to make multi-column sub-menus, aka megamenus. The Superfish module also supports RTL (right-to-left) writing.

The “easing” effects by the jQuery Easing plugin are designed to make the animation more realistic.

And this is far from being the full list of the module’s benefits. So let’s move on to the practical part and create a menu with the help of the Superfish.

Creating a Drupal 8 menu with the Superfish module

Get the dependencies

First, let’s get the required dependencies for the module’s work.

  • Download the JavaScript library called Superfish library 2.x and place in the libraries directory of your Drupal root folder. Rename the folder to “Superfish”.
  • Optionally, you can also download the jQuery Easing plugin and unzip it to the libraries directory as well. The folder should be named “Easing”.

Get the Superfish module

With the dependencies installed, the way is paved for downloading and enabling the Superfish module on your Drupal 8 website.

Get your menu

You will need a menu to work with. To create one, go to “Structure” — “Menus” and click “Add menu”. Create the menu structure and then fill it with links leading to pieces of content. Check “Show as expanded” if the menu items have children links. Click save after each new change.

When the menu is ready, click “Structure” — “Block layout,” choose the place for your menu on your Drupal website, find your menu marked with the “Superfish” category on the list, and click “Place block”.

Make your Superfish settings

  • The “Configure block” window has plenty of settings to your liking. Here are some of the most interesting ones.
  • Your options for the menu type are horizontal, vertical, or “NavBar”.
  • Black, blue, coffee, white, or none will be your menu style choices.
  • You can also choose to add arrows or drop shadows.
  • Define your animation speed as slow, normal or fast.
  • The mouse delay is how long the menu stays open when the mouse hovers away.
  • You can configure the slide-in effects created by the jQuery Easing plugin.

And there are lots of other options related to touchscreens, smallscreens, multi-column submenus, extra CSS classes, and more.

Final thoughts

There is always a way to implement all your ideas about menus. Our developers will help you configure the Superfish or other Drupal 8 modules, or create custom ones specifically for you. Your guests have no chance to stay indifferent to your website — they will enjoy their navigation due to the attractive and interactive menus!

Oct 13 2017
Oct 13

Here is another recipe for success. You can have a whole team of websites playing for you, and they don’t have to be created from scratch or managed separately. The secret lies in Drupal’s well-developed multisite functionality. Thanks to this, Drupal will not only let you leave your competitors behind, but also multiply this effect by many times. Let’s see how the multisite feature works, when to choose it, and what benefits it brings. In addition, pick up a couple of useful multisite modules and tips.

The essence of Drupal multisite functionality

According to Drupal multisite architecture, you can have several sites running on the same codebase but having separate databases and configuration settings. They will share the same Drupal core, modules, and themes, but at the same time will be customizable to your liking.

For example, you can enable and disable the shared modules as you please. You are also free to decide whether you want to add some site-specific modules and themes. Welcoming the same users with single sign-on or not, sharing content across websites or not, creating a similar or different website’s look and feel — these are all options you have.

Like siblings in real families, multisites can look and behave alike or each have their own original styles. However, they definitely share their family DNA.

Hence the next main principles to stick to when deciding on multisite architecture: it’s best to choose it if your website family is going to have similar functionality, share important Drupal modules or use the same Drupal distribution. In these cases, it will be especially beneficial and easy to implement.

At least some of Drupal multisite benefits

No extra development costs

By setting up multisite, you save on development costs by not creating related sites from scratch.

Quick launch

Just like you don’t have to pay for creating websites from scratch, you don’t have to wait for it.

Brand consistency

With multisite architecture, it’s much easier to stick to brand guidelines on the design across websites.

Less efforts for website management

You will need less time, efforts and costs for your website administration, because you can do certain actions only on one without repeating them on all the others.

This includes:

  • website upgrades 
  • sharing content
  • making changes

and much more.

A couple of useful multisite tools and tips

Drush

Drush command-line interface is very useful for managing multisite deployments and upgrades. According to drupal.org, it lets you cope with 100 to 1000 websites, and this opportunity is widely used by university websites on Drupal. Multisite is a real salvation for them!

Sites.php

Using the sites/sites.php file in Drupal 7 and the sites/sites.example.php file in Drupal 8 to reference sites will help you more easily migrate between development, testing and production environments.

Contributed modules

Consider some Drupal modules that extra helpful. Thanks to the Domain Access module, you will be able to easily share configuration, users, and content between your affiliated sites. Menu Domain Access lets administrators decide which menu items to hide and which to show to users on selected domains. Apache Solr Multisite Search provides Apache Solr Search function across multiple sites. RobotsTxt will dynamically generate a different robots.txt for each member of your website family — and there also lots of others.

Wrap-up

Enjoy the multiple benefits of Drupal multisite! Our team is always ready to consult you and, of course, perform the smooth multisite setup.

Always stay up-to-date by subscribing to our newsletter!

Oct 05 2017
Oct 05

Every six months, there comes a fresh Drupal 8 minor release full of lucrative features — it’s the essence of Drupal 8’s continuous innovation policy. And another big day has come! Drupal 8.4.0 is out on October 4, making this autumn especially rich in gifts. Just two weeks after the appearance of Drupal Commerce 2.0 for Drupal 8 online stores, Drupal 8.4.0 takes its turn in the spotlight. Let’s see why.

The benefits of the newly released Drupal 8.4.0

Drupal 8.4.0 brings us noticeable enhancements in content editing, media handling, workflows, website administration, configuration management, migrations, third-party integration, performance and scalability, developer experiences, automated testing, and more. We go into the details below.

Easy updates and Drupal 8.4’s friendliness to predecessors

The idea of backwards compatibility with previous versions for easy upgrades is receiving a lot of attention in Drupal 8. Of course, Drupal 8.4 is backwards compatible with Drupal 8.3. This includes all public APIs, while internal APIs may require special attention.

Generally, updating between 8.3 and 8.4 should be as easy as updating between, say, 8.3.2 to 8.3.3. Websites should make this update, and enjoy all the improvements that come with!

New modules and Drupal 8.4’s love for experiments

According to Drupal 8’s policy, every minor release has a host of new and interesting core modules, which start out experimental and then reach stability. Drupal 8.4’s experiments have been incredibly lucky!

So let us introduce the team of newcomers to core. Originally experimental, these useful modules have become stable in Drupal 8.4:

Inline Form Errors

Users will easily learn about some entry errors thanks to the module that provides their summary at the top of the form. It also gives individual error messages for form elements. It’s all available to screen readers, which is a great web accessibility improvement.

Media

The Media module greatly assists the whole ecosystem of contributed modules based on Media Entity by offering an API for reusable media entities.

Datetime Range

The Datetime Range module allows you to provide an end date in contributed modules such as Calendar and the like.

Layout Discovery

The Layout Discovery module offers an API that provides compatibility between core and contributed layout solutions. It lets modules and themes register layouts.

Workflows

The Workflows module gives us a system of states that show progress (Draft, Archived, and Published). This is useful both for publishing and non-publishing workflows.

These modules are on the point of becoming stable:

Content Moderation

The Content Moderation module offers efficient ways of applying the Workflows module’s capabilities to content.

Settings Tray

This module improves the theming experiences by letting you configure blocks, menus and other elements from the frontend.

Place Blocks

Thanks to the Place Blocks module, you will be able to place a block on any page and immediately see where it is displayed on your website, without the help of your administration form.

Field Layout

The Field Layout module offers special opportunities in rearranging fields.

Migrate, Migrate Drupal, and Migrate Drupal UI

This “team” is responsible for providing a general migration API, migration support, and a handy user interface for migrations.

Drupal 8.4’s support for everything new

New Symfony, jQuery, and jQuery UI

Let’s take the best from Symfony and jQuery! The Drupal 8.4.x improvements, including the updates of Symfony to version 3.2, jQuery to version 3, and jQuery UI to version 1.12, are very helpful

Updating Drush

For working effectively with Drupal 8.4.x, you will need to update your Drush to 8.1.12 before you start using it.

No old browsers

Beginning with Drupal 8.4.x, there is no support for Internet Explorer 9 and 10. It will still be displayed on them, but no bug fixes will be made. Support will be removed totally in Drupal 8.5.x.

Wrap-up

This is just a glimpse at Drupal 8.4 improvements. If you need help updating your site to 8.4.0, or if you are considering an upgrade to Drupal 8 from Drupal 7 or 6, our developers are always here for you.

Sep 26 2017
Sep 26

We have a confession to make. Frankly, we’re becoming kind of shopaholics ;) After the release of Drupal Commerce 2.0, our passion for discussing and building cool Drupal 8 online stores keeps growing. But, considering the awesome modules for e-commerce in Drupal 8, it makes perfect sense!

The newly released Drupal Commerce 2.x is bursting with great features, and Ubercart for Drupal 8, in its alpha, is getting ready to catch up. These two modules represent whole e-commerce platforms.

In addition to these, however, there is a wealth of other helpful Drupal 8 contributed modules for online stores. While some of them are still in alpha or beta — their development will go quickly — we can take a look at a couple of examples right now!

Some Drupal 8 modules for e-commerce

Commerce Square Connect

It’s hard to imagine a Drupal 8 online store without good third-party integration. Here is a module that allows for online payments with Square payment gateway in Drupal Commerce. Tokenization, fraud monitoring, PCI compliance, and other features enhance payment security.

Commerce Stripe

This module brings Stripe, the famous payment platform, to Drupal Commerce. It has advanced tokenization functionality for safety. Without leaving your online store, users can pay with almost anything — from Visa to BitCoin.

Commerce Paytrail

Another payment gateway, Paytrail, formerly known as Suomen Verkkomaksut, could come to your online store with the help of the module of the same name for Commerce. It supports S1 and E1 payment types.

However, the talks about payment gateway modules for Commerce can be endless, since there also are Authorize.Net, SmartPay, Payeezy, Paytrail, Worldline, Amazon Pay, and many others.

Ubercart QuickPay

What about Ubercart? There is a bunch of online payment modules for it as well. One of them connects the Danish payment gateway, QuickPay, to your online store. It offers two payment options: QuickPay Embedded and QuickPay Form. Its benefits include multiple language support, safety features, payment refund support, and more.

Tawk.to Live Chat

Effective e-commerce is inseparable from real-time customer service. So you will need a handy and powerful live chat application. The special module, created exceptionally for Drupal 8, integrates the Tawk.to chat with your Drupal 8 online store.

VAT Number

The VAT Number module is responsible for providing a new "VAT number" field, checking VAT structure, verifying VAT against EU SOAP server, making sure it matches the shipping country, and other useful things.

Commerce Ajax Add to Cart

This tool allows you to harness the power of Ajax for your shopping cart. When new items are added, the information is updated without a page refresh, and a pop-up message informs you that you have successfully added something.

Commerce Shipping

The Commerce Shipping module provides the calculation of shipping rates for goods. It integrates shipping service selection with your checkout and order edit form. You can make your flexible settings in the user interface.

Ubercart Volume Pricing

Set an unlimited number of discounts for buying products in bulk. You can do it right from the product edit form thanks to the Volume Pricing module for Ubercart. It also lets you notify your customers about how much they could save if they buy more.

Easy CurrencyCON

This is a user-friendly currency converter for Drupal websites, which allows your customer to quickly convert any currency into any other. You can use multiple currencies at a time, as well as swap currencies.

Final thoughts

We promise you that you will never be able to tear your eyes from your magnetic and shiny Drupal 8 online store — soon you, too, will be addicted. Addicted? No, just in love!

Let’s discuss how you want your shop to look!

Sep 20 2017
Sep 20

It’s always been known that Drupal is a great choice for e-commerce websites. The cool online stores built with Drupal are a proof of that. However, in Drupal 8’s younger, shy days, described in our interview with the famous drupaler Andypost, the new e-commerce functionality wasn’t fully ready. At that point, it didn’t make sense to build online shops with “the great eight.” Those days are long since gone! On September 20, the long-expected Drupal Commerce 2.0 for Drupal 8 has been released. However, even before the steady release, over 1,500 websites have begun using it.

Drupal Commerce 2.x has so many cool features that it makes you dizzy, like looking at the window display at a luxury store. The recent release candidate 1, release candidate 2 and release candidate 3, with their fresh updates, have become the final steps towards the stable Drupal Commerce 2.0. Now it’s time to celebrate — Commerce 2.x parties are starting across the globe!

Let’s look through some remarkable features of Drupal Commerce 2x, as well as point out a couple of freshest improvements.

“New arrivals!” or some benefits of Drupal Commerce 2.0

Easier installation: Ludwig as an alternative to Composer

Traditionally, Drupal Commerce 2.0 is installed with Composer, but it is not always easy. Maybe a handy GUI will be built in the near future, but right now, a fresh alternative to Composer has been released by the Commerce creators. Now you can use Ludwig to manually install the required libraries.

Over 30 payment gateways and handy integration

Improved APIs for Drupal Commerce 2.x significantly reduce the development time for integrating payment gateways. In addition, over 30 special modules make it easy for Drupal 8 e-commerce sites to work with the payment gateways, and all of the modules have been freshly updated and are ready to go!

Which payment systems do you prefer? The choice is as broad as an online store’s product range! PayPal, Authorize.Net, Payplug, Braintree, Square, Stripe, Ingenico, Alipay and Worldline are just the beginning of the list. Other payment methods are also possible like cash on delivery, card on delivery, check, bank transfer and more.

Handy user interfaces are provided for managing payments. To ensure better payment security, there is tokenization support (replacing credit card data with so-called tokens that are useless to trespassers and are handled by the payment provider).

Cool checkouts

On your Drupal 8 online store, you can configure multiple checkout processes for different order types. This includes the number of steps required from the user, the information they have to provide, the possibility to buy with no registration and much more. By the way, for a better user experience, addresses can now be reused for your returning customers.

“Smart” taxes

The right taxes will be automatically included in the product prices. This is due to useful plugins with a whole collection of tax rates, third-party services like Avalara, and the ready logic for using it all. Your online store’s home country, its country of registration, the user’s location, the physical or digital product type and other factors can be taken into account. Configuration options are really flexible.

Multiple stores

Handling multiple e-commerce stores is a breeze now. You can define special settings for each online store (contact information, default currency and more). Cross-selling the same products in different e-shops is also possible.

Products and their variations

You can comfortably create and edit product variations, different by such product attributes as color, size, pattern or whatever. Each product variation has its own machine-readable ID, or SKU. There are great opportunities for inline editing.

And more

Other Drupal Commerce 2.x niceties include an improved UI to create discounts and coupons, better currency management, helpful Twig templates, and so much more.

It’s time to see your e-shop cart bursting with orders!

Well, this has been just a brief review of Drupal Commerce 2.x novelties. Believe us, your shiny, modern, easy to use, and powerful Drupal 8 online store will be capable of absolutely anything! For building one from scratch or adding Drupal Commerce 2.x functionality to your existing Drupal 8 site, contact our developers.

PS. Attention for the most tech-savvy readers! Much water has passed under the bridge since 08/2016 (the times of Drupal Commerce 2.х beta 1), but we still cannot help offering you this blog post by our developer with instructions on setting up an online store with Drupal Commerce 2.0. Click on it, and take the best from it.

PPS. To never miss an interesting update by staying with us on Telegram, Facebook, Twitter, Google+, LinkedIn, and receiving our official newsletter.

Sep 15 2017
Sep 15

Drupal 8’s “fruitful fields” of opportunities are endless — so let’s take another walk through them! It lets you optimize your website’s performance with the BigPipe module in the core, boost your SEO with a host of useful modules, improve your website’s upgrade process, bring order to user roles and permissions, enjoy an easier configuration management, get in line with the latest web accessibility standards, and that’s just the beginning of the list. Along with everything else, Drupal 8 also lets you create custom field formatters, so today we’ll take a glimpse at what they are and how you can build them.

Field formatters in Drupal 8 and what they do

In accordance with Drupal 8’s architecture, field formatters are plugins — and pretty useful ones at that. Their main job is to tell Drupal how the field values should be presented to the website users, as well as what options there are to configure this display. This should be useful and engaging for end users and fully reflect your ideas. To have absolute freedom in the implementing this, you can create your custom field formatter plugin in Drupal 8.

A few tips on creating custom field formatters in Drupal 8

Creating your module

Everything starts with a module — this is Drupal, after all! You need first to create a module that will “host” your field formatter code. To implement it, create this folder structure inside your new module’s folder:

MyModule/src/Plugin/Field/FieldFormatter

Creating your field formatter class file

OK, the folder is ready — you can now add a new field formatter class file (one for every formatter you build):

MyModule/src/Plugin/Field/FieldFormatter/MyFormatter.php

The namespace should look like this:

Drupal\MyModule\Plugin\Field\FieldFormatter

Plugins are classes, and so they extend from each other. Your field formatter class should extend the \Drupal\Core\Field\FormatterBase class. MyFormatter class name should reflect what the formatter does, and, most importantly, end with a “Formatter” suffix.

Making an annotation

Annotations are a great OOP practice in Drupal 8 because they contain the class metadata. To help your new plugin get discovered, you need to make the @FieldFormatter annotation. It should contain the most important data about your new field formatter such an ID (machine-name), a label (human-readable name), and the types of fields it is used for.

Using methods

The settingsForm() method will let you define specific options, and the settingsSummary() method is responsible for informing end users about the formatter settings. The viewElements() method deals with rendering the field data.

Walking deeper into the fields

If you are interested in deeper insights into to Drupal field formatting, check out blog posts by our developers about the Field API in Drupal 8 (custom formatters and widgets), as well as the Field Image Tooltips module. The latter has been created by one of our teams, and deals with adding images with tooltips that are available both for Drupal 7 and Drupal 8.

Hopefully, you enjoyed this little walk through the fields (or their formatters) in Drupal 8. Our developers are ready to help you in creating custom field formatters, moving your website to Drupal 8 to let you enjoy the innovation, or building an entirely new site for you. Be ahead of the field with Drupal 8! Let’s discuss it right now.

Sep 05 2017
Sep 05

Greetings to everyone! It looks like “8” is a lucky number and 8/2017 is a lucky month for drupalers. By taking a little extra energy from the sun (which is pretty environmentally friendly), the Drupal community has made so many awesome things! It feels like yesterday that we offered you the July 2017 Drupal news summary, and now we’re moving on to the wrap-up of the hot and productive August 2017.

What’s new with Drupal in August 2017

New releases of some Drupal modules

  • A hot month with hot releases! It’s a true embarrassment of choices. Let’s have a little “tasting session” and appreciate at least a couple of examples:
  • The new version of Drupal developers’ favorite assistant, Devel 8.x-1.0, has rolled out with plenty of fanfare. It features Drush 8 and Drush 9 support, new Twig extensions for debugging, and much more.
  • Especially those interested in headless (or decoupled) Drupal projects, will be happy to see the GraphQL module in its new and improved 8.x-3.0-alpha5 version.
  • Providing meta tags for your website has become more convenient due to the Metatag 8.x-1.2 version. It features bug fixes and initial JSON support.
  • What about building attractive web forms? It’s a breeze with the entirely new code base of Webform 8.x-5.x. Here goes its beta16 release with lots of updates.
  • Clear external caching systems in accordance with Drupal 8’s new cache architecture. For this purpose, you have a new and improved Purge 8.x-3.0-beta8.
  • The Workbench, a whole suite of modules to make content management processes more convenient, has introduced its new release in August — 8.x-1.0.
  • Websites now “socialize” even better thanks to the Social API’s 8.x-1.1 release. This module is part of the Drupal Social Initiative, and is now compatible with Social Auth 1.x.
  • You will appreciate working with local and external libraries using the Bootstrap Library 8.x-1.9 release that has Bootstrap 4 beta version added in August.
  • Running Cron jobs is now easier both in Drupal 7 (due to the option to disable the execution of scheduled jobs in 7.x-2.5) and in Drupal 8 (due to numerous bug fixes in 8.x-2.0-alpha2).

Drupal security fixes for your good night’s sleep

Drupal is a solid fortress, whose guards are always on the look-out. The Drupal Security Team has “caught” a number of security vulnerabilities (ranging from moderately critical to critical) and made fixes to them.

The long-expected Drupal 8.4: alpha becomes beta

We are steadily moving towards Drupal 8.4. The previous step was Drupal 8.4.0 alpha1, and now August brings us Drupal 8.4.0-beta1. Hopefully, these steps will finally lead us to the stable 8.4 release in October!

Summer, bye till next year! Internet Explorer 9 and 10, bye forever!

August 2017 was time to say goodbye to Internet Explorer 9 and 10. Beginning with version 8.4, Drupal stopped official support for them, so no public bug reports will be received by the security team. Hopefully you’re not upset? ;)

Drupal should know its heroes

To be a Drupal hero, no one needs a Superman cape. There are so many awesome drupalers who help develop Drupal in various ways every day! And the Drupal Association is re-launching a program to highlight these real Drupal heroes. Wanna join the special committee on this? The Association welcomes you!

The wrap-up of the wrap-up

Here is our August 2017 Drupal news summary. Is there anyone regretting the end of summer? If you are, there’s no need to be blue — every drupaler know that the autumn’s gonna be rocking! Take the best from what Drupal offers, enjoy new features or an entirely new website, and know you can always rely on our expert Drupal team.

Pages

About Drupal Sun

Drupal Sun is an Evolving Web project. It allows you to:

  • Do full-text search on all the articles in Drupal Planet (thanks to Apache Solr)
  • Facet based on tags, author, or feed
  • Flip through articles quickly (with j/k or arrow keys) to find what you're interested in
  • View the entire article text inline, or in the context of the site where it was created

See the blog post at Evolving Web

Evolving Web