Jan 17 2020
Jan 17

The World Wide Web with no barriers could be an amazing place for everyone. What about your website — does it follow the web accessibility guidelines?

Our web team respects accessibility and is always ready to help you make your website accessible. We also love to share tips about creating accessible content and making your images accessible in your team’s everyday content editing practices.

This post will sum up everything you wanted to know about accessibility (a11y for short): what it means to make your website accessible, what accessibility tools there are based on your site’s CMS (Drupal modules and WordPress plugins), and much more.

What does it mean for a website to be accessible?

An accessible website is one that is available to all users regardless of their visual, auditory, cognitive or motor disabilities. It is friendly in every aspect — from color contrasts to keyboard navigation.

No user is left behind — the site’s content and UI are easy to comprehend and control in various alternate ways including via assistive technologies.

Why is accessibility important for a website?

  • Website accessibility (a11y) enhances your brand’s reputation because it shows your attitude. According to the Centers for Disease Control and Prevention, roughly one in four adults in the US has some form of impairment. Most people have a friend or acquaintance with a disability, and they appreciate your willingness to follow the guidelines.
  • Make your website accessible and stay protected against possible legal proceedings. The Americans with Disabilities Act (ADA) prohibits the discrimination of people with disabilities. It states that everyone should be provided with equal access and opportunities. Based on this, the world sees a rising number of lawsuits against businesses with inaccessible websites.
  • An accessible site gets a much larger reach. To estimate the figures, consider the above mentioned quarter of the US population and add users with situational issues. These may include broken arms, tired eyes, or even just the need to use your site’s content in a non-native language. In all these cases, users will love your accessible site.
  • By making your website accessible you boost your SEO. Being ready for assistive tools is in many ways similar to being ready for search engines. ALT tags describing the images, clear meta descriptions, video captions, a clear menu hierarchy, and other a11y practices are good SEO practices as well.

How do I add accessibility to my website?

To make your website accessible, you should follow the WCAG (Web Content Accessibility Guidelines). They are the international web standards embracing every aspect of your site’s interaction with users who have an impairment.

The WCAG has been brought to us by the Web Accessibility Initiative (WAI) of the World Wide Web Consortium (W3C). They are based on four key principles:

  • Content perceivable
  • Interface elements operable
  • Content and controls understandable
  • Content robust enough

WAI has also developed ARIA (Accessible Rich Internet Applications Suite). This is a suite of attributes that make interfaces, especially rich and interactive ones, more understandable to assistive devices. WAI-ARIA attributes (roles, states, and properties) can be added to the HTML markup.

Considering all the above, here are some of the key things required from you to make your website accessible:

  • text equivalents for non-text content (ALT tags for images, captions for videos, transcripts for audios, etc.)
  • the proper HTML markup (with the use of WAI-ARIA where necessary)
  • logical layout
  • keyboard controls
  • clear field labels
  • informative error messages
  • clear and simple language
  • informative link texts
  • sufficient color contrasts
  • text resizability
  • adjustable audio volume
  • no auto-playing media
  • more time to complete regular actions

and much more.

Tools to make your Drupal or WordPress website accessible

If your site is built with a CMS, you are in luck because it should have built-in or add-on plugins to make your website accessible. They are simply installed and configured on your website and take care of various a11y aspects.

Since our agency’s main expertise is Drupal and WordPress, we will list a bunch of helpful extensions for both these CMSs — Drupal modules and WordPress plugins that make your website more inclusive and compliant.

Drupal accessibility modules

Automatic Alternative Text

The Automatic Alternative Text module generates alternate texts to describe images using the Microsoft Azure Cognitive Services API. This is an example of how artificial intelligence helps you make your website accessible.

Automatic Alternate Text - Drupal accessibilty module

CKEditor Accessibility Checker

It’s important that you make your content accessible in everyday editing practices. The CKEditor Accessibility Checker module inspects the content created in Drupal content editor, as well as immediately resolves the issues found. The module may soon become part of the Drupal core.

CKEditor Accessibility Checker Drupal module

Block ARIA Landmark Roles

The use of WAI-ARIA in your site’s markup becomes more advanced with the Block ARIA Landmark Roles Drupal module. Every block in your site’s layout can be assigned an ARIA landmark role and/or ARIA labels directly in the block configuration form.

Block ARIA Landmark Roles - Drupal accessibility modules

High contrast

The High contrast module enables users to switch between the active theme on your Drupal site and a high contrast version of the theme. This will make your website more accessible to users with eyesight problems.

Text Resize

Since adjustable text size is one of the requirements to make your website accessible, the Text Resize module is very helpful. It provides website visitors with a block that has two buttons to make the font size larger or smaller.

Text Resize - Drupal accessibility modules

Text Size (Drupal 7 only)

The Text Size module serves a similar mission. It provides an adjustable text size changer or a zoom feature. Though its zoom capabilities are similar to text zoom in Firefox, the module can also work with variable media objects, pixel images, and vector images.

Text Size - Drupal accessibility modules


The proper HTML markup is essential in making your website accessible. The htmLawed Drupal module gives you the highly customizable control of your HTML. It uses the htmLawed PHP library to restrict and purify the code.

htmLawed - Drupal accessibility modules

WordPress accessibility plugins

WP Accessibility

The WP Accessibility is a multi-functional plugin to help you make your website accessible. Its wide range of features includes enabling the skip links, enforcing ALT tags on images, adding language and text direction attributes, providing a font size and color contrast toolbar, and more.

WP Accessibility Helper (WAH)

Here is another multipurpose plugin with basic a11y tools — WP Accessibility Helper (WAH). It adds a user-friendly accessibility toolbar to your site. Among its key features are skip links menu, adjustable fonts and color contrasts, accessibility error scans, and more.

WP Accessibility Helper (WAH) plugin

Accessibility by UserWay

The UserWay plugin provides smoother browsing experiences on your website, paying great attention to keyboard navigation. It performs smart modifications to your site’s elements in order to make them more compliant with the a11y requirements.

Accessibility by UserWay WordPress plugin

Accessibility Widget

The Accessibility Widget plugin adds a sidebar widget to allow users to easily make the text size larger or smaller in your WordPress website. To achieve this, it offers the “Small”, “Medium” and “Large” text options.

WCAG 2.0 form fields for Gravity Forms

The WCAG 2.0 form fields for Gravity Forms plugin makes the forms created by the famous Gravity Forms builder more accessible on your site. It wraps form fields in a fieldset, adds ARIA attributes, gives on-page error messages with the number of errors and links to them, etc.

WCAG 2.0 form field for Gravity Forms WordPress plugin

Screen Reader WCAG Accessibility Tools

Here is a plugin that makes your website accessible by adding a text-to-speech engine to it. The Screen Reader WCAG Accessibility Tools plugin can read the text in 50+ languages. However, the free version of the plugin is limited to 100 characters.

WP Accessibility Tools & Missing Alt Text Finder

Here is a plugin that helps you make your website accessible in a number of ways. The WP Accessibility Tools & Missing Alt Text Finder offers a missing alt text finder, contrast ratio checker, compliance checklist, automated accessibility audit, and more.

WP Accessibility Tools & Missing Alt Text Finder WordPress plugin

SOGO Accessibility

The SOGO Accessibility plugin for WordPress scans your website’s code and adds the accessibility support automatically. It uses JS and CSS to improve or enable accessibility features.

SOGO Accessibility WordPress plugin

Our experts are ready to make your website accessible

Hopefully, this article has provided a good review of the basic accessibility principles, requirements, and tools based on your CMS.

The above listed Drupal modules and WordPress plugins are just a few of the many. Our web development team can select or create from scratch the ones that will suit your website best. Let us make your website accessible in every aspect!

Jan 11 2020
Jan 11

Your website can be the mirror of your business ideas reflecting them in every detail. Displaying data exactly in the desired ways makes your website more user-friendly. Today, we discuss how relationships in Drupal 8 Views can be helpful if you want to show related content. The video will make our story more vivid.

Benefits of showing related content

By showing related content we mean including the content somehow related to the main one into the page display. It’s great when you can show, for example, the favorite articles of a user, the reviews and blog posts about a product together with their author pictures, and so on. The unquestionable benefits of showing related content are:

  • the pages look more interesting
  • this creates a richer content ecosystem
  • users are kept engaged and stay on the site
  • your website’s session duration increases
  • the chance for conversion grows

Luckily, there are great tools for this. Relationships in Drupal 8 Views allow you to show related content in very flexible ways with no limits to your ideas. Let’s get acquainted with them step by step.

What are Views in Drupal 8?

Whatever Drupal website you see, many of its pages are likely to be built with Views. Drupal Views is the SQL query builder that fetches data from your website’s database (content, users, comments, etc.) and displays them on your site as a data collection.

Example of Drupal Views on a website

This does not require coding — Views has a user interface to configure which data you want to display and how. You can sort and filter the results, choose to show dynamic data via contextual filters in Drupal 8 Views, and so on.

The Views is built into Drupal and does not require installation, which is among the best Drupal 8 benefits. However, dealing with Drupal Views requires a profound understanding of Drupal and should better be entrusted to a web development team.

What are relationships in Drupal 8 Views?

When created, every Drupal view is configured to retrieve the data from a particular database table.

Choosing base table in Drupal 8 Views

To create richer displays and show related content, relationships in Drupal 8 Views connect your initially chosen table to others. So, thanks to relationships added, the view becomes able to display the data from different tables together.

Here are a few scenarios when relationships in Drupal Views can help you show related content. For example, you can:

  • show related author pictures in articles
  • show related user pictures in comments
  • show related favorite content in user profiles
  • show related real estate properties in owner profiles
  • show related user mentos’ pictures in user profiles

and much more.

How to use relationships in Drupal 8 Views?

Let’s create relationships in Drupal 8 Views that will help us display customer reviews together with their pictures. We will need to show the data from the “Content” table together with the related data from the “Users” table.

1. Creating the Review content type

Let’s go to Structure — Content types and create a new content type called “Review.”

Creating a Drupal 8 content type

2. Adding a user field

Our reviews will belong to particular customers who are users on the Drupal website. So we need to add a “user” field to the Review content type. It will be a referenced entity. We will name it “Review author.”

Adding a referenced entity user field to a Drupal 8 content typeGiving a name to a user field in a Drupal 8 content type

3. Adding test reviews

For testing purposes, we then add a few actual reviews in “Add content — Reviews”. We assign a different test user to each of them in the “Review author” field.

Adding Drupal content with the author field

4. Creating a view based on reviews

In Structure — Views we add a new view:

  • give it a name “What our customers say”
  • set it to display content of the Review type
  • choose “create a page”
  • set its display format to “Grid of fields”
Creating Drupal 8 Views

5. Adding fields to the view

Our view is based on fields, so let’s add the ones we need:

  • review author
  • body

The review title, the default field for a content type, will not be needed and can be removed from our view.

Adding fields to Drupal 8 Views

6. Adding a relationship to the view

We will also need an author picture, for which we go to the “Advanced” section in Views, click on “Relationships,” and add a new relationship. By searching through the available options, we choose “User referenced from field_review_author.”

Adding relationships to Drupal 8 Views

By clicking “Add and configure relationship,” we are almost done — we may only check “Require this relationship.”

Then we come back to the Views fields and add the “User Picture” field. When configuring the field, make sure the “field_review_author” relationship is selected. To make all pictures look standard, apply an image style.

Adding user picture field to Drupal 8 Views that has a relationship

Now the user picture will be fetched to our page from every review author profile to make it all look much more colorful now. This is our page with customer reviews created via a relationship in Drupal 8 Views! But, of course, it is a rough version that needs good theming.

Drupal 8 Views with a relationship

Video about adding a relationship in Drupal 8 Views

It becomes a good tradition to share the information in a video, so enjoy watching our example of how to use relationships in Drupal 8 Views.

[embedded content]

Entrust our team with displaying your website’s data right

The above was a very simple example of how to use relationships in Drupal 8. There is really no limit to how your data can be displayed and your pages built. You can display related content in any way or anything else you might have an idea about.

Share your ideas with our Drupal maintenance and support team so they will come up with a good solution and bring it to life.

Dec 23 2019
Dec 23

Multilingual websites have clear business benefits. Customers who order website creation or improvement want the highest level of their user-friendliness.

Among the vital elements of an easy-to-use multilingual site is a language switcher. Let’s discuss what this switcher is, see beautiful examples of it, and review how it works in Drupal 8 — the best CMS for multilingual websites.

What is the language switcher?

A multi-language switcher is a UI element allowing users to view content in their preferred tongue. Switchers are included in the website’s header, footer, navigation, near the content posts, and more.

They can be in the form of buttons, dropdown menus, lists, flags, etc. The form doesn’t matter — it just needs to be obvious and convenient for users to switch between the versions.

Best Examples of Language Switch Designs


Germany’s version of the famous e-commerce platform offers a handy dropdown with radio buttons. The languages presented on amazon.de are German, Dutch, Polish, Turkish, and Czech.

Language switcher on the amazon.de website


Very user-friendly in its simplicity, the multilingual switcher on the Nokia Corporation’s website offers links to the appropriate versions. Their list is really impressive and contains 26 languages.

Language switcher on the Nokia website


The Drupal 8 website for the Croatian National Tourist Board has a very stylish switcher. Fifteen languages to a person’s choice are presented as country flags with labels. The flags are filled with color when the user hovers over them.

Language switcher on the croatia.hr site

Language switcher in Drupal 8

Since Drupal 8 is multilingual out-of-the-box, it also has a built-in language switcher. It is included in the whole package of its impressive multilingual features (almost a hundred languages supported, interface translations ready, easy setup, RTL, and more).

The switcher can be added anywhere on your website and allows flexible configuration as to the languages included, custom label (e.g. “Choose your language”), etc. These are pretty basic things, the rest is up to developers who can create the switcher’s perfect look and functionality.

How to add a language switcher in Drupal 8

Adding a switcher only becomes available after you enable the multilingual functionality. So we will run through these preparatory steps very briefly — although there are many other interesting options to configure.

1) Enabling the multilingual modules

We need to enable the multilingual modules in Drupal 8 core:

  • Configuration Translation
  • Content Translation
  • Interface Translation
  • Language
Enabling the multilingual modules in Drupal 8

2) Adding a language

Then in the Configuration section, we will see the “Regional and language” subsection. We click on “Languages” to add new ones to the site. It will offer a dropdown of almost a hundred languages as well as the “custom language” option.

Adding a language to a Drupal 8 siteAdding a language to a Drupal 8 site

3) Creating a language selector for editors

The language selector is a kind of language switcher but for content editors. To get it, we need to choose which content types and their particular fields will be translatable in “Regional and language” — “Content language and translation.”

Making content translatable in Drupal 8

This will let editors select the language to write in and use the “Translate” tab.

Option to choose language during content creation on a multilingual Drupal 8 siteOption to translate content on a multilingual Drupal 8 site

4) Creating a language switcher for users

Finally, we can get a content switcher for website users so they can switch between the content versions. Drupal provides a “Language switcher” block. Like all other blocks, it is found in Structure — Block layout.

We need to click on the region in which we want to place the switcher. Then we find the language switcher block on the list of available blocks, click “Place block” again, and save blocks.

Finding the language switcher block in multilingual Drupal 8

While placing the block (or at any time) we can choose a custom title for it (for example, “Select language”) or choose to display no title at all. We can also select the languages to show in the switcher, which by default will mean all.

Configuring language switcher on a multilingual Drupal 8 site

We put in the “Sidebar first” region:

Basic language switcher in sidebar first region of a Drupal 8 site

Or maybe we could move it to the header by clicking on the pencil near the block and opening the configuration settings:

Basic language switcher in header of a Drupal 8 site

This and many other options are provided by Drupal out-of-the-box. But, of course, your language switcher will look much more stylish after our developers apply their CSS, JavaScript, and other front-end skills.

Video about creating a language switcher to a Drupal 8 site

We have created a brief video with the above described process. Enjoy!

[embedded content]

Create a language switcher or a multilingual site!

You can always entrust our Drupal support experts with:

  • creating a language switcher for your site according to your vision
  • building you a feature-rich multilingual site from scratch in any industry

Let’s do it — your multilingual audience is waiting!

Dec 13 2019
Dec 13

More user-friendly, more intuitive, more accessible — this is what modern websites should be. One of the key aspects of improving website accessibility is enabling keyboard navigation.

The newly released Drupal 8.8 is great in this arena — it introduces keyboard accessibility for quickly adding media from Media Library to CKEditor’s content with no mouse.

Let’s see this in action — video included! And if you want to see this (and many other cool new features) right on your website, schedule an update to Drupal 8.8 with our Drupal experts.

Why keyboard accessibility is important

Undoubtedly, website accessibility is vital for business reputation, your website's traffic, audience, SEO, and overall user-friendliness. And website accessibility would be incomplete without keyboard accessibility — see why.

Many users prefer keyboard navigation to mouse navigation because they find it more efficient. However, for users with particular disabilities, it’s not a matter of preference — they simply have no choice, so keyboard accessibility is essential. These cases include:

  • motor impairments, tremors, loss of muscle control (users cannot hold a mouse properly)
  • visual impairments (users rely on screen readers and cannot see where to click the mouse)

That’s why respectful brands include keyboard accessibility in the requirements to their websites. And it’s now easy with D8.8!

The particular feature we are discussing today is about keyboard accessibility in creating content and adding multimedia. In addition to admins and content editors, it will be helpful to all users on a wide variety of websites that allows content creation. Let’s go.

Keyboard accessibility as final touch in Drupal’s media ecosystem

It looks like keyboard accessibility is the final stroke in Drupal 8’s perfect media handling ecosystem. Up until the D8.8 release, users and editors have been enjoying other new features in this sphere:

  • With D8.6, came easy media handling with saving and reusing it in Media Library and embedding it into the content. The oEmbed feature allowed everyone to easily add YouTube or Vimeo videos through links.
  • D8.7 gave us the new attractive and user-friendly Media Library interface with bulk uploads and other useful features.

Finally, Drupal 8.8 has introduced Media Library and WYSIWYG integration to add media with a simple icon in the content editor. It has also made the Library stable so it is absolutely ready for live sites. And keyboard accessibility has finally brought the beauty and interactivity of multimedia close to everyone — no need for a mouse!

Tweet about keyboard accessibility in Drupal 8 Media Library

How it works: Drupal 8's keyboard navigation in adding media to content

To embed some items from Media Library using keyboard accessibility opportunities, users can:

  • move to the CKEditor toolbar (“Alt” + “F10” on the keyboard)
  • find the Media Library icon (“Tab” + “arrow keys” on the keyboard)
  • open the Library (“Space” or “Enter” on the keyboard)
  • move around the Library interface to select items (“Tab” + “arrow keys” on the keyboard)
  • select the desired item (“Space” on the keyboard)
  • edit the item’s ALT tag, position, and caption (“Enter” on the keyboard)
Selecting media to embed in Drupal 8.8 CKeditor from Media Library
  • move to the “Insert selected” button (Tab + arrow keys on the keyboard)
  • embed the item into the content (Enter)
Embedded media into Drupal 8.8 CKeditor from Media Library

Note: please keep in mind that the correct key commands may depend on the version of the OS.

A video is worth a hundred words, so see how keyboard accessibility works for media embedding in Drupal 8.8.

[embedded content]

To get the Library icon on the CKEditor dashboard, it’s necessary to first add it to the active toolbar by dragging.

Adding Media Library icon to active toolbar in Drupal 8.8 CKEditor

Drupal will also ask you to enable the “Embed Media” filter below.

Enabling the Embed Media filter in Drupal 8.8 CKEditor

Of course, the Media and Media Library modules should also be enabled. It is also possible to add multiple media fields as part of your content type structure, which is covered in the blog post on media handling by our colleagues from Drudesk. For example, every your blog post could have 3 videos, 5 photos, and so on, built into its structure.

