Upgrade Your Drupal Skills

We trained 1,000+ Drupal Developers over the last decade.

See Advanced Courses NAH, I know Enough
May 21 2020
May 21

Drupal 9's release is more than just around the corner — the 9th version is already knocking at our doors.

If you plan for Drupal 9 (and you should), the good news is that the upgrade should be easy. However, your website will need to fulfill a few Drupal 9 requirements in order to move to the new version seamlessly. Today, let’s discover how to prepare your website for the Drupal 9 upgrade with the help of the latest tools.

The new Drupal 9 logo symbolizing the fluidity and modularity of Drupal, and the value of the community of creating a greater whole together:

New Drupal 9 logo

When will Drupal 9 be released?

The planned Drupal 9 release date is June 3, 2020. It will come on the same day as D8.9 and will be just a cleaned up version of it with deprecated code removed and third-party dependencies updated. If they are almost identical, why then update a website to the new version? The answer is below.

Why upgrade a website to the new version: the expected Drupal 9 benefits

  • Cool Drupal 9 features coming. Starting from Drupal 9.1, new cool features will be added for better website user-friendliness, accessibility, performance, security, privacy, openness for integration with new devices and channels, and much more.
  • Latest libraries for better performance. The latest libraries and components, including Symfony and Twig, make your website faster, cleaner, safer, and easier to maintain and extend.
  • Beautiful and accessible front-end theme. The new front-end theme Olivero gives websites a professional look, makes them attractive and highly accessible to all audiences according to the standards.
  • Long-term support. D9 will be supported for years ahead, while D8 reaches its end-of-life in November 2021. Moreover, this support will only work for D8.9, while older versions will stop being supported in 2020.
  • Incredibly easy upgrades. Thanks to full backward compatibility in Drupal 9, your Drupal 8 to 9 upgrade should be a snap of a finger. All is needed is to meet a couple of requirements, which we have outlined below.

Getting your site ready for Drupal 9: what is needed

Here are the major Drupal 9 readiness requirements websites should meet in order to be instantly Drupal 9 ready. For implementing them you can always rely on our Drupal support and maintenance team:

  • Using the newest minor version of Drupal 8
  • Keeping your modules and themes up-to-date
  • Making sure your hosting environment is up-to-date
  • Checking and cleaning your site of deprecated code

NB: The deprecated code part needs a special explanation. Deprecated code means functions and APIs that have been marked as deprecated because they have more modern alternatives , they need to be cleaned up to achieve Drupal 9 compatibility.

Many of these pieces of code are really easy to find and replace. This is especially true thanks to useful upgrade preparation tools that help discover and clean up deprecated code, which we are describing next.

How to prepare your site for Drupal 9? Useful tools in review

Here are a few great Drupal 9 checkers that will help you update your website to a newer version. They have earned the best feedback in developers’ circles, including our Drupal development & support team’s devs who use them extensively.

Let’s begin with the Drupal Check and the Drupal Rector. These are developer-oriented tools, but they both have a contributed Drupal module based on them. The modules offer user-friendly admin interfaces, which makes them a better option for non-tech-savvy audiences. Here are these two “couples”:

The Drupal Check command-line tool and the Upgrade Status contributed module based on it

The Drupal Check analyses the D9 upgrade status of your website — what is ready, what is not, and how to fix this. It checks the core, contributed, and custom modules, as well as your system requirements, and gives you the improvement suggestions.

The Drupal Upgrade Status module adds a UI and a bunch of helpful features for an easier Drupal 9 upgrade check. We have shared a blog post on how to prepare for Drupal 9 with the Upgrade Status module.

Upgrade Status contributed module to prepare for Drupal 9

The Drupal-rector tool and the Upgrade Rector contributed module based on it

The Drupal Rector is one of the latest and greatest Drupal 9 upgrade tools. It automatically updates deprecated code for D9. Rector offers automated fix suggestions for contributed and custom modules and makes it easy to generate patches. Its contributed module version with a user interface is fresh and new, released in May 2020.

The deprecated code coverage of Drupal Rector is not complete, so it works best together with the Upgrade Status module. Although their UIs are not yet integrated, they complement each other in the Drupal 9 upgrade preparation.

Upgrade Rector contributed module to prepare for Drupal 9

The Drupal 9 Deprecation Status page based on the data from the PHPStan

Here is another very useful quick Drupal 9 upgrade status checker. On the above mentioned page, you can look up the Drupal 9 compatibility of contributed modules. The page is user-friendly and equipped with charts. You can also filter the results to quickly find the necessary module.

Drupal 9 Deprecation Status page to prepare for Drupal 9

Let us help you prepare your website for the Drupal 9 upgrade

Despite the availability of the user-friendly versions of Drupal 9 upgrade status checking tools as contributed modules, you may need help using them. If you want some help, don't hesitate to entrust the Drupal 9 upgrade preparation of your site to our Drupal maintenance team.

Our developers have experience with both the Drupal Rector and the Drupal Check in Drupal 9 preparations, both for the contributed modules they maintain and for our Drupal team’s customers’ websites.

We strive to make their sites more innovative and efficient, and one of the ways to do this is updating it to new versions. Our support services are very cost-effective, and our experience allows us to resolve tasks quickly. Let’s start with a consultation, which is totally free.

May 12 2020
May 12

When your website users are able to quickly find what they are looking for, this naturally transforms in increased conversions and more. A good UX consultant will always recommend you to add search to a website.

Read on to discover more details about why search is important. If you are using Drupal, this post will be of special interest to you because we will describe how to make the website search functionality really fast and user-friendly with Lunr.js.

Why is search important on a website?

The question “Does my website need a search?” is asked by many customers. On large and complex websites, internal website search is a must-have in order to improve website navigation. The decision to add a search box to a website is especially vital for content-rich websites, e-commerce stores, knowledge bases, and so on.

However, it is also very helpful for small and medium-sized websites. Here we will discuss in what ways search functionality on any website, when it is fast and user-friendly enough, can benefit its owner:

  • If a user finds the needed thing through the search box quickly, they are likely to purchase it.
  • Search results give you new ideas about products or services users are interested in.
  • You get information about the user behavior for your marketing strategies.
  • A search feature on your website provides you with new SEO keywords.
  • Adding search functionality to a website makes your design more customer-centric.
  • A search box increases your session duration and reduces bounce rate.

You can always reach out to our web development team for a free consultation and further creation of a search feature on your website at very affordable prices. We respect your budget and will recommend a fast, easy-to-use, and efficient search solution that will not require extra costs. Meanwhile, let’s discuss how search functionality is created on websites.

How to add a search function to a website built with Drupal?

The answer to the question about how to set up search functionality on a website, depends on the CMS you are using. Each CMS has its own special extensions that provide for the search feature.

In Drupal, to create basic search options for smaller sites, it’s enough to use the built-in Search module. It allows your users to search for full words in Drupal entities (content nodes, users, etc.). You can also specify the indexing settings and choose the ranking factors like:

  • publication time
  • activity in comments
  • keyword relevance

Through the use of extra modules, Drupal websites can also get more complex search features like:

  • faceted search
  • search by alternate spellings
  • similar content suggestions
  • result highlighting
  • search through attachments
  • multisite search
  • and much more

To achieve this, they connect to robust search platforms like Apache Solr or Elasticsearch through contrib modules like Search API Solr Search and Elasticsearch Connector, as well as use modules like Search API, Facets, and many more.

Superfast and easy-to-use internal website search with Lunr.js

In addition to the ones described above, there are other interesting, JavaScript-based options to add search to a website built with Drupal. They offer specifically fast search in Drupal on the client side. One of which we are sharing with you right now — your Drupal can have a search functionality based on Lunr.js.

What is Lunr?

Lunr.js is a full-text search library to use in the browser. It is a small but full-features library that provides great search experiences. Lunr.js offers a simple search interface for finding the content that best matches the search queries. It requires no server-side search services and needs no external dependencies.

You might have noticed its “lunar” brand design. Lunr.js is an alternative to the famous search engine — Solr. “A bit like Solr, but much smaller and not as bright,” runs the official slogan of Lunr.


All JavaScript solutions are known for exceptional speed, and Lunr is no exception. Lunr.js search functionality is especially good for cases when instant search in Drupal is needed.

A sum-up of Lunr.js search features

  • instant search results with suggestions
  • client-side search without overloading Drupal
  • keyword-based search
  • partial and fuzzy search options
  • a scoring system for showing relevant results
  • paging
  • location history
  • lazy-loading search results
  • and more

Modules for the integration between Lunr.js and Drupal

  • Lunr search

The Lunr search module integrates Lunr.js with Drupal. It uses Drupal Views to pre-build a search index and the search result pages. These are delivered to the client using JavaScript. Its features include no-configuration multilingual support, custom field/facet searches, and more.

Lunr search Drupal module
  • Search API Lunr

The Search API Lunr module provides a Search API backend Lunr search with configurable fields. Instead of adding content to a search back-end, JSON files are loaded directly into the browser.

Add a search feature to your website with our experts!

Ready to give your website a new boost through adding a search functionality? Our website support agency experts are ready to do it at affordable prices.

We have both developers who specialize in Drupal and those who master WordPress. JavaScript frameworks are another passion of our team, because we know they can enrich your search box, like any other website elements, with special speed and interactivity.

Contact us and let’s discuss your best price!

May 05 2020
May 05

Businesses are different, and so are their websites. Each of the types of business websites has its own recommended features, specific design tweaks, and more. But there is something that unites them all!

First, regardless of the type, the decision to build a business website in the digital era is extremely beneficial. Next, there is an enterprise-level CMS that is able to meet the needs of all categories of websites. Its name is Drupal.

In this post, discover more about the different types of business websites that can be built with this CMS. If this inspires you for creating a website for your business, never hesitate to hire our Drupal agency that has affordable web development prices.

Why create a business website?

There are plenty of reasons why your business needs a website, but any doubts about it are melting away with every day of the digital boom.

Even the sad events such as the Covid-19 quarantine add their touch to the speed-up of digitalization. They show the whole world how important it is to be represented on the Web where plenty of prospective customers are surfing. The online business trends will continue ever after the sad story is over.

Meanwhile, let’s outline a few ways in which you benefit from building a business website:

  • you expand your reach with no geographical boundaries
  • you shape and promote your brand
  • you attract, engage, and convince your customers
  • you deliver your message via the design and content
  • you make your business known through search engines
  • you get to know your customers through marketing tools
  • you are available 24/7
  • you benefit from online sales or other transactions
  • and so much more

Key types of websites to make with Drupal

First of all, we want to emphasize that it’s possible to create a business website of any type with Drupal, with no exception. Drupal has a multipurpose, well-picked set of core modules, and all others can be added like in a Lego.

There are dozens of thousands of contributed modules to extend a website in every area of its work. Finally, Drupal also offers unlimited opportunities for developers in reaching the goals through custom code.

Build an e-commerce business website on Drupal

If you want to build a business site, choose Drupal and you will never regret it. Unlike purely e-commerce platforms with no content management system, Drupal provides exceptional opportunities for content-driven commerce. Drupal has a powerful e-commerce package called Drupal Commerce that is equipped with the coolest features. Integration with any payment gateways, flexible product management, opportunities for ultra-fast shopping carts are just some of the reasons to create an online store with Drupal.

International multi-domain store “JYSK” created by our team:

International multi-domain store “JYSK” on Drupal

Build a real estate business website on Drupal

Here goes the next type of business website on our list that pairs perfectly with Drupal. It is clear to see that Drupal is a great choice for real estate websites. They can have attractive property object listings, responsive images that look great on any device, smart filtering and sorting options, integration with any real-estate APIs, payment systems, and property management software, granular user roles and permissions, and much more. The popularity is proved by numerous examples of real estate Drupal websites.

Powerful real estate data and analytics platform “Gridics” created by our team:

Powerful real estate data and analytics platform “Gridics”

Build a university website on Drupal

More than 70 percent of top higher-ed websites are built with Drupal. This love has an explanation. Drupal’s benefits for university websites include robust multisite opportunities for multiple departments, different user roles with flexible permissions (for students, staff, teachers, parents, etc.), multilingual features to attract international students, mobile-first approach to engage the young audience, and so on. So you can easily build a university, college, school, or other education establishment site with Drupal.

Maryland Global University website created by our team:

Maryland Global University website on Drupal

Build a fundraising website on Drupal

Next in our collection of different types of business websites are various fundraising and crowdfunding websites that help users raise the money for specific purposes. They can be very interesting in terms of their functionality. The most popular features on them include the integration with payment providers, flexible payment options, dynamic real-time notifications for users, flexible user management, mobile-first design, social media integration, etc. Drupal is the winner again in all these features!

YaWave crowdfunding platform created by our team:

YaWave crowdfunding platform on Drupal

Build a law firm business website on Drupal

If you want to build a website for your law business, Drupal can make a “lucky union” with it. When searching for a law firm services, potential customers extensively use search engines and read online content. Thanks to Drupal’s SEO-friendliness and handy content publishing, you will get a change to attract more users. Any third-party integrations, email marketing, user-friendly contact forms, live chats, and anything else a law firm website needs is easy to build.

LSC (Legal Services Corporation) website on Drupal:

LSC (Legal Services Corporation) website on Drupal

Build a healthcare website on Drupal

Businesses that need special responsibility deserve a reliable CMS to build their websites with. Sites of this type need security, granular user permissions, if needed, two-factor authentication. Interesting features on them may include online appointment calendars, electronic signature, online messaging, various integrations, and more. Drupal can give it all and more to healthcare websites.

The AttendingDR doctors’ portal created by our team:


Build a news and media business website on Drupal

Everyone who wants to build a publishing business website should consider Drupal’s benefits for news and media websites. They include easy content editing, the quick edit feature, Media Library, easy media embedding, multilingual capabilities, API integration, mobile-first design, and much more. With every new Drupal version, the focus on smooth and silky editorial experiences increases.

The FoxNews website on Drupal:

The FoxNews website on Drupal

Build a beauty business website on Drupal

What about the most beautiful industry? Of course, you can build a business website for beauty products on Drupal! Attractive presentation of images with due image optimization, good filtering and sorting, e-commerce integration, smart search, easy content publishing for various beauty tips, videos, and blogs — all this is just a part of its great features.

The Lush beauty product website on Drupal:

The Lush beauty product website on Drupal

Build a website for business with the help of our experts!

As you can see, Drupal can build the best “digital home” for your business in any industry. However, this only works in professional hands. Combined with our affordable prices, it’s your luckiest option to build a business website.

We will recommend to you the most reasonable implementation of your project in terms of the budget. Our experienced developers can deliver a better value in a limited time. The consultation is totally free, so contact us and let’s discuss how our website development team can help your business take wing!

Apr 23 2020
Apr 23

Greetings to all of you who are lucky enough to have a Drupal website! Hopefully, your business is doing well, and your site is helping it reach its goals. We know Drupal websites can do this perfectly — they just may sometimes need improvements, changes, updates, or fixes.

We strive to relieve all website owners of any troubles by taking care of all of the above. That’s why we offer Drupal support services at very affordable prices through our quick, easy-to-apply, and reliable Drupal helpdesk. Learn more about the tech support from WishDesk in this post.

12+ years of working with Drupal

Tech issues and ideas about your website can be different in their complexity, so they need a skilled approach. The WishDesk tech support team knows Drupal from the inside out due to 12+ years on the market of Drupal services. We know how to identify and resolve any tech issues on a case-by-case basis. Here is why many website owners entrust their Drupal enterprise support to us.

What services can you order in our Drupal support desk?

The tech support services include literally anything that keeps your website up-and-running and performing its mission. Among the key ones are:

All kinds of Drupal site audits

Speaking about tech support, we would like to mention website audit services first. Audits are comprehensive, in-depth checks of specific areas of a website’s work by experts to discover its weak points to be further improved. This can be a website performance audit, SEO audit, security audit, code review, and similar projects. In addition, this can be something not directly associated with your website — like an IT infrastructure audit performed by our DevOps team.

All kinds of Drupal site audits

Drupal updates and upgrades

One of our Drupal support benefits is that it can help you keep your website up-to-date. This is vital in terms of security, innovation, performance, usability, and more. Customers often ask to migrate from Drupal 6 to Drupal 8, upgrade from Drupal 7 to Drupal 8, prepare for Drupal 9 through a good cleanup of deprecated code, and more. Minor updates, like from D8.5 to 8.8, as well as Drupal security updates, are also among the tech support services in demand.

Website performance optimization

Website speed matters for business in terms of traffic, visibility in search engines, and conversions. We have devoted a special post to the ways in which a slow website can cost you money. Many website owners see that their website is slow, however, they don’t know the exact reasons. It may lie in the image optimization, caching issues, file aggregation, and much more. This is where the WishDesk tech experts come in — they know plenty of ways to increase website loading speed based on your particular case.

Bug fixes on Drupal websites

When a fresh website arrives from the development team, it is usually well-tested against bugs — at least if you have worked with a decent web development agency (if not, you can order website testing services and bug fixes from our Drupal website support team at any time). But even an initially clean website may become buggy with time due to factors like the absence of core and module updates, unprofessional changes, and many more. Our tech experts will identify and fix any bugs, which also includes bug fixing services for custom modules.

Adding new functionality to a Drupal site

Drupal websites are able to grow and develop together with their businesses, so it’s easy to equip them with new features at any time you ask. It may be something easy like adding a contact form or a menu, or something more challenging like creating a decoupled Drupal Commerce setup on your store or building a mobile app based on your site — the high tech skills of our Drupal help team allow it to do anything. So don’t hide your new ideas — share them with us!

Adding new functionality to a Drupal site

All kinds of Drupal site improvements

Anything you wish on your website can (and should!) be improved. Whenever you want to;

The WishDesk’s Drupal support and maintenance services will come in handy.

Urgent Drupal website help & recovery

Sometimes you need the assistance of our Drupal tech support team to resolve critical issues and recover your site. There are many reasons for this — for example, your website may have been hacked or you could have accidentally done something (like deleted your public_HTML folder), cannot restore your site from the backup, or any one of a number of possible issues. If your site is unavailable to users or your data has been compromised, there is no time to waste. Our Drupal support desk is ready to quickly recover, clean up, and increase your site's protection for the future.

Drupal website hosting support

Trouble-free hosting is vital to provide a good website performance. We offer web hosting support services that include:

  • troubleshooting server problems
  • informing you about the server or its software settings and updates
  • restoring your data from the backup
  • and more

Just rely on our DevOps team, which is equipped with the necessary tools and has extensive experience. By offering Drupal hosting and support, we cover the key tech needs of website owners in post-development time.

Making your Drupal website accessible

A very hot topic today is making websites accessible in line with the latest requirements. The reasons why accessibility is important for business include brand building, protection from lawsuits, audience expansion, SEO gains, etc. Your site’s ALT tags, form labels, menu links, HTML structure and much more needs to be accessible to assistive technologies. Our tech support will easily provide it in accordance with the latest practices and using the Drupal website accessibility features properly. We can also take care of your site’s mobile web accessibility.

Making your Drupal website accessible

Drupal tech support doesn’t have to be expensive!

If you worry about Drupal support costs, we have great news. We are convinced that Drupal tech support services need to be reasonably priced.

Tell us about any issues you may have or ideas for your website and our Drupal website support team will resolve it at the best price/quality ratio. This can be one-time tasks on demand or a long-term Drupal maintenance contract. So just contact us and let’s discuss what suits you best. The application process is very simple and the consultation is free!

Mar 19 2019
Mar 19

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

Drupal 8.7: the alpha version

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

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

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

Expected features of Drupal 8.7

  • End of support for PHP 5.5 and 5.6

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

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

  • End of support for Internet Explorer 9

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

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

  • No more automatic entity updates

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

  • New UI for the Media Library module

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

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

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

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

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

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

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

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

  • Improvements and stabilization for the Layout Builder 

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

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

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

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

Layout Builder in Drupal 8
  • Updates to the Guzzle library

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

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

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

  • Changes to the Stable and Classy themes

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

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

  • Better Symfony 4 and 5 compatibility

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

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

Be ready for a smooth update to Drupal 8.7!

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

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

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

Contact our Drupal team!

Feb 08 2019
Feb 08

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

JSON:API: principle and benefits

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

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

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

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

crud operations

A glimpse at Drupal JSON:API module’s work

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

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

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

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

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

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

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

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

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

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

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

As well as:

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

and more.

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

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

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

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

Let’s build the optimal JSON:API setup

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

Jan 15 2019
Jan 15

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

The idea and mission of Drupal City map

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

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

Drupal City map

Welcome to Drupal City!

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

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

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

The choice of modules for Drupal City

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

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

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

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

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

Created with love for Drupal by WishDesk team.

Jan 04 2019
Jan 04

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

The purpose of the Workspaces module in Drupal 8.6

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

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

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

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

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

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

So how do Workspaces and Workflows differ?

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

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

An example of how the Workspaces module in Drupal 8 works

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

how the Workspaces module in Drupal 8 works

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

 Managing workspaces in Drupal 8

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

Switching between worspaces in Drupal 8

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

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

The Stage workspace in Drupal 8

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

Deploying content from Stage to Live in Drupal 8

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

Drupal 8 workspaces listed

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

Content deployed via Workspaces

Enjoy the new features in Drupal 8.6!

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

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

Dec 10 2018
Dec 10

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

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

PHP 5.6 End of Life

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

What Will Happen When PHP 5.6 End of Life Comes?

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

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

What Should You Do Before PHP 5.6 End of Life?

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

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

How Can WishDesk Help?

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

Nov 27 2018
Nov 27

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

Gatsby.JS: what it is and how it works

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

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

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

Gatsby uses source plugins and GraphQL


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

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

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

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

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

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

Umami Food Magazine uses Gatsby 2Umami Food Magazine uses Gatsby

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

Some specifics of using Drupal 8 and Gatsby.JS

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

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

Enable JSON API module

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

Configure JSON API

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

Configure JSON API

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

Permissions for JSON API

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

npm install --global gatsby-cli

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

Gatsby starters

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

gatsby develop

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

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

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

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

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

gatsby build

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

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

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

Aug 30 2018
Aug 30

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

What is oEmbed technology?

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

The new oEmbed feature in Drupal 8 

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

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

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

How oEmbed works in Drupal 8 

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

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

Drupal 8.5.6:

How oEmbed works in Drupal 8

Drupal 8.6.0:

oEmbed in Drupal 8.6.0

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

oEmbed feature in Drupal 8 oEmbed feature in Drupal 8

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

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

oEmbed feature in Drupal 8

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

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

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

oEmbed in Drupal 8

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

oEmbed in Drupal 8

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

oEmbed in Drupal 8

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

Drupal 8 oEmbed feature

To recap

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

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

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

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

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

Aug 20 2018
Aug 20

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

Drupal and JS: the rise of decoupled architecture

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

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

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

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

Drupal Waterwheel, its mission and work

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

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

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

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

There also are framework-specific tools like the following: 

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

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

Final thoughts

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

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

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

Jul 26 2018
Jul 26

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

Drupal 8’s benefits for news and media websites

  • Easy media handling as a priority for Drupal 8

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

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

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

  • Super convenient content editing

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

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

quick edit on drupal 8

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

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

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

  • Drupal 8’s exceptional multi language features

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

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

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

And, of course, you can translate content.

adding translations

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

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

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

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

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

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

  • High speed and special caching techniques

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

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

  • Mobile responsiveness as a key

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

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

To recap

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

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

Jul 02 2018
Jul 02

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

The Media module in Drupal 8

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

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

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

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

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

The Media module: media types, fields, and sources

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

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

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

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

  • Audio
  • File
  • Image
  • Video

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

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

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

The fast-changing Media and Drupal 8 versions

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

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

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

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

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

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

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

More great news: the oEmbed feature

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

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

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

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

To recap

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

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

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

Jun 11 2018
Jun 11

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

The need for big architectural changes

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

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

Drupal 8 and its new website architecture

Drupal 8 and OOP

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

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

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

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

Drupal 8: “Symfony inside”

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

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

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

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

Among all the inherited Symfony 2 components, the strongest impact on D8 core has probably been made by DependencyInjection, EventDispatcher, and Routing.

Twig template engine in Drupal 8

A true “jewel” of Drupal 8 front-end architecture is the Twig template engine that replaces Drupal 7’s PHPTemplate.

Twig gives you clean templates with consistent code. Thanks to its inheritance in Twig files, duplicate code is avoided. The logic and presentation are properly separated. And, overall, Twig is more secure, easier to work with, and richer in options.

“You don’t need extra modules for features like slideshows or widgets on your page. You can do it in the theme,” said Mark Ferree and Matt Cheney in their webinar about best practice architecture in Drupal 8.

Drupal 8 and Composer

Composer has been called the best thing that has happened to the world of PHP, and Drupal 8 is now using the best.

This command-line tool manages your website dependencies — all the necessary libraries and packages you need. Composer lists all your website’s dependencies in the special composer.json file.

Saying “dependency manager” cannot fully describe Composer’s powers. The tool is helpful on every step of Drupal 8 development.

A good tone, and a very convenient practice in Drupal 8 allows you to use Composer for installing and updating Drupal core, modules, and themes, applying patches, and more. Commands like “composer create-project” and “composer update drupal/core” are just a couple of examples of numerous commands that can do magic in the terminal.

Powerful Drupal 8 core

The heart of Drupal, its core, has become more powerful than it has ever been before. So you no longer need extra modules for many of your needs — a lot of things can be done with D8 core capabilities.

Drupal 8 also introduces lots of new APIs that deal with everything, be it caching, migration, third-party integration or anything else.

The admin dashboard alone is like a flight control console.The Views module is now in the core, and gives you almost unlimited opportunities in structuring and presenting your content in accordance with to all imaginable settings. Intriguing novelties like the Layout Builder module help create layouts for content items and lets anyone feel the architect of their site with no coding as well. And that’s just the beginning.

Final thoughts

Let some awesome story begin right now — upgrade to Drupal 8 or order a new website creation. Our developers love Drupal 8, create modules and patches for it, and teach D8 classes to newbies. They know how to use the benefits of new Drupal 8 website architecture for you. Drop them a line!

About Drupal Sun

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

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

See the blog post at Evolving Web

Evolving Web