Author

Jul 04 2019
Jul 04

Developing a website for a higher education institution may be tough, as universities have plenty of departments and branches. Despite the fact that each department has its own site with specific content, all of them have to function under the same CMS and be closely connected. How do you know which CMS is right for your university website? Let’s sort things out!

Drupal vs WordPress for higher education institutions

The most popular choices for higher education institutions websites are Drupal and WordPress. However, WP lacks functionality, security, and accessibility necessary for a complicated higher education institution platform.

Did you know that 71 out of the top 100 universities, including Harvard University, University of Oxford, and Yale, use Drupal for their websites? It’s not surprising if you are familiar with all of Drupal benefits.

Today, the team at Drudesk explores the benefits of Drupal for university website development.

Drupal’s benefits for university websites

Drupal offers a bunch of tools and features necessary for a complicated university website development. Here are the main ones:

  • Accessibility

Caring about accessibility for users with physical disabilities is a must. Drupal 8 possess a number of features that support website accessibility standards. They help screen readers understand web pages, add alt text for images, take care of fonts and colors, and much more.

Note that you can always contact Drudesk for a website accessibility audit to see if your website is optimized for people with impairments.

  • Information security

University websites contain a lot of valuable content that should be kept safe. Luckily, Drupal is one of the most secure CMS, as it offers regular core, modules, and security updates. With Drupal you can be sure that your platform maintains the highest level of security.

  • User roles and permissions

University websites are visited by professors, students, administration staff, and much more. All of them need different permissions for creating and editing website content based on their roles at the university. Drupal offers out-of-the-box user roles, as well as a number of contributed user access modules that will help you easily configure roles and permissions on the site.

  • Multilingual functionality

Drupal 8 possess a multilingual feature out-of-the-box. This is extremely useful for higher education institutions, as students all over the globe will access the website. Drupal translates all information available, from content to interface, and offers a choice of 100+ languages to install on websites.

  • A multisite approach

Multisiting is usual for higher education institutions, as they have different departments that require sister domains. Things become easy with the Drupal multisite feature that lets you have as many websites as you need on the same Drupal installation. It provides unlimited opportunities for sharing content, managing the settings, and giving access between multiple sites.

  • Easy content creation and editing

Higher education websites update and add content regularly. Drupal 8 is a solution for content creators, as it possesses a number of built-in features for easy content creation, from posting to editing.

  • Hundreds of themes and templates

Drupal offers various design templates that are pretty much effortless to use while ensuring consistency across an entire institution.

Great examples of higher education websites built in Drupal

Harvard University

Harvard university website on Drupal

Rutgers University

Rutgers University website on Drupal

Stanford Graduate School of Business

Stanford Graduate School of Business website on Drupal

University of Oxford

University of Oxford website on Drupal

University of Colorado 

University of Colorado website on Drupal

Develop a website for a higher education institution on Drupal!

Take a look at the Maryland Global University, a website created by our web development partners: InternetDevels agency. It is supplied by the eCommerce functionality for buying online courses, as well as Moodle integration — a well-known LMS (learning management system).

Maryland Global University website on Drupal by InternetDevels

Don’t hesitate over the choice of CMS for university website development anymore — Drupal is definitely the solution! Drop us a line regarding your project and we’ll immediately get back to you to discuss all the details of the project.

Jun 26 2019
Jun 26

Drupal 9 is coming — its arrival is planned for June 2020. So while the world continues enjoying Drupal 8’s benefits, it’s also time to start getting ready for Drupal 9. What does it mean and how to prepare? We are discussing this in our blog post.

Easy upgrades to Drupal 9 as a huge bonus

All website owners and developers can enjoy an amazing bonus related to Drupal 9. Thanks to efforts from the Drupal community, upgrades from Drupal 8 to Drupal 9 are made easy! They shouldn’t take more time than trivial updates between minor versions (for example, from Drupal 8.6 to Drupal 8.7).

As Dries Buytaert wrote in his State of Drupal presentation, when sites move from Drupal 8 to Drupal 9, content is already ready and code continues to work. Amazing!

Excerpt from Dries Buytaert's State of Drupal presentation

But, as you might have noticed, there is one remark in this illustration by Dries. Easy upgrades to Drupal 9 will be available if websites are not using deprecated code. Let’s see in more detail what is means and how to fulfill this condition.

Getting ready for Drupal 9: cleaning up deprecated code

To be ready for Drupal 9, all websites should cleaned up from deprecated Drupal APIs and functions (outdated ones that have more modern alternatives).

Since Drupal core and contributed modules are maintained by their developers, there is a big chance they will take care of the cleanup. So it is necessary to keep the core and contributed modules up-to-date as part of preparation for Drupal 9. However, a good deprecation check is also highly recommended.

When it comes to custom modules and themes, developed specifically for your website, they should be properly checked for deprecations and updated.

To discover deprecated code, there are useful tools in Drupal. Among them:

What to expect from the module readiness and the amount of work needed? Dwayne McDaniel of Pantheon checked almost 7,000 most popular contributed Drupal 8 modules with the Drupal-check tool. He found that almost half of the modules had no Drupal 9 compatibility issues, while 35% had 5 issues or less.

At MidCamp 2019, issues for 300 modules were additionally opened, so the work is already being done about them. Most modules just need an easy fix. All this is stated in the Drupal 9 slides by famous Drupal contributor Gábor Hojtsy.

How Drupal contributed modules are ready for Drupal 9

Dries Buytaert also says that many deprecations are just a matter of “find and replace” and he tried this on his own website.

So don’t worry — the cleanup work as part of getting ready for Drupal 9 shouldn’t take much time. Our Drupal team is always ready to help you check and clean your website from deprecated code.

What about Drupal 7?

Drupal 7 website owners can upgrade to Drupal 8 now or wait for Drupal 9. However, the first option looks much more beneficial. See why.

If they upgrade from Drupal 7 to Drupal 8 now, they can start enjoying what Drupal 8 has to offer (and that’s a huge piece of pie — just check out the basic Drupal 8’s benefits for business). And then they will just switch to Drupal 9 in a snap of a finger. Only one big move will ever be needed.

“Once you are on the Drupal 8 track, you will never have to change tracks again,” Dries writes in the presentation, comparing migration to changing railway tracks.

As you can see from his great illustrations, the Drupal 8 track leads to Drupal 9 and then to Drupal 10 stations. At the same time, Drupal 7 and especially Drupal 6 tracks have no future ahead.

Dries Buytaert illustrating the future of Drupal versions

Dries Buytaert illustrating the future of Drupal versions

In addition, the upgrade path from Drupal 7 to Drupal 8 is very well documented, tried by most developers, as well as improved a lot recently. Useful migration modules have become stable in Drupal 8 core, so it is much easier to migrate content and configuration.

So you will definitely benefit from moving to Drupal 8, and Drudesk team is ready to help you. Change the track if you are still with Drupal 7 and get on the train to the future!

Drupal 9 is coming — entrust us with getting your site ready

Entrust our Drupal support team with preparing your website for the future. Both cleanups and migrations are Drudesk’s area of expertise. We strive to make websites better, cleaner, more modern... and ready for Drupal 9!

Jun 12 2019
Jun 12

There are many beautiful words you can use to tell your customers that your website is trustworthy, reliable, and transparent. But one small widget can say it better that a thousand words.

So let us introduce the UpTime Widget Drupal module. See how it could help you always stay aware of your website uptime, build customer trust, and stand out from competitors.

Module maintained by our developers

Before we move on, we are especially happy to mention that the UpTime Widget Drupal module is maintained by our guys.

Knyshuk.vova is the owner of the module. Its creator Lolandese transferred the ownership to him in accordance with Open Ownership Pledge. Vladimirrem and ApacheEx are maintainers of the module who also make important commits.

These are Drupal developers from Drudesk and Drudesk’s parent company — InternetDevels, which is also listed as supporting organization on the module’s page.

What UpTime Widget Drupal module does

The UpTime Widget module connects your website to the popular free uptime monitoring service — UpTimeRobot.com.

It shows your website uptime (the percentage of time that your website is available to visitors online). Ideally, it should be 100%, although this figure may be a little bit lower in reality.

Your website uptime figure appears in the form of a handy widget to be placed anywhere on your website as a Drupal block. It can also optionally show a configurable copyright notice.

Uptime widget for Drupal website

Uptime widget for Drupal website

The UpTimeRobot service is able to monitor your website uptime every 5 minutes or at an interval you choose. You can get notifications about it by:

  • email
  • SMS
  • Twitter
  • RSS
  • push notifications for iPhone or iPad.

How the UpTime Widget module works in more detail

Getting your keys on the UptimeRobot service

First, we will need to register our website from the UptimeRobot.com service and get the API key and the monitor ID. We need to make a few easy steps:

  • sign up, activate your account, and log in at UptimeRobot.com
  • add a new monitor of the HTTP(s) type, give our website a name, and submit its URL

Register website at UpTime Robot service

The UptimeRobot service has plenty of interesting things like informative dashboards or detailed notification settings. We can come back here any time, but now let’s grab the API key and monitor ID and move on to our Drupal 8 website.

Installing and configuring the UpTime Widget module

The UpTime Widget module can be installed on the Drupal 8 website in any way you prefer. Although it is using a third-party service, installation with Composer is not obligatory.

When the module is installed and enabled, its settings appear at admin/config/system/uptime_widget. Let’s run through some of them.

  • There are two key required fields where we need to enter the previously received API key and monitor ID.
  • The “decimal separator” and “scale” fields have nice defaults, but we can play with the ways our website uptime digits are displayed.
  • The monitoring interval and the refresh interval fields also have sensible defaults. But we can choose how often the website uptime should be checked and how often Drupal should receive this information.

Configuring UpTime Widget Drupal module

Configuring the copyright notice

The website uptime widget by default comes with the copyright widget, which can optionally be disabled. Hiding or showing the copyright is also available in the block configuration, which will be described in the “Configuring the Uptime block” part.

The module’s settings page at admin/config/system/uptime_widget lets us configure how the copyright will look. It offers:

  • several options for the copyright notice
  • the option to specify the year that our domain was first online
  • the option to write a custom “Prepend text” instead of “All rights reserved.”

Configuring copyright notice of Drupal uptime widget

Placing and configuring the Uptime block on the website

It’s now time to place the uptime widget block on our Drupal website. In Structure — Block Layout, we choose the theme region (for example, Footer first), click on it, find the Uptime block in the list of blocks, place block, and save the blocks.

Placing UpTime Widget as block on Drupal website

We can configure the block to our liking — either on the Block Layout page or by clicking the “quick edit” pencil near the block on the website.

We can leave or hide its title by checking or unchecking “Display title,” configure visibility for specific roles, specific pages or content types, and so on.

Configuring UpTime Widget as Drupal block

We can also choose to show both the uptime and copyright widgets, or only one of them.

UpTime and copyright widgets Drupal

More features to come in the future

Our guys have many plans about the module’s improvements in version 8.2. Here are at least some of them:

  • Uptime check notifications should be configurable directly from the Drupal website, which is for now only possible on the UpTimeRobot service.
  • The Uptime information should be included into the “Reports” page on the Drupal dashboard.
  • Public Status Pages, or detailed boards about uptime information, should be integrated into Drupal.

UpTime Robot service dashboard

Get yourself a website uptime widget

Show your visitors they can rely on you all the time! And you can always rely on our Drupal support team if you need any help in:

  • installing and configuring the UpTime Widget Drupal module
  • customizing its look on your website
  • creating another custom Drupal module in accordance with the customer’s requirements

Stay reliable and build your customer trust!

Jun 05 2019
Jun 05

The unique Drupal Views module allows you to pull the data from the database and display it in any way you wish. As an example, we discussed creating photo galleries with Drupal 8 Views. Drupal’s flexibility is unlimited, so it offers additional ways to customize the content presentation and meet the customer’s precise requirements. One of them is to rewrite the output of Drupal Views fields. Let’s explore it a little bit in the simplest of cases.

Why rewrite Drupal 8 Views field output?

It’s possible to shape your Views like with Legos when using the field-based format in it. You can add only the desired fields of a content type or other entity type. It’s easy to rearrange the fields in any order, hide or show the field labels, configure the fields, and so on. 

However, there are cases when you just need the fields to display differently. The customer may want to merge two fields into one, use the values of one field in another, link fields to specific pages, replace links with icons, and so on — the sky's the limit. 

The solution depends on the case. In more complicated cases, expert Drupal development teams create custom field formatters. In simpler ones, they just rewrite the output of Drupal Views fields via the built-in Views dashboard capabilities. 

Main principles of rewriting the output of Drupal 8 Views fields

When rewriting Views fields, we need to take into account the main principles:

  • The Views format should be configured as field-based.
  • Every field has a “rewrite results” section in settings, which has 6 options:
     

Rewriting Drupal 8 Views field output

  • There are replacement patterns that allow us to use tokens and display dynamic values (for example, the ID of the current node).

Replacement patterns for Views fields

  • We can add fields to Views, hide them from display, and use their values in other fields.
  • The hidden fields whose values we want to use should always be positioned above the ones we want to rewrite in the Views list of fields.

A simple example on how to rewrite Drupal 8 Views fields

Let’s create a view that displays all nodes of a content type. It uses fields and shows content as a table.

Field-based Drupal 8 view

In our rewrite example, we want to:

  • merge the content title and body into the same Views table column
  • add a content editing link that will be displayed as a pretty edit icon with a pencil.

1) Merging two fields into the same column

We will overwrite the title field by adding the body field values to it. We don’t need the body field to be shown — we just need to grab its values. So we create the body field and exclude it from display.

Exclude a Drupal 8 field from display

And we rearrange the fields so the body field is above the title field.

Rearranging Drupal 8 fields

In the title field settings, we choose “Rewrite Results” — “Override the output of this field with custom text.” And then we open “Replacement Patterns” and see the tokens for the title and the body.

Rewriting output of Drupal Views as custom text

We grab the tokens and put them into the text box.

Using replacement tokens in Drupal Views fields

And now our view shows them in the same column!

Merging title and body fields in Drupal Views

 

2) Adding an edit icon that leads to the edit page

We add “The edit icon” field to our content type, and attach the icon itself as a default image. We can move this field to “Disabled.”

Adding default image to a Drupal field

We then return to our view, find this field, add it to the view, and rewrite it so it leads to the content editing page. For this, we select “Output the field with custom link,” go to Replacement Patterns, grab the “node ID” ({{ nid }}) token, and shape our custom link with it:

Rewriting output of Drupal 8 Views fields

Done! We have a pretty edit icon that leads directly to the node editing page.

Drupal 8 view with field output rewrite

 

Let’s rewrite your Views fields exactly as you need

This has been just an elementary example of how to rewrite the output of Drupal 8 Views fields. Your fields will show exactly in accordance with your wishes. It can be done with the built-in Views dashboard options, or with custom field formatters for more serious cases.

All you need is to contact our Drupal support and development team!

May 31 2019
May 31

Drupal is a great choice for media websites. This is due to easy content editing, flexible moderation workflows, advanced media handling, and much more.

And, of course, media and news websites on Drupal can enjoy unlimited content display options for. Today, we would like to show you one of them that we implemented for our customer’s Drupal website — so-called featured news collections, aka grouped news.

According to this Drupal setup, news on the same topic are grouped together in ways that provide a high level of usability for readers. More details are coming next.

Featured news collections as opposed to standard Drupal setup

Let’s see what makes the grouped news functionality special for news websites on Drupal, and how it differs from the standard Drupal setup:

  • Standard news are represented by Drupal nodes — one node per item. When you open a Drupal node, you see it in full view. When you open another Drupal node — you see another one. They can be grouped together by topic or category if they are tagged with the same taxonomy term. Still, all of them will be opened one by one.
  • On the contrary, featured news collections include multiple news on the same topic. When something happens in the world, they allow the reader to see the situation from all angles, or its step-by-step progress shown by new updates. The display offers a full view of all news items, which is very handy to read.

Featured news collection VS standard Drupal newsThe features of this news setup in more detail

Individual URLs for news items

We provided each featured news page has a general URL that the reader sees in the browser. However, each news item also has an individual direct link. When it is used, the page smoothly scrolls directly to the place where the particular item begins (due to jQuery Animate plugin).

The URL in the browser is also updated to the URL of the particular item. The URL change is achieved through the replaceState() method of the HTML5 History API, which allows developers to change the URL without the full page refresh.

These individual URLs are added to RSS feed and to the sitemap. Each of them also has social share buttons.

When shared, all pieces of news have individual meta tags. When someone follows their individual shared links, the page will smoothly scroll exactly to the place where each of them begins.

social media icons

Individual URLs and SEO

Every SEO expert knows that the same content available at different URls is a bad idea for Drupal sites or any others. We solved this by providing custom functionality that tells search engines to index the featured news collection only. The separate pieces of news will not be indexed or displayed in search results.

Navigation through the page

So the page with featured news has two blocks:

1) the block with news items in full view

If the block with news items has many of them, they will be divided into pages using the pager functionality.

2) the list of titles to navigate between all news items

What happens when a user clicks on a certain news item title in the navigation block?

  • If the item is found on the currently displayed page, the page smoothly scrolls to it and the URL is replaced, as we described above.
  • If it is not found on that page, we query the page that has it, using AJAX. Thanks to AJAX, the page with the full node view is loaded without page refresh. We calculate the position of the news item from the top of the page and animate scroll to it.

Featured news collection — navigation through the pageDesign for mobiles and tablets

News websites on Drupal should be convenient to access from any device. So, for mobiles and tablets, we provided the styling of the navigation block as a fixed floating block that becomes available upon clicks on the floating icon.

Enjoy interesting options for news websites on Drupal!

This was just a simple example of content display options for news websites on Drupal. Anything else is possible exactly in accordance with your ideas. In addition to AJAX for real-time updates, it’s possible to use frameworks like React, Vue, Angular, and so on.

Contact our Drupal team to discuss your news display functionality!

May 15 2019
May 15

There are Drupal modules loved by both developers and content editors. One of them is Layout Builder. It allows you to create page layout templates of various complexity via a handy drag-and-drop interface. The ability to do it with a built-in user-friendly tool is among the greatest benefits of Drupal.

We celebrate the news that Layout Builder in Drupal 8.7 core has become stable, which means it is officially ready for production sites. Let’s take a closer look at layout creation with this tool.

Layout Builder in Drupal 8 core: stable and feature-rich

Up to this moment, Layout Builder has gone a great path from an experimental module in Drupal 8.5 core. After a number of significant improvements and fixes related to keyboard accessibility, permission granularity, layout storage, translations, usability, and more, we now see Layout Builder in Drupal 8.7 core as a stable module.

Layout creation functionality is also found in popular contributed modules like Panels, Panelizer, Paragraphs, and Display Suite. Layout Builder inherits the best practices from them, and resembles them in many ways, while staying unique. So let’s review this intuitively understandable and powerful module has to offer.

Main features of Layout Builder

Layout Builder works with fieldable Drupal entities like content, users, comments, taxonomy, and so on. This “Lego box” allows you to:

  • compose the page layout with predefined sections
  • populate the sections with blocks that are various Drupal elements
  • configure each block
  • drag and drop the blocks to rearrange them

and much more.

The module can be used for these scenarios:

  • creating a layout for all entities of a certain type (e.g. all blog posts)
  • creating different layouts for different display modes (e.g. blog post’s teasers)
  • overriding the layout just for one entity of a type (e.g. just one blog post)
  • creating a layout for an individual entity (e.g. one landing page)

The last point deserves a special note. As Drupal creator Dries Buytaert wrote in his article “Why Layout Builder is so powerful and unique,” many of competing CMSs don’t offer a templated approach to layout creation from the browser. They only allow layouts for individual pages — in other cases developer input is needed. Drupal’s Layout Builder allows you to do both from the UI, which really makes Drupal stand out!

A tour on layout creation with Layout Builder

Let’s now have a look at how to create a simple layout with Layout Builder in Drupal 8.7.

1) Enabling the necessary modules

The layout creation story starts with enabling the stable Layout Builder and Layout Discovery modules in Drupal 8 core. 

enabling layout builder and layout discovery modules drupal core
2) Enabling Layout Builder for a content type

We want to create a template for all items of a content type. In our case, this is the “Tour” content type.

tour content type drupal8

In Structure — Content types — Tour, we select the “Manage display,” check “Use Layout Builder,” and click “Save.” 

enabling layout builder for drupal8 content type


Note: If we wanted to make each content item individually customizable, we would also check the other option “Allow each content item to have its Layout customized."

We no longer see content type fields, but no worries — they will be available in the Layout Builder UI where we can now go by clicking “Manage Layout.”

manage layout of content type drupal8
3) Composing our Layout with sections

Once moved, we can already see some sections made of existing “Tour” content type fields. We can use these or add new sections for 1, 2, 3, or 4 number of columns by clicking “Add section.” We can also add a couple of sections if we want to combine them vertically.

сompose layout with sections drupal8

When choosing the section, we can set the width proportion of its columns.

set column width layout builder drupal 8

4) Populating the Layout sections with blocks

Each section can be populated with blocks. These are not (or not only) Drupal blocks in the usual meaning — these are actually all Drupal website elements that are the building bricks for our Layout.

By clicking “Add block,” we see our content fields, lists (views), users, user fields, forms, menus, system elements, and so on. Blocks can be found by name. Custom blocks can also be created.

We have chosen a two-column section and we would like it to have the following blocks:

  • “Tour” image, “Tour” body, and Footer block for contacts (in the left column)
  • The “Venice stories” View that we have prepared (in the right column)

adding blocks to layout sections drupal 8

5) Configuring the Layout blocks

The familiar quick edit pencil above each block offers us to configure, move, or remove it. By choosing to configure, we see a configuration tray to the right. It has options in accordance with the formatters that the block has. For example, we can select the image style for our Tour image or hide the label in the “Venice stories” block.

configuring layout blocks drupal8

6) Brushing up the Layout structure

The blocks are draggable throughout the layout if we want to rearrange them. We then look through the page to see if it only has the needed sections and blocks, and remove the extra ones.

7) Saving the Layout and viewing our content

When we are done, there is no forgetting to click “Save layout” and then we can go and see how our content looks in our new template.

layout builder drupal 8 example

Get attractive Drupal 8 layouts!

We can all enjoy great opportunities for layout creation with the stable Layout Builder in Drupal 8.7 core. In our today’s example, we have just touched the tip of the iceberg of its capabilities.

Ask our Drupal development team to create magnetically attractive layouts for your Drupal 8 website, and let your users enjoy working with your site and your conversions grow!

May 01 2019
May 01

The spring is in full bloom — and so is Drupal development. On May 1st, we officially meet Drupal 8.7.0 release that is bursting with new features. And, of course, they are worth a good review. After the previous release in September, we discussed media handling capabilities in D8.6 as one of many interesting updates. Today, let’s take a closer look at what’s new in Drupal 8.7.0.

What's new in Drupal 8.7.0

Drupal 8.7.0 release is a big step forward that makes the CMS even more modernized, competitive, and user-friendly. It is now API-first, featuring handy UIs for editors, using the latest PHP, speaking more languages, and so on. The details come right now.

JSON:API as a new stable module in Drupal core

Here goes what Drupal's creator Dries Buytaert called an important milestone in its evolution towards being an API-first platform for both decoupled and coupled apps.

In the new release, the JSON:API module was added as a stable module to Drupal 8.7 core — skipping any experimental phases! JSON:API immediately exposes entities as a standards-compliant web API, so the data can be pulled by third-party applications.

The module is now the fifth module in D8’s ‘Web services” package. This means Drupal is now more open than ever to data exchange and third-party integration.

JSON_API is a new stable module in Drupal 8 core

Layout Builder stable and improved in Drupal 8.7

The “great drop” deserved a handy tool to create layout templates — and it got one. Layout Builder appeared in D8 core as of 8.5 release and immediately became popular.

It has been improved a lot in terms of keyboard navigation accessibility, precise permissions, layout overrides, column width selection, and much more. And now we officially have stable Layout Builder in Drupal 8.7 core, ready to work on live sites.

The module lets you create layouts for content types and other fieldable entity types. You can also design the look of individual content items. Constructing pages “brick by brick” by combining elements, configuring the blocks, and drag-and-dropping them around is easy and enjoyable.

Layout Builder stable in Drupal 8.7.0 core

New Media Library user interface

When discussing what’s new in Drupal 8.7.0 release, we need to mention the Media Library’s new, stylish, and handy user interface. It’s both nice to look at and to work with.

Finding media items in the Library, bulk uploading them from the computer to the Library, selecting media items and embedding them into content is a pleasure.

The Media module that works together with the Media Library is already stable. The Media Library is still experimental but its stability will not be late in the coming — it’s planned to be in release 8.8. The creators still have great surprises like WYSIWYG support. 

New Media Library interface in Drupal 8.7.0

New Media Library interface in Drupal 8.7.0 (2)

Umami demo now multilingual

The most delicious Drupal demo — Umami Food Magazine — has been translated into Spanish in Drupal 8.7 release. Umami was created to give a chance to explore the CMS’s capabilities thanks to plenty of demo content and configuration. This includes content types, media types, taxonomy, display modes, views, menus, and much more.

And now, in addition to all the above, Umami also showcases multilingual features configured out-of-box that anyone can study. Umami is available as one of Drupal installation profiles alongside the “Standard” and “Minimal.”

Umami demo translated into Spanish in Drupal 8.7.0

End of PHP 5 support

Drupal 8.7 is the last release to support PHP 5. However, it is already impossible in D8.7 to install new websites with a PHP version lower than 7.0.8. Updates for existing websites that use PHP 5 are still possible, but a warning will be displayed. In release 8.8, Drupal security updates will definitely require PHP 7.

In any case, it’s important to remember that PHP 5.6 reached end-of-life in December 2018. So it’s time to update PHP due to both safety and efficiency reasons. You can entrust this to our website support team.

Revisionable custom menu links & taxonomy

Custom menu links and taxonomy terms have been made revisionable in version 8.7.0, which allows them to fully participate in editorial workflows.

Removal of automatic entity updates

In new Drupal 8.7.0 release, the support for automatic entity updates has been removed. The reason is data integrity issues and conflicts. So the drush entity:updates (drush entup) command no longer works. Changes to entities will now be performed using standard update procedures.

Third-party library updates

The new release has also introduced the updates of important libraries to newer versions. For example, Guzzle to 6.3.3, Stylelint to 9.10.1, Coder to 8.3.1, CKEditor to 4.11.3, Twig to 1.38.4, as well as numerous PHP dependencies.

Drop of support for Internet Explorer 9 and 10

The 8.7.0 release is a final goodbye to Internet Explorer 9 and 10. It removes a workaround that still existed in D8.5 and D8.6 and allowed the inclusion of 32+ stylesheets.

Update to Drupal 8.7 smoothly!

This has been just a brief rundown of what’s new in Drupal 8.7.0. Follow our next blog posts, because we plan to review new features in more detail.

The day of the new release also marks the end of security support for D8.5.x. So it’s time to move forward — let your website enjoy the new features and stay protected. For the smooth update, rely on our Drupal support team.

Apr 24 2019
Apr 24

Delicious food is able to inspire people even as they just see it on a website. That’s why food industry companies greatly benefit from well-built sites. The platform choice also matters. Drupal suits websites in all industries — e-commerce, real estate, education, or any other. In this post, we will explore why create a food website with Drupal. And get ready for tasty examples — colorful Drupal websites for restaurants, food products, recipes, and more.

Why create a food website with Drupal

The reasons to create a food website with Drupal include useful tools and the characteristics of the CMS. We will name at least a few of them and spice it up with website examples.

Contributed Drupal tools for food websites

The Drupal community has prepared a varied menu of free tools for food industry sites. Among them:

Umami Food Magazine


Mobile responsiveness

Users may want to order food, find a restaurant, or get a recipe on the go. Food images that are very attractive by themselves, should display well on mobile devices with minimum scrolling or zooming, and still retain their quality.

Drupal 8 has mobile friendliness as a priority. Its powerful tools easily make websites responsive. On D7, responsive design can also be created smoothly by an expert Drupal team.

See an example of responsive Alervi website with recipes that is built with Drupal:

Alervi Drupal website

Multilingual features

Let your food website be understandable to users across the globe. They will appreciate being able to use your recipes in their language. If you offer food products for sale, this will open new markets to you. Finally, if you own a restaurant, get ready to welcome tourists who have learnt about your online.

Drupal 8 supports a hundred languages that can be quickly added to websites. It offers ready interface translations, RTL (right-to-left) support, flexibility in deciding what to translate, and much more. On Drupal 7, multi language features can also be easily created by a good Drupal team.

See the multilingual Drupal Paysan Breton website with food products and recipes:

Paysan Breton Drupal website


Content presentation opportunities

Food is very magnetically appealing content by itself. A CMS should help you make the best use of it. One of the best features of Drupal is that you can organize and structure your content so users admire its look, easily find what they are looking for, and complete their goals.

For this purpose, Drupal offers Views, taxonomy for content categorization, display modes, powerful page builders, and much more. This will be useful for all food industry websites — those for restaurants, for food products, or for recipes.

See how content is presented at Davis website with food products and recipes that is built with Drupal:

Davis Drupal website


At The Laughing Cow website with food products that is built with Drupal:

The Laughing Cow Drupal website
At Drupal-built Higgidy website with food recipes:

Higgidy Drupal website
 

Unlimited website functionalities

Drupal has 42,000+ contributed modules for all imaginable features. What is not offered by them, can be created as custom functionality. Whatever is needed for restaurant sites, recipe sites, or food product sites, can be created with Drupal. See just a few simple examples.

Product locator at The Laughing Cow website with food products that is created with Drupal:

The Laughing Cow Drupal website - product locator

Step-by-step cooking at Drupal-built Jules Destrooper website with recipes:

Jules Destrooper Drupal website - step-by-step cooking

See the San Genesio website restaurant Drupal website that offers table reservations:

San Genesio Drupal website

Finding recipes by multiple characteristics at Drupal-built Paysan Breton website:

Paysan Breton Drupal website - finding recipes by multiple characteristics
Choosing dishes by multiple ingredients at The Boss Cafe website built with Drupal:

The Boss Cafe website


Google map for every restaurant at Drupal-built Le Comptoir du Malt website for a chain of restaurants:

Le Comptoir du Malt Drupal website

E-commerce features

Drupal has powerful e-commerce features represented by two platforms: Drupal Commerce and Ubercart. So your users to buy food products from you online.

Any imaginable features are possible here — integration with payment systems and shipping providers, promotions and discounts, product customization, order management, and so on.

See e-commerce with coupon codes at Jules Destrooper website:

Jules Destrooper Drupal website - e-commerce with coupon codes


See e-commerce with dynamic shopping cart flyout at Eldum Rétt website:

Eldum Rétt website - e-commerce with dynamic shopping cart flyout

Interaction with JavaScript frameworks

Drupal is smoothly combined with JavaScript frameworks that add a high level of speed and interactive features to websites like push notifications, real-time updates without page reload, and much more.

A very popular setup is the decoupled architecture where Drupal serves as a backend sending its data to an app built on a JavaScript framework — React, Vue, Angular etc.

Here is an example of decoupled Drupal Commerce and React Native App at Eldum Rétt website:

Eldum Rétt - decoupled Drupal Commerce and React Native

Let’s create a food website for you!

This has been just a brief review of the main reasons to create a food website with Drupal. Hopefully, you enjoyed the examples. So let your food business flourish with the help of a well-built website — contact our Drupal development team!

Apr 03 2019
Apr 03

JavaScript frameworks have raised the bar of website speed to the sky. Still, it’s just the beginning. GatsbyJS, a tool based on React and GraphQL, impresses the world with fast websites and applications it creates. Let’s take a look at combining Drupal and GatsbyJS to achieve high website speed.

What is GatsbyJS?

GatsbyJS is an open-source React-based framework for building blazing fast websites and applications. Gatsby pulls data from various sources like APIs, decoupled CMSs, databases, markdown, YAML, and more, using GraphQL. 

Gatsby is also called a static site PWA (progressive web app) generator. However, developers can go beyond static sites. Each Gatsby site is a full-fledged React application, so it’s possible to create dynamic apps with it (online stores, blog sites, user dashboards, and so on). 

Created in 2015, GatsbyJS has reached 417,700+ weekly NPM downloads and a 32,600 star rating on GitHub. The showcase of projects built with Gatsby on the official website alone includes 450+ sites.

Its latest version, Gatsby v2, has 130+ default starter kits to quickly start a Gatsby site. Gatsby also has 740+ source plugins to pull data from specific sources (including Drupal). Gatsby websites are also easy to deploy anywhere.

Gatsby and high website speed

“Building blazing fast websites” is part of the official Gatsby slogan. How fast is “blazing fast”? We performed a Google PageSpeed test for Gatsby default starter demo Netlify:

Google PageSpeed test for Gatsby default starter

Here is the same test performed for Gatsby starter blog demo Netlify:

Google PageSpeed test for Gatsby default blog starter


To achieve high website speed results, Gatsby uses:

  • prefetching
  • lazy-loading
  • inlining critical CSS
  • code splitting
  • optimized Webpack configurations
  • server-side-rendering
  • accessible Reach router

and more.

GatsbyJS recognized by the Drupal community

Drupal, with its strong content management features, can provide a powerful data source for the fast and lightweight Gatsby frontend. So the idea of combining Drupal and Gatsby has inspired the Drupal community a lot. Decoupling Drupal 8 with Gatsby has become the topic of speeches and workshops at Drupal meetups. Among them:

Connecting Drupal and GatsbyJS

So let’s take a glimpse at how Gatsby and Drupal are connected. For combining them, we will need:

  • Gatsby website
  • Drupal website
  • Gatsby source plugin for Drupal to connect them

1. Preparing the Gatsby website

To get a Gatsby website, we first need to make sure we have NodeJS and NPM installed. Let’s then install Gatsby command-line interface:

   npm install -g gatsby-cli

We create our new project called “drupal-gatsby”. This command will install the Gatsby default starter from Git. Then we go to its folder:

   gatsby new drupal-gatsby && cd drupal-gatsby

And we run the command to build our website on the server:

   gatsby develop

We are now able to see our Gatsby site with its default starter “astronaut” design at http://localhost:8000/

GatsbyJS website


We will see what we have on the website. There are config files and the src folder with components (header, footer etc.), pages, and images.

The gatsby-config.js file contains the configuration, including the site’s name. Let’s change this name from “Gatsby Default Starter” to “Drupal-Gatsby website by Drudesk” in this file:

  siteMetadata: {
    title: 'Drupal-Gatsby website by Drudesk',
  },


The src/pages folder has the files for all our pages. It’s possible to create new pages right there by copying the existing page files and putting new page names into them. And then, for example, the “news” page will be available at the route “/news.”

The index.js file is where we can change the greeting phrases on the main page. The changes apply instantly, without page reload. 

The “Gatsby develop” command is always active in the terminal and it rebuilds the page in real time after all our changes. So reactive — this is JavaScript, after all!

Gatsby-Drupal website by Drudesk


By visiting http://localhost:8000/___graphql, we see GraphiQL, an in-browser GraphQL IDE to manage our website’s queries. The left side is for queries, the right one is for responses from the server. The “play” button will run the queries. 

The ctrl+space keys offer autocomplete options for queries. It works when we open a curly brace. Let’s choose:

{
allSitePage
}

And we see that GraphiQL returns the results for all site pages:

GraphQL in GatsbyJS

2. Preparing the Drupal website

OK, the Gatsby site is ready, so it’s time to pull Drupal website data. On our Drupal site, we install and enable the JSON API module, which will instantly prepare our API endpoints. As of Drupal 8.7, JSON:API will be included into Drupal core, so there will be no need to install it.

The JSON API Extras module will give us a UI for exact settings. The permissions for JSON:API need to be enabled for anonymous user on our Drupal website.

3. Pulling data from Drupal to Gatsby

For connecting both Gatsby and Drupal together, there is a Gatsby source plugin for Drupal. Let’s install it in our Gatsby site’s root directory.

   npm install --save gatsby-source-drupal

It’s time to tell Gatsby from where to pull data from. In its config.js file, we need to add one more plugin as a code snippet. We include the Drupal source plugin, our Drupal website URL, and JSON:API as apiBase in it. 

{
  resolve: `gatsby-source-drupal`,
  options: {
    baseUrl: `http://*our-drupal-website*`,
   apiBase: 'jsonapi',
  },
},

And we run this magic command again:

   gatsby develop

We will now see in the terminal that Gatsby is “starting to pull data from Drupal.” When we are informed of the successful compilation, we can come back to GraphiQL and see it has many more options for autocomplete. They now include Drupal data.

GraphQL querying Drupal data for GatsbyJS


We query “allNodeArticle” and specify it to show the node title. We see that Gatsby responds with the article titles from our Drupal site. Gatsby has successfully fetched data from Drupal!

GraphQL querying Drupal article titles for GatsbyJS


We can expand and shape our queries to display absolutely anything we like. And we can build whatever Gatsby pages with Drupal data in the src/pages folder by inserting our GraphQL queries into the page files. Finally, the “Gatsby build” command will publish our site.

Assistance with your Drupal and Gatsby setup

This has been just a Drupal-Gatsby sketch, but Gatsby’s settings and opportunities are endless. You can always rely on our Drupal team in any tasks related to your Drupal and Gatsby setup. We will help you in the configuration or create the entire setup from scratch. 

Enjoy high website speed with the latest JavaScript technologies and Drupal!
 

Mar 20 2019
Mar 20

Between a quarter and about a third of the content on the World Wide Web repeats itself. According to Google's head of search spam, Matt Cutts, around 25-30% of web content is duplicate. Your website is also likely to have duplicate content, even if it follows web content writing rules. In this post, we will touch upon the reasons and risks of duplication, as well as review useful modules that fix duplicate content in Drupal.

What is duplicate content?

Duplicate content is defined as identical or similar one found at different web addresses. These URLs can be within the same domain or across different ones.

Common reasons for duplicate content

Reasons for duplicate content in Drupal are pretty much the same as in other CMSs. They vary from unintentional to malicious, and from purely technical to human-created. Among the most common ones are:

  • scraped content (copied without permission)
  • syndicated content (shared by agreement)
  • HTTP and HTTPS versions of pages
  • WWW and non-WWW versions of pages
  • printer-friendly versions of pages
  • different user session IDs generating different URLs
  • almost identical product descriptions in e-commerce stores (for example, Drupal Commerce)
  • identical pieces of site-wide content (for example, in the footer)

What are the risks of duplicate content?

Duplicate content may result in losing your Google rankings. Google can’t show all duplicate results but only one from the “cluster” of duplicates. 

In addition, Google rewards uniqueness as added value. Sites with no unique content will find it harder to get good rankings.

SEO experts always take care to keep their websites from being penalized algorithmically by Google for low-quality content, including copied content. That’s why they try to keep their sites unique.

Google admits there may be strict penalties in cases when the behavior of a website with many duplicates is found to be manipulative. 

Modules that deal with duplicate content in Drupal

Getting rid of duplicates completely is neither possible nor necessary. However, there are contributed modules to deal with duplicate content  in Drupal that will make your website much cleaner from copies.

The Taxonomy Unique module

By default, Drupal allows for creating taxonomy terms with the same names within the same vocabulary. As part of measures to avoid duplicate content in Drupal 7 and 8, the Taxonomy Unique module can prohibit that.

Whenever someone tries to create a term that already exists, Drupal shows an error message saying the term name already exists. The feature can be individually enabled for each vocabulary. The error message is also customizable.

Taxonomy Unique module to fix duplicate content in Drupal


The Unique Content Title module

Thanks to the Unique Content Title module, you can require unique titles for each node of a content type. You will need to check the “Unique title” option in the “Submission form settings” of a content type. The module is only available for Drupal 7. 

The Suggest Similar Titles module

Here is another module to avoid duplication on node titles. This Drupal 7 module is at the pre-release stage for Drupal 8. 

During node creation, the Suggest Similar Titles module compares the new node titles to existing ones, and informs you if they match. The module settings allow to you:

  • decide on which content types to use the feature
  • add keywords to ignore
  • specify the allowed percentage of text matching
  • ask to check node permissions
  • limit the number of titles to show in suggestions

The Copy Prevention module

The Copy Prevention module helps you protect your texts and images from being copied on the Internet. Among the ways to do it are:

  • disabling text selection
  • disabling copy to clipboard
  • disabling right-click context menu on all content or on images
  • placing transparent image above your images
  • hiding your images from indexing 
Copy Prevention module to fix duplicate content in Drupal

The Intelligent Content Tools module

Here is an interesting module to fix duplicate content in Drupal, although it is in the development version. 

The Intelligent Content Tools module consists of three submodules. It offers auto tagging, text summarization, and duplicate content identification for your website. 

The module tells you when some duplicates have been found. Its work is based on Natural Language Processing.

Intelligent Content Tools module to fix duplicate content in Drupal


The Redirect module

The Redirect is a complex module that offers a user interface to redirect your URLs to new paths. It inherits the capabilities of the Global Redirect and the Path Redirect modules. 

Since 301 redirects and canonical URLs are among the ways to fix duplicates, the module is helpful in this sphere. It lets you:

  • manually create redirects
  • automatically redirect to canonical URLs (taking care of trailing slashes, language prefixes, and so on)
  • automatically create redirects in case of URL alias change
Redirect module to fix duplicate content in Drupal Redirect module to fix duplicate content in Drupal


The Redirect module for Drupal 8 comes with two submodules: Redirect 404 and Redirect Domain. They help you, respectively:

  • track and fix 404 errors
  • create cross-domain redirects

A bunch of other modules are recommended to use in cooperation with the Redirect:

  • Multi-path autocomplete as help with entering paths
  • Pathologic for transforming relative links in content to absolute URLs
  • Match Redirect for redirecting according to path patterns with wildcards
  • Pathauto for automatic generation of path redirects, which we will now look at more closely

The PathAuto module

The purpose of the PathAuto module is generating human-readable and SEO-friendly URLs according to chosen patterns. By default, URL aliases in Drupal look like this: /node/123. The Pathauto module can automatically change them to something like /category/my-node-title. 

The module will play an important part in website clean-up from duplicates. The Pathauto module quietly and reliably redirects URLs to the new paths based on the pattern, with no confusion for search engines or broken links for users.

Let’s fix duplicate content on your Drupal website

Each of the above modules will add a helpful touch to fixing duplicate content in Drupal. If you need help using them, or doing a comprehensive website check and clean-up with a variety of tools, feel free to contact our Drupal team. Stay unique — and both search engines and users appreciate that!

Mar 06 2019
Mar 06

There is never too much discussion of Drupal and JavaScript frameworks. We have taken a glimpse at Drupal 8 and Vue.js combination and know that Vue.js is a candidate for Drupal core. Today is the time to review Nightwatch.js — an automated testing framework that is already part of Drupal 8. We will see how Nightwatch.js in Drupal 8 provides for automated JavaScript testing.

A look at Nightwatch.js and its benefits

Nightwatch.js is an automated testing and continuous integration framework, meant to streamline and simplify these processes. It is an integrated end-to-end (E2E) browser testing solution. Nightwatch is also suitable for Node.js unit tests.

Nightwatch.js is written on Node.js — a cross-platform JavaScript runtime environment. To execute commands and assertions on DOM elements, Nightwatch relies on the W3C WebDriver API (formerly known as Selenium WebDriver). For identifying elements, it uses JavaScript language (Node.js) and CSS or XPath selectors.

Nightwatch js based on Node and W3C WebDriverAPI

Currently, Nightwatch.js has 148,900+ weekly NPM downloads thanks to numerous benefits:

  • ease of use due to clear syntax and detailed documentation

  • ability to perform custom commands and assertions

  • command-line test runner Nightwatch Runner included

  • its own NightCloud.io cloud testing platform

  • compatibility with other testing platforms (SauceLabs, BrowserStack etc.)

  • real-time tests possible in the browser

  • parallel test execution possible

  • screenshots and videos of tests

  • automatic management of Selenium or WebDriver services

  • support for Page Object Model that ensures better organization of elements

  • ability to integrate with CI systems (Jenkins, Hudson, Teamcity etc.) thanks to JUnit XML

Nightwatch.js in Drupal 8

Previously, JavaScript functionality on Drupal sites had often been tested via PHPUnit. That often required front-end developers to study the ins and outs of PHP programming language and PHPUnit testing framework. Generally, it was cumbersome and error-prone to test JavaScript with PHP.

Things changed when the Drupal community decided to officially use Nightwatch.js for browser testing. Inspired by the JavaScript Modernization Initiative, in 2018, Nightwatch was included into the Drupal 8.6 core.

Nightwatch-js is part of Drupal 8-6 core.jpg

Nightwatch.js makes it possible to test JavaScript with JavaScript. Developers can write custom tests for browser interactions directly in JS, and execute them in different browsers.

The vast community of JavaScript developers now have their own browser testing tool in the Drupal core. In addition, Nightwatch.js overcomes some PHPUnit limitations.

Nightwatch.js in Drupal 8 offers a built-in Chromedriver. It can work on a standalone basis and requires no Selenium or Java installation. However, it is possible to use other browsers via Selenium — Firefox, Internet Explorer, Safari, and more.

To work with Nightwatch.js, we will need three basic dependencies: Node.js, Yarn, and Chrome. Thanks to detailed documentation, it is easy to create and run tests for Drupal websites, modules, and themes. Helpful links include:

and more!

Get assistance with Nightwatch.js

Our development team follows the latest JavaScript trends. They implement them in Drupal projects and give speeches on them at conferences. One of our Drupal developers even took part in fixing the JS coding standards for Nightwatch.js tests in Drupal 8.6 core.

So you can trust our Drupal team if you need any assistance with Nightwatch.js in Drupal 8. We can install and configure the framework, create and run Nightwatch.js tests according to your requirements, help you integrate Nightwatch with your CI systems (Jenkins, Hudson, Teamcity), and so on.

Rely on us for any other small or big tasks that involve Drupal and JS frameworks!

Feb 14 2019
Feb 14

The trend of using JavaScript frameworks with Drupal keeps gaining popularity. It is used for creating rich, fast, and interactive web interfaces. One of the hot use areas is decoupled (headless Drupal 8) architecture, with the front-end part completely entrusted to a JS framework. There are many JS frameworks and libraries that pair well with Drupal 8 — React, Angular, Gatsby, Ember, Elm etc. Today, we will review one of them, Vue.js. Let’s take a closer look at Drupal 8 and Vue.js combination.

Vue.js: candidate for Drupal core

Adopting JavaScript framework in Drupal core would improve the admin UX, according to Drupal creator Dries Buytaert, who spoke at DrupalCon Vienna in 2017. Core committers and developers with the relevant experience agreed they needed to think and choose the optimal JavaScript framework.

The main proposal was to choose React. However, another strong contender soon emerged as a candidate for Drupal core — Vue.js. Let’s take a closer look at this rising star.

Why Vue.js? The framework and its benefits

Vue.js is a progressive open-source JavaScript framework for building interfaces and single-page applications. It is often called a library, but the official version on the Vue.js website is a “framework”.

Vue.js was created by Google employee Evan You when he was working with Angular. Evan says he wanted to take the things he liked about Angular and create “something really lightweight.”

Since its creation in 2014, Vue.js has reached a 127,500+ star rating on GitHub and recently overpassed its counterpart React (122,000+ stars). The top 3 trending JS tools is completed with Angular (59,300+ stars). As we see, Vue demonstrates the most rapid growth.

 vue react and angular star rating

The number of NPM downloads for Vue is 796,700+ each week. The growing popularity of Vue.js is explained by its benefits:

  • lightweight and easy to learn for new developers
  • clear and detailed documentation
  • adoption within the PHP community (for example, Laravel framework has an out-of-box Vue support)
  • active and helpful Vue.js community
  • used by giants (Xiaomi, Netflix, Alibaba, Adobe, GitLab, parts of Facebook, WizzAir, EuroNews, Grammarly, Laracasts, Behance, Codeship, Reuters etc.)
  • high performance due to two-way data binding and virtual DOM (like in Angular and React)
  • even large aps are built with self-contained and often reusable Vue components

Drupal 8 and Vue.js combination

With the Drupal 8 and Vue.js combination, developers can enrich Drupal interfaces with reactive features with no jQuery, use ready Vue components, or build single-page applications that consume Drupal 8 data.

On the Drupal part, we need to prepare the content for REST export. For example, we can create a View, click “provide a REST export” in the View settings, and add a path. It works when the web services set of modules is enabled in Drupal core.

To set up a Vue.js application, we need to make sure we have Node and NPM installed, and then use the Vue CLI 3 tool. It does a lot of work for developers and that speeds up the processes. It automatically plugs in the selected libraries, configures the Webpack to optimize all files, provides app updates live every time you save changes, and so on. Finally, it offers a graphic user interface — Vue Project Manager.

The commands for starting a Vue.js application are:

  • npm install -g @vue/cli
  • vue init webpack projectname
  • cd projectname
  • npm install
  • npm run dev
vuejs application

Then Vue router and Vue resource need to be added to the project. The main.js file is then configured to use Vue routers and Vue resources, the app.js is modified to work with the router, and app components and routers are set up.

Drupal 8 modules for working with Vue.js

There is an ecosystem of contributed Drupal modules for the Drupal 8 and Vue.js combination:

  • Vue.js builds helps connect Drupal and Vue.js. It can be used in a Twig template, attach programmatically, or add as a dependency to a YAML file.
  • Vue Views adds a new format to Drupal views so the results are displayed in Vue.js, which makes it possible to use Vue features like asynchronous loading etc.
  • Webpack Vuejs provides Vue configuration for the Webpack bundler Drupal module, which helps developers bundle Drupal libraries by Webpack
  • Decoupled blocks: Vue.js is the Vue.js version of the Decoupled Blocks module, which adds Vue.js blocks to websites via modules or themes.

Let’s combine Drupal 8 and Vue.js for you

We have taken a glimpse at the possibilities of a Drupal 8 and Vue.js combination. Our Drupal team is always on top of the latest JavaScript technologies. Contact us and we will help you choose the optimal one for you, and bring all your ideas to life.

Jan 17 2019
Jan 17

Beauty saves the world, and Drupal helps it in this mission. There are awesome beauty product websites built with Drupal that are not only beautiful but feature-rich and powerful. This is more proof of Drupal’s versatility for websites in any sphere — e-commerce, real estate, law firms, or any other. Our Drupal development team knows this firsthand because they build cool websites for our customers. So let’s now plunge into the world of beauty and enjoy examples of beauty product website designs on Drupal.

Great examples of beauty product websites on Drupal

  • Lush website built with Drupal

Drupal powers the website of the world-famous British handmade cosmetics manufacturer — Lush. The front page engages visitors with full-length video slideshows and offers them a place to watch the “Lush Player” stories.

If users choose to continue into the website, they are invited to their country’s specific version, since lush.com is a multisite with multiple languages that provides tailored experiences to users. The country is autodetected, but users can select another as well.

Lush.com is an e-commerce website with an extensive catalog of products that features user reviews, star ratings, product videos, related content, and more. Users can also shop by price or by popular scents. There also are a product guide, charity pot, wishlist, shopping cart, and integration with famous payment gateways.

The site also promotes offline sales, so it offers the ability to search for brick-and-mortar shops and shows their detailed contacts, including a map.

Lush website built with Drupal
  • Benefit Cosmetics website built with Drupal

The next in our examples of great beauty website designs on Drupal is the site of  Benefit Cosmetics LLC  — a manufacturer of cosmetics from San-Francisco. They sell their beauty products in more than 30 countries. Their multisite Drupal website, using multiple languages, is an awesome assistant to that. By the way, these features are among the famous strengths of Drupal.

The content is presented in a very user-friendly, cheery, and encouraging way — for example, the search bar asks “What are you looking for, gorgeous?”

The Benefit Cosmetics website showcases beauty products and services in many ways — in handy menu categories, special offers, as well as interesting content types like “Dilemma solvers” that offer solutions to customers’ “beauty dilemmas.”

When users get interested in a product, they are shown the available offline shops. They can also make an online reservation for beauty services in their area.

Benefit Cosmetics website built with Drupal
  • Miss Sporty website built with Drupal

Among great examples of beauty product websites built with Drupal, we should also mention the Miss Sporty. It is presented in three languages: English, Czech, and Polish.

The site features a handy catalog of beauty products with reviews and star ratings. When cosmetics are presented in a variety of colors, users can instantly “try” these colors out on the main product image. The search feature helps products be quickly found.

The Miss Sporty website has strong community features. In addition to the handy social sharing options, it features a whole big section called “Community,” which displays photos shared by users via Instagram.

Miss Sporty website built with Drupal
  • Natura website built with Drupal

You could also enjoy the design of the Natura website — a Peruvian beauty product resource. It immediately attracts users with a colorful front-page slider, and invites them to view the beauty content.

Users can browse the products from the catalog and, if they are interested, contact a beauty consultant. The consultant search feature is very precise. Consultants can be found by province, by area, and even by street, or you can use the map. Users also have the option to become consultants themselves, and are directed to the website’s chat for the discussion.

The website features the digital beauty magazine, as well as beauty product videos. It has a newsletter subscription and a search feature.

Natura website built with Drupal
  • Clinique website built with Drupal

Another pearl among the examples of beauty product websites built with Drupal is the site for Clinique Laboratories, LLC. It offers advanced e-commerce features and lets users shop by product category, by price, by most wanted items, by ready holiday looks, and more.

When users have added products to cart, they can check out via Paypal or via a regular checkout. It is possible to sign in via Facebook for shopping.

In addition to online shopping, users can send e-gift cards to anyone they wish to right from the website. They specify the recipient, the sum, the date of delivery, and other details.

There is also a promotional feature that gives points to users, which mean various awards and benefits. Points are calculated for shopping, reviews, social sharing, and so on.

Clinique website built with Drupal
  • MAC Cosmetics website built with Drupal

MAC Cosmetics is another famous beauty product manufacturer that trusts Drupal. Their website lets users view products in various categories and by them online.

Each product description is accompanied with reviews, star ratings, as well as related products that go with the current one. Various colors are applied instantly to the product image.

For those who want to shop offline, there is a search feature for stores. Users also can check the in-store availability of a particular product in the catalog by entering their zip code and distance within which they want to shop.

It is also possible to send gift cards online by specifying the recipient, the gift value, the delivery date, and more.

MAC Cosmetics website built with Drupal
  • “Be Beautiful” website built with Drupal

A whole world of beauty advice can be found on the Be Beautiful website, which is also powered by Drupal. This multilingual website has as many as 10 languages.

Users are presented with useful articles, news, and videos from beauty experts. All the beauty topics are conveniently categorized. The search bar offers additional help in finding the right content. The site also features an Instagram feed for more interactivity.

The website’s content includes links to beauty products with the directions to find them on Amazon or other online retailers.

Be Beautiful website built with Drupal

Love these examples of beauty website designs? Get one for you!

Our collection of examples of beauty product websites built with Drupal is not complete. First of all, it is missing your future website — but we can fix this! ;)

Contact us, and let’s add some beauty to this world together. Your beauty products and our developers’ talent could unite in an amazing Drupal site!

Dec 26 2018
Dec 26

There is often a need to import and export content to and from your Drupal 8 website. The ability to do that lets you use the power of content in Drupal 8 more fully. One of the most popular content sources is a CSV file. Drupal 8 has a number of useful contributed modules for getting data from it, and many cases also need customization. Our Drupal team provides smooth CSV import for even for the most complex cases. Today we would like to share a simple way to import data from a CSV file to Drupal 8 with you.

For a start, what is CSV?

CSV, which stands for comma-separated values, is a popular format for data storage. A CSV file stores data as a table where values are separated by commas. CSV is compatible with any spreadsheet programs such as Google Spreadsheets, Microsoft Excel, and so on. Each value uses a cell in the table.

CSV files are incredibly lightweight, easy to organize, and awesome for manipulating large amounts of data. Huge tables with data can be quickly edited by website administrators and sent to Drupal when ready.

Some ways to import data from a CSV file to Drupal 8

Among the popular solutions for CSV import to Drupal 8 websites, there are contributed modules like Migrate Source CSV, Migrate Plus, and Migrate Tools. The CSV import process with these modules includes the creation of the migration configuration and the use of the “migrate-import” Drush command.

And there also is one very simple solution called the Content Import contributed module, which we would like to show in action.

An example of CSV import via the Content Import module

The Content Import module lets website administrators import data from a CSV file to a specific Drupal 8 content type. A content type has fields, and a table has columns, and this is where they should match. Remember, we can always save a CSV file as a table.

Each CSV file column should list the values of a particular field of the content type. The first cell of each column should match the field’s machine name.

Some special supported Drupal fields include:

  • Entity Reference for Taxonomy, Users, and Content
  • Geolocation, Timestamp, Boolean, and Date

There also are two columns announced as mandatory.

  • The first column should be called “title.”
  • There is also a “langcode” column that does not match a specific field of the content type. The default is “en” for English, and you can use other language codes.

In our example below, we are not using the langcode column, and still everything works. So it looks like using only one of these two is mandatory.

If your data has images, there will be a little more hassle — you will need an additional IMCE module for uploading images into the “public” folder.

Of course, our example will include images! ;) So let’s create a sample Drupal 8 content type and import CSV data into it. We have a tasty content type on our Drupal 8 website — “Menu item.” It has the following fields.

Drupal content type fields

In the settings of the image field, we specify the directory to which we will upload images like this: [content_type_name/images].

 Specifying the image upload directory in the field settings

The “Available for delivery” field is of “Boolean” type, and we put the options as “Yes” or “No.”

The Boolean type field in Drupal

Then we download the IMCE module that will help us put images in this directory. We go to site_name/imce, open the “public” directory, create the folder with our content type name, and within it, create the folder “images” so that the path is public/content_type_name/images. Then we upload our images there. A bulk upload works well for this.

 Uploding images with IMCE

Then let’s prepare our CSV file. We can create it as a Spreadsheet first, so it’s more handy to work with the cells. We put the machine names of the fields into the first row. Then we fill in the values for each field. The values for the images are their file names.

Data as a spreadsheet

When the spreadsheet is ready, we download the file as CSV.

Data as CSV

It’s time to import the CSV data to the Drupal 8 website. With the Content Import module installed and enabled, we go to Configuration — Content Authoring — Content Import and select the content type to import the CSV data to.

When we do so, we also see sample CSV file available for download. We are not interested in the sample right now, so let’s choose our CSV file from the computer and click “Import.”

Content import from CSV to Drupal 8

In a few seconds, we see the content is imported. All items are listed in Content, and each of them has all the field values imported from our CSV.

 Drupal content listedDrupal content item with fields

Our menu deserves to be created as a view on our Drupal 8 website, so it represents all our items in an attractive way.

Drupal content in a view

Your perfect CSV import

We have shown you how to import data from a CSV file to Drupal 8. Please keep in mind that this simple example will not fit on just any website. Especially if you have plenty of customizations, or need complex mapping between the CSV columns and Drupal fields, you will need custom migration solutions.

Contact our Drupal experts — and we will advise you the optimal CSV import scenario. And, of course, they will implement everything for you. Get the best from the efficient data formats and smart data exchange!

Dec 07 2018
Dec 07

Online stores opens unlimited opportunities with no geographical boundaries. Behind their lines of code are successful purchases, great profits, and happy customers. So online stores should be reliable, efficient, and attractive in everything — from product catalog to e-commerce checkout. An awesome choice for building an online store is Drupal 8, particularly with one of its greatest treasures — Drupal Commerce 2.x. Let’s explore Drupal Commerce 2.x features for your Drupal 8 online store in more detail.

Why choose Drupal 8 for e-commerce websites?

Before we move on to describing the features of Drupal Commerce 2.x, we will start with mentioning at least a couple of Drupal 8 characteristics that form a great support for your Drupal 8 e-commerce website.

  • Content + e-commerce = more conversions. Drupal is a powerful content management system, which means you are getting more than just an online store. You will have a website full of diverse content types to support your store with good content. The approach of content-driven commerce is a sure way to get engaged customers, better SEO, and increased conversions.
  • Mobile responsiveness. Since mobile sales are headed to overtake desktop sales soon, it is awesome that Drupal 8 is mobile responsive out-of-box. Drupal 8 has everything you need to make any theme responsive, so its elements magically adjust to mobile device screens. Let your mobile users shop with pleasure!
  • ​​​​​​Better performance. Loading speed is especially important for online stores. Users want to browse your website, compare various products, and place orders without delay. Drupal 8 has powerful caching techniques for faster loading. One of them is the innovative BigPipe, which lets you serve static website elements to users instantly and load dynamic ones next.
  • ​​​​​​Third-party integration. An e-commerce website usually relies on third-party services for payments, marketing analytics, online customer support, CRMs, and so on. Drupal 8 has built-in web services that make integrations incredibly smooth.
  • Multi-language. Customers are more willing to buy when they see information in their native language. Drupal 8 has awesome multi-language support. It is very easy to add languages to websites and translate exactly what you need. Interface translations are ready for a hundred languages.

Drupal Commerce 2.x for your Drupal 8 online store

Drupal Commerce is a solution for creating e-commerce sites from scratch or adding e-commerce features of any complexity to existing sites. It is free and open-source, like any other contributed Drupal module. However, it works like a full-fledged e-commerce framework that covers all the needs of an online store: product catalog, cart, checkout, shipping, orders, and so on.

Drupal Commerce 2 is the version for Drupal 8, and it has recently issued a new update — Drupal Commerce 2.10, which shows great advancements in product administration, third-party integration, and more.

There is also an ocean of add-on free contributed modules the extend Drupal Commerce 2.x features endlessly. However, Drupal Commerce 2.x out-of-box comes with an impressive pack of submodules that show its comprehensive capabilities:

Drupal Commerce 2-x - submodules

So let’s see what your online store can enjoy!

Why use Drupal Commerce 2.x for your online store

  • Single or multi-stores available

One of the awesome Drupal Commerce 2.x features is that, instead of having one store, you can use multiple stores in Drupal 8. Each of them can have its own product types, currencies, taxes, contact information, cart, checkout, and everything else.

  • Smart support for multiple currencies 

Drupal 8 lets you add multiple currencies out of the list, as well as custom ones by providing the currency code.

Here, the true multilingual soul of Drupal 8 shows perfectly! Drupal Commerce 2.x takes into account the names of each currency in each language, their formatting, and other important details.

This extensive information is provided by the commerceguys/intl library. It works in accordance with the internationally recognized CLDR standard.

Drupal Commerce - adding custom currency
  • Awesome product handling 

Your Drupal 8 online store can have whatever products you wish — from simple ones to products with attributes. Each unique combination of attributes is a product variation in Drupal Commerce 2.x, and it has its own SKU, or machine-readable ID. This is very convenient for managing your orders and stocks.

Thanks to the Fancy Attributes module now included out-of-box, creative selectors like color swatch are available for product attributes. Multilingual products are also easy to set up.

  • 70+ payment gateways & flexible payments features

Customers are more likely to buy when they have their preferred payment gateways. One of the great Drupal Commerce 2.x features is the support for 70+ payment gateways! Authorize.Net, Braintree, PayPal, Square, Stripe, Vantiv are just the beginning of the list. There are add-on contributed modules for any provider you wish. Custom modules can be created for all others.

Drupal Commerce 2-x - adding payment gateway

The flexibility in payment types is also awesome:

  1. On-site payment gateways let customers enter credit card details directly on your site, and tokenization can be applied for data protection.
  2. Off-site (redirect) gateways redirect customers to the third-party payment service and back to your site upon successfully completing the operation.
  3. Off-site (iframe) gateways do not redirect customers to the third-party service and handle the checkout process in an embedded frame.
  4. There is also a built-in “Manual” gateway option for such payment methods as Cash on Delivery, Card on Delivery, Cheque, Bank Transfer, and so on. They are marked as pending payments and are moved to complete by your store admin.
  5. It is also possible to set up an IPN (Instant Payment Notification) service and be instantly notified about events related to PayPal transactions.

Your Drupal 8 online store will have handy interfaces that let you authorize, void, or refund the payments.

  • Flexible promotions and discounts

Engage your customers with promotions! Your Drupal 8 online store will offer you a number of built-in offer types for fixed or percentage amounts. This can work in accordance with conditions that you set.

Drupal Commerce 2-x - adding promition
  • Smart handling for taxes

There is no need to bother about specifying the product price with taxes. Drupal 8 can automatically calculate the taxes for you. It has predefined taxes for countries, as well as letting every merchant choose special taxes. The system knows taxing specifics, for example, the difference in VAT calculation for physical and digital products in the EU.

  • Multiple order types

Your Drupal 8 onlines store can have not one but multiple orders types with special workflows for each. This allows for creating fine-tuned experiences for various product types. For example, selling tickets will need a different workflow than selling T-shirts. Order receipt emails are also very customizable.

  • Flexible checkout options

Checkouts are incredibly handy. They offer progress indication bars, the ability for users to checkout as a returning customer and reuse the previously entered information, the option for you to allow or not guest checkout, and so on.

Moreover, there can be different checkout flows for different product types. They may vary in the number of steps to take, which customer information to require, and so on.

Drupal Commerce 2-x - checkout flows
  • Great shipping options

With Drupal Commerce 2.x. you can configure the shipping methods, define which products are shippable, and manage the shipments.

The basic features are handled by an add-on module called Commerce Shipping. It lets you set up such shipping methods as flat rate-per-order and flat rate-per-item.

For more specific and advanced shipping integrations, there is a plugin-based system. There are existing plugins for famous shippers, and developers can create any other for you — whatever your favorite shipper is. It is also possible to provide shipping rates based on conditions.

Create an online store with Commerce 2.x on Drupal 8

This has been just a brief overview of Drupal Commerce 2.x features. This box of treasures can offer much more in good hands. In addition, customization miracles can fine-tune your e-commerce website in every detail to your liking.

Entrust your Drupal 8 e-commerce website to our Drupal development team. Our guys have a lot of experience with e-commerce and know how to use the benefits of Drupal Commerce 2.x in the best ways for you.

Oct 26 2018
Oct 26

Drupal has a great way to provide your website with the latest features and make it more protected against new cyber threats. To achieve this, it constantly evolves to keep up with the pulse of the times. All you need is to regularly update to newly released Drupal versions, and your Drupal support provider could help you with that. However, there is an idea floating in the air about how great it would be to have automatic Drupal core updates. We will explore this issue, with its benefits and challenges, in our blog post.

The need for automatic Drupal core updates

The Drupal community fully understands the wishes of website owners. At DrupalCon Vienna in September 2017, Drupal founder Dries Buytaert gave a presentation about the state of Drupal. He emphasized that complicated updates are one of the things that pushes people away from Drupal, and that users are asking for auto-updates. The need to automate Drupal core updates became clear — and grew into the special initiative.

Automatic Updates Initiative for Drupal core & its benefits

Automatic Updates Initiative for Drupal core & its benefits

So the Automatic Updates Initiative was created with the main aim to build a secure system that would install core updates automatically. The Initiative is meant to:

  • reduce website maintenance costs and time
  • immediately respond to critical security issues and apply patches
  • free users from possible hassle and the complexities all website owners who do updates without a development expert face
  • and, finally, give the answer to all customers who keep asking why, despite all Drupal’s awesome strengths, it still has no automatic updates.

The challenges of automatic Drupal core updates

So the idea of automatic updates sounds very lucrative indeed. However, despite the unquestionable benefits, the community also understands that implementing automatic updates for Drupal core meets a number of challenges:

  • automatic updates without human supervision may involve great risks — up to and including websites crashing
  • there is no testing pipeline
  • automatic updates may open opportunities to hackers for mass dependency injections
  • there is no GIT version control, so it’s impossible to roll back if something goes wrong
  • automatic updates will mostly benefit simple websites with no custom modules, otherwise they will require much more developer attention anyway
  • this idea requires a comprehensive restructuring of Drupal codebase, which means it’s not a near-future innovation
The challenges of automatic Drupal core updates

Considering that Drupal is a very powerful CMS able to handle extremely feature-rich and complex websites, such thing as automatic updates should be approached with caution.

When it comes to core updates, nothing can replace a developer’s hands at the moment. However, the future may change this, because great work is being done in this realm.

Quick core updates already a reality in Drupal 8!

Luckily, automation is not the only way to facilitate core updates. When it comes to Drupal 8, they are already a snap.

A lot of work has been put into making Drupal updates and even Drupal upgrades easy forever (upgrades are transfers, for example, from Drupal 8 to 9 in the future). This article by Dries Buytaert explains that this is achieved, in particular, thanks to backwards compatibility between the versions and semantic versioning.

Let’s say updating an average website from Drupal 8.5.x to 8.6.x will only take half an hour for our Drupal maintenance team. Smaller updates (like Drupal 8.6.0 to 8.6.1) can be done with the snap of a finger. Overall, it will depends on the amount of custom modules.

By the way, this is yet another reason for Drupal 7 website owners to upgrade to Drupal 8 — for which you can rely on our Drupal website support. Easy upgrades are listed among numerous Drupal 8’s benefits for your business

So your wish for easy Drupal core updates can come true right now!

Do you regard automatic updates as the way to forget about everything and have a good night’s sleep? This wish can come true right now! But you don’t have to wait until the Drupal automatic update feature is finally here and well-tested.

Rather, this dream will come true if you apply to our Drupal support firm. All our maintenance packages include watching out for security updates and running them. We can agree the on following not only security, but any other kinds of updates.

Let our experts run all Drupal core updates for you — manually, safely, and reliably!

Oct 19 2018
Oct 19

The magnetic power of beautifully arranged content is really huge. Using it is one of the surest ways to keep your visitors on your website, spike their interest, bring your message across, and create the best impression of your business. There are plenty of attractive ways to display content on your Drupal 8 website. Let’s consider a few of them right now, as well as nice Drupal modules that are helpful.

Interesting ways to display content on your Drupal 8 website

Content presented in views

First of all, when it comes to content presentation in Drupal 8, we cannot help but mention Views — the powerful tool that is now built-in and that lets you display your data in absolutely any way you wish. A grid, a table, a list, and other formats are ready to hold your articles, news, photos, and so on. The results can be filtered and sorted by various criteria, and these filters can be exposed to website users.

There are plenty of additional modules that enhance content presentation in Views. For example, creating a simple photo gallery with Drupal 8 Views is a very nice option, but you could use a special responsive grid provided by the Views Photo Grid module. It arranges the photos so that each row height remains the same, while photos fill in the available width.

Photos presented by Views Photo Grid module in Drupal

Content in a stylish overlay

One of the popular and creative ways to display content on your Drupal 8 website is to make it open in a stylish overlay above the current page. This can be done with modules like the Colorbox, which is great for images, as well as iframed or inline content. Colorbox works like the image field formatter in Drupal 8.

Photos in a stylish overlay by Colorbox modules

Slideshows and carousels of your content

Various slideshows and carousels are incredibly engaging for users. They show content items one at a time — not only images, but also texts, videos, social media posts, or a combination of elements, including nested sliders. Various options for animation, touch-enabled or keyboard navigation, transition effects, and many more features are available to you.

All this is possible with Drupal 8 modules like Views Slideshow, Owl Carousel, Slick Paragraphs, Slick Media, Slick Carousel, Imagefield Slideshow, jCarousel, Flex Slider, BxSlider, Juicebox HTML5 Responsive Image Galleries, Views FractionSlider, Jssor Slider, and many more.

carousels of your contentin Drupal 8carousels of your contentin DrupalSlideshows of your content in Drupal 8Slideshows of your content in Drupal

Data presented as charts

Charts are great for data visualization. They look informative, professional, and convincing. Drupal 8 offers some nice modules for creating charts like the Charts, the Easychart, and others. They support charting libraries like the Google Charts and the Highcharts, and so on. You can present your data as a pie, column, or bar chart, and more.

Data presented as charts in Drupal

Special effects for your website’s images

Please your users’ eyes with interesting image effects. They can be added with special Drupal 8 modules, for example, the Image Effects module. It enriches Drupal image styles with great choices of of additional effects — Watermark, Text overlay, Set transparent color, Gaussian blur, Interlace, Mirror, Aspect switcher, ImageMagick arguments, Color shift, and so on.

Special effects for your website%E2%80%99s images in Drupal 8

Videos or other media embedded into content

A great idea to make your content will look much richer and more attractive is to embed media into it. As of Drupal 8.6.0, media opportunities let you embed videos, audios, images, files, as well as remote videos from YouTube and Vimeo with just a URL.

There are no extra modules to install — the built-in Drupal 8.6’s Media and the Media Library modules just need to be enabled. Then add the Media field to your content type (e.g. blog) and you will be able to fetch the media, previously saved to your media library.

Videos or other media embedded into content in Drupal

Content put into an accordion

Accordions are one of the handiest structures to display your content in Drupal 8. Your users can click on the menu items and extend them to reveal the content inside. A great way to implement it is the Views Accordion module, which presents the results of the views as a JQuery accordion.

Content put into a views accordion in Drupal 8

To recap

We have shown you a few nice examples of ways to present content on your Drupal 8 website. Drupal’s capabilities in this sphere are like an endless sea — even a million articles will not be enough to describe them.

And we have just touched on what contributed modules can do. However, in the hands of expert Drupal developers, absolutely any amazing results are possible with custom coding.

So the attractive, convenient, and engaging ways to display content on your Drupal 8 website are unlimited. For implementing any of them on your website, contact our Drupal help desk!

Oct 18 2018
Oct 18

We love to say your Drupal website capabilities are unlimited, but even more than that we love to provide examples. One of them is the Drupal Rules module. It can be compared to a whole team of smart and tireless robot assistants that do necessary things at right moment on your website. They welcome your guests in, deliver important messages, remind you of events, and much more — from the simple to the most complicated scenarios. So let’s take a closer look at how the Drupal Rules module works to make Drupal’s strengths even greater.

The fundamentals of the Drupal Rules module

The Rules contributed module lets you set up automated workflows on your website based on so-called reactive rules, aka ECA rules. ECA stands for “event-condition-action.” So, you can create your reaction rules, each of which consists of:

  • an event
  • a condition
  • an action

The principle is: when some event takes place, and a certain condition is met, then a particular action is automatically triggered. For example:

  • Event: content is viewed by a user
  • Condition: the user role is Anonymous
  • Action: a message is shown on the site asking the user to log in to post comments

First, an event is created, and then the conditions and actions are added. In many cases, just an action is enough and the condition can be skipped — for example, users have logged in, irrespective of conditions, they can be shown a “welcome” message.

drupal rules module
 
drupal rules module
 
drupal rules module

The Rules module provides impressive lists of default events, conditions, and actions to select from. The lists depend on other modules that you also have installed. In addition, custom ones can be created by coding and added to your Drupal website.

Rules components are reusable, which means they can be added to other rules and even used by other modules.

To categorize your rules, you can use tags, which is very helpful when you have plenty of them on your website.

A few use cases of the Drupal Rules module

With the Drupal Rules, you can, for example:

  • remind a user to fill in the required fields before saving a node
  • thank a user for posting content
  • tell a user that the content is pending the moderator’s approval
  • notify the moderator about the newly posted content or comments
  • notify a user when someone comments on their content
  • notify a user when someone adds their content to bookmarks
  • remind a user about calendar events a certain time in advance
  • notify the administrators about emergency log entries
  • block a user for spamming or other bad behaviour
  • notify a user that a desired product is in stock
  • apply a discount on a product when it is applicable

and much more — as stated above, the sky is the limit to the possible workflows!

Cooperation with other Drupal modules

The Rules work closely with Drupal Commerce, Ubercart, Content Access, Flag, Organic Groups, Features, Token, Rules Link, Rules list conditions, Views Rules, Rules Forms, Conditional Rules, and many other modules, so the most interesting scenarios are provided.

The Rules module in Drupal 7 and Drupal 8

In Drupal 7, the Rules module requires the Entity API contributed module, while in Drupal 8, it needs the Typed Data to work with.

Its UI has also changed considerably. One of the main changes is that in Drupal 8 you do not see the traditional Drupal 7’s “Replacement patterns” link when specifying the Condition and Action values. You can put the values in either by data selection mode (which shows hints upon clicks on the field) or by direct input mode.

The Rules module in Drupal 7 and Drupal 8

The Rules in Drupal 8 is still in its alpha state, so it is not 100% ready for production sites. This is a complex module, so porting it to Drupal 8 is a cumbersome task.

To recap

The Rules module requires careful use and experience, especially when it comes to complex cases. That’s why it is better to entrust the Rules creation to a solid Drupal team.

They can also advise you what kinds of workflows can be created for your particular business goals. Whatever you need that might be missing in the default Rules features can be added by custom code.

For all this, you are welcome to contact our expert Drupal support firm!

Oct 18 2018
Oct 18

Various media, like videos, audios, or images, make your website really engaging. They fill it with colors, music, vivid impressions, and exciting experiences. And Drupal 8 offers new great options for media handling, which make it a leading CMS in 2018. The latest version, Drupal 8.6.0, brings especially interesting media features. We will start exploring the new media opportunities in Drupal 8 right now.

New Drupal 8.6.0 media handling features

Thanks to the Drupal Media Initiative, Drupal 8 now has new modules in core — the Media and the Media Library, which have inherited the best capabilities from a number of contributed modules. They introduce new and awesome concepts like media types, media fields, reusable media, and more.

So what can you do with them? First of all, you can:

  • add media of various types to your site
  • save and reuse media in your Media Library
  • place media inside your content
  • embed remote YouTube and Vimeo videos via an URL

and much more. Let’s consider these options in more detail.

Adding media of various media types to your site

To add media to your website, you can use the ready media types provided by Drupal. In Drupal 8.5.x, there were four media types — Image, File, Video, and Audio.

But Drupal 8.6.0 has prepared a new one — Remote Video, which lets you add third-party videos from YouTube and Vimeo. We will discuss it in more detail later in this post.

remote video media type

In addition to the default media types, you can create custom ones, and specify their media source.

Thanks to the media types, adding media is as easy as adding content, and can be done in Content — Add Media.

add media

Saving and reusing media in the Media Library

As of Drupal 8.6.0, all media can be conveniently stored in your Media Library for further reuse. You can easily access, publish, unpublish, save or delete all the media items in Content — Media.

For your convenience, media can be filtered by media type, publishing status, and name, as well as sorted by newest or oldest and descending or ascending alphabetical order.

One of the greatest things is that you can fetch media from the Media Library while creating your content — for example, to place video inside your blog post. We are moving on to this topic right now.

media library

Placing media inside your content via media fields

Media can be embedded into your content in the most natural way for Drupal — via fields. There is now a special new field type called Media that you can add to your content type (article, blog post, news etc.). When adding this field, you need to specify whether it will be Audio, Video, Remote Video, File, or Image.

the media field

the media field type

After that, on the content creation form, you will see the media embed option. The “Browse” button brings your Media Library to choose your media from.

adding media to content

Embedding remote YouTube and Vimeo videos with oEmbed

Here is one of the most exciting new options for media management in Drupal 8.6.0. It lets you embed remote videos from YouTube or Vimeo with just a URL.

Just add the Media field to your content type, specify it as “Remote Video,” arrange the fields to your liking — and remote videos will be ready to jump inside your content! Just as we described in the previous example, the videos can be fetched from the Media Library during content creation.

add remote video

add remote video to article

remote video embedded into article

Final thoughts

This is just a glimpse at media handling opportunities in Drupal 8 — particularly, Drupal 8.6.0. There are more additional settings for formatting your media, creating custom fields to pull more special data from the source, and many more.

The sky is the limit on your options, and the Media features are hot off the press and constantly developing.

To enjoy all these new features, you need to update your website to the innovative Drupal 8.6.0. For this, as well as for creating the perfect media setup, feel free to contact our Drupal support firm!

Oct 18 2018
Oct 18

Having a map integrated into a website is a huge advantage for business owners, especially for those with brick-and-mortar locations. This helps your customers to find you easily. Google Maps is probably the most popular mapping service and having it embedded into your website will definitely be an advantage for your business.

Drupal has amazing possibilities to help you solve this issue. Whether you do this by using Drupal 8 modules or find other alternative technique, the process is going to be simple and easy. We’ve prepared a guide for you on how to implement Google Maps Data into your Drupal 8 website in different ways.

Methods to integrate Google maps into your Drupal 8 site

Embed Maps

The first way to include Google Maps on your website is to embed them. It is maybe the easiest and the least time consuming way to have Google Map Data shown on your website.

How to embed Google Maps to your Drupal 8 website

The first step is to choose a location you want to show on your website. To do this, you should visit Google maps and find a place you’d like to provide.

How to embed Google Maps to your Drupal 8 website

After a searched location appears, press the Share button. In the opened window choose “Embed Map” and copy the whole <iframe> code.

How to embed Google Maps to your Drupal 8 website

Then you should create a basic page and give it a title.

How to embed Google Maps to your Drupal 8 website

The next thing to do is to insert a copied code into a created page. Note that it will work properly only if you choose Full HTML in the drop down Text format. After that, don’t forget to save changes.

How to embed Google Maps to your Drupal 8 website

The Map will be shown on your website as soon as the page is published.

How to embed Google Maps to your Drupal 8 website

Simple Google Maps Module

Simple Google Maps module is really easy to manage. The main advantage is that you only need to give the address of a place and a map will appear on your website. The module may be installed in different ways. Let’s look at how to downlaod and install it.

How to integrate Google Maps to your Drupal 8 website with Google Maps Module

Log in into your Drupal website as an admin. Go to Modules and click on Install new module.

integrate Google Maps to your Drupal 8 website with Google Maps Module

Find Simple Google Maps module on Drupal.org and copy the link for download tar.gz for Drupal 8.

integrate Google Maps to your Drupal 8 website with Google Maps Module

Go to Install new module page and enter the copied link to Install from URL field and press the Install button.

integrate Google Maps to your Drupal 8 website with Google Maps Module

After module installation, find this one, enable it and save changes.

integrate Google Maps to your Drupal 8 website with Google Maps Module

The module is enabled and the next step is to create a new field to show a map. Go to Structure → Content type. After that, add a new content type, and give it a name.

integrate Google Maps to your Drupal 8 website with Google Maps Module

As soon as a content type is created, go to Manage fields and add a new field with type Text (plain). Then save changes.

integrate Google Maps to your Drupal 8 website with Google Maps Module

After the settings are saved, go to Manage fields, click Manage display and check whether it is displayed on your page. Select Google Map on the one-line format from a drop-down.

integrate Google Maps to your Drupal 8 website with Google Maps Module

To manage the sizes of the map and addresses shown on your page by default, go to the config area (press the button on the right).

integrate Google Maps to your Drupal 8 website with Google Maps Module

The next step is to add a node. Click on Content → Add content and choose the content type you’ve added. Insert the title for your page. After that, in the newly created field enter an address you’d like to show on your map and save changes.

integrate Google Maps to your Drupal 8 website with Google Maps Module

After the page is created, Google Maps will be displayed on it.

integrate Google Maps to your Drupal 8 website with Google Maps Module

Geolocation Field module

Geolocation Field module is probably the most frequently used module when we talk about Google Maps integration. In short, it brings special field types for storing information about geolocation. Moreover, it has extended possibilities and enables mapping, connecting it with the desired content types.

How to integrate Google Maps to your Drupal 8 website with Geolocation Field module

The first step is to install a module. You can use the method described above.

After installing it, all you need to do is to add the Geolocation field to the content type. For this, go to Manage fields while creating a new content type and choose the Geolocation field type.

integrate Google Maps to your Drupal 8 website with Geolocation Field module

The next thing to manage is how the map will be viewed. Go to Manage from display page and choose the Geolocation Google Geocoder from the drop-down menu.

integrate Google Maps to your Drupal 8 website with Geolocation Field module

After that, go to Manage display and choose Geolocation Google Maps API - Map from a drop-down in address field. Then a map will be displayed on your page.

integrate Google Maps to your Drupal 8 website with Geolocation Field module

After a node is created, the map will be shown.

We’ve described 3 ways to integrate Google Maps Data into your Drupal 8 website. Thanks to the simplicity and flexibility of Drupal CMF, it is quite easy to perform. In case you don’t want to do it on your own or have troubles with Google Map Data integration into your Drupal 8 website, let us know and our Drupal maintenance company will assist you.

Oct 18 2018
Oct 18

As a CMS, Drupal has always been basking in compliments. It is the most powerful, the most secure, the most flexible — the list of Drupal strengths could go on. However, all this is not enough to stay current. After all, time moves fast. So what makes a truly cool CMS in 2018, loved by customers, site admins, and developers? Does Drupal fulfil this, and how? It’s time for a little investigation!

What lets Drupal remain a major CMS in 2018?

“The reason Drupal has been successful is because we always made big, forward-looking changes.” This quote is from Drupal founder Dries Buytaert.

The future-oriented changes in Drupal’s latest version, Drupal 8, really left everyone speechless ‑ so much that, when discussing them, you simply do not know where to start.

The particular quote by Dries was part of his article about Drupal’s new architecture, so let’s start with that.

Brand-new architecture and modern concepts

A successful CMS in 2018 must be in line with the most modern programming concepts, have a highly consistent, clean, and reusable code.

To achieve all this and more, Drupal adopts OOP (object-oriented programming), Symphony components, and Twig template engine, as well as polished its APIs, rebuilt its core, and more. Developers applaud, and customers enjoy more efficient processes!

Mobile perfection

According to Statista, the share of mobile phone website traffic jumped from 0.7% in 2009 to 52.2% in 2018. The mobile audience is key already! Modern CMSs cannot ignore that.

Dries Buytaert said that if he built Drupal from scratch again, he would build it for mobile experiences first. “Mobile-first” — that’s the philosophy of Drupal 8.

Responsive core themes, responsive admin interfaces, awesome built-in modules for responsive development are just some points of Drupal 8’s mobile perfection. Your users will enjoy their mobile experiences on any device.

The era of dynamic features and JavaScript

In 2018 and beyond, websites with rich, dynamic, and real-time features are ahead of others. And anywhere you find all these features together, you will also find some representatives of the JavaScript “family.”

React, Vue, Angular, Node, Ember, and other tools are more and more often mentioned in connection with Drupal. It cooperates perfectly with them, and it even planning to adopt of them in the near future. We are likely to see ReactJS as part of the Drupal family!

Beyond the shape of a website

In 2018 and beyond, you can have more than just a website. You can output your content to any imaginable applications, so your users stay with you in their natural environments.

Drupal 8 has an awesome ecosystem of third-party integration modules that provides the data exchange of your Drupal website with any other system. They also magically convert the data to the right format.

High speed with modern caching

For making websites fast enough to fly towards the future, Drupal 8 has excellent caching tools. Users will enjoy the flight!

The novel tool BigPipe uses an especially interesting approach to quick content delivery. The static elements come first, the dynamic ones come second, and the perceived loading speed is awesome.

Usability for editors

Drupal’s reputation as a developer-oriented CMS used to scare customer away a little. It was the other side of the “most powerful CMS” medal.

But now it’s time for editors to enjoy it as well!  Drupal 8’s new level of editor usability impressed even the most sceptical critics.

It is now very easy to apply quick edits right on the page, change block layout, enjoy handy content previews, drag and drop images, shape your toolbar to your liking, embed multimedia from various sources, and so much more.

Truly international

2018 is high time to overcome geographical boundaries! Millions of customers in different countries will be closer to you if your website speaks their language.

Drupal 8 offers a hundred languages, and a very smooth procedure for adding them to websites. Their interface translations are ready for you. And you can also translate every inch of your website — absolutely anything from configuration to content.

High level security

In 2018, cybercriminals have become more ingenious, so CMSs have to be stronger. Drupal is considered the most secure CMS.

This is achieved by continuous security updates that quickly catch any vulnerabilities, the “collective intelligence” of a watchful community, an especially vigilant Security Team, strict standards for submitting contributed code, refined user roles and permissions, great possibilities for data encryption, strong security modules, and more.

Accessibility for everyone

In 2018, it’s a must to provide a smooth experiences for users with visual or other impairments. There are important WCAG 2.0 and ATAG 2.0 accessibility guidelines, and Drupal 8 adheres to them. In particular, the website structure and content are more understandable to screen readers and other assistive technologies.

Semantic HTML5 with WAL-ARIA properties, useful alerts, more convenient forms, compulsory ALT tags that describe images, high contrasts, and other techniques enhance web accessibility.

To recap

That said, 2018 has a CMS that follows all the trends. And, knowing Drupal, we understand it’s just the beginning. Many groundbreaking changes are very close.

Would you like to enjoy all awesome novelties with Drupal? Contact our web development team!

Jul 04 2018
Jul 04

Who is allowed to view, edit, or delete particular information on your website? Details like this are vital for the site’s security and usability. Many website also need special access scenarios. Luckily, we have Drupal — fine-grained user access is a breeze with it! First, one of Drupal’s benefits is that it has built-in user roles and lets you create custom ones, as well as give them granular permissions. Second, there are many useful add-on contributed modules in this area as well. So today, we are reviewing user access modules in the latest Drupal version — Drupal 8.

User access modules in Drupal 8

Permissions by Term

With the help of the Permissions by Term module, you can restrict or allow access to specific website content on the basis of taxonomy terms. These permissions can apply to user roles or to individual users. They work for nodes, views, search, menus etc. The Permissions by Term module had a fresh release in May 2018. It is a lightweight alternative to the Organic Groups and Group modules, which are just getting ready for Drupal 8. We have already dedicated a blog post to the Permissions by Term module that you can check out.

Protected Pages

Here is a fresh module right from the development “oven.” Drupal 8’s version of the Protected Pages module has come out in June 2018. It allows you to protect certain website pages with a password. In Drupal 8 version, you can also protect private files. Interesting features include global password setting, session expiry time, protection bypass permission to free certain users from this procedure, and more.

Node View Permissions

This simple module adds two types of permissions to every content type. Namely, these are “View own content” and “View any content.” The permissions can be found on the website’s Permissions tab. The Node View Permissions module easily combines with any other user access modules.

Vocabulary Permissions Per Role

Thanks to the Vocabulary Permissions Per Role module, you can allow content editors to work with a particular taxonomy vocabulary. They will be able to add new taxonomy terms, edit or reorder them, and more. This is possible without granting them the “administer taxonomy” permission, which would give them too much responsibility.

Menu Admin per Menu

Sometimes, it is necessary to allow certain users to add, edit, or delete particular menus. At the same time, they do not have permissions for other menus. With all its flexibility, Drupal will let you arrange this with the help of the Menu Admin per Menu module. Keep in mind that users without full admin permissions may not, by default, see the menus, so you need to place them within their visibility.

Override Node Options

Here is another user access module with a fresh Drupal 8 release in spring of 2018. The Override Node Options module lets you set permissions for each field on the node form. These permissions refer to “Authoring information” and “Publishing options.” The module also lets you make certain field sets collapsible.

Block Content Permissions

Fine-grained access to block management is offered by the Block Content Permissions module in Drupal 8. It adds the permissions to administer custom block types, view restricted block content, as well as create, edit, and delete the content of specific block types. The permissions are assigned to user roles.

Block Region Permissions

Another great example of flexibility it the Block Region Permissions module. It lets you control access to block management within each region of your website’s theme. For this, the special “administer” permission can be granted to specific user roles. Users with this permission will be able to see the region on the block layout page, update or delete its blocks, and more.

Workflow

In addition to new and exciting workflow management features in Drupal 8 core, there are contributed modules like Workflow. Its Drupal 8 version is also a novelty of 2018. The module lets you create workflow states for various node types and allow certain user roles to change these states (or example, from “Draft” to “Published”). To the change of state, you can attach particular actions — nodes get published, emails are sent, and so on.

Taxonomy Access Control Lite

Here is another module that works via taxonomy. The Taxonomy Access Control Lite module manages access to nodes on the basis of taxonomy terms that are applied to them. It grants permissions based on user roles and can also assign them to particular users in addition to what their roles allow. The module supports the permissions to view, update, and delete the nodes.

Nodeaccess (beta)

With the Nodeaccess module, it will be possible to give certain users the “grant node permissions” permission. These users will have a “grant” tab on their node pages. Form there, they will grant the permissions to view, edit, or delete the node to particular user roles or to individual users. Administrators can decide which roles are available to grant these permissions to, as well as make default access settings for content types.

Custom Permissions (beta)

The Custom Permissions module (formerly known as Site Configuration Permissions) allows for creating and managing additional permissions on the administration page. A permission gets a name and a route (which used to be a path in Drupal 7). The permissions can then be assigned to user roles. In Drupal 8, custom permissions are configuration entities that can easily be exported and imported.

Final thoughts

This is just a brief overview of Drupal 8 user access modules. There are many other very good modules, some of which are in the beta or alpha stage, getting ready for Drupal 8. In any case, the choice is great!

Our Drupal team is always ready to choose the most relevant modules for your website and configure them in optimal ways. If necessary, we will create custom modules for you.

Everything can be done to provide your Drupal 8 site with user access scenarios that you need — just contact Drudesk!

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