Let your website have the latest features!

Indeed, keyboard accessibility in Drupal 8 looks great. We can help you with its setup on your website. Entrust our web development agency with smoothly updating your website to Drupal 8.8 — and let your website follow the best digital trends in keyboard accessibility and much more!

Dec 02 2019
Dec 02

If you’ve been thinking to create an e-commerce website, the best moment is now. Don’t allow your competitors to grab the low-hanging fruit of online commerce!

Hit the link if you are ready to ask us to create an online store for you. We can also advise you on choosing the right e-commerce platform. Let us explain in this post why we think it’s best to create an e-commerce website with Drupal.

Choosing the right e-commerce platform

Not all e-commerce platforms are created equal. Some are better suited to your business needs than others. They either have the necessary features out-of-box, or offer better, easier, and more native options for their creation.

Yes, it’s usually possible for developers to build any missing functionality from scratch on any platform — but in some cases it might take more time, cost, and effort. So it’s better to not “expect the fish to climb a tree” and instead choose the right e-commerce platform from the start.

Why use Drupal for e-commerce: 10+ convincing reasons

Drupal is a free and open-source CMS that suits every website type. Among the most popular uses of Drupal website development is e-commerce. Drupal’s integrated e-commerce platform, Drupal Commerce, is extremely powerful and follows the latest trends.

So while describing the benefits of Drupal for e-commerce, we will focus primarily on Drupal Commerce 2 development for Drupal 8 online stores. Let’s go!

Content-driven e-commerce

Content marketing is one of the surest ways to get better SEO results — this is how modern Google algorithms works. And, of course, good content is able to convince your customers, keep them navigating your website, and drive sales. This kind of content could include blog posts, user guides, reviews, etc. properly interlinked with product pages.

That’s what makes content-driven commerce so popular. To use this approach, you should have your e-commerce platform deeply integrated into a content management system. If its not out-of-box, you will need a lot of effort to get the two systems to work together effectively.

Even if this functionality is added by a development team, it will be far from the seamless and natural integration that Drupal Commerce has with Drupal. This is one of the big reasons to create an e-commerce website with Drupal rather than with “isolated” e-commerce platforms like Magento or Prestashop.

Content-driven e-commerce in Drupal

Unlimited extensibility

If you choose to create an e-commerce website with Drupal, you will see there is literally no limits to what it can be equipped with. You will also appreciate the devoted community of contributors who create hundreds of free extensions:

SShop Drupal e-commerce themeCommerce Kickstart Drupal e-commerce distribution

Integration with payment gateways & other systems

An online store often largely depends on third-party systems such as payment gateways, CRMs, analytics services, marketing automation, and more.

Choose to create an e-commerce website with Drupal Commerce, and you’ll see D8 is a third-party integration paradise. Thanks to the API-first initiative, it gets connected via a REST API to any software.

And, of course, we should mention the numerous free modules for your e-commerce website’s smooth integration with particular services. When it comes to payment gateways alone, Commerce has 80+ of them connecting you to PayPal, Authorize.net, Amazon Pay, Realex Payments, Stripe, SagePay, and more. Let your customers choose their preferred method of payment!

Drupal Commerce Stripe module

Mobile e-commerce due to mobile-first design

The share of mobile retail commerce sales is forecast to reach 53.9% in 2021. Compared to just 34.5% in 2017, this movement looks like an avalanche, doesn’t it? Add to this the fact that shoppers from mobile phones have a higher buyer intent.

Your Commerce store will have all the benefits of Drupal 8, including the mobile-first architecture. It will be easy to make it display conveniently on all devices and in all browsers. The size and positioning of images, buttons, forms, etc. will make it easy to browse the products, put them in the shopping cart, and proceed to checkout from a mobile phone.

Mobile e-commerce in Drupal

Cross-country reach in different languages

Speak your customer’s language with multilingual online store on D8. It’s a way to multiply your sales with just a few clicks and settings. Undoubtedly, Drupal 8 is the best choice for multilingual sites. It supports almost 100 languages out-of-box, including ones with RTL text direction.

The majority of interface text is already translated by volunteers — you can just use it or adapt to your liking. All content (including products, of course) can be easily made translatable. Your store editors will enjoy handy dashboards. Alternatively, you could also integrate automated translation software, for which Drupal also has free and helpful modules.

Selling physical or digital products

One of the reasons to use Drupal e-commerce in 2020 is that it is not only suited to physical products. Drupal Commerce includes useful functionality that also lets you sell digital products (tickets, subscriptions, educational courses, and so on) on your e-commerce website.

Products convenient to manage

The same product may come in different colors, sizes, etc. How can you make this easier to manage? The system of SKUs in Commerce is very helpful for this.

Every combination of attributes like color, size, or others, is considered a product variation and assigned its own machine-readable ID called SKU. For example, the same red sweater in size S and size M will have different SKUs.

Among other things, this system helps you keep track of purchased products and the ones remaining in stock. We have described product customization in Drupal 8 online stores in more detail.

Granular roles & permissions

Who can be able to manage orders, edit products, and do other things on your online store website? Often, different levels of access are needed so you can achieve better security and convenience.

Drupal lets you create any roles and assign permissions to them. This will help you foresee the smallest detail of who is authorized to do what on your e-commerce website.

Ultra speed and dynamic UX

Customers love to achieve goals quickly and easily, which is reflected in your conversion rate. It’s possible to provide your e-commerce website with an unprecedented speed and create dynamic user experiences. For example, shopping real-time cart updates, flyout cart, and so on.

Here is where the decoupled Drupal Commerce architecture comes in. At the heart of it lies a hot combination of Drupal and one of JavaScript frameworks. They communicate via a REST API thanks to the above-mentioned API-first Drupal nature.

Dynamic UIs in Drupal e-commerce

Multichannel reach

There is an amazing “Create once, publish everywhere” principle. What about creating a mobile app that pulls data in real time from the main e-commerce website? Easy! It’s even possible to have a whole ecosystem of interrelated websites and apps for your brand. Imagine how it can increase your reach while saving your staff time!

And much more!

The list of reasons why you should use Drupal for e-commerce could continue endlessly. We haven’t even mentioned:

  • flexible shipping methods
  • multiple currency management
  • automatic tax calculation
  • easy discount handing
  • advanced search options
  • PCI compliance
  • high security
  • and so on

Let us create an e-commerce website with Drupal for you

Well, are you inspired, or still hesitant to create an e-commerce website? Either way, contact our web development experts and let’s talk about what your future e-commerce store could look like. The only thing we know for sure is that it will look great!

Our Drupal team has extensive experience with e-commerce, with one of the most famous global stores, JYSK, in the portfolio. Take the first step to creating a store that will reach this level or higher!

Nov 25 2019
Nov 25

Membership websites in various forms are popular on the web. They can give their owners a stable source of revenue, enhance website security, and do other useful things.

Drupal offers great modules for membership website features. It is one of the numerous reasons why customers choose educational website development on Drupal. But education is just one example — membership websites can be successful in literally any industry.

In this post, we expand on possible membership website features and show you how to create them with the Role Expire Drupal module. We also have a video about the module’s setup. Let’s go!

What is a membership website?

A membership website is one that has particular opportunities available to members only. They may include:

  • viewing premium content (virtual conferences, e-courses, e-books, webinars, podcasts, etc.)
  • participating in a community (being a member of a club, posting in a forum, adding comments without moderation, etc.)
  • using various premium functionality

and much more.

Membership website example

Membership website features can be:

  • Paid. Paid membership makes something accessible only after the payment.
  • Free. Free membership is often used to grant permissions to users after a sign-up or if they prove to be trustworthy.
  • A mix of both. Probably the best idea is to include both free and paid options in order to show the users the examples of what you are offering.
Membership website features example

Membership can be:

  • granted once and last forever
  • extensible (one that needs to be prolonged after a certain period of time)

The Role Expire module for membership websites in Drupal

There are many options to create a membership website on Drupal. In our example, we review a Drupal module that is particularly useful for extensible membership website features — the Role Expire module.

As it is known, Drupal allows you to create absolutely any roles and assign granular permissions to them. So the Role Expire Drupal module allows admins to set and control expiry dates for any Drupal roles.

With the module, you can do all this and much more:

  • Setting expiry dates (12 hours, 3 days, 4 weeks, 3 months, 1 year, etc.) to roles on the People — Roles tab. Expiry dates can be assigned to existing roles or to new ones directly during their creation.
Adding role expiration time with Role Expire Drupal module
  • Adding an expiry date to a role directly in a particular user profile — there will be a text field for this.
  • Having the role expiry information visible in the user profile (to this user, or to admins with the proper permissions).
Role expiration time on user page with Role Expire module
  • Setting permissions on who can administer the expiration.
  • Entrusting automatic removal of expired roles to Cron.
  • Managing per-role expiry dates in Drupal Views.
  • Configuring switching users to a default role when a particular role expires.
Switching to a default role with Role Expire Drupal module

The membership functionality creation can be finalized by giving the right permissions to expirable roles. For example, you can:

  • configure access to view particular content using the Content Access, Node View Permissions, or similar modules
  • configure access to a block using just Drupal core
  • configure permissions to post comments
  • and so on without any limitations, according to your particular scenarios.

Using the Role Expire module in Drupal (video)

A video is worth a thousand words, so we have created a brief video for you about the Role Expire module’s work.

[embedded content]

Let us help you with membership website features

Consider adding membership website features to your existing Drupal site or designing a membership website from scratch.

You are always welcome to share your ideas with our Drupal development team. We will select (or create) the optimal modules for your case, be it Role Expire or any other, and do the setup seamlessly.

Contact our web development team — and it’s time to benefit from membership website features!

Oct 31 2019
Oct 31

It’s important that all users, including non-tech marketers and business owners are able to easily work with a website. When it comes to Drupal, it continues to make great strides strides towards being more user-friendly, which is one of the key priorities and benefits of Drupal 8.

We are happy to announce another great advancement in the Drupal user-friendliness field — the new core Help Topics module. Let’s see what the module does to raise it even higher.

A user-friendly CMS is a competitive CMS

First, we should note why Drupal usability is its priority today. One of the key reasons is that it helps Drupal be competitive among other CMSs. It should become the best user-friendly CMS and a platform of choice for more business owners.

For example, much ink has been spilled over the rivalry between Drupal and WordPress in website development.

  • Among the key strengths of the WordPress CMS is a high level of user-friendliness.
  • Drupal has always been regarded as a platform that allows you to build more advanced functionality while being a bit more complicated and having a steeper learning curve.

Drupal creator Dries Buytaert said he was passionate about making Drupal more user-friendly for the day-to-day users.

Drupal creator Dries Buytaert strives to make it easy to use for everyone

The achievements in making Drupal the most user-friendly CMS are huge already and the work goes on. D8 can boast:

  • easy content creation experiences with the CKEditor
  • the Quick Edit feature to edit content on the fly
  • a convenient and attractive Media Library and media embedding
  • a user-friendly drag-and-drop Layout Builder
  • the forthcoming Claro admin theme that follows all modern UX design guidelines
  • adherence to WCAG and ATAG in web accessibility standards
  • convenient admin UIs to do almost anything
  • flexible workflows based on roles

and much more.

Why the new Help Topics module in Drupal was needed

One of the key aspects of user-friendly website administration experiences is knowing how the website’s modules work. Their user interfaces, settings, and work peculiarities may range from simple to challenging. Getting help with them greatly improves admin usability.

So Drupal needed a unified way in which modules and themes can add their help topics. In this area, the Drupal core already has the Help module but it only lets the module developers create overview help topics via the hook_help().

According to the Help Topics maintainer Andypost, it was not easy for everyone to add help topics with the existing Help module. To solve this, the community created the Drupal 8 User Guide and even translated it into several languages within the Drupal Documentation Initiative.

Next, as Andypost tells us, the Initiative’s leader Jennifer Hodgdon (jhodgdon) created a Configurable Help module. It is a sandbox for now but it is going to reach stability and allow adding help topics directly from the browser.

The decision was made to add parts of this new module to Drupal core as an experimental module Help Topics, as well as convert the Drupal 8 User Guide into the help topics about the core modules’ work. The idea to add the Help Topics module to Drupal core was successful!

The new Help Topics module overview and roadmap

The Help Topics module allows the developers of core and contributed modules, themes, and distributions to create help topics as Twig files. An additional contributed module will allow anyone to do it from the browser.

There can be as many topics per module as needed for the sake of making Drupal more user-friendly. The topics will be found on a website’s Help page at admin/help.

Help Topics module coming to Drupal 8.8 core

Some will be listed there directly if they are marked as “top-level.” Others will be listed as “related.”

Based on the tasks the users are supposed to do, the help topics can be single or grouped:

  • One task makes a “Task topic.”
  • Multiple task topics can be grouped into a section and make a “Section topic.”

As “The Drop is Always Moving” tweeted, the Help Topics is the result of the wonderful work of 38 people over several years. It will be included in the D8.8 as an experimental module and should provide a useful help solution to Drupal users.

Help Topics experimental module included in Drupal 8.8 dev

Furthermore, the Help Topics module roadmap is to reach stability and merge with the existing core Help module. Another core module in this area will also remain in place — the Tour module that makes Drupal more user-friendly through tooltip help.

Help Topics module to come to Drupal 8.8 core

The structure of Help Topics

Each topic will be a Twig file that lives in a particular module’s subdirectory called help_topics. The files should be named like this: modulename.topic_id.html.twig.

They will have the "front matter" metadata and the HTML body. A single Task topic should have metadata with this information:

  • the topic’s title
  • whether they are “top-level” or “related”
  • the goal
  • the optional explanation “what is/are”
  • the required steps to perform the task (wrapped with an H2 heading)
  • the optional additional resources (also H2)

Section topics have similar metadata is similar, but they can only be “top-level” and should list the overview of related tasks, not the required steps. You can see more information about the Help Topics standards.

Enjoy Drupal user-friendliness with all its new tools

Considering the giant steps in which the Drupal becomes a more user-friendly CMS, it’s necessary to keep your website updated. Only in this case you and your users will take advantage of the new usability features.

Think, for example, about the fact that the Layout Builder is only stable as of Drupal 8.7, and the Media Library got a new more user-friendly and beautiful interface in the same release.

You can always rely on our development team who will smoothly update your website to the latest core versions, configure the user-friendliness-related modules such as Help Topics or any others, and assist you in preparing for Drupal 9.

And, in the light of our today’a topic, we can offer plenty of additional UX secrets to make your website more user-friendly.

Talk to our Drupal team!

Oct 16 2019
Oct 16

The topic of migration from Drupal 7 to Drupal 8 is getting hotter than ever. After all, there is already the ninth Drupal version on the horizon. The best way to prepare for it is to upgrade to Drupal 8 now. See why, and also discover a case study of migrating a career website to Drupal 8 performed by our team.

Why it’s high time for migrating your website to Drupal 8

Drupal 8 was released in November 2015, and Drupal 9 is planned for June 2020. All websites that are still on D7 are lagging a little behind, and soon this breach will be more and more noticeable.

Here’s why it’s worth migrating to Drupal 8 now:

  • It paves the way for easy and instant upgrades in the future. Drupal 9 will be almost like the latest version of Drupal 8, with just a good clean-up from deprecated code and the introduction of the latest libraries.
  • Many experts recommend migrating your website to Drupal 8 as part of preparing for Drupal 9. For example, Drupal creator Dries Buytaert pictured D7 with an abandoned rail track, while the D8 track leads to D9 and beyond, so “you will never have to change the tracks again.”
  • By migrating your site now, you are not wasting time but enjoying numerous and irresistible Drupal 8’s benefits for business. D8 is mobile-first, multilingual, open to integration with third-party apps, handy in content creation, respective of web accessibility standards, clean and efficient in code thanks to using OOP, Twig, HTML5, and so on.

Case study of migrating a website to Drupal 8

Of course, we take care of migrating our customers. One of them is the international multidomain online store — JYSK. It has Danish roots and owns 2,740 stores in 39 countries across the globe.

JYSK international online store

All JYSK websites inside this huge multidomain “machine” needed to be migrated to D8. Today, we will describe one of them — the JYSK career website. This simple case study will become one of our future blog series about migrating websites to Drupal 8!

JYSK career website

The website offers careers in various departments of the JYSK chain:

  • the store
  • distribution center
  • customer service
  • headquarters

Among the sections of the grid menu, there are also ones about the student programs, internship, JYSK values, and more.

JYSK career website menu

The position descriptions are accompanied by the stories of real people who work on them:

JYSK career website job description

For this website, we performed all the classic steps of migrating a website to Drupal 8

  • migrating the functionality
  • migrating the configuration
  • migrating the content

We would now like to emphasize the most interesting points in this particular Drupal 8 migration case.

Database migration

During the database migration process, we used the Drupal 8 core Migrate module, as well as contributed modules such as Migrate Tools and Migrate Plus that extend the core migrate functionality.

To migrate the databases, including content nodes, users, user roles, and taxonomy terms, our development team created a custom module specifically for the JYSK job site migration.

The migration module is interesting because it approaches migration in terms of entity configuration. First, we create migration groups (for the nodes, users, taxonomy terms, etc.) and then create configuration for each subgroup (content type, taxonomy vocabulary, etc.). The plugin maps the Drupal 7 and Drupal 8 fields and is responsible for the field change during the migration.

Code rewriting

However, one of the most challenging steps was migrating the functionality. The job.jysk.dk website features were provided by a number of custom modules. They all needed a good rewrite to meet Drupal 8 standards.

Drupal 8 has many functions and APIs that are deprecated, which we needed to replace. And all custom modules were rewritten according to the OOP (object-oriented programming) style adopted by D8. The eighth version also introduced the use of plugins, so we needed to perform code refactoring.


We used the contributed module Twig Tweak to change the page templates in accordance with Drupal 8’s new template engine — Twig. The module improved the development experience by offering useful functions and filters.

We rebuilt the main website’s theme on the basis of the Bootstrap theme. It builds a bridge between Drupal and the Bootstrap Framework — a powerful and intuitive, mobile-first front-end framework.

Migrate to Drupal 8 with us!

If you are still on Drupal 7, consider migrating your website to Drupal 8 now. No matter is your website is simple or complex, our Drupal team will smoothly and carefully upgrade it to Drupal 8, as well as help you prepare for Drupal 9.

Oct 03 2019
Oct 03

Your website’s pages live in the World Wide Web. However, not all of them should always be displayed to users just as they are. There are plenty of reasons to control how they are accessed and displayed. 

In this post, we explain why, as well as describe how your website can benefit from one of the most interesting Drupal 8 modules for user access and page display control — the Rabbit Hole.

Why is page access control important?

There are a few nuances of page access control, some of which may not be obvious at first glance. Let’s look at a few.

  • Website page access control enhances your website’s security by prohibiting the views of restricted pages. They may contain sensitive or personal information that should not be seen.
  • Being able to control page access allows you to create interesting access-based functionality (like subscription content).
Paid subscription page in Drupal 8
  • This takes care of your website’s attractive look. Sometimes there are “building blocks” of a page layout that should not be seen by users because, for example, they are not properly themed.
  • For similar reasons, some pages should be hidden from from indexing by the search engines, so page access control also helps your SEO. 

All these and many other tasks can be entrusted to the Rabbit Hole module in Drupal 8. You can always rely on our Drupal development team for installing and configuring it on your website and taking care of all page access nuances. In the meantime, let’s take a tour of how the module works. 

The essence of the Rabbit Hole module in Drupal

The Rabbit Hole module in Drupal really stands out from other modules by offering interesting options of what happens when someone is viewing a particular Drupal page (or entity). 

Instead of displaying the Drupal entity, the module can:

  • redirect the user to another page (with the possible use of tokens)
  • show “Page not found”
  • show “Access denied”

This Drupal module’s name might remind you of Alice in Wonderland's story or the concept of parallel universes. The expression “go down the rabbit hole” often means getting into a surreal situation. All this makes sense — with the Rabbit Hole module, your Drupal entities exist but their display is different. 

A few common scenarios (specifically from the Drupal point of view):

  • You want to grant or deny user access to entity types or specific Drupal entities based on user roles — for example, to display paid content to users with a subscription. Special user roles can be allowed to bypass the Rabbit Hole action.
  • You want to hide the full display of nodes that only serve as building blocks for a Views slideshow or other Drupal page. They also should not be indexed by Google.

So let’s take a closer look at how it works and go down the rabbit hole a little bit.

How the Rabbit Hole module in Drupal 8 works

Rabbit Hole module installation

The Rabbit Hole is a complex Drupal module that works with different types of entities — nodes, taxonomy terms, users, etc. 

When installed, it offers a bunch of submodules to be enabled alongside the main module. For most common situations, i.e. for working with content, we need the “Rabbit Hole nodes” submodule enabled. However, it depends on the task.

Being able to control page access allows you to create interesting access-based functionality (like subscription content).

Intalling the Rabbit Hole module in Drupal 8

Rabbit Hole module configuration

1. Rabbit hole settings for an entity type

The module’s page display and user access control settings are found in the entity type’s “Edit” page. You can set the behavior as:

  • Page redirect
  • Display the page
  • Page not found
  • Access denied

After selecting the behavior and clicking “Save,” you can check the result by opening the node page in an incognito window. You cannot see the result as admin, because the admin has the default permission to bypass the Rabbit Hole action. 

Rabbit Hole module options in Drupal 8

2. The special “Page redirect” option

If the “Page redirect” option is selected, we can enter the redirect path or use available tokens. To do the latter, the Token Drupal module also needs to be installed. 

Using page redirect, we can, for example:

  • redirect the users to the specially created subscription page asking them to subscribe to view the content
  • use one of the tokens like [site:login-url] that will take the user to the login page showing them they need to register to view the content
  • redirect the users from the individual nodes that are part of the slideshow to the slideshow page itself or the homepage.
Rabbit Hole module page redirects in Drupal 8

3. Rabbit hole settings for an individual entity

On the same dashboard, you can also check or uncheck “Allow these settings to be overridden for individual entities.” 

With this enabled, Drupal Rabbit Hole settings are also found on the particular entity’s “Edit” page.

Drupal 8 Rabbit Hole settings for an individual entity

4. Rabbit Hole permissions

To give permissions for particular roles to bypass Rabbit Hole action or to administer its settings, go to People — Permissions.

For example, you can create the VIP user role who will be able to view the specific content type, while others will see “Access denied,” be redirected to a subscription page, or login page.

Rabbit Hole module permissions in Drupal 8

Use the best options for access control in Drupal 8 

There are no limits to how deep this rabbit hole goes. The most fine-grained scenarios of page display and user access control in Drupal 8 are possible with the Rabbit Hole module. 

Just ask our Drupal team to create them for you, configure the module, or develop custom modules for your specific ideas!

Sep 23 2019
Sep 23

The friendliness of Drupal 8 for content editors and website administrators grows every day. New handy features come thick and fast — updated Media Library interface, built-in drag-and-drop Layout Builder, media embed button in CKEditor, and so much more.

Today, we are happy to announce another lucrative improvement — a new and modern administration theme Claro is supposed to come to the D8.8 core soon!

Why Drupal 8 needed a new administration theme

The idea of a new administration theme arrived as part of the Drupal team’s striving to make Drupal more competitive in everything.

Drupal creator Dries Buytaert wrote that he had talked in 2018 to almost a hundred Drupal agency owners to discover their key stumbling blocks in selling Drupal. One of their common replies was about the admin interface having an outdated look.

The admin UI theme, Seven, had been created back in 2008-2009 in the time of D7, with a few updates in D8. Since then, a lot of water has passed under the bridge and lots of modern UI design trends.

There was also an admin UX study performed in 2018 when content editors where asked in detail about their impressions of working with Drupal and given an opportunity to suggest improvements. According to the famous contributor who worked at this study group, Suzanne Dergacheva, Drupal 8 for content editors is “notoriously intimidating” when it comes to newbies.

So the great minds of the Drupal community agreed that the admin UI really needed a good brush-up and a new, clean, and modern theme.

The Claro theme in Drupal 8: a good core candidate

One of the results of the above-described decisions was the appearance of the Claro theme. It is a clean, concise, responsive theme with a modern look and an enhanced level of web accessibility. It is being built on top of the Seven theme.

New Claro admin theme in Drupal 8.8

It is now a contributed project, but there is a proposal to add the Claro theme to Drupal 8.8.0 core as an experimental theme.

The development is in full swing, with the project’s new version, alpha 5, released in September 2019. The maintainers actively welcome any feedback and bug reports about the new theme to brush it up.

Claro theme principles and features

Here are some features of Claro, both completed and planned:

  • a new, colder color scheme
  • higher contrasts
  • touchscreen readiness
  • the Quick Edit, Toolbar, and Contextual Links components
  • redesign of content pages and all their components
  • redesign of the file and image upload widgets

The Claro theme is built in accordance with the Admin UI & JavaScript Modernisation Initiative. It strictly follows the new Drupal 8 admin theme design guidelines:

  • precise shapes and good contrasts
  • clear hierarchy and relations between elements
  • a clear purpose for each element
  • rational use of white space
  • optimal readability
  • emphasis on what matters
  • visual clues
  • friendly and cheerful colors

and more.

New admin theme Claro expected in Drupal 8.8

Claro at the Drupal Usability meeting

The theme is receiving special attention at the Drupal Usability meeting, according to Gábor Hojtsy’s tweet. The meeting experts are asking to get more feedback, so it looks like the new project is going to be polished to perfection.

Gábor Hojtsy about the new Claro admin theme

Claro as part of the top Drupal 8 distribution

Claro is already having a good test drive because it is part of the most popular D8 distribution, or installation kit — Lightning.

By the way, while we are talking about Drupal 8 for content editors, we should say Lightning is a distribution well-tailored to their needs and great for media and publishing websites. It is actively used by almost 3,000 websites. By itself, Claro is installed on 500+ sites today.

New admin theme Claro is coming to Drupal 8.8

Use the benefits of Drupal 8 for content editors with us!

As you can see, the present and future features of Drupal 8 for content editors are very lucrative. To keep up with them, you can contact our web development team who will smoothly update your website to all new releases.

Sep 11 2019
Sep 11

The news about the forthcoming Drupal 9 release in June 2020 is the hottest topic in the Drupal world. Website owners and developers start planning for Drupal 9. One of the key points in this plan is to prepare for Drupal 9 with the Upgrade Status module to make sure the site uses no deprecated code.

We are glad to announce that there is one more big advancement in the Drupal 9 readiness field. The newly released 8.7.7 version introduced the core versioning support. It allows developers to declare their project compatibility with Drupal 8 and Drupal 9. More details below!

Drupal 9 readiness: how are things going for modules?

The community is gradually building D9 in D8 while deprecating older APIs and functions and supporting new releases of third-party dependencies. Among the examples are the drupal_set_message() function deprecation or the Drupal 8.8.x-dev compatibility with the new Symfony 4.3.3.

Being up-to-date with all of this means complete and instant Drupal 9 readiness for modules and themes. And it's great to notice that more contributed projects are D9 compatible!

According to Gábor Hojtsy, the famous Drupal contributor and product manager, their number increased from 48% in March to 54% in July 2019.

Core version requirement key introduced in Drupal 8.7.7!

As of Drupal 8.7.7, providing Drupal 9 readiness reaches a new level. So if anyone asks what’s new in Drupal 8.7.7, it’s the core versioning support that comes to mind first. Gábor Hojtsy devoted a special blog post to describe this innovation and called it “huge.”

The key point is that all module and theme developers will need to add one more line to their info.yml file — the core_version_requirement key.

Using it, developers can specify the multiple core versions their projects are compatible with. For example, they can mark both Drupal 9 readiness and compatibility both with the eighth version. Here is how the lines might look for such a project:

name: Module Name
type: module
core: 8.x
core_version_requirement: ^8 || ^9

The new key allows you to be even more specific about the version compatibility by specifying minor versions (8.7.7, 8.8.3. etc.), which was not possible with the traditional “core: 8.x” key.

new feature in drupal 8 7 7.jpg

If a project only works with the 8.7.7 version or later, the developer will need nothing but the new key to mark its D9 readiness:

name: Module Name
type: module
core_version_requirement: ^8.7.7 || ^9

However, versions older than D8.7.7 do not support this improvement. So if a project is also meant to work with them, the traditional “core: 8.x” key should be listed along with the new one in the info.yml file.

Let your website’s Drupal 9 readiness be ultimate!

With so many opportunities for full Drupal 9 readiness, it’s time to start. Our development and support team will assist you in:

  • updating your site to version 8.7.7 and always keeping it up-to-date with fresh releases
  • checking your website for deprecated code and giving it a cleanup
  • marking the Drupal 9 readiness of your projects according to the newly introduced requirements

Contact our web developers to keep your website prepared — and let it fly swiftly and effortlessly to the ninth version in June 2020!

Sep 05 2019
Sep 05

We love to say that Drupal 8’s logo resembles the infinity sign, which means infinite opportunities for websites. It includes plenty of ways to make your website user-friendly and engaging.

One of the techniques used in this area is infinite scrolling, which can be implemented through a nice Drupal 8 module called Views Infinite Scroll. Let’s see what infinite scrolling is and how to design it with the help of this Drupal 8 module.

A glimpse at the technique: what is infinite scrolling?

Infinite scrolling means continuous content uploading as the user scrolls down the page. This can optionally be accompanied by the “load more” button at the bottom of the page, which infinitely uploads the content upon click.

Endless pages make the user’s interaction with the website more natural because it is convenient to not have to click on the next page. This technique is especially popular with content-rich websites, social networks, e-commerce stores, etc. It is incredibly useful for long pages and mobile navigation.

However, infinite scrolling should be used carefully so it does not annoy the user, distract their attention from their main goal, or block the calls-to-action. For example:

  • If the footer “disappears” together with your contacts every time your user scrolls, consider using a sticky footer or move the key links to the sidebar.
  • Try the “load more” button to give the user more control and never block anything.
  • You can also add more usability by letting the user choose the number of displayed items before hitting “load more.”

All this and more is provided by the Views Infinite Scroll module in Drupal 8, which we will now move on to.

Introduction to the Views Infinite Scroll module in Drupal 8

The Drupal 8 Views Infinite Scroll module works with the Drupal Views. This allows you to present any Drupal data you wish — collections of images, articles, products, lists of user-profiles, or anything else.

You can:

  • let the content be infinitely uploaded upon the scroll
  • add a “load more” button with any text on it
  • expose some viewing options to users

The Views Infinite Scroll module is available both for Drupal 7 and Drupal 8. However, the Drupal 8 version has a special bonus — it uses the built-in AJAX system of Drupal Views and requires no third-party libraries. In the next chapter, we will look more closely at how it works.

How the Views Infinite Scroll Drupal module works

Installing the module

We start by installing the Views Infinite Scroll Drupal module in any preferred way and enabling it. In our example, we are using its 8.x-1.5 version.

Installing the Views Infinite Scroll module

Creating the Drupal view

Now let’s prepare our Drupal view with a few elements in it. In our case, the grid view will show two columns of car images.

When creating the page, we choose the “create a page” option. The default “Use a pager” and “10 items to display” settings can remain unchanged so far — we will take care of this in the next step.

Drupal 8 Views

Setting up the Drupal Views infinite scrolling

On the Drupal Views dashboard, we select the Pager section and open the “Use pager — mini” option.

Setting Drupal 8 Views pager to infinite scroll

There, we switch the pager to “Infinite Scroll.”

Setting Drupal 8 Views pager to infinite scroll

Next, we configure the settings for the Infinite Scroll. We set the number of items per page to 4.

And, most importantly, we can check or uncheck the automatic loading of content. If we uncheck it, there will be a “load more” button, for which we can write our custom text. “View more luxury cars” sounds good for this example.

Configuring infinite scroll in Drupal 8 Views

After saving the view and checking the page, we see 4 cars on page with a nice “View more luxury cars” button. Success!

View more button in Drupal 8 Views

Exposing choices to users

In our Infinite Scroll settings, there is the “Exposed options” section. By checking its options, you will allow users to:

choose the number of items displayed
see all items
specify the number of items skipped from the beginning

Exposed options in Drupal 8 infinite scroll

With these applied, our collection now looks like this.
Infinite scroll in Drupal 8 Views with exposed options

Additional CSS tweaks will make the view look exactly the way you want as far as colors, fonts, distances between elements, etc.

Apply infinite scrolling on your website

Make your customer satisfaction infinite through the use of the infinite scroll technique! So if you want to:

  • install and configure the Views Infinite Scroll module
  • customize the output with CSS
  • create a custom Drupal module for your ideas in scrolling
  • design the scrolling effect from scratch using the latest techniques

contact our Drupal team!

Aug 27 2019
Aug 27

Congrats, Drupal 9 release is planned for June 2020! In the meantime, you should ensure that your platform is ready for the upgrade. Although it should arrive easily and smoothly, your website still needs a plan.

The team at WishDesk explains how to get ready and plan for Drupal 9.

What should I know about Drupal 9?

Dries Buytaert, the Drupal creator, announced the planned release of D9 for June 3, 2020. This new version is developed in the same codebase as D8, which means that migration from Drupal 8 to Drupal 9 will be painless. What about D7 and D8? They will reach their end-of-life in November 2021. This means that there will be no official support and no more updates for these versions.

plan for Drupal 9

We recommend upgrading to Drupal 9 by November 2021.

How to plan for Drupal 9 if you are using Drupal 8

If you are using D8 and keep it updated, the migration will be no harder than a minor release. When planning for Drupal 9, make sure that all your modules are updated and deprecated code is removed from the codebase.

Why will migration from Drupal 8 to Drupal 9 be effortless?

  • there will be no need to rewrite the whole code for D9
  • regular D8 updates will keep your platform up-to-date and ready for migration
  • D8 modules will be compatible with D9

How to prepare for Drupal 9 if you are on Drupal 7

Things are more difficult for those whose website is still built on D7. We strongly recommend starting the upgrade process now if you want to have fewer problems when planning for Drupal 9. There are numerous reasons to upgrade to D8:

  • better development experience
  • powerful layout building
  • easy upgrades
  • improved media management
  • improved theming experience
  • decoupled content delivery
  • improved performance
  • and more!

Although the best option for D7 website owners is to migrate to Drupal 8, you can contact a web development company for support of your Drupal 7 website even after the official end-of-life.

Plan for Drupal 9 with WishDesk!

Get ready for Drupal 9 with the Drupal specialists at the WishDesk team! No matter what version of this CMS you are using now, we will help you plan for Drupal 9, as well as perform the migration process effortlessly. Just contact our experts!

Aug 08 2019
Aug 08

If you have a local business — a restaurant, a bar, a dental clinic, a flower delivery service, a lawyer's office, or some other business — you will benefit immensely from a strong online presence. In this post, we will discuss why Drupal 8 is a great choice to build a local business website. Read on to see how numerous Drupal 8’s benefits will play in favor of your local business.

Some stats about why your local business needs a website

Local businesses once used to rely on word-of-mouth marketing. But the new digital era has changed the game. Customers widely use local Google search to find places, services, or products, they trust online customer reviews, and otherwise rely on the Internet for their decisions. 

So consider these stats about how things are going for local businesses in the digital world:

  1. Users rely on search engines for finding local information. According to Google's study, 4 in 5 people do this.
  2. Local searches are also very goal-oriented. The same Google’s study says that 50% of users who performed a local search on their smartphones visited the store within the next 24 hours. 
  3. Mobile local searches are growing like crazy. According to Statista, the number of mobile local searches are forecast to reach 141.9 billion in 2019 compared to 66.5 billion in 2014. At the same time, the number of desktop searches will drop slightly (62.3 and 66.5 billion, respectively).
  4. Smartphone shoppers love local search. Statista also shows that 82% of smartphone shoppers in the US have used their device for local search with the “near me” keyword as of 7/2018.
  5. Customers read reviews for local businesses. According to the study by BrightLocal, 86% of people do this.

Reasons to build a local business website on Drupal 8

  • SEO-friendliness with plenty of useful modules

First of all, local businesses shouldn’t miss their unique opportunity — they need to make the best of SEO. Google has special approaches to local search. When users search by adding a city name or the “near me” keyword, Google lists the best results near the top of the SERPs in a variety of rich ways. Among them:

  1. the Knowledge Panel
  2. locations on the Google Map
  3. carousels with images, news, reviews, etc.

Moreover, users are able to get all the necessary information like your business hours, get your contacts, read a review, get direction, book an appointment, and so on, without even clicking to your website (zero-click SERPs).

Local Google search on a mobile phone

How to get to these results? Among the recommendations are:

  1. provide detailed information in Google My Business listing
  2. have an optimized Knowledge Graph for your website
  3. optimize content using local keywords
  4. optimize content so it fits Google’s rich snippets
  5. and, of course, follow overall general best SEO practices 

Here is where the Drupal 8 CMS can be your very helpful assistant. In addition to being SEO-friendly out-of-box, Drupal 8 has a wealth of useful SEO modules for various purposes. They include:

  1. SEO Checklist
  2. Metatag
  3. XML sitemap
  4. RobotsTxt
  5. Real-time SEO
  6. Pathauto
  7. Redirect
  8. Google Analytics

and many more.

  • Content easy to manage

Unique and relevant content, regularly updated and optimized with local keywords is one of your most important local SEO secrets. The richer the content is, the richer it looks in Google local search results. In addition, trimming your content to fit Google’s rich snippets is the key to optimizing your website for voice search

In Drupal 8, it is easy to create, edit, and present content in attractive ways. Drupal 8 offers you:

  1. quick edits directly on the page
  2. the Media Library to easily enrich your content with images, videos, and audios
  3. handy content previews
  4. drag-and-drop page layouts with Layout Builder
  5. Drupal Views grids, slideshows, and carousels for the attractive content presentation
  6. content revision history
  7. mobile-friendly admin interfaces
  8. content moderation workflows

and much more.  

Media Library in Drupal 8
  • Mobile optimization out of box

In addition to the above mobile statistics, we have a few more for you. The mobile share of organic search engine visits has reached 59% in 2019, versus 27% in 2013. So your successful local business absolutely needs a mobile-friendly website.

Here is where Drupal 8 wins hands down. It has been built around a mobile-first approach. The CMS features built-in modules for creating responsive web design — the Responsive Image and the Breakpoint. 

The responsive web design technique allows your website pages to adapt to any user’s screen by showing a different layout. The page elements resize, change their position, or disappear to provide the smoothest viewing experiences for everyone. 

  • Multi-language to attract more guests

Let’s suppose you run local business in your country in your local language. Consider adding English as an international language or another language based on your touristic audience. See how you can attract your city guests as they use Google search.

Drupal 8 is the best option for multilingual websites and allows you to easily add as many languages as you wish. Drupal 8 supports a hundred of them out-of-the-box with the interface translations included. 

Thanks to Drupal 8 Multilingual Initiative (D8MI), Drupal 8 has four powerful modules responsible for every aspect of translation. 

  • High accessibility standards

According to the CDC (Center for Disease Control and Prevention), 26% (1 in 4) adults in the US have some form of disability. This a quarter of your potential customers. Moreover, they are the ones who may need your local services more than others — for example, local delivery.

To be accessible to all users without barriers, your website should adhere to accessibility standards. Drupal 8 focusses on them and offers advanced accessibility features including the use of WAI-ARIA attributes, accessible inline form errors, aural alerts, obligatory ALT text for images, and much more.  

  • Presence in multiple channels

Local businesses often benefit from the digital presence in multiple channels — imagine, for example, a pizza delivery mobile app connected to your website. 

Drupal 8 offers amazing opportunities to exchange your website’s data with third-party applications. It has five powerful built-in modules for creating REST APIs and sharing Drupal data in the JSON, XML, or other formats needed by the apps. 

  • Easy social media integration

It’s no longer possible to successfully manage a business without a social media presence. Drupal 8 allows third-party integration with any systems, and social networks are not an exception. 

It is incredibly easy to add social media icons to your website pages, provide social share buttons for your content, embed social media feeds, and much more. Social media modules in Drupal 8 are very numerous and useful. 

Among them, Easy Social, AddToAny Share Buttons, Social media share, Social Media Links Block and Field, and many more. In addition, there are network-specific modules like Video Embed Instagram, Pinterest Hover button, Facebook Album, and plenty of others.

Social media posts can also be embedded in your content using the Drupal 8 core Media module as a basis. 

Build a local business website on Drupal 8 with us!

The above reasons to build a local business website on Drupal 8 are just a few of a thousand. Contact our Drupal team and let’s discuss in more detail how we can help your local business flourish!

Jul 29 2019
Jul 29

Good images can be your website’s best friends if you treat them well. But they can be your website’s enemies if you have never heard about image optimization.

Happily, there are many useful optimization tools. The 8th version of Drupal has a number of great ones out-of-box. This is one of many Drupal 8’s benefits that make website owners want to upgrade to Drupal 8.

So let’s talk about the reasons to optimize images and the ways to use the image optimization in Drupal 8 via the core features.

Why image optimization is vital

  • Optimized images do not overload your website and significantly increase its performance compared to that with “raw” ones. Optimization saves precious seconds of your user’s browser loading time.
  • Conversions are potentially increasing because users do not leave a slow website. That’s why great attention is paid to e-commerce product image optimization. However, the ability for users to reach their goals is vital for every type of site and business.
  • Image optimization with mobile devices in mind significantly boosts your audience.
  • It is beneficial for SEO because search engines consider website speed as a ranking factor. Properly formatted images also have more chances to show up in image search results.
  • Automatic optimization will save a lot of your editorial staff’s work on content moderation.
  • Finally, needless to say that your customer satisfaction and brand reputation wins from fast-loading and trimmed visual assets.

Image optimization in Drupal 8 core at a glance

Drupal 8 has the image styling feature out-of-box that allows you to trim original images for various scenarios. All uploaded images will be automatically formatted in the specified ways.

For example, if all users upload profile pictures, there will be no “chaos” in their dimensions. You can “ask” Drupal to show their thumbnails on the list of users, the pictures of specified sizes on the account page, and so on.

To trim the original pictures as part of optimization, Drupal 8 applies effects such as scale and crop, resize, rotate, and more.

It is also possible in Drupal 8 to create responsive web design and show different image styles according to device dimensions. You can have high-resolution Retina images and small ones for mobile devices. All this is created by Drupal 8’s built-in modules Responsive Image and Breakpoint.

You can always entrust image optimization in Drupal 8 to our Drupal developers, so all your visual assets are optimized for all use cases and all devices.

Drupal 8 image optimization at a closer look

1. Creating image styles

Let’s imagine someone uploads a profile picture with large dimensions and plenty of extra space.

large image to be optimized in Drupal 8

In terms of optimization, the scaling and cropping could be perfect here. And we can apply it automatically to all our Drupal users’ pictures.

In Configuration — Media — Image Styles, we see Drupal 8’s default ones (“thumbnail,” “medium”, and “large”) and can add any others. So we:

  • create an image style and call it “User picture”
  • select the “scale and crop” effect for it
  • click “add” and “save”

Creating an image style in Drupal 8

When we edit this style, we can choose the width and height, as well as the part of the picture to retain during the crop. A good default is the center.

Specifying dimensions in Drupal 8 image style

2. Assigning image styles to use cases

So let’s use the newly created “User picture” style as a standard for user accounts. The styles can be assigned to an image field wherever it appears — in content types or their particular view modes (e.g. article teaser), in Views (e.g, a collection of articles), and so on.

In our case, this is the “Picture” field in the user account (Configuration — People — Account settings — Manage display). Next to the field, we click on the cogwheel and select the “User picture” style.

Assigning Drupal 8 image style to image field

And now our user Spiderman will have his picture scaled and cropped to 400х400, and the same automatically applies to all other user pictures, old or new. A nice optimization!

Image optimization for user pictures in Drupal 8

3. Providing responsive design

Trimming the pictures to 400х400 looks pretty nice, but all devices are different. To have different styles for different device dimensions, developers enable the Responsive Image module and also use the Breakpoint module in Drupal 8 core.

We specify the breakpoints (or “turning points” in device dimensions) at which Drupal 8 will start to show a different image style. We do it in the theme’s breakpoint.yml file. Thanks to this, all devices show the picture well.

When the breakpoints are ready, we create a responsive image style in Configuration — Media — Responsive Image Styles, select the name of the theme in “Breakpoint group,” and attach image styles to breakpoints. The final optimization accord is assigning the responsive image style to the image field.

Let’s optimize your Drupal 8 images

Image optimization in Drupal 8 is organized perfectly. D8 is equipped with user-friendly interfaces, but at the same time the optimization process looks a bit tricky to non-developers, especially in the responsive design part.

So our Drupal development team is ready to do all the necessary optimization on customers’ websites. To do this, we can use Drupal 8's core capabilities or other tools from our large developer’s arsenal.

With us, you can also migrate to Drupal 8, which has image optimization and responsiveness as a priority.

Enjoy the benefits of having your images optimized!

Jul 18 2019
Jul 18

We love to say that Drupal has modules for absolutely everything. Some modules are simple but still important because they cover specific details in the website’s work. They are like the missing pieces of the puzzle that makes your website more user-friendly, secure, reliable, and so on. One of them is Registration Confirm Email Address, which that we will describe today.

What is the Registration Confirm Email Address module for?

The Registration Confirm Email Address module is meant to create an extra field in the user registration form. As you might have guessed, this field asks users to confirm their email address during registration. They type the address twice, so they are protected against a misspelling or other error.

email confirmation field

Everyone’s happy — the users are not missing out on important emails, and the marketers are happy twice! ;) However, it’s much more than about marketing, because correct email addresses can be really crucial in different scenarios. They might need to manage their user cabinet, keep track of orders, and so on.

Who created the module?

We are happy to say that our Drupal developer knyshuk.vova is the co-owner of the Registration Confirm Email Address module. Together with the owner montesajudy, they have made it easy to confirm email addressess on Drupal websites.

Our parent company InternetDevels and our country’s Drupal Ukraine Community are listed as supporting organizations for the Drupal 8 branch of the module.

What makes the module special?

The Registration Confirm Email Address Drupal module extracts the email confirmation feature from another module — LoginToboggan. The latter is a complex module that offers numerous modifications to the Drupal login system.

However, if you only need the feature to confirm email address, you can install the Registration Confirm Email Address module instead of using the complex LoginToboggan module.

Having only the features you need, nothing less and nothing more, is good for usability and does not overload your Drupal website.

A closer look at the module’s work

1. Enabling the module

First, we install the module and enable it on the Drupal website.

enabling registration confirm email address drupal module

2. Enabling the option to confirm email address

After the module is enabled, we can select to use its functionality at admin/config/people/accounts. Under the “Confirm email address”, you need to check "Use two e-mail fields on registration form."

enabling option to confirm email address on drupal website

3. Creating test user accounts

When it’s configured, we can test the result by trying to create a Drupal website user account. As we see, the registration form now requires the user to retype the email address field. It says “Please retype your email address to confirm it is accurate.”

confirm email address field on drupal user registration form

Use the desired registration features on your website

Our Drupal developers are ready to help you install and configure the Registration Confirm Email Address module on your website, or select other modules in this sphere. If there is no desired module available, we will create a custom one for you that will work exactly as you wish.

Let your website’s registration process fully reflect your requirements, and make you and your users happy. It’s easy with our Drupal team!

Jul 09 2019
Jul 09

Our great “drop” keeps moving to the future. While we are enjoying Drupal 8’s benefits, it’s already time to start preparing for Drupal 9. And every single contribution makes Drupal move faster and get better!

We were interested in what Drupal experts and contributors think about Drupal. So we decided to ask 10 of them 3 questions in a blitz interview. We are very grateful to each of them for their answers and happy to share them with you.

These experts work with Drupal every day, maintain big or small Drupal modules, fix issues, speak at conferences, take part in code sprints, or mentor younger talents. Each of them contributes in their own way, but they are all united by the fact that they love Drupal and know it from the inside. This makes their thoughts especially valuable. So let’s go.

What Drupal contributors say about Drupal

Matt Glaman (mglaman)

  • What do you think is the greatest Drupal benefit?

The greatest benefit using Drupal is the community and the opportunities the community brings. The community is not just the people building Drupal but all of the businesses using and building with Drupal — from freelancers, to agencies, to clients. Once I started working with Drupal, the community has opened so many doors.

Freelancing on the side brought me to DrupalCamp Atlanta, my first Drupal event — ever. I got hooked. Eventually attending the Milwaukee meetup and making connections led to a referral which let me move on from my agency work to a company building a web hosting platform using Drupal. Through active contributions I ended up with an offer to join Commerce Guys, now Centarro, and am looking forward to marking my fourth year with the company.

Through Drupal I have had the pleasure of making friends across the United States and the world. I have traveled to places I never imagined I would be, nor that I would have been able to visit Europe. Working with Drupal has changed my life and provided some amazing experiences.

  • Do you have a favorite Drupal module?

I am biased, but my favorite module is Drupal Commerce. My first Drupal site was an e-commerce site and I installed Commerce Kickstart. Drupal Commerce has been my point of reference for code since my earliest days. There is always an example for some kind of use case or problem solved.

Developing Drupal Commerce also provides interesting challenges. It has driven development of various popular contributed modules (Address, Profile, Entity, Inline Entity Form in Drupal 8 alone).

  • What do you expect from Drupal in the future?

I expect Drupal to become the flagship open source CMS used for robust experiences. We are going to move up in the market and lose some users. But we are going to gain more at the same time. Drupal needs to — the bottom market is being taken over by static site generators, not just WordPress or Squarespace.

There also aren’t many open source eCommerce + CMS options out there. I am excited for the future of Drupal and Drupal Commerce for a fully integrated content, marketing, and ecommerce package.

Jacob Rockowitz (jrockowitz)

  • What do you think is the greatest Drupal benefit?

Many people would say "Community", but I feel that the community's "Collaboration" to create great software is Drupal's greatest benefit.

  • Do you have a favorite Drupal module?

The module which I have installed on every single Drupal site I have ever built is Honeypot, which mitigates spam form submissions using the Honeypot method. It is a reliable module that does exactly what it is intended to do, with great support from Jeff Geerling (geerlingguy) and the Drupal community.

  • What do you expect from Drupal in the future?

To accomplish some of Drupal's ambitious goals and initiatives, we are going to completely rework some old, outdated APIs and code. While improving or redoing Drupal APIs, I am optimistic that the Drupal community can collaborate and devise solutions that impacts and solves problems and challenges affecting all Open Source projects. More organizations will have to step in to lead and fund different initiatives to help make Drupal and Open Source more sustainable.

Mateu Aguiló Bosch (e0ipso)

  • What do you think is the greatest Drupal benefit?

It's difficult to choose one, but I think my favorite feature is the flexible yet robust way Drupal allows you to define any data model. It's the best content modelling tool for a CMS I have tried or heard of.

  • Do you have a favorite Drupal module?

There are many fantastic modules out there. All serve a specific purpose. My favorite is the one I need at any given time.

Among the ones I wrote, I have devoted a lot of time to JSON:API, but now that one is in core I'm turning my face towards Simple OAuth.

  • What do you expect from Drupal in the future?

To stay relevant for 20 more years. For that we need to make an effort to become more multi-channel and less web-specific.

Nick Veenhof (Nick_vh)

  • What do you think is the greatest Drupal benefit?

The greatest Drupal benefit is the ecosystem that is thriving around it. It is a massive pile of code snippets and working proof of concepts that you can take inspiration from, and on the other hand it is full of really stable, mature modules to build your base application on. The fact that it is can output not just html but also json for every resource is mind-blowing.

The reason why I stayed with this technology, and it sounds like a cliche, is the community. I’ve been involved in the Drupal ecosystem for over 12 years and it is has been a guide in my life. I started in Belgium and was welcomed in this community. Not much later I moved to Spain and was welcomed with the same open arms as I encountered before in Belgium. I repeated this pattern 2 more times in Portugal and Boston and from all these encounters I made quite some good friends. Not only in the community events but also as colleagues.

Drupal not only stays relevant when it comes to technology, it also thrives because there is more to it than technology. This is unique.

  • Do you have a favorite Drupal module?

I do not have a favourite module but I have a favourite ecosystem within Drupal. If you look at my profile you will see a pattern arise and that is Search. I did my Master-thesis around Drupal and Solr and if you look deep enough in my github account you can still find some gems in there. I’ve helped with upgrading Search API and Search Api Solr and all others to Drupal 8 and it is dear to my heart. I love the interoperability that it offers you to connect Drupal to Solr but also to connect external datasources to Drupal. It acts like a gate that reaches way beyond just search. Due to this reason and the people that have been crucial in this ecosystem this set of modules are my favorite. Also, not to forget, because of these modules I’ve been involved early on in Drupal 8 and got ahead of the curve in terms of knowledge and gave me a boost in my career for sure. I can recommend everyone to not just have a favorite module but to actively participate in an ecosystem or a specific module.

  • What do you expect from Drupal in the future?

My expectations are that extending Drupal for Content Editors/Marketeers will have to become a lot easier. Automatic updates are a massive pain but will have to be solved someday for Drupal to break out to the masses. What I think is that site builders can somehow have access to an App-Store’ish thing to more independently add functionality to their website. This will be supported by either a DIY solution or by companies like Dropsolid, Acquia or others. The work that is being done for the automatic updates, or even the work that is in the works from the association (Drupal Steward) leans very much towards these mechanisms already. Automatic updates first, adding of functionality next.

Balazs Janos Tatar (tatarbj)

  • What do you think is the greatest Drupal benefit?

“Come for the code, stay for the community.” After being in the Eastern part of Europe, visiting DrupalCamp Belarus and right after the DrupalCamp Kyiv ‘19 conferences, I couldn't be more happy to see how local communities make this saying an unquestionable truth. Sometimes people don’t fully understand what is written in the code, because of having less experience or just simply being a newcomer on the field: the Community behind Drupal is one of the strongest arguments that we always can use when promoting the project and involving newer pair of eyes and hands.

For me personally, working in the Mentoring Team, helping first timers to step up and start their contributions, guiding experienced ones to mentor others and supporting event organizers to shape a ‘Contribution day’ at their local camps always give me the joyful moments.

Earlier this year we started to promote mentoring activities by asking local events and their contributors who help others doing dev or non-dev contribution to the Drupal project to step up and let the Community know what did the do! In the Mentoring project in drupal.org, we have dedicated issues for all Drupal events this year. One of our goals is to get in touch with mentors who we might not yet know personally and hopefully meet them at DrupalCons, being part of the Mentors and have a truly unique experience when we all show our passion: Staying for the community.

  • Do you have a favorite Drupal module?

It’s a quite tricky question :)

Being not a coder for a while, but a security researcher, helping the Drupal Security Team with reporting issues and also acting as a regular speaker, wearing the (apart of many others) hat of a provisional member, my favorite Drupal modules are the ones that have a stable release and hosted on drupal.org.

You might ask why? It’s easy to answer: These are the contributed projects that have coverage by the Drupal Security Team.

Whenever someone finds a vulnerability in them, it’s going to go through a procedure and will be released in a coordinated way, one of the coming Wednesdays. Out of the security team members, the reporter(s) and the maintainers of the project, no one else know about the issue before it gets publicly disclosed, following our Disclosure Policy.

Apart of having a few contributed modules where I’m the maintainer (everyone loves their own children, right?) I would highlight the modules where I’ve reported issues and say thanks to all maintainers who helped fixing vulnerabilities and acted super professionally in the private queue — it’s never a blaming game when there is a security bug in a contrib but a great possibility to learn how it could be fixed in a secure fashion.

So overall, I would say my favorite Drupal modules are where I could have been involved to make them more secure: Facebook Like Button, Skype status, Yandex.Metrics, Mosaik, Cloud, bootstrap_carousel, Feedback Collect, Node feedback, ComScore direct tag, Taxonomy Term Reference Tree Widget, FileField Sources, Entity Reference Tab / Accordion Formatter, SVG Formatter, Entity Delete, XML Sitemap, PHP Configuration, NVP field, AddToAny Share Buttons and Back To Top - Thank You All to be responsive and kind with me during the period of remediation and even later, meeting in real life at Drupal events!

  • What do you expect from Drupal in the future?

I see many local communities that work hard to be recognised and their core teams to show why they love Drupal.

The Community Working Group (CWG) states they are present to maintain a friendly and welcoming community for the Drupal project (source). They appreciate the work that individuals do for the Community by maintaining the Aaron Winborn Award. This year I had the honor to give the Mentoring t-shirt to Leslie Glynn at our Mentor Booth at DrupalCon Seattle before she got the Award and it made my eyes wet seeing her on stage the next day. She is a perfect example for all of us about humanity, respect, kindness and overall commitment to the Community. Congrats and Thank You, Leslie!

Apart of many successful stories that I see in the Drupal project, one of the best is to see people stepping up and helping each other to contribute. AmyJune Hineline is one of the many Mentors who is not a technical person, shows us an awesome dedication to the Drupal Community. It makes me believe that the future of Drupal depends on individuals and their activities: come and be part of it at DrupalCon Amsterdam this October and “Get ready for another level of awesomeness!”.

Bram ten Hove (bramtenhove)

  • What do you think is the greatest Drupal benefit?

Being able to serve both site builders and developers. This is a tough balance to maintain, but Drupal seems to be doing this quite well.

On one hand site builders are able to create Drupal sites that are relatively easy (once you get the hang of it) to set up and configure. And on the other hand there is a lot of freedom and extensibility available for developers, making it a great choice for many organizations.

  • Do you have a favorite Drupal module?

I like the Group module. I’ve been using it extensively over the last years and I like how the architecture is designed. It’s also good to know that the maintainer, Kristiaan Van den Eynde, has been working on some core issues to make the module much better. These core issues should also have a larger development impact.

  • What do you expect from Drupal in the future?

There are a few features I’m eager to see added to Drupal. Having Automatic Updates will make it easier for, for example, site builders and smaller organizations to have a secure website. It will definitely decrease the maintenance burden. The Workflow and Layout features will add quite a bit of value to Drupal out-of-the-box, and having the Configuration Management 2.0 roadmap goal delivered would be pretty cool as well.

Furthermore I expect to see more work going towards making Drupal API-first, several huge steps have already been taken which have led to an increase in decoupled Drupal sites. And the Drupal ecosystem will hopefully more and more make use of modern web APIs, like what you see with Progressive Web Apps.

I also hope to see more (standardized) Drupal integrations happening with the Internet of Things. For example Drupal and voice-based services sound pretty cool.

Drupal contributors from our team

Andrew Zahura (shkiper)

  • What do you think is the greatest Drupal benefit?

I think Drupal's main advantage is its community, because it’s the people who support and develop Drupal. They share their work, knowledge, and experience. Thanks to the very large and developed community, Drupal has gained such popularity and has such a large number of modules, features, and themes. Due to the fact that the Drupal community is very open and friendly, anyone can easily find information about a topic of their interest or ask directly on the forum. It is also very easy to promote your ideas and achievements.

  • Do you have a favorite Drupal module?

It is impossible for me to choose only one module, because there are thousands of them and each does an important job. Every year, more modules are added to the Drupal core, which shows that all modules are an important and useful part of the system.

  • What do you expect from Drupal in the future?

Programming, and especially web development, is changing very rapidly. We can see the emergence of new areas of development, frameworks, and libraries. So I expect that Drupal will continue to grow and develop, use the best achievements in other fields, and engage more talented and active people in the community.

Oleh Raban (Zemelia)

  • What do you think is the greatest Drupal benefit?

Its benefits are the community, a relatively easy learning curve, the object-oriented programming approach in Drupal 8, a great selection of tools in the core, and plenty of ready-made contributed solutions.

  • Do you have a favorite Drupal module?

This the Admin Toolbar module. Anyone who works with the Drupal admin dashboard will have tough experiences without this module. So I recommend it to everyone.

  • What do you expect from Drupal in the future?

I would expect the improved UI support for JS libraries out-of-the-box (for example, React). This would mean full-fledged “frameworkness”, if I may say so. But generally Drupal's trends are very cool. It keeps pace with time and with all that multitude of technologies. Perhaps it would even be interesting to see Drupal in some other programming language than PHP. Of course, this sounds unreal, but who knows :)

Ivan Tibezh (tibezh)

  • What do you think is the greatest Drupal benefit?

I think that Drupal’s great benefit is its architecture. Drupal’s architecture (here I mean version 8) is very well thought-out in terms of scalability. You can replace any item with your own one or, in some cases, replace the existing functional elements with your own ones. Of course, Drupal has a foundation that cannot be modified. Still, Drupal is very versatile if compared with other frameworks or CMSs/CMFs.

Even more, due to scalability, Drupal is a versatile system that is not limited to particular tasks (for example, like Magento is only specific to online stores). With this versatility, we can cover a large market. One experienced Drupal developer can easily make business card sites, catalogs, online stores or even social networks based on Drupal. This is also supported by a wealth of Drupal modules for any industry.

  • Do you have a favorite Drupal module?

A simple answer to this question will be “the Views module.” After installing Drupal, every beginner, almost immediately or in the very near future, begins to learn this module. This module can display any information from the database on the website, and it has the flexibility to output anything, in any way.

If you take something "fresher," then it will be the Commerce module for Drupal 8. Everyone knows that the module consists of submodules with a large code. I like Commerce because it gives me inspiration for interesting tasks. There are cases when you need to implement a certain functionality, and something like this already exists in Commerce. So you look into the module and take a similar example, the coding style to solve your task, or just interesting solutions/functions for yourself.

  • What do you expect from Drupal in the future?

I expect, although I'm not quite sure, that Drupal moves in the direction of React. React is a pretty good thing that will make Drupal even faster and, in some cases, more flexible in development. If this happens, it is necessary that everything is implemented well on the backend part (as is the case with Drupal Ajax framework). Here I mean that the vast majority of Drupal developers know PHP and can use jQuery but do not know JS well enough to work with React, and do not even know React itself.

And here is not an expectation but rather a wish. It would be nice to have a built-in Donation system for modules. I am the maintainer of some projects and there is always too little time to deal with then. And if there will be a little incentive system (for customer, a customer needs some feature in the module and can invest, say, $50 into this task) this would be a great system to motivate developers and develop Drupal. A project like this already exists somewhere, but it is specific to the GitHub repository, if my memory does not fail me.

And finally, I expect the 9th version of Drupal :)

Oleksandr Chernyi (BlacKICEUA)

  • What do you think is the greatest Drupal benefit?

In my opinion, Drupal's greatest advantage is its comprehensiveness and extensibility. To me, Drupal, this is primarily a CMF (Content Management Framework), or even rather a pure framework. With custom modules, you can implement virtually any task, from content management to AI applications.

  • Do you have a favorite Drupal module?

I can’t say for sure that I have a favorite module because I'm trying to create new modules — albeit in the context of client projects. The following modules are often used: Paragraphs, Field Group, Selectize.js, Select 2, Chosen, Admin Toolbar, Devel, Configuration Split, Config Ignore, and Config Filter.

  • What do you expect from Drupal in the future?

I am looking forward to switching to Symphony 4 or 5. It works with PHP version higher than 7.1.3, which will lead to the cutting out the outdated methods and functions from the core. I think, this will speed up Drupal.

I also think that there will be a complete transition from hooks to EventSubscribers, which in turn will lead to greater structuring and flexibility when used.

Final thoughts

Hopefully, you also enjoyed reading this blog post with the thoughts of Drupal contributors about Drupal. We would like to emphasize again how valuable they are to us. We wish them all the luck with Drupal development!

With any questions or website ideas, contact our web development team.

Jun 24 2019
Jun 24

It is crucial for website security and usability to determine who is allowed to view, edit, or delete content on your platform. Things become easier with the configuration of user access if you are using Drupal. This CMS offers out-of-the-box user roles, as well as contributed modules for such functionality.

Today, the web development team at WishDesk explores user access modules in Drupal 8 — the latest Drupal version.

What is user access?

User access means that the user possesses a particular role on a website that lets them access certain areas of the site, as well as see the specific elements displayed on each web page after logging into the site.

Top Drupal 8 user access modules

Here is a list of the most popular user access modules for Drupal 8. Check out this information before choosing one for your website! The choice of this module depends on the functionality you want to add.

top Drupal8 user access modules

  • Permissions by Term

Permissions by Term is the Drupal module that lets you restrict or allow access to the specific website content on the basis of taxonomy terms. These permissions can be applied to user roles, as well as individual users and work for nodes, views, menus, etc. With the help of this module, taxonomy terms can be coupled to specific accounts.

  • Node View Permissions

The Node View Permissions module simply adds two types of permissions to every content type: "View own content" and "View any content." Besides, it can be easily combined with other user access modules.

  • Menu Admin per Menu

If you need certain users to add, edit, or delete particular menus, without access to other menus, the Menu Admin per Menu module is for you. Note, that users without full admin permissions may not see all the menus, so you need to move the necessary items to the root of the Management menu or somewhere else where it can be seen by those users.

  • Block Content Permissions

The Block Content Permissions module allows you to set permissions to custom block types, as well as create, update, or delete specific types of block content.  

  • Protected Pages

Protected pages is the Drupal 8 user access module that allows the administrator to protect certain web pages with a password. Some interesting features include global password setting, session expire time setting, bypass permission to skip password protection, and more!

Configure user access on your website with WishDesk!

This is just some of the Drupal 8 user access modules available — the choice depends on the type of website you have and the content you provide. Our Drupal team is always here to choose the most suitable modules for your platform and configure it to meet all your needs. We can also create custom modules for you if none of the existing ones fulfill your requirements!

User access in Drupal 8 is easy, especially when you have a reliable web development agency at hand. Contact us for any kind of digital help or assistance.

Jun 21 2019
Jun 21

Your website, like a king, should look good in any situation — and on any device that users might be accessing it from. Thankfully, there is responsive web design.

With responsive web design, all images, buttons, columns, and other layout elements change their size and position to adapt to the device dimensions. This creates the smoothest user experiences and improves website performance.

Luckily, responsive design in Drupal 8 is thriving. Drupal 8 has been built with mobile devices in mind. It has responsive default themes, responsive admin interfaces, and powerful opportunities for mobile-friendly design. There are great Drupal 8 modules that are very helpful in implementing any ideas in this area.

Responsive design

Drupal 8 core modules for responsive design

Of course, we need to start with the powerful built-in modules that arrived at the core with the release of Drupal 8 to everyone’s applause.

1. Breakpoint

The Breakpoint module allows you to specify the breakpoints, for example, screen dimensions (minimum or maximum width), at which your website should start showing a different layout. The module is enabled out of the box in Drupal 8.

Breakpoints should be defined in the theme’s themename.breakpoints.yml file. Default themes like Bartik are known to be responsive out-of-box, so they already have this file with a set of ready breakpoints. For custom Drupal 8 themes or modules, this file needs to be created in the theme’s or module’s root directory.

Breakpoints in Drupal 8

The module manages the height, width, and resolution breakpoints. It enables modules and themes to use each other’s breakpoints.

2. Responsive Image

The Responsive Image module provides the appropriate image display for each breakpoint. The module is part of the Drupal 8 core but needs to be enabled.

According to Drupal image style capabilities, images can be automatically scaled, cropped, resized, and so on, to be used in different scenarios. With the help of the Responsive Image module, these different image styles can be served for different devices based on breakpoints.

All you need to do is:

  • create the desired image styles in Configuration — Media — Image Styles

Image styles in Drupal 8

  • create a “Responsive image style” in Configuration — Media — Responsive Image Styles, choose the theme name in “Breakpoint group,” and assign image styles to breakpoints

Assign image style to breakpoints

  • assign the responsive image format to the image field of the desired content type in Structure — Content types — *Content type name* — Manage display

Assign responsive image format to image field

The Responsive Image module uses the HTML5 "picture" tag. It once used to be known as the Picture contributed module.

Contributed modules for responsive design in Drupal 8

Alongside the strong core features, there are contributed modules available in Drupal 8, each of which adds its own touch to responsive web design creation. Let’s review a few nice ones.

1. Simple Responsive Table

The Simple Responsive Table is a lightweight module that instantly makes Drupal website tables responsive. All that is needed to do is set the maximum screen width for which tables should be responsive. You can also optionally enable or disable this feature for Drupal admin pages.

Simple Responsive Table

2. Sidr: Responsive Menus

The Sidr: Responsive Menus module for Drupal 8 integrates a JavaScript plugin called Sidr, which is great for creating responsive side menus and more. The module should be installed together with the Sidr libraries.

With the help of this module, you can create configurable Sidr “trigger” blocks on your website. They can be placed anywhere in your theme region and configured to your liking. Their essence is that when a trigger is clicked, the Sidr side menu slides out or slides back in.

Sidr: Responsive Menus

3. Viewport

The Viewport is a simple Drupal 8 module that offers a user interface for adding a viewport meta element to the HTML header. The viewport element instructs the browser on how to display the visible part of the page on the users’ screen. Viewport varies from device to device.

The Drupal Viewport module’s interface allows you to specify the viewport values and the pages for which the element should be added.

Viewport module Drupal 8

4. Juicebox HTML5 Responsive Image Galleries

Here is a nice module for creating responsive image galleries and sliders. The Juicebox HTML5 Responsive Image Galleries module integrates the famous Juicebox library. The library is known for its full responsiveness, touch gesture support, embedding features etc.

The module provides a field formatter and a views style plugin that allows image fields and Views to be formatted as Juicebox Galleries. It features multilingual support, integration with the Media module, search engine friendliness, and much more.

Juicebox HTML5 Responsive Image Galleries

Fulfill your responsive design ideas

Responsive design in Drupal 8 is easy for developers to set up and enjoyable for users to work with. So contact our Drupal team if you are interested in:

  • building a responsive theme for your Drupal 8 website
  • making your current theme responsive
  • configuring any responsive design modules
  • providing responsive layout for any elements on your website
  • migrating your website to Drupal 8, as it has so much for responsive design

The era of convenient web is here!

Jun 13 2019
Jun 13

It’s an undoubtable truth that images have a strong power to engage customers. And there are plenty of ways to enhance this engagement, one of which is the image hover effect (aka mouseover effect). 

Features like this are meant to add a creative and interactive touch to your website, spark users’ interest, save space, make your website more user-friendly, and increase conversions.

Drupal 8 has easy content creation as a priority, and there are also many useful modules for creating image hover effect. Let’s take a look at a simple but nice one — the Imagepin button module.

The Imagepin button Drupal module’s brief overview

The Imagepin button module combines image hover effect with an interesting image pinning effect. It allows you to add pins to images that will show some text when someone hovers the mouse over them. 

During content creation, editors will have a special option — “Pin widgets on this image.” They can create as many pins as they wish, write the text for them, and position them anywhere throughout the image.

Pins appear on the image:

Pins on image with Imagepin Drupal 8 module

Text appears as you hover the mouse over each pin:

Image hover effect with Imagepin Drupal 8 module

The module’s extensibility

Out-of-box, the Imagepin button module cooperates with the Slick module and displays all widgets as a carousel. But it’s just the beginning. The module is extensible with custom widgets, and the use of JavaScript can add more interactivity. 

So it is easy to adjust the module’s behavior to your website’s particular needs with the help of a good Drupal team. Let’s now see the module’s “classic” work on a simple example.

Creating image hover effect with the Imagepin button module

1. Installing and enabling the module

It begins with installing the Imagepin button module — either via Composer or by downloading it from drupal.org. Then it should be enabled in the “Media” section on the module list.

Enabling Imagepin Button Drupal 8 module

2) Enabling the Imagepin for a content type’s image field

We go to the Manage Display tab of a content type that contains our image field and click the cogwheel next to this field. We need to check “Enable users to pin widgets on this image.” While doing this, we can:

  • choose which image style to use for dragging the pins
  • optionally set breakpoints for mobile devices

Enabling Imagepin for image field Drupal 8

3) Creating pins for images

Next, when we add content, we see the “Pin widgets on this image” button and click it.

Adding pins to images with Imagepin Drupal 8 module

This button brings us to the “Pin widgets” UI where we see available widgets (none added yet). Let’s click “Add new” and submit the text we want to display. 

For example, on our image of Europe Travel Map, we could pin sightseeing objects — and start with “Eiffel Tower.” So we write its name in the text field.

We check it in the “Available widgets” and it turns orange, which means it is active. So we can drag the position of the pin to the place where we want to see it. And then we click “Save these positions.”

Adding pins to images with Imagepin Drupal 8 module

As we save the content item, we can see our pinned image.

Pins on image with Imagepin module Drupal 8

As we hover over it, we see the image hover effect in action — the text shows up.

Image hover effect with Imagepin module Drupal 8

Get a nice image hover effect created for your Drupal website!

We have shown you a simple example of image hover effect in Drupal 8 created by the Imagepin button module. Of course, it can be fully customized to meet your ideas.

So if you need any help with:

  • configuring the Imagepin button module
  • extending it with custom plugins
  • creating image hover effect using other tools

contact our expert Drupal team!

Jun 06 2019
Jun 06

Drupal keeps moving ahead. In June 2020, we hope to see the release of Drupal 9. Innovation often has a “flip side” — cumbersome upgrades. But not this time! Upgrades from Drupal 8 to Drupal 9 will be quick and easy, and this is one of Drupal 8 benefits. However, there is a condition all websites should meet — and there is a wonderful Upgrade Status module that will help them with that. 

Deprecated code removal = easy upgrades to Drupal 9

All Drupal 8 websites will have silky smooth upgrades to Drupal 9, if their core, modules, and themes are up-to-date and not using deprecated code. A very lucrative reason to migrate to Drupal 8 now if you have not yet ;)

Deprecated code is one that is no longer in use and has more modern alternatives. The functions and APIs that are marked as deprecated continue to exist alongside with these alternatives — until they are removed. The release of Drupal 9 will see a major cleanup from deprecations.

Modules and themes without deprecated code will be immediately ready for Drupal 9. Those with deprecated code should have it replaced before Drupal 9 arrives.

Dries about deprecated code and preparing for Drupal 9

Drupal creator Dries Buytaert encourages everyone to update their code to the latest and greatest APIs today — without waiting for Drupal 9. And here is where the Upgrade Status module comes in.

Upgrade Status module to check your site for deprecated code

The Upgrade Status module was developed on the basis of the powerful command-line tool called drupal-check, which scans your codebase for deprecations. 

But the Upgrade Status module makes the process handy for everyone thanks to its graphical user interface. It is easy to run the checks directly from the admin dashboard and get informative results.

There is even a chance we may see Upgrade Status module in Drupal core some day. A fresh issue about it has been created in mid May 2019. 

More details about Upgrade Status module’s work & features

Installation notes 

The Upgrade Status module uses third-party PHP dependencies, so it is highly recommended to install it via Composer package manager. The Update Manager and Git Deploy modules will also need to be enabled. When installed and enabled, the Upgrade Status module’s UI is available at /admin/reports/upgrade.

Checks for deprecated code

The module will scan your core, contributed, and custom modules and themes and tell you which ones have deprecated code. 

It tells the “status” of each project, which is either “No known errors” or “Errors found” (with their amount). When you click “View errors,” you are taken to the page with the information about the particular deprecated function or API.

Upgrade Status module to prepare for Drupal 9

Checks for available updates

It also shows you the available updates for contributed projects. These updates are highly recommended, because Drupal projects’ maintainers resolve deprecation issues with time. 

Drupal developers who find deprecated code in a contributed project can also create an issue on drupal.org (if it does not exist yet) or help with patches.

Checking the whole site or particular projects

In addition to the full check, the module also allows you to check individual projects. You can also rerun the report on specific projects that you are currently working at. So you can avoid spending a long time to run the full check. This was mentioned among the module’s benefits in the blog post by one of its main creators — Gábor Hojtsy.

Handy reporting

The Upgrade Status module allows you to export the full report about the check or individual reports for projects.

Continuous integration opportunities

The module cannot be integrated with your continuous integration processes for now. However, the tool behind it, drupal-check, is suitable for this purpose. So the status check can be part of your automated workflows. 

Prepare for Drupal 9 with the help of our team!

So what will be the upgrade status of your website? It’s time to find out!

If you need any help with using the Upgrade Status module or with cleaning up your website from deprecated code, our team of Drupal experts is there for you. 

May 30 2019
May 30

Only a few years ago it was a challenge to manually integrate marketing services into a website. However, a perfect marketing automation tool cannot exist without the ability to be integrated across multiple channels. Nowadays, marketing tools can be digitally integrated with any platform, including Drupal-based websites. This is possible because Drupal 8 provides custom modules for most of such services.

Today, the team at WishDesk explores the most popular marketing automation tools that integrate with Drupal 8.

What is marketing automation?

Marketing automation is a tool that automates repetitive marketing actions, such as social media, email, tracking processes and others. In such a way marketers are able to focus on more urgent tasks and increase productivity.

This study by Social Media Today states that 75% of business currently use automation tools.

businesses that use automation tools

Key features of marketing automation tools

Marketing automation tools let marketers get rid of routine manual tasks. The key points and advantages of them are:

  • tracking visitors
  • email marketing
  • lead scoring
  • customizable workflows

Marketing tools that integrate with Drupal 8

Drupal is a universal CMS and has modules for any feature which will definitely benefit your business. Drupal cares about marketers as well. Here is a list of Drupal 8 marketing modules that can be integrated with a website.


HubSpot is the most popular inbound marketing platform on the internet.

HubSpot Integration for Drupal 8

With the help of Drupal 8 HubSpot module, this service can be easily integrated with Drupal. Website owners can create content on HubSpot and display it on Drupal 8’s front-end.

Key features:

  • submit any Webform to the HubSpot Leads API, as a lead to be tracked by HubSpot
  • easily embed the HubSpot JavaScript tracking code in Drupal website
  • see your latest leads in the Drupal admin dashboard 
  • extensive documentation is available


MailChimp is an email marketing tool. MailChimp allows you not only to set up mailing lists based on multiple preferences but also retrieve mailing lists from a database. Users who sign up on your Drupal 8 website will automatically be stored in your site’s database. You can use these emails for a newsletter and use the MailChimp integration to send emails without manually creating a list of such users.


There’s the MailChimp module available for Drupal 8. It helps easily integrate marketing automation tool with Drupal.

Key features:

  • connect a MailChimp List to any entity with an email address field 
  • display subscription forms or status for Lists on entities
  • subscription controlled on Entity creation
  • create forms to allow site visitors to sign up for any Mailchimp List or combination of Lists
  • create Pages, Blocks, or both to display forms
  • create campaigns containing any Drupal entity
  • send campaigns created in Drupal through Mailchimp or Drupal interfaces
  • campaign statistics


Salesforce is a software company that specializes in customer relationship management (CRM) that can benefit both small and large businesses. The Salesforce platform has functionalities for sales management, partner relationship management, and customer service. It allows users to synchronize contacts, calendars, emails, and various tasks.

saleforce integration module for Drupal8

Drupal 8 offers the Salesforce Suite of modules to integrate with your Drupal website.

Key Features:

  • supports pushing Drupal data to Salesforce as well as pulling, or importing, Salesforce data into Drupal
  • marketing and sales lead synchronization
  • OAuth 2.0 authorization to maximize access control and safety
  • real-time visibility

Google Analytics 

Google Analytics is a powerful tracking tool that creates all imaginable statistics for your website. With the help of this marketing automation tool, you can track users, average session duration, bounce rate, conversions, traffic source, locations, type of device, and much more!

GoogleAnalytics integration for Drupal8

Drupal 8 offers the Google Analytics module that turns the integration of this marketing tool with Drupal into an easy task.

Key features:

  • single/multi/cross domain tracking
  • selectively track/exclude certain users, roles and pages
  • monitor what files are downloaded from your pages
  • demographics and interests support
  • anonymize visitors IP address
  • DoNotTrack support (non-cached content only)
  • Drupal messages tracking
  • access denied (403) and page not found (404) tracking

Check out this post on how to integrate Google Analytics with Drupal 8.

Crazy Egg

Crazy Egg is another helpful marketing automation tool that generates a heatmap of your site. It shows where visitors spend most of their time on your website. Crazy Egg also shows where visitors scroll and where they click the most.

CrazyEgg integration for drupal8

The Crazy Egg module for Drupal 8 allows easy integration of the tool with your Drupal site.

Key features:

  • scroll maps so you can see where people are scrolling
  • session recordings that allow you to watch recordings of your visitors interacting with your website
  • A/B tests

Social Auth Google

Social Auth Google allows users to register or login to the Drupal site with the help of their Google account. This module allows websites to request any scopes so that any tasks requiring authentication with Google services can be performed.

social auth google integrated with drupal8

A path user/login/google redirects users to Google Accounts for authentication.

Integrate marketing tools with Drupal 8!

These are just some of the examples of marketing tools that integrate with Drupal 8. You definitely need them on your website if you want to keep your business on top.

Please get in touch if you need any help with integrating marketing automation tools with Drupal website.

May 10 2019
May 10

There is an ideal blend of usability and attractiveness — this is Media Library in Drupal 8.7 core. That’s what comes to mind when we see Drupal Media Library’s updated UI. Managing media on websites will now be easier and more enjoyable than before!

Drupal Media Library allows you to:

  • save photos, audios, tweets, local videos, remote videos from YouTube or Vimeo etc.
  • manage all items in the Library
  • easily add them to content at any time you wish

So welcome to take a closer look at how the new Media Library interface looks and works in Drupal 8.7.

Media Library’s new UI impresses the world

As soon as the demo video of the new Media Library UI was posted by Webchick yet in March, Drupal core contributor, it gathered many compliments from the Drupal community. “Brilliant,” “wonderful,” “amazing,” “totally huge” are just some of the feedback. It’s interesting to know what you will say, so welcome to leave comments!

A closer look at new Drupal Media Library interface in release 8.7

The Media Library works in pair with the Media module. To start using it, we enable both the Media and Media Library modules.

Drupal shows a warning about the experimental status of Media Library. The module is expected to be stable in Drupal 8.8 after a few fixes and adding WYSIWYG support.

Enabling Media and Media Library modules in Drupal 8.7

With these modules enabled, we can see that the site’s structure now has media types. There are five default and preconfigured ones (and it is also possible to add custom media types):

  • Audio
  • File
  • Image
  • Remote video
  • Video

5 media types in Drupal 8

It’s time to add some media of the available types. All media items will be stored in Media Library for further convenient use. You can add it in two ways:

  • from the admin dashboard “Content — Add content — Media.”
  • directly from the “Media” tab in “Content” where you will see the entire Media Library with all media that you have added.

Media Library new UI in Drupal 8.7

The new Media Library interface can display your media in the Grid view and in the Table view:

Media Library Drupal 8.7 table view

It is easy to filter and sort the media by various criteria, as well as select particular items to do actions with them (delete, publish, save, unpublish).

Media Library Drupal 8 selecting items

Adding media from Media Library to content

Here comes the most interesting part of managing media with the Media Library story — embedding media into content. In fact, it is not only content, but all fieldable entities (for example, user profiles or media itself).

To get this working, the basic necessary thing is to add a “Media” field to the desired entity type. Let’s add it to user account settings and call it “My pet's photos.”

Adding Media field to Drupal contentAllowed number of values will define how many items can be embedded.

Number of values in Media field Drupal 8

You need to select the media type for the field. According to the official documentation, it is completely legal to have multiple media types in the same field.

Selecting Media type for Media field in Drupal 8

Now, every time a new user account is created, it has the “Add media” button that brings in the Media Library interface. Media can be added in two ways (and even at the same time!):

  • You can select Media in the Library:

Selecting uploaded media from Media Library in Drupal 8.7

  • And you can bulk upload media from PC:

Bulk uploading media to Media Library Drupal 8

You can choose “Save and insert”, or “Save and select” to insert them later.

Selecting media from Media Library Drupal 8.7

Once inserted, the media items are displayed on the user account as the user’s favorite pet’s photos. And you can do the same with all kinds of media in all kinds of content.

Media added to user account Drupal 8.7

Enjoy the new interface for Media Library in Drupal 8.7

Well, the new Drupal Media Library interface in release 8.7 is really user-friendly, stylish, and classy. Managing media with it will be fun for content editors.

Our Drupal team is ready to help in configuring the Media fields for your website’s content, creating a custom media type to fit your business needs, and, of course, updating you to Drupal 8.7. Enjoy the newest Drupal features!

May 01 2019
May 01

Online stores with decoupled architecture have all the chances to gain more happy customers. How does this work? Let’s see in this post. The “decoupled” or “headless” architecture is an increasingly popular trend in the Drupal world — especially now that the JSON:API module is in the core. So welcome to this review of the principles of decoupled Drupal Commerce and how it helps online stores engage users.

What is decoupled Drupal Commerce?

In decoupled, or headless Drupal Commerce, the presentation layer is separated from the e-commerce backend. Fast and reactive JavaScript interfaces communicate with powerful Drupal backends via a REST API. Decoupled, or headless architecture gives developers unlimited flexibility to create enhanced shopping experiences.

Decoupled approach as a priority for Drupal Commerce

Commerce Guys, the creators of Drupal Commerce, clearly focus on JavaScript-based solutions for online stores. They have a special team engaged in this area, including lead developers Bojan Živanović and Matt Glaman.

The team keeps polishing Drupal Commerce for headless setups and improves Drupal core in this process as well. They complete the documentation, help developers with their projects, and create an ecosystem of contributed projects in the “decoupled” sphere. Among them:

Commerce Demo project

Let’s see in more detail, with examples and quotes, what benefits make decoupled Drupal Commerce deserve so much attention.

The benefits of decoupled Drupal Commerce

Super high speed

“One thing we’ve all heard about it is it's fast and reactive. You get a quicker response time and the person is more engaged. Customers have an attention problem, so they get easily distracted on a website. So the faster you can give them what they want, the more likely they are to give you their credit card.”

Nothing to add to the words of Matt Glaman, the main creator of the Commerce Cart API and the Cart Flyout modules. He shared this in his speech “The road to a headless Drupal Commerce future” at Drupal Europe 2018.

It is already a known and undoubtable fact that JavaScript front-ends are very quick. In addition, this setup does not overload Drupal, which is reflected in performance.

Matt Glaman said his demo’s product page began to load faster from 130 milliseconds to 60 milliseconds with the decoupled cart. One of the reasons was Drupal no longer had to render a form. All actions with the cart are done on the client side and do not involve the Drupal rendering system.

“The pages are so much faster now because we don’t have to be concerned about Drupal rendering a form or the cart block and all this extra data,” said the developer.

It’s nice for performance that caching can be done without Drupal. According to Matt Glaman, “your product page can be behind the Page Cache module or behind Varnish, and you never have to hit the server to render the cart form, because the JavaScript will do it for you.”

Rich and interactive features

Decoupled Drupal Commerce allows developers to enrich the shopping interfaces with interactive features. Users who enjoy the shopping are more likely to make conversions.

Among these features are:

  • push notifications
  • real-time updates for the shopping cart and all the other forms
  • real-time previews with changed product attributes (like the clothing colors)
  • the ability for the customer to change the order details without the page reloading

and much more.

For example, on the Commerce Demo project, every time a user clicks “Add to cart” or clicks on the cart icon, the cart flies out and shows the contents. The price is updated dynamically as the user changes the product quantity. We see the Commerce Cart API and the Cart Flyout in action.

Commerce Cart Flyout

On the Eldum Rétt website, the price is dynamically updated when the user selects the package size, and cart sidebar also flies out. This project uses a React native app combined with decoupled Drupal Commerce.

Dynamic cart updates in decoupled Drupal Commerce

Freedom in front-end changes

With a decoupled approach, front-end developers are free to implement experiments and changes to improve user experience and application design.

While implementing them, they do not interfere with the backend setup and do not have to worry about it at all. There is no need to edit the database and the code, or redeploy the ecommerce platform.

So, in addition to the flexibility of customizations, decoupled or headless Drupal Commerce saves your time and money. Even small changes in traditional setups would often require the editing of several layers of code.

Front-end technologies of your choice

Your headless ecommerce store can send its data to a mobile app, web app, static site, and so on. You can also enjoy omni-channel commerce with the same store data presented in many ways. Hence the large choice of front-end technologies.

You will not be restricted with what is offered by only one platform. When combined, platforms multiply their benefits.

Your decoupled Drupal Commerce setup is here

If you are interested in decoupled Drupal Commerce tailored to your business needs, contact our Drupal team. We love to create online stores and work with the latest JavaScript technologies.

So entrust us with any kind of tasks in this area — from decoupling your commerce to creating a new decoupled website from scratch.

Apr 04 2019
Apr 04

Views added to Drupal core is one of the most frequently mentioned Drupal 8 benefits. Drupal Views gives us a UI for creating data collections based on any desired criteria. One of the ways to fine-tune the results is to use Drupal Views filters. A level higher from regular filters are the contextual filters that accept dynamic values. This helps us create flexible and interesting solutions. Let’s review Drupal 8 Views contextual filters in more detail.

Contextual filters & their difference from regular filters

  • Drupal 8 Views regular filters can only use one static value at a time. For example, we can filter all cars with the brand name “Renault.” We can also allow website users to choose this manually if we make the filter “exposed to visitors.”
  • Drupal 8 Views contextual filters are able to use the dynamic values that change with context. For example, each logged-in user can see “Renault,” “Volkswagen,” and/or “Nissan” cars based on the preferences they put in their user profile. So the same Drupal View will show different results to everyone at the same moment. 

Thanks to the Drupal Views UI, configuring the contextual filters requires no coding skills. They can be created and configured on the “Advanced” tab of the View. However, contextual filters demand a deep understanding of Drupal and should preferably be created by Drupal developers rather than by website administrators.

Contextual filters in Drupal 8 Views UI

An example of creating Drupal 8 Views contextual filters

We will now create a simple task tracker with Drupal 8 Views. On the “My tasks” page, each user will only see the ones assigned to them. This setup will take a few preparatory steps but they will be fun. Those who are impatient can jump directly to the “Contextual filters” part a few paragraphs below. 

1. Preparatory steps for this setup only

1.1. Creating test users

Let’s start with going to “People — Add new user” and creating test users Jack Sparrow and Frodo Baggins. 

Creating a Drupal userCreating a Drupal user (2)

1.2. Creating the “Task priority” taxonomy vocabulary

Every decent task tracker needs task priority options. Let’s go to “Structure — Taxonomy — Add vocabulary” and add these options as taxonomy terms: Blocker, Critical, and Minor.

Taxonomy in Drupal

1.3. Creating the “Task” content type

Let’s create the “Task” content type in “Structure — Content types — Add content type” and add fields to it. The “Title” field will be available by default. 

Here are the necessary fields and the field type in brackets:

  • Assigned to (user)
  • Due date (date)
  • Task priority (taxonomy — with the specified vocabulary)
  • Task image
Fields for a content type in Drupal 8

1.4. Creating tasks

Let’s create a few tasks in “Content — Add content — Tasks”, select Jack Sparrow and Frodo Baggins in “Assigned to,” and fill in all the other fields. 

2. Creating our Drupal 8 Views contextual filter

2.1. Organizing all tasks into a Drupal 8 View

And we will not organize all tasks into a View in “Structure — Views — Add new view”:

  • View Settings: “Content” of type “Task”
  • Page Settings: Create a Page
  • Page Display Settings: Table of fields
Drupal 8 Views creation

Then we save the View. As it shows fields, we need to add all Task fields to it. And here is how our unfiltered task tracker looks. We only applied a simple sorting by task priority to show “blockers” above “critical” one. But still, our Views shows tasks for all users. 

Drupal 8 Views results

2.2. Creating and configuring a Drupal 8 contextual filter

Both Jack Sparrow and Frodo Baggins would appreciate a page with their own tasks, for which we will use a contextual filter. In “Advanced — Contextual Filters — Add,” we select the “Assigned to” filter argument and save the filter.

Adding a contextual filter in Drupal 8 Views

We are immediately taken to the contextual filter configuration page. 

1) For the “When the filter is not in the URL” option, we select “Provide default value.” There, we select “User ID from logged in user” from the dropdown menu. 

Drupal 8 Views contextual filter

2) For “When the filter is in the URL or default is provided,” we select “Specify validation criteria — User ID.” In the “Action to take if filter does not validate, we specify “Display contents of “No results found.”” 

Drupal 8 Views contextual fllter (2)

2.3. Testing the Drupal 8 contextual filter

Let’s check what all users see if they visit the “my-tasks” page. We visit it in an incognito window and log in as Jack Sparrow. Success — he can only see what’s assigned to him. He will need to save Elizabeth Swann and find the Fountain of Youth.

Contextual filter by user in Drupal 8 Views (2)

Let’s now log in as Frodo Baggins. Good, he knows he needs to take the ring to Mordor and destroy it in the fire of Mount Doom.

Contextual filter by user in Drupal 8 Views

Hopefully, these guys understand their epic missions — that’s how a properly made contextual filter may save lives ;) You will always have a properly made Drupal contextual filter if you contact our Drupal team!

Get assistance with contextual filters

We have shared a simple example of using Drupal 8 Views contextual filters. Our Drupal experts ready to help you configure any kinds of contextual filters for your website and create interesting user experiences.

Mar 19 2019
Mar 19

Drupal 8.6 became one of the most interesting releases in Drupal 8’s history. It brought us the oEmbed feature, the Media Library, the Workspaces module, and more. But it’s time to move forward, and in May 2019 we expect Drupal 8.7. Its “alpha” version has just been released. Although an alpha version is not the final one, we will gladly take a look at it and discuss what to expect in Drupal 8.7.

Drupal 8.7: the alpha version

Drupal 8.7.0-alpha1 came out on March 14, 2019. Alpha versions are far from being ready for production sites. They are just preliminary releases that allow developers to do a good testing, receive feedback, make final preparations, and fix bugs.

After the “alpha,” we are supposed to see the “beta” version of Drupal 8.7 in the week of March 25. Next, the RC (release candidate) phase will begin in mid April.

When everything is tested thoroughly and polished to perfection, we will enjoy the stable version of Drupal 8.7 on May 1! Let’s see what to expect in Drupal 8.7 now that we are looking at Drupal 8.7.0-alpha1.

Expected features of Drupal 8.7

  • End of support for PHP 5.5 and 5.6

Websites are officially becoming lighter and faster due to the use of PHP 7.1+. Drupal 8.6 was the last release to support PHP 5.5 and PHP 5.6. Drupal 8.7 is definitely the time to say goodbye to these obsolete versions of the programming language.

According to Drupal 8.7 alpha 1 release notes, they will officially stop being supported in Drupal 8.7 beta. So those who are using PHP 5.5 and PHP 5.6 will need to upgrade to PHP 7.1 or higher, and our Drupal support team can help.

  • End of support for Internet Explorer 9

The support for Internet Explorer 9 and 10 was stopped back in Drupal 8.4. However, there was a workaround left in Drupal 8.5 and Drupal 8.6 that allowed 32+ stylesheets to be included.

Drupal 8.7 has now officially removed this workaround, so goodbye to Internet Explorer 9. Those who rely on it will need to enable CSS aggregation or install the IE9 Compatibility Drupal module.

  • No more automatic entity updates

As of Drupal 8.7, automatic entity updates are no longer supported by Drupal core. This is meant to avoid conflicts and preserve data integrity. For updating the entities, the Update API should be used. In addition, the drush entity-update (drush entup) command is also not supported anymore. 

  • New UI for the Media Library module

The Media Library module lets you save various multimedia and use them in your content to make it more engaging. It’s possible to embed multimedia directly into content types using the “media” field.

The Media Library works together with the Media module that is already stable. Stable Media Library was first scheduled for Drupal 8.7 but we are likely to see it in Drupal 8.8 after a number of fixes and WYSIWYG support added. 

However, we can enjoy a new and interesting Media Library admin interface in Drupal 8.7. Its features have mostly made it to Drupal 8.7.0 alpha 1 but the completed UI will be available soon in alpha 2 or beta 1.

New Media Library admin UI for Drupal 8.7New Media Library admin UI for Drupal 8.7
  • Adding JSON:API to Drupal 8 core

The JSON:API contributed module is meant for creating high-performance APIs to expose Drupal data in JSON. It immediately creates API endpoints and requires no configuration. The module instantly accesses all Drupal entities.

According to Drupal development roadmap, JSON:API is meant to join the core in Drupal 8.7. JSON:API will look great in Drupal core’s ecosystem of web services that are responsible for third-party integration.

Joining Drupal core is a serious step for any module, especially for a complex one like JSON:API. There has been a hard work done on fixing the last issues related to adding JSON:API to Drupal 8.7 core, and all are fixed now.

Although we don’t yet see the module in the Drupal 8.7 alpha 1 admin dashboard, we will probably see it in alpha 2 or beta. So congrats to JSON:API! Update for 21/03: JSON:API has just landed in Drupal core!

  • Improvements and stabilization for the Layout Builder 

The Layout Builder module in Drupal 8 core allows you to build layouts like Legos by using ready multi-column layouts and Drupal blocks. 

These can be layouts for content, users, contact forms, and other fieldable entities. You can have a specific layout for a content type (e.g. all articles), for an individual node (e.g. one article), or for a display mode (e.g. article’s teaser).

The module arrived in Drupal 8.5 core marked as “experimental.” For Drupal 8.7, it has received important bug fixes in the area of saving layouts for the default content layouts and individual nodes, saving layout overrides, using layouts for different display modes, and more. CSS classes have also been renamed to meet the BEM standards.

Drupal development roadmap has the Layout Builder moving from experimental to stable in Drupal 8.7. We don’t see this happening yet in Drupal 8.7 alpha 1, but we expect this in the near future. Update for 29/03: Layout Builder has reached stability in Drupal 8.7 core!

Layout Builder in Drupal 8
  • Updates to the Guzzle library

The Guzzle HTTP client library arrived in Drupal 8 to replace the drupal_http_request() function in Drupal 7. It makes the process of communicating with RESTful web services easier.

Guzzle offers a modern way of making HTTP requests. It is extensible with plugins, easy in use, and based on object-oriented architecture.

In Drupal 8.7, Guzzle has been updated from 6.3.0 to 6.3.3 and http_client service has begun to support empty headers. Additional updates are also planned in Drupal 8.7 beta.

  • Changes to the Stable and Classy themes

The Stable or Classy are among the Drupal core themes in addition to Bartik, Seven, and Stark. If your website’ theme has been created as a subtheme of the Stable or Classy themes, you will need to pay attention to their changes in Drupal 8.7.

They are related to JavaScript message template and pagination header CSS ID. Specifically, if your theme overrides the messaging or pagination templates, you will need some manual changes, and our Drupal experts are ready to provide them.

  • Better Symfony 4 and 5 compatibility

Drupal 8 includes Symfony components for more modern and fast web development. Drupal 9 will completely move to the new Symfony 5.

Drupal 8.7 is getting ready for it. It is providing better compatibility with both Symfony 5 and Symfony 4. This includes changes in the Container and TranslatorInterface Symfony components, as well as resolving critical compatibility issues.

Be ready for a smooth update to Drupal 8.7!

So we now know in a nutshell what to expect in Drupal 8.7 that is coming in May 2019. Of course, you can rely on our Drupal team for a smooth update. 

In the meantime, we can help your website prepare for it, if there is a need to:

  1. update to PHP 7.1+
  2. take care of Internet Explorer 9 issues
  3. apply changes to your Stable and Classy subthemes
  4. check the compatibility of any other website components 

Contact our Drupal team!

Feb 08 2019
Feb 08

Drupal 8 is known for the extensive third-party integration opportunities it gives to websites. One of the tools for this is the contributed Drupal module JSON:API. It helps developers build high-performance APIs for various purposes, including multi-channel content or decoupled Drupal and JSON API setups (which is one of our Drupal team’s areas of expertise). This winter has seen a new release — Drupal JSON:API 2.x. Let’s take a look at what the module does, what makes it useful, and how it has changed in the 2.x version.

JSON:API: principle and benefits

JSON API is a specification, or a set of rules, for REST APIs. It defines how data is exchanged between the server and the client in the JSON format. This includes how the client requests the resources, how they are fetched, which HTTP methods are used, and so on.

JSON (JavaScript Object Notation), in its turn, is the most popular format for APIs. It is very lightweight, consistent in structure, intuitively understandable, human-readable, and easily consumable by machines. At the root of all the requests is a JavaScript object.

The JSON API specification optimizes the HTTP requests and gives you better performance and productivity. JSON API eliminates unnecessary server requests and reduces the size of the data packages.

The specification supports the standard CRUD operations that let users create, read, update, or delete the resources. It is also accepted by all programming languages and frameworks.

crud operations

A glimpse at Drupal JSON:API module’s work

The Drupal JSON:API module offers Drupal’s implementation of the JSON API specification. The module provides an API in compliance with the JSON:API standards for accessing the content and configuration entities of Drupal websites.

The JSON:API module is part of Drupal 8’s ecosystem of web services, and also an alternative to Drupal’s core REST. JSON:API resolves some of the core REST limitations (for example, complex setup, confusing URLs, hard-to-configure collections of entities etc.). At the same time, it only works with entities.

Let’s note some important points about the benefits of the JSON:API work:

  • no configuration is needed (enabling the module is enough to get a full REST API)
  • instant access to all Drupal entities
  • URLs provided dynamically for entity types and bundles so they are accessible via standard HTTP methods (GET, POST, PATCH, DELETE etc.)
  • support for Drupal entity relationships
  • support for complex sorting and pagination
  • access configured in Drupal core role and permission system

As we see, the main philosophy of the module is to be production-ready out of the box. For configurations, there is a related contributed module JSON:API Extras module that lets developers set up every detail they need.

Drupal JSON:API 2.x: what’s new?

Drupal JSON:API 2.x module is getting ready to become part of Drupal 8 core in the near future. Thanks to this, the ecosystem of web services to build high-performance APIs in Drupal 8 core will soon be more complete and diverse. It is also great that Drupal will have a NIH (not invented here) API in its core that follows a very popular specification.

The creators of the JSON API module have had a busy time preparing the 2.x module version for Drupal 8 websites. Overall, 63 contributors took part in that. And there is still a big roadmap ahead.

They issued two beta versions in August and September, then three release candidates from October to December of 2018.

Finally, the stable 2.x version came — JSON:API 2.0 in January 7, 2019, bringing big changes. Websites will benefit from:

  • serious performance improvements (including sparse fieldsets)
  • better compatibility with JSON:API clients
  • more comprehensive test case coverage (including edge cases)
  • backwards compatibility with JSON:API 1.x
Drupal JSON API 2.x improvements

As well as:

  • the ability to see labels of the inaccessible entities
  • information about the user available via “meta.links.me”
  • error response cacheability
  • the config entity mutation feature moved to the JSON:API Extras module
  • a final farewell to the _format parameter in the URL
  • custom "URL" field to no longer added to file entities
  • filter paths closely match JSON:API output structure
  • URLs become objects with `href` keys

and more.

Drupal JSON:API 2.0 was soon followed by a new one — JSON:API 8.x-2.1 in January 21, 2019. This is now the latest stable version. Drupal JSON:API 2.1 added two new features:

  1. support for file entity creation from binary data
  2. support for fetching non-default entity revisions.

We should also note that Drupal JSON:API 2.x module is part of the Contenta CMS decoupled distribution that uses best practices of decoupled architecture. JSON:API is immediately available with all new installs of the Contenta.

The related module JSON API Extras for customizing APIs is also fresh and updated. It has had a new 8.x-3.3 release on January 21.

Let’s build the optimal JSON:API setup

As we see, there are plenty of means and tools to build high-performance APIs. Our Drupal developers are keen in this area, and will select the optimal ones for your website. It can be the Drupal JSON:API 2.x module, core RESTful web services, GraphQL, and more. Contact our Drupal team!

Jan 15 2019
Jan 15

Let us invite you to an imaginary city that follows the Drupal Way! ;) Using the names of real Drupal modules, themes, and distributions, we at WishDesk team created the Drupal City map. Today we celebrate Drupal’s 18th birthday, so it’s a great opportunity to invite you there!

The idea and mission of Drupal City map

The world of Drupal modules is incredibly interesting, and we decided to show it to everyone. Our Drupal Map is much more than entertainment. It is meant to promote Drupal and give inspiration to developers, users, and customers.

And, of course, Drupal City will let anyone learn Drupal modules in a cheery and engaging way. You can click on the module images, see their brief descriptions, and visit their pages on​​​​​​​ drupal.org (then click again to close). Here and there, we also left little hints as to how these modules work. So the Drupal City map contributes to Drupal education.

Drupal City map

Welcome to Drupal City!

Just look around the​​​​​​​ Drupal City — it has everything you can imagine. You could walk along the Commerce CCAvenue, turn to the Beale Street, pass the Simple Columns and reach the Beach and the Sea, from which flows a mighty River of Tweets leading to the Waterfall Views.

It is possible to have a chat at the sociable Sticky Sharrre Bar, take a ride on the Owl Carousel, get some calories for Drupal ideas at the local Restaurant or Bakery, and lose extra calories in YG Fitness Gym.

You could also admire the Christmas Lights at the Commerce Square, visit the Open Church, and replenish your skills at the Library. And this is just the beginning!

The choice of modules for Drupal City

It was amazing to see how all these modules, themes, and distributions fit into the Drupal map like in a puzzle.

Some module names matched their map objects exactly, while for others we used a little wordplay. For example, the Commerce Square module does integration with the Square payment service — and it is a beautiful city square on the Drupal map. It makes the map even more interesting!

Drupal has so many fabulous modules that at some moments it was hard to choose between them. There were multiple awesome modules for particular objects — for example, carousels or fields. With real hard decisions to make, we chose the modules whose names better fit the map concept.

If you would like to see other Drupal modules, themes, or distributions on the Drupal City map, you are welcome to share your ideas, and we will consider adding them. Drupal City is truly welcoming, and it belongs to the Drupal world.

See you in Drupal City! It’s just an awesome little place on the Drupal Planet ;)

Created with love for Drupal by WishDesk team.

Jan 04 2019
Jan 04

Websites can be incredibly convenient and time-saving for administrators, and thus efficient for businesses, especially when it comes to websites on Drupal 8! Its latest release, 8.6, has become a true sensation in terms of editorial experiences. In addition to such new features as the oEmbed feature, Media Library, Layout Builder improvements, there is also the Workspaces module in Drupal 8.6, which we want to give an overview of right now. Get ready to read and enjoy! Of course, you can also upgrade to Drupal 8 or update to Drupal 8.6 with the help of our Drupal support team — and enjoy Workspaces and other new modules in action!

The purpose of the Workspaces module in Drupal 8.6

Workspaces is a new experimental module built into the Drupal 8.6 core. It lets website administrators review and edit the content and then publish unlimited amounts of it all at once.

They can switch between so-called environments, or parallel website versions. The built-in environments are “Live” and “Stage,” with “Live” as the default one. Other workspaces can also be created.

Editors can work with as many content pieces as needed while staying on the “Stage” environment. When all the content is reviewed and ready, it can be deployed to “Live” with just one magic button.

It is very convenient to see all the content just the way it will appear to visitors, instead of reviewing the pieces one by one. The staged content is not visible to others until the “Deploy to Live” button brings it to “Live.”

Workspaces vs Workflows: two Drupal 8 core modules to never confuse

Workspaces module in Drupal 8 core is sometimes confused with another one for content reviewing experiences. After all, Workspaces sounds very similar to Workflows — the module introduced in Drupal 8.5. Workflows provides content approval functionality in a duet with the core Content Moderation module.

So how do Workspaces and Workflows differ?

  • Workflows in pair with Content Moderation allows editors to move the content between such states as Draft, Archived, and Published, or custom ones. It provides a piece-by-piece moderation process based on roles.
  • Workspaces, on the contrary, provides bulk moderation processes. All content is reviewed and edited in one environment and then deployed to another. This is especially efficient for content-heavy websites.

Workspaces and Workflows are not only different, but also incompatible at the moment. Only one of them can be enabled in your Drupal 8 core. Otherwise, they may create collisions due to the fact they have the same entities pending approval.

An example of how the Workspaces module in Drupal 8 works

Examples are worth a thousand words, so let’s see Workspaces in action. First of all, we enable the module on the Extend page. The module is experimental, and we will see a warning about it when enabling.

how the Workspaces module in Drupal 8 works

Ok, we immediately notice the green “Live” button in the right hand corner of the site. After we click it, the stylish black Workspaces interface unfolds. It also has the “Manage workspaces” and “Edit” links under “Live.” The “Stage” button is in the left hand corner.

 Managing workspaces in Drupal 8

If we click the “Stage” button, we are offered a chance to activate the Stage workspace, so let’s click “Confirm.” That’s the usual way to switch between the environments. The active environment is always in the right hand corner, we click on it and can call another environment in the left hand corner.

Switching between worspaces in Drupal 8

So we are now on the “Stage” workspace. Let’s create some content that no one else will see. Please keep in mind that you will not be able to do the usual actions while in the environment other than the default one. For example, it will not be possible to create content types, generate dummy content with the Devel module, and so on — you will need to go to the default workspace for that. The default one is defined in workspace.services.yml as a parameter.

However, it is possible to manually create nodes of an existing content type right in the “Stage” environment, which we will do right now. We create 5 articles and edit something in them just for a test.

The Stage workspace in Drupal 8

We can’t see any articles when we visit our site’s main page in the Incognito window, because they are not yet deployed to “Live.” Let’s click “Deploy to Live,” and we will see a summary of the items to be deployed.

Deploying content from Stage to Live in Drupal 8

We click to confirm the deployment, and then we see the “Successful deployment” message. Looks nice!

Drupal 8 workspaces listed

Let’s now switch to check the visibility of our articles in the Incognito window. The articles show up already, which means they have been moved to “Live.” Our experiment with the experimental Workspaces module in Drupal 8.6 has been completed successfully!

Content deployed via Workspaces

Enjoy the new features in Drupal 8.6!

So it’s time to take everything “the great eight” has to offer — the Workspaces module in Drupal 8.6 and many other features.

For any help in upgrading to Drupal 8, updating to its latest minor version 8.6, configuring the new modules, or creating custom ones to precisely meet your needs, contact our Drupal agency!

Dec 10 2018
Dec 10

If you’re still using PHP 5.6 it is time to upgrade to a newer version. As of December 31, 2018, PHP 5.6 will officially become no longer supported.

For users of this soon-to-be obsolete version, time is running out quickly. Websites that are running PHP 5 will not only lack critical security benefits, they will also miss out on the significant performance improvements that are available within the newer versions. Contact a web development team for migration services as soon as possible and definitely before the year’s end.

PHP 5.6 End of Life

Let’s discover what should be done before PHP 5.6 end of life.

What Will Happen When PHP 5.6 End of Life Comes?

The software will continue to work, however bug and security fixes for PHP 5.6 will be no longer released. If any vulnerability is found, it will have no chance of getting remedied. Older version of PHP signal the green light for hackers to target unsupported websites.

To keep your website secure, we recommend that you upgrade to PHP 7 by the end of December 2018. Why not upgrade to PHP 6? This version didn’t work the way it was envisioned to and was completely scrapped. The deficiencies with PHP 6 were all taken into consideration while creating the 7th version, which works flawlessly.

What Should You Do Before PHP 5.6 End of Life?

For Drupal 7 website owners who work with PHP 5.6, a new Drupal version 7.61 was released. It entirely supports PHP 7.2. This will make upgrades from PHP 5 easier.

Drupal 8 support for PHP 5 will be dropped on March 6, 2019. You should contact a web development team for updating to PHP 7.1 or, better yet, PHP 7.2, which is supported as of Drupal 8.5 (which was released March, 2018). Drupal 8.7, with a release date of May, 2019, will support PHP 7.3.

How Can WishDesk Help?

It’s our task to stay on top of new and evolving technologies. That way we can always provide the highest quality services for your digital platforms. Contact WishDesk for your site’s code review and we’ll make sure your platform is PHP 7 ready. We can easily convert all your data to meet the demands of the upcoming new era before PHP 5.6 end of life.

Nov 27 2018
Nov 27

Our team loves exploring and using hot trends in development, one of which is decoupled Drupal architecture. Our previous post was devoted to using decoupled Drupal with JSON.API, and our today’s story hero will be “the Great Gatsby”. Does it sound like the famous book hero? No, Gatsby.JS is a new and hot JavaScript tool, but it promises to be equally famous and deserve a hundred books! In this post, we will discuss its principle of work and the benefits of using decoupled Drupal 8 and Gatsby.JS. And, of course, you always can rely on our Drupal experts in implementing it all.

Gatsby.JS: what it is and how it works

Gatsby.JS is defined a static site generator, but it is approaching a front-end framework in its capacities. Gatsby is built on very hot front-end tools, some of which are:

  • React.JS — the amazingly popular JavaScript library for building complex interfaces
  • GraphQL — the super efficient query language
  • Webpack — the great JavaScript module bundler 

Gatsby.JS is meant for building blazing fast static sites. It fetches the data to them from absolutely any sources and generates static content using GraphQL. Right now, there are 500+ source plugins to establish the connection between particular data sources and Gatsby. The sources include YouTube, Twitter, Hubspot, Shopify, Trello, Vimeo, Google Sheets, content management systems like Drupal, WordPress, and so on. 

Gatsby uses source plugins and GraphQL


Decoupled Drupal 8 and Gatsby.JS: the great duet and its benefits

One of the hottest and most beneficial combinations for today is Gatsby and Drupal 8. According to the the decoupled, or headless Drupal architecture, Drupal serves as the backend only, while Gatsby.JS handles the presentation layer. 

Drupal 8 and Gatsby.JS are both open-source, have a large and active community and a huge ecosystem of add-on modules or plugins. And Drupal 8 has built-in web services to make integration a breeze. 

What makes this combination so beneficial? The simplicity and speed of a static site combines perfectly with the power and flexibility of the backend provided by the Drupal 8 CMS. Here are at least some of the features that we get in the end:

  • Unmatched speed. Gatsby.JS pre-fetches all pages of the website instead of querying the database every time on demand, which makes navigation enjoyable and amazingly fast. Gatsby is a static PWA (progressive web app) generator. It efficiently fetches only the critical HTML, CSS, and JS files. 
  • Easy setup. No cumbersome deploy and setup processes will be needed with Gatsby. It builds your site as static files that can be quickly deployed anywhere.
  • Great personalization features. Drupal-and-Gatsby combinations can feature awesome user personalization and authentication capabilities.
  • Awesome content editing. Usually, static site generators need writing content in Markdown, which could be cumbersome for content editors. But the problem is solved with Drupal 8 as a backend! Drupal 8 content creation features are a joy for any content editor. 

One of examples of using decoupled Drupal 8 and Gatsby.JS is the demo site Umami Food Magazine. The site is built on headless Drupal distribution Contenta CMS with Gatsby.JS. 

Umami Food Magazine uses Gatsby 2Umami Food Magazine uses Gatsby

If this looks appetizing enough, contact our Drupal team right now to combine decoupled Drupal 8 with Gatsby.JS for you! Or continue reading about some implementation details. 

Some specifics of using Drupal 8 and Gatsby.JS

In the decoupled setup, both Drupal 8 and Gatsby sites need to be prepared to work together. They will be connected by means of the special Gatsby’s source plugin for Drupal that fetches data, including images, from Drupal 8 websites with JSON API installed. 

So it is necessary to install and enable the JSON API and JSON API extras contributed Drupal modules, as well as enable the core Serialization module on our Drupal website.

Enable JSON API module

Our next destination is Configuration — Web Services — JSON API Overwrites.

Configure JSON API

In Settings, we need to make sure the path prefix for JSON API is /jsonapi. This is what the Gatsby site will need to know.

Configure JSON API

In People — Roles — Permissions we give access to the JSON API list of resources to users with all roles, including anonymous.

Permissions for JSON API

Our Drupal site is ready for Gatsby integration, and we now need to prepare our Gatsby site. It begins with installing Gatsby’s CLI:

npm install --global gatsby-cli

Then we follow all the site creation steps in the “Get started” documentation. Gatsby also offers pre-configured starters for site creation.

Gatsby starters

Then we run Gatsby with the command, after which the Gatsby site should become available at localhost:8000:

gatsby develop

The above mentioned source plugin for Drupal then needs to be installed on the Gatsby site. Next, we add the piece of code from the plugin’s documentation to the gatsby-config.js file. The URL should changed to the one of our Drupal site.

plugins: [
 resolve: `gatsby-source-drupal`,
 options: {
 baseUrl: `https://our-site-name.com/`,
 apiBase: `api`, // optional, defaults to `jsonapi`

We then configure our Gatsby site to fetch exactly the content we need from Drupal. We need to create the appropriate pages in /src/pages on the Gatsby site and add the code for React import to the JS file. 

And we configure GraphQL at localhost:8000/___graphql to query the Drupal site exactly how we want. 

It all crowns up with the last command to publish our Gatsby site with the Drupal data:

gatsby build

This is just a very brief description of getting Drupal 8 work with Gatsby. Our experts are ready to do the setup exactly in accordance with your wishes.

Enjoy the combination of decoupled Drupal 8 and Gatsby.JS!

If you are interested in using decoupled Drupal 8 and Gatsby.JS, either on an existing project or on a new one, contact our Drupal developers. Our Drupal 8 team has great experience in third-party integration. We will advise you the best decoupled setup and, of course, smoothly implement it. Let’s enjoy the latest and greatest technologies!

Aug 30 2018
Aug 30

There is a long-expected feature in Drupal 8 to make website users engaged and editors happy. It lets you easily embed third-party videos from an URL into your site’s content, and it’s called the oEmbed feature for Drupal 8’s Media module. It will be fully ready for production sites as of September 5, 2018, with the official release of Drupal 8.6.0. Of course, no one will be able to resist updating to this feature-rich version as soon as possible! You can always rely on our Drupal team for a smooth update to Drupal 8.6.0 or upgrade to Drupal 8. In the meantime, while the new Drupal subversion is “preening its feathers,” we will raise the veil on its new and magic oEmbed and see how it works.

What is oEmbed technology?

In a nutshell, oEmbed is a format that allows you to create embedded representations of URLs from third-party resources on your website. The oEmbed format is supported by the most popular resources with multimedia content — Facebook, Twitter, YouTube, Instagram, Flickr, Vimeo, and more.

The new oEmbed feature in Drupal 8 

The fact that the oEmbed support has been added to Drupal Media module is awesome. It makes Drupal 8 a great choice not only for news and media websites, but for sites in all other industries that know the power of interesting video content.

This helps you capture your users’ attention with your product, service, or brand videos, as well as engage them with scenarios where they can share videos themselves. In addition, you can set up how exactly the videos will look when embedded into your content.

Drupal 8 has an out-of-box support for embedding YouTube and Vimeo videos by means of the oEmbed technology. However, Drupal 8’s basic API makes it possible to also set up this “cooperation” with any other oEmbed providers.

How oEmbed works in Drupal 8 

In Drupal 8.6.0 with its oEmbed, we will immediately notice its novelty as compared to Drupal 8.5.6. First of all, an experimental module “Media Library” is in its core, which allows you to save and reuse media. Together with the Media module, the Media Library module should be enabled.

We have previously mentioned that the Media module introduced Media Types for Drupal 8 websites. So another great novelty of Drupal 8.6.0 is that, in addition to the already “traditional” Media Types in Drupal 8.5.x, there is a new one called “Remote Video.” See the difference:

Drupal 8.5.6:

How oEmbed works in Drupal 8

Drupal 8.6.0:

oEmbed in Drupal 8.6.0

When opening the “Remote Video” configuration tab, we see that this media type is already perfectly preconfigured. However, it also has options for us. We can configure the allowed providers and the video thumbnail location, as well as for field mapping.

oEmbed feature in Drupal 8 oEmbed feature in Drupal 8

OK, let’s see how any content editor or user — according to your website’s permissions and content creation scenarios — can embed a video from YouTube.

They can do it by going to Content — Add Media — Remote Video. And you see that the form is incredibly easy. Adding a URL is all they need!

oEmbed feature in Drupal 8

 So the newly added video is already saved in the website’s Media Library. What we now need is to display it in our content.

Here the options are unlimited! Site builders and administrators can decide which content types should have the video embedding feature (news, blog posts, products, bios, and so on). All they need is to add the “Media” field to particular content types.

In our example, we have added the “Media” field to the article content type and called it “OEmbed video.”

oEmbed in Drupal 8

Let’s rearrange the fields a little to place the oEmbed video immediately after the article body.

oEmbed in Drupal 8

From now on videos are embeddable into any article. For this, the article creation form now has an “OEMBED VIDEO” option where we will click “Browse media,” immediately see all the videos we have saved, and select the needed ones.

oEmbed in Drupal 8

So here goes our article with the video embedded into it!

Drupal 8 oEmbed feature

To recap

You can admit it — the new oEmbed feature in Drupal 8 looks really good! We have shown its basic settings, but there are more to play with.

If you need help with that, or if you want to customize the embedding functionality to your needs, you are welcome to contact our Drupal 8 development team

And, of course, if you are not with the amazing Drupal 8 yet, reach out to us for an upgrade.

If you already are with Drupal 8, ask us and we will update you to Drupal 8.6.0 in the first days of September, as soon as it appears — bringing the oEmbed feature and plenty of others!

For any of these tasks, contact our Drupal experts, and let Drupal 8 work its magic on your site!

Aug 20 2018
Aug 20

When you combine different technologies, you multiply their powers, and the results are stunning! That’s what happens, for example, when Drupal cooperates with JavaScript tools. Drupal 8’s brand-new architecture with API-first improvements gave it especially impressive integration capabilities. However, to make things even better, enthusiasts created Drupal Waterwheel. Plenty of interesting details about it are coming right now. So let’s set the wheels turning — or, better to say, the waterwheels!

Drupal and JS: the rise of decoupled architecture

To explain the importance of Drupal Waterwheel, we need to mention the decoupling “boom”. In recent years, it is increasingly popular to use a CMS as a data source, while exposing this data to another front-end, or even a whole ecosystem of devices. 

In case with Drupal, the front-end “fiddle” is played by React, Angular, Vue, Ember, Backbone, and many other lightning-fast JavaScript frameworks. This approach is known as decoupled, or headless Drupal

With the strong “back” provided by the most powerful CMS such as Drupal, the newly-made sites and apps impress users with a sky-high level of interactivity and speed. They are able to create unique users experiences and significantly increase your audience.

It’s not only that Drupal developers choose JavaScript frameworks for decoupling. The creators of various JS applications also choose Drupal as a backend CMS. However, some of them are not acquainted with it. That’s where Waterwheel comes for help!

Drupal Waterwheel, its mission and work

Waterwheel is meant to make Drupal more understandable to non-Drupal and non-PHP developers. For customers, this means a wider choice of developers who can implement their wished. 

Basically, Waterwheel is an ecosystem of SDKs (software development kits) that help developers obtain data from Drupal and manipulate it in various ways. 

Drupal Waterwheel frees them all from the need to know the ins and outs of Drupal’s core REST. This inspires them to choose Drupal as the backend CMS, as well as speeds up the development processes.

When we talk about the Waterwheel ecosystem, we should first of all mention the Waterwheel.js — a generic JS library, which helps handle Drupal 8 data via Drupal REST and JSON API. It is a great fit both for progressively decoupled and fully decoupled scenarios.

There also are framework-specific tools like the following: 

  • React Waterwheel App — a sample application based on Drupal 8 and Waterwheel.js to demonstrate integration with React.js
  • Ember Whatewheel App — a sample application to demonstrate the integration of Drupal and Ember.js via JSON API
  • Ember Drupal Waterwheel — a helpful add-on for the developers of Ember apps that consume Drupal data.

A special Drupal module called Waterwheel is meant for those who want to have resource discovery in their application for the sake of client-side validation. However, the module has become obsolete is no longer needed. Instead, you can rely on the OpenAPI module to obtain the resource information from Drupal.

Final thoughts

With the help of such great assistants as Drupal Waterwheel, it’s high time to fulfil the most ambitious ideas about combining Drupal with JavaScript tools.

Our Drupal developers also have great skills with JavaScript technologies. They can help you create the perfect decoupled setup or other integration scenario. And, of course, if you have a Drupal 7 or 6 website, our experts can migrate you to Drupal 8 with its awesome integration perspectives.

Contact our Drupal development team — and you will amazed at what your site or application can do in the right combinations!

Jul 26 2018
Jul 26

News and media websites appreciate sensations. OK, here is a real sensation for them! No other word is big enough to describe Drupal 8 — the latest version of the famous site-building platform. Drupal 8’s benefits are awesome for all kinds of sites. But today we have a special journalistic investigation — we’ll discover how Drupal 8 can be useful particularly to news and media websites.

Drupal 8’s benefits for news and media websites

  • Easy media handling as a priority for Drupal 8

News and media website editors regularly create, upload, or edit various kinds of multimedia. Making these processes convenient was a priority in Drupal 8. And the goal has been successfully achieved!

The new media handling system is superb. It lets editors manage audios, videos, images, and files exactly in accordance with their preferences. This includes working with both locally stored media and those from third-party sources (YouTube, Instagram, Pinterest, SlideShare, and every other site imaginable). Editors can save media in the library for further use, create custom media types, use the drag-and-drop and the oEmbed features, and much more.

This is achieved thanks to the awesome Media module that came to the Drupal 8 core as of Drupal 8.5.x. It remains the focus of developers’ attention with new features added frequently. The Media module is also extensible with many useful contributed modules that touch every aspect of media handling.

  • Super convenient content editing

Tons of content every day — that is often the reality of news and media websites. Luckily, working with content is a joy in Drupal 8.

Inline editing without leaving the page lets your content managers quickly fix any possible typos with no need to visit the admin dashboard.

quick edit on drupal 8

Other benefits include the drag-and-drop features, copying directly from Word, super easy image adding, the clean and modern HTML5 markup, the possibility to shape your toolbar as you wish, handy content previews, and much more.

Among the freshest novelties are the Content Moderation and Workflows modules in Drupal 8 core that help you create fine-tuned content moderation processes with different content states.

This works perfectly with Drupal’s flexible system of user roles and permissions. For example, your news publication workflows can involve a copywriter, an editor, a moderator, and anyone else you want with any permissions you decide.

  • Drupal 8’s exceptional multi language features

Especially for international news and media websites, multiple languages are important. However, even local resources find this feature very useful. It helps them bring their message across to more audiences.

Drupal 8 has absolutely fabulous multi language possibilities. The four built-in modules let you add languages to your websites. You have a choice of over 100 languages,  and their interfaces are already translated by the community.

You can also decide exactly what will be translatable on your site. In addition to interface, Drupal 8 lets you translate website configuration (account settings, users roles, comment types, and more).

And, of course, you can translate content.

adding translations

Editors will appreciate how easy it is to add translations to their pieces of news.

adding a translation
  • Third-party integration is in full bloom

Thanks to Drupal 8 unmatched integration capabilities, your news and media website will easily interact with external systems.

RSS feeds, social media integration, monetization tools, content sharing to iOs or Android applications are just a few examples of this.

Drupal 8 is API-first — it has special core modules for outputting any content via a REST API. Non-RESTful approaches are also possible.

While outputting your content, the magic Drupal 8 modules converts it to the necessary format (JSON, HAL, and so on).

  • High speed and special caching techniques

Drupal 8 will take care of your website speed, even during very high loads. It has great built-in caching modules.

One of them, the BigPipe module, offers a very special technique that raises the perceived loading speed. It instantly delivers the unchanged parts of your website to users (your header, news categories etc.). The dynamic elements, like your newly added pieces of news, “arrive” next. Thanks to this, your readers are not bored — they do not wait for the whole page to load.

  • Mobile responsiveness as a key

Users consume news website content from all possible devices, often on the fly. Is your website ready? Drupal 8 has a mobile-first approach and is perfect for creating mobile responsiveness.

All website elements will adapt themselves to various device screens (shrink, grow, hide) to create a great user experiences with minimum zooming and scrolling.

To recap

We have only raised the veil a little bit — Drupal 8 has plenty of other treasures. If you wish to order the creation of an amazing Drupal 8 news and media website, or migrate to Drupal 8 — you are welcome to contact our Drupal expert team.

You, your audience, and your editors will be delighted with Drupal 8!

Jul 02 2018
Jul 02

One of the sure ways of engaging your visitors is using various multimedia on your website. In Drupal 8, great attention has been paid to creating a perfect media management system. Congrats! A novelty of 2017-2018, the brilliant Media module in Drupal core is now one of Drupal 8’s greatest benefits. Let’s do a little overview of what the Media module gives you, how it works, and which Drupal 8 minor versions already have it available.

The Media module in Drupal 8

Drupal 8’s Media module is a lucky “blend” that inherits the functionality and API from the Media Entity module, as well as the Media Entity Image and Media Entity Document.

It is a whole framework for uploading and managing various media (audio, videos, and images), as well as files. This applies both to locally stored media and those from third-party sources (various social media, services, and so on).

The Media module is extensible with add-on contributed modules. They provide additional integration and other features related to Audio, Remote video, Slideshow, Twitter, Facebook, Instagram, Flickr, Spotify, Pinterest, Slideshare, DropzoneJS, GoogleDocs, and many more.

Together with them, the Media module lets your create any desired media handling scenarios.

This includes displaying media in your content exactly the way you want (as plain text, as thumbnail, with image, with author, and so on), uploading media with a drag-and-drop feature, integrating slideshows, cropping images, and much more.

The Media module: media types, fields, and sources

All the above mentioned things are possible thanks to important Drupal 8’s media handling concepts, one of which is media types. Like Drupal content types, media types are part of the site’s structure. Media types are represented by individual media entities (for example, a particular tweet).

It is possible to add fields to media types and manage their display. There is a special Media field available to add to content types so that media can be attached to content.

Field mapping is a truly remarkable feature of the new media system. It lets you pull various types of data from the third-party media and store them as “classic” Drupal fields. For example, you can choose to show the tweet’s author in your content, date of publication, and so on.

When enabled, the Media module immediately offers four built-in media types:

  • Audio
  • File
  • Image
  • Video

Content editors and site administrators are also free to create their own media types. Each custom media type will be based on a particular “media source” that should be selected once and for all.

The media source adds some special logic to your media type. They include field mapping opportunities, using the provider’s API, generating thumbnails, and many more, according to the media source.

Media sources include the built-in audio, file, image, and video, and there are many others provided by the relevant contributed modules.

The fast-changing Media and Drupal 8 versions

In addition to being an important security practice, regular website updates let you enjoy new features. This has never been as true as when it comes to the Media module in Drupal 8.

The Media is so hot on the Drupal community agenda that its capabilities change incredibly fast. To catch up with them, you need to regularly update your Drupal 8 website to the latest minor version.

The Media module “jumped” into the Drupal 8 core in Drupal 8.4.x. So, Drupal 8.4.x became the first version where the Media module could be seen. Well, not literally — the module itself was hidden from the dashboard. In the meantime, the Media API was ready for developers so they could polish their related contributed modules.

In Drupal 8.4.x, one of the ways to “call” the Media module into action was to enable some contributed module responsible for specific areas of media handling (Twitter, Facebook, Instagram etc.). Drupal then asked you to enable the Media module as a dependency.

Despite these difficulties, the functionality was already quite usable and similar in many ways to that in Drupal 8.5.x.

Drupal 8.5.x, the newest stable version of Drupal 8, gave the official start to the Media module as part of the core.

Polished and improved, available on the “Extend” dashboard, the Media module was finally ready to impress content editors and inspire website owners to update to Drupal 8.5.

More great news: the oEmbed feature

There is one more feature actively discussed and expected with impatience. Enthusiastic drupalers have finally added the oEmbed support to the Media module.

OEmbed is an open format that allows you to display content from a third-party provider, when a user inserts an URL. The oEmbed format is supported by Facebook, YouTube, Vimeo, and most other famous providers.

Drupal 8’s got an API for working with oEmbed services. It also now has plugin to support YouTube and Vimeo out-of-box.

The oEmbed feature will be officially available with the release of Drupal 8.6.x. Right now, Drupal 8.6.x is being tested and improved, and is expected to come out in early September.

To recap

That’s a just a very brief overview of the Media miracle of Drupal 8 core — the Media module. In connection with this, we have some more great news:

  • Our Drupal team is always ready to assist you in creating media entities and fine-tuning the media management processes.
  • Of course, regularly updating your site to every new minor Drupal 8 version (Drupal 8.5, Drupal 8.6) is a breeze for us.
  • Finally, if you are not yet using Drupal 8, a smooth upgrade is one of our areas of expertise.

If you have any questions, you are welcome to apply. Let your Drupal website be incredibly engaging thanks to the perfect use of multimedia!

Jun 11 2018
Jun 11

A million words are not enough to describe Drupal 8’s benefits for websites. Its amazing third-party integration opportunities, multilingual superpowers, mobile-first approach, easy content editing, and many other features convince website owners that it’s time to upgrade to Drupal 8 or build a D8 site from scratch. But especially impressive are Drupal 8 website architecture changes. With them, website development processes are far more efficient, and every website is much easier to create, deploy, maintain, update, or extend. We will now look behind the curtain and see a little more.

The need for big architectural changes

Drupal’s founder Dries Buytaert explained some of the reasons why Drupal needed big architectural changes. Forward-looking changes are always necessary for a CMS to stay on top. With Drupal 8 changes, the community wanted to resolve certain limitations of Drupal 7, modernize Drupal as much as possible, and make it universally understandable so that companies of all sizes could easily find developer talent.

To achieve this, Drupal adopted Symfony components, modern PHP concepts, OOP, Twig template engine, and more. It rebuilt its core, APIs, configuration management system, and so on. The results are stunning — Drupal 8 architecture is truly brand-new compared to that of Drupal 7. Let’s take a closer look at some of these changes.

Drupal 8 and its new website architecture

Drupal 8 and OOP

Here is something that makes website code better structured, highly reusable, very maintainable and extensible, and also easy to read by non-Drupal developers. This is the adoption of OOP (object-oriented programming) in Drupal 8.

As opposed to traditional, or procedural programming, OOP has most of the code presented as classes and objects of these classes. Objects have certain properties and use certain methods.

The three major principles of OOP include encapsulation, inheritance, and polymorphism. Developers deal with namespaces, indenting and whitespace, naming conventions, and so on.

Sounds complicated? Well, OOP PHP does present a learning curve for developers, which is made up for by numerous benefits.

Drupal 8: “Symfony inside”

The new version of Drupal contains the components of Symfony 2 — the modern, object-oriented, PHP-based framework.

It is not necessary for Drupal developers to learn Symfony as a framework — they just need to get acquainted with Symfony components, and the reward is amazing.

With Symfony 2, Drupal development becomes even more flexible and in line with trending technologies.

And, of course, this significantly saves development time. With no need to “reinvent the wheel” and build everything from scratch, Drupal developers can use plenty of ready solutions for various projects.

Among all the inherited Symfony 2 components, the strongest impact on D8 core has probably been made by DependencyInjection, EventDispatcher, and Routing.

Twig template engine in Drupal 8

A true “jewel” of Drupal 8 front-end architecture is the Twig template engine that replaces Drupal 7’s PHPTemplate.

Twig gives you clean templates with consistent code. Thanks to its inheritance in Twig files, duplicate code is avoided. The logic and presentation are properly separated. And, overall, Twig is more secure, easier to work with, and richer in options.

“You don’t need extra modules for features like slideshows or widgets on your page. You can do it in the theme,” said Mark Ferree and Matt Cheney in their webinar about best practice architecture in Drupal 8.

Drupal 8 and Composer

Composer has been called the best thing that has happened to the world of PHP, and Drupal 8 is now using the best.

This command-line tool manages your website dependencies — all the necessary libraries and packages you need. Composer lists all your website’s dependencies in the special composer.json file.

Saying “dependency manager” cannot fully describe Composer’s powers. The tool is helpful on every step of Drupal 8 development.

A good tone, and a very convenient practice in Drupal 8 allows you to use Composer for installing and updating Drupal core, modules, and themes, applying patches, and more. Commands like “composer create-project” and “composer update drupal/core” are just a couple of examples of numerous commands that can do magic in the terminal.

Powerful Drupal 8 core

The heart of Drupal, its core, has become more powerful than it has ever been before. So you no longer need extra modules for many of your needs — a lot of things can be done with D8 core capabilities.

Drupal 8 also introduces lots of new APIs that deal with everything, be it caching, migration, third-party integration or anything else.

The admin dashboard alone is like a flight control console.The Views module is now in the core, and gives you almost unlimited opportunities in structuring and presenting your content in accordance with to all imaginable settings. Intriguing novelties like the Layout Builder module help create layouts for content items and lets anyone feel the architect of their site with no coding as well. And that’s just the beginning.

Final thoughts

Let some awesome story begin right now — upgrade to Drupal 8 or order a new website creation. Our developers love Drupal 8, create modules and patches for it, and teach D8 classes to newbies. They know how to use the benefits of new Drupal 8 website architecture for you. Drop them a line!

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