Oct 03 2018
Oct 03

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

Gutenberg editor in Drupal 8

Where the Gutenberg name comes from

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

The essence of Gutenberg editor’s work

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

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

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

Bringing Gutenberg editor to Drupal 8

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

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

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

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

How the Gutenberg module in Drupal 8 works

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

Enable Gutenberg editor for content type in Drupal 8

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

Select Gutenberg text format for content type in Drupal 8

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

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

They fall into six main categories:

  • Drupal blocks

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

  • Common blocks

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

  • Formatting

Coding, preformatted, pullquote, table, verse.

  • Layout elements

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

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

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

List of blocks in Drupal 8's Gutenberg editor interface

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

Configuring a block in Drupal 8's Gutenberg editor

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

To recap

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

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

Sep 06 2018
Sep 06

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

Drupal 8.6.0 release: so what’s new?

Reusable media thanks to the Media Library

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

The Media Library module only works with the Media module enabled as well. You can grab the media from the library during your content creation by using the “Browse” button.

For this, the “Media” field needs to be added to a particular content type. As with all other fields, media can be positioned in your content to your liking.

Media Library - Drupal 8-6-0

All media is also available for managing and deleting on the Media subtab of Content. It can be presented as a grid or a as table.

Media Library - Drupal 8-6-0

Remote videos in your content with oEmbed

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

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

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

remote videos - Drupal 8-6-0

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

oEmbed - Drupal 8-6-0

A colorful demo site showing Drupal’s capabilities

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

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

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

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

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

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

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

The Workspaces module for switching between environments

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

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

Workspaces - Drupal 8-6-0

Workspaces - Drupal 8-6-0

Stable migration modules and multilingual migrations

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

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

Drupal 8.5.6:

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

Drupal 8.6.0:

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

More options for the Layout Builder

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

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

Layout Builder - Drupal 8-6-0

Final thoughts

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

Aug 08 2018
Aug 08

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

Drupal 8’s mail sending opportunities

The default mail system in Drupal 8

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

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

Some great contributed Drupal 8 modules for mail sending

The Mail System module

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

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

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

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

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

the Mail System module in Drupal 8

Integration modules with the example of SendGrid

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

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

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

The Views Send module

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

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

The Contact Emails module

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

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

The Simple Mail module

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

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

The Reroute Email module

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

The HTML Mail module

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

To recap

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

Jul 05 2018
Jul 05

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

Drupal 8’s awesome search opportunities and modules

Core search in Drupal 8

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

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

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

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

Search API

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

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

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

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

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

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

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

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

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

Search API Solr Search

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

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

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

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

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

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

Facets

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

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

Elasticsearch Connector

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

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

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

To recap

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

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

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

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

Jun 27 2018
Jun 27

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

The creators of the future

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

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

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

The mysterious bearded man

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

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

DrupalCamp Kyiv and its air

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

Great speeches: the 3 dimensions of Drupal

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

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

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

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

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

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

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

InternetDevels speaker at DrupalCamp Kyiv 2018

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

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

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

Certificates of appreciation

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

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

Prizes: from toy RC cars to full-sized bikes

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

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

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

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

Afterparty: time to have fun!

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

Code sprint: time to code!

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

Wrap-up

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

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

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

Let’s create the future together!

May 02 2018
May 02

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

Web services: benefits and principles of work

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

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

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

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

A glimpse at headless Drupal

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

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

Web services in Drupal 8

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

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

Core Drupal 8 modules for web services

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

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

Some contributed Drupal 8 modules for web services

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

REST UI

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

GraphQL

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

JSON API

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

Services

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

RELAXed Web Services

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

Subrequests

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

Final thoughts

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

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

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

Apr 18 2018
Apr 18

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

How the Masquerade module works

The essence of Drupal Masquerade

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

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

Who can masquerade as who: user permissions

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

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

How to masquerade as a user

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

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

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

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

An example of Masquerade module’s use

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

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

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

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

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

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

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

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

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

Final thoughts

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

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

Mar 29 2018
Mar 29

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

Drupal 8 social media integration modules

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

Some general Drupal 8 social media integration modules

Easy Social

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

AddToAny Share Buttons

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

Social media share

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

Social Media Links Block and Field

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

Social Timeline

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

Social Counters

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

Shortcode Social

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

OneAll Social Login

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

Sharethis block

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

Social SimpleSharer

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

Some network-specific Drupal 8 social media integration modules

Facebook Instant Articles

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

Facebook Page Plugin

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

Facebook Album

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

Twitter_Feed

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

Pinterest Hover button

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

YoutubeChannel

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

Video Embed Instagram

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

Wrap-up

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

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

Mar 21 2018
Mar 21

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

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

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

Some nice free Bootstrap-based Drupal 8 themes

Startup Growth Lite

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

Bootstrap Mint

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

BusinessGroup Zymphonies Theme

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

Aegan

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

Paxton

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

Bootstrap Business

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

BonVoyage

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

Showcase Lite

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

Magazine Lite

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

Ice Magic

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

Wrap-up

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

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

Mar 07 2018
Mar 07

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

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

Drupal 8.5.0 release: how we have arrived to it

The road to Drupal 8.5.0: step 1 — Drupal 8.1.0

The BigPipe module

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

Modules for migration

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

CKEditor improvements

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

Easier help tours

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

Better Composer support

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

The road to Drupal 8.5.0: step 2 — Drupal 8.2.0

The Place Block module

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

The Settings Tray module

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

The Content Moderation module

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

The Datetime Range module

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

Content revisions enabled

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

The road to Drupal 8.5.0: step 3 — Drupal 8.3.0

New CKEditor 4.6

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

The Workflows module

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

Field Layout and Layout Discovery

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

BigPipe stable & improved

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

More support for web services

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

The road to Drupal 8.5.0: step 4 — Drupal 8.4.0

Multiple modules reach stability

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

The Media API

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

The Inline Form Errors module

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

Even more support for web services

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

New Symfony, jQuery, Drush, and more

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

Drupal 8.5.0 and its new great features

The Layout Builder module

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

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

The Media module stable and improved

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

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

The Settings Tray module stable

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

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

The Content Moderation module stable

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

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

The Migrate API stable

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

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

And more!

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

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

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

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

And now please enjoy the infographic!

Feb 07 2018
Feb 07

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

Examples of great business & finance websites built with Drupal

Mint

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

NCR

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

Voya Financial

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

Societe Generale

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

Webster Bank

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

The Carlyle Group

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

Principal

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

Swift

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

Final thoughts

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

Dec 06 2017
Dec 06

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

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

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

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

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

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

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

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

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

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

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

Drupal to WordPress migrations from our experience

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

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

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

Final thoughts

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

Dec 01 2017
Dec 01

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

Product customization in Drupal Commerce 2.0

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

Unique product variations

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

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

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

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

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

The Commerce Fancy Attributes built-in module

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

The Commerce Customizable Products built-in module

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

The automatic SKU generation option

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

Final thoughts

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

Nov 28 2017
Nov 28

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

The multilingual sensation of Drupal 8

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

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

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

Translating your interface, configuration, and content

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

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

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

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

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

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

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

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

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

Wrap-up

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

Nov 21 2017
Nov 21

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

Drupal 8 and third-party integration

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

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

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

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

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

Subrequests module and its performance-improving mission

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

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

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

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

Installing the Subrequests Drupal 8 module

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

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

composer require drupal/subrequests:^2.0

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

Wrap-up

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

Nov 17 2017
Nov 17

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

Nice marketing & analytics Drupal modules for e-commerce sites

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

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

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

Ubercart Early Bird Discount

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

Commerce Wishlist

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

Ubercart Recommender

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

Commerce Recommender

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

Commerce Google Analytics

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

Who Bought What|Ubercart

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

Commerce MailChimp

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

Commerce Campaign Monitor

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

Mailjet

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

MailUp Newsletter Module

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

Commerce Reporting

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

Commerce Conversion Tracking

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

Wrap-up

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

Nov 03 2017
Nov 03

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

Responsive images: impeccable in Drupal 8

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

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

Drupal 8’s native tools to configure responsive images

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

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

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

A glimpse at responsive image setup process in Drupal 8

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

Retina: when “bigger” means “bigger”!

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

Wrap-up

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

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

Oct 27 2017
Oct 27

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

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

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

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

Some special ways to use Views on your Drupal 8 website

Views and REST export

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

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

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

Using Views with a third-party data store

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

Slideshows and carousels

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

Contextual filtering

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

Adding a relationship to Views

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

Embedding Views

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

Final thoughts

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

Oct 20 2017
Oct 20

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

The Superfish Drupal module and its special menus

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

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

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

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

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

Creating a Drupal 8 menu with the Superfish module

Get the dependencies

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

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

Get the Superfish module

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

Get your menu

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

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

Make your Superfish settings

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

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

Final thoughts

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

Oct 13 2017
Oct 13

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

The essence of Drupal multisite functionality

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

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

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

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

At least some of Drupal multisite benefits

No extra development costs

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

Quick launch

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

Brand consistency

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

Less efforts for website management

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

This includes:

  • website upgrades 
  • sharing content
  • making changes

and much more.

A couple of useful multisite tools and tips

Drush

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

Sites.php

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

Contributed modules

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

Wrap-up

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

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

Oct 05 2017
Oct 05

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

The benefits of the newly released Drupal 8.4.0

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

Easy updates and Drupal 8.4’s friendliness to predecessors

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

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

New modules and Drupal 8.4’s love for experiments

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

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

Inline Form Errors

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

Media

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

Datetime Range

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

Layout Discovery

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

Workflows

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

These modules are on the point of becoming stable:

Content Moderation

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

Settings Tray

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

Place Blocks

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

Field Layout

The Field Layout module offers special opportunities in rearranging fields.

Migrate, Migrate Drupal, and Migrate Drupal UI

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

Drupal 8.4’s support for everything new

New Symfony, jQuery, and jQuery UI

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

Updating Drush

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

No old browsers

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

Wrap-up

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

Sep 26 2017
Sep 26

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

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

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

Some Drupal 8 modules for e-commerce

Commerce Square Connect

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

Commerce Stripe

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

Commerce Paytrail

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

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

Ubercart QuickPay

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

Tawk.to Live Chat

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

VAT Number

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

Commerce Ajax Add to Cart

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

Commerce Shipping

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

Ubercart Volume Pricing

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

Easy CurrencyCON

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

Final thoughts

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

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

Sep 20 2017
Sep 20

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

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

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

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

Easier installation: Ludwig as an alternative to Composer

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

Over 30 payment gateways and handy integration

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

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

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

Cool checkouts

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

“Smart” taxes

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

Multiple stores

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

Products and their variations

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

And more

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

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

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

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

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

Sep 15 2017
Sep 15

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

Field formatters in Drupal 8 and what they do

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

A few tips on creating custom field formatters in Drupal 8

Creating your module

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

MyModule/src/Plugin/Field/FieldFormatter

Creating your field formatter class file

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

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

The namespace should look like this:

Drupal\MyModule\Plugin\Field\FieldFormatter

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

Making an annotation

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

Using methods

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

Walking deeper into the fields

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

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

Sep 05 2017
Sep 05

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

What’s new with Drupal in August 2017

New releases of some Drupal modules

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

Drupal security fixes for your good night’s sleep

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

The long-expected Drupal 8.4: alpha becomes beta

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

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

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

Drupal should know its heroes

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

The wrap-up of the wrap-up

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

Aug 15 2017
Aug 15

Creating unique content is a direct way both to Google’s and your customers’ hearts, and Drupal 8 is making the road much smoother and the journey more enjoyable! Creating interactive HTML5 content and content modelling in Drupal 8 are just a couple of examples we’ve already described. So today, let’s take a glimpse at the Entity Browser, one of the modules from Drupal 8’s collection of media management tools.

Well, saying “one” would probably mean diminishing its capabilities, because the Entity Browser has a whole ecosystem around it and serves as the base for creating many cool browsers. It’s like a large box of treasures, and we will now unbox some of them.

How Drupal 8’s Entity Browser makes content editors happy

Great times have come for content editors (and not only for them), since the appearance of Entity Browser, an incredibly flexible tool for handling (browsing, selecting, creating etc.) entities. With it, it’s possible to drag-and-drop multiple images at once, reorder or remove them, reuse them for other articles, upload more images in the process, easily search for related content by various criteria, create and add quotes without opening a new tab, create another piece of content without leaving the original form, embed entities into WYSIWYG, and much more.

Plugins for the Entity Browser

Entity Browser relies on Drupal 8 core plugins to do its work. The heart of Entity Browser is the Widget plugin, which is responsible for selecting and creating entities. The Widget Selector plugin deals with the options for switching between widgets, while the Selection Display plugin works with the ways the selected entities are displayed. Finally, the Display plugin determines how the Entity Browser will look.

Configuring Drupal 8’s Entity Browser

The Entity Browser’s flexibility lets it be literally whatever you want it to be and provide the perfect entity handling workflow for you. With your Entity Browser module installed successfully (as well as the Ctoools module just for this process), go to Configuration — Content authoring — Entity browsers and click the “Add Entity Browser” button. You can give it a name and then shape it to your liking.

1. On the same page, select the general features of the Entity Browser by configuring the necessary plugins.

  • The display type of your entity browser can be: a standalone form, an iFrame container, or a modal window.
  • The available widgets can be presented as: a dropdown menu, a single widget or horizontal tabs.
  • The options to show the entity selection area to the editors are: a preconfigured view, no selection display, or multi-step selection display.

2-3-4. Configure the details of your display type, widget selector type, and entity selection area.

The next three steps involve a more detailed configuration (sizes, styles, auto-opening etc.) of the plugins you have selected above. This will not take long — some of them even require no further configuration.

5. Add the widgets to your browser.

Equip your content editors with as many powers as possible. The available widget plugins are: “View”, “Upload,” “Entity form,” and “Upload images.”

Congrats — your Entity browser is created!

Ready browsers to choose from

You can also pick one of the very nice pre-configured browsers created on the basis of the Entity Browser. They are contributed Drupal modules you also need to download and install: Media Entity Browser, File Entity Browser, Content Browser, Entity Browser Enhance(d|r), and Slick Browser.

Thunder and Lighting

There also are full Drupal distributions using the Entity Browser. They are called Thunder and Lightning and are meant to provide an improved editing experiences.

Entity Browser and Inline Entity Form

The Entity Browser’s incredible “friendliness” lets it interact well with a great number of other tools. Among them, we would like to mention one we already discussed — the Inline Entity Form module in Drupal 8.

Entity Browser and Inline Entity Form are used together for creating new entities and browsing existing ones.

This is just a glimpse at the Entity Browser module, but its capabilities are endless. Moreover, the future looks very bright for the concept of media handling due to Drupal 8’s media initiative. To get help with configuring the Entity Browser module, building custom features, or migrating to Drupal 8 with all its innovations, you are welcome to contact our developers.

Aug 11 2017
Aug 11

Combining different tools to produce fantastic reactions is the true “chemistry” of web development. The special trend of the day is using Drupal with JavaScript tools. We’ve had a chance to look at the benefits of using Drupal with Angular and Drupal with Node. Now, it’s time to describe another chemical reaction — between Drupal and ReactJS, which results in the appearance of websites and apps with cosmic speed and interactivity. Indeed, these qualities are in the DNA of the whole JavaScript family. So what makes one of its youngest members, ReactJS, stand out? Let’s take a closer look at it and find it out.

ReactJS and at least some of its benefits

“You can’t scare me — I handle Facebook’s interface”

Such a quote could easily belong to ReactJS. This JavaScript library for creating user interfaces was built by Facebook engineers. At first it was only used internally and then was released as an open-source project. Considering the scope of Facebook, there’s hardly any project ReactJS can’t cope with when it comes to building large-scale dynamic applications with real-time data change. Nor is it used by Facebook alone — check out lots of other projects using React.

Virtual DOM

One of the awesome features of React is its effective approach to DOM updates. When a page is loaded, the browser generates its DOM (Document Object Model). However, this is traditionally a bit of a weak, or, let’s say, slow point of JavaScript. To significantly speed things up, React JS uses a lightweight, virtual DOM. React discovers which virtual DOM objects have changed and updates the necessary parts of the real DOM, not the whole DOM tree. This provides a great performance boost, as well as makes a developer’s life easier.

Component structure

In ReactJS, it is easy to create self-contained, independent components and put them together in large-scale applications. Parameters are passed to each of the components. One-way data flow Data flows through your application in a single direction after some change. This makes the data flow more predictable, gives you a better control over it, and lets you easily track changes.

Easy to work with

React presents a rather simple programming approach with no complicated concepts. It easily integrates with absolutely any JavaScript library. Born in 2013, React has developed a large ecosystem around itself. Its active community keeps creating new libraries, tutorials, and other helpful stuff.

Drupal and ReactJS

Drupal is great for absolutely any type of website — social, educational, ecommerce, healthcare and so on. It can handle any amount of users and pages, as well as any website scale and complexity. With the special front-end miracles of ReactJS added to this, this can produce absolutely fantastic results.

The combination of Drupal and ReactJS is most beneficial for websites with plenty of dynamic page elements and a giant amount of constantly-changing data that requires smart, real-time updates. Other examples are when you need to provide an automated data exchange or access to data from mobile apps. However any type of website or app will benefit from an ultra-quick and magnetically engaging interface.

The most popular way of combining Drupal and React is using React as a lightweight front-end for the so-called decoupled (or headless Drupal) as a CMF and data source. The one-way data flow of React JS helps shape the web page in accordance with the data sent from Drupal's RESTful API.

Drupal 8 has special opportunities for React integration, thanks to its built-in RESTful services, but using JSON API will make your developer’s life even easier. Another hot trend is combining Drupal 8 with React by means of GraphQL. Drupal 7 has to rely on contributed modules to work with React, but the integration is possible.

If you are interested in using Drupal and ReactJS for your project, contact our developers who love modern technologies, especially in their best combinations!

Aug 04 2017
Aug 04

Hey, everyone! Summer moves on — together with its lovely sunsets, yummy fruit and berries and so much more. This just inspires us to grab a basket and gather some fresh, ripe, and tasty... Drupal news for you! ;) You’ll see that July 2017 has been really very fruitful for Drupal, because the community has been creating great stuff with a special, summer inspiration. So discover the new releases of Drupal modules, take a glimpse at Drupal 8.4 as Drupal 8.3’s successor, and find some other nice surprises. Enjoy your July’s Drupal basket!

What’s been new with Drupal in July 2017

New releases of some Drupal modules

Drupalers have been working like busy bees, so the second summer month of 2017 has given us dozens of new module releases to fit every taste, or, should we say, every website’s needs. These are just a handful of examples:

  • This summer, honey is getting sweeter and spam prevention stronger thanks to the updates in the 8.x-1.27 version of the Honeypot module.
  • Do not miss Commerce 8.x-2.0-Rc1 with lots of enhancements in payment gateways, checkout, taxes and more.
  • PayPal integration has become easier due to PaymentsPro improvements in the Commerce Paypal’s 8.x-1.0-beta1 release.
  • The AdvAgg 8.x-3.0 is now even better at optimizing and compressing JS and CSS, as well as cooperating with other modules.
  • The Social Login module, allowing users to sign up and sign in from social networks, has become stronger now that a PHP syntax error is fixed in 8.x-1.6.
  • A couple of new caching capabilities have come to the CDN 8.x-3.1 bringing it in line with the standards.
  • Creating search functionality has become handier both for Drupal 7 and Drupal 8 websites, since the Search API has two new releases with updates and fixes: 7.x-1.22 and 8.x-1.3.
  • Generating a GraphQL schema for Drupal 8 is a snap with the new and fresh GraphQL 8.x-3.0-Alpha1.
  • You’ll enjoy working with JSON thanks to a bunch of improvements in JSON API 8.x-1.1.

Docker for Drupal 2.3.0

Another great news for those who are using Docker in Drupal development. The new version of the popular stack, Docker for Drupal 2.3.0, is out in July 2017 with lots new Docker images, a handy UI, security updates and bug fixes.

Sessions selected for DrupalCon Vienna

It’s always hard to select the best from the best. But the organizers of DrupalCon Vienna did it! Discover the selected sessions for this international meetup that will gather drupalers from across the globe on September 26-29, 2017.

Drupal 8.4.0 is coming closer

Everyone expects Drupal 8.4 with big impatience. Though the release itself is scheduled for October, “the fruit” is almost “ripe” — this summer’s giving us the alpha and beta versions of Drupal 8.4.

The alpha-1 version of Drupal 8.4 has just come out. And, by the end of summer, we are most likely to see Drupal 8.4 beta.

So what will be improved in Drupal 8.4.0? A handful of awesome modules should move from alpha to beta or reach stability. These are Layout Discovery, Inline Form Errors, DateTime Range, Workflow, Content Moderation, Migrate / Migrate UI, Settings Tray, and Place Block. Great improvements also await media handling in Drupal. And it’s just the beginning!

A little about victories

One of the best Premier League clubs have stricken the best goal in their career — London’s Arsenal have launched their new website in Drupal 8. It features news, history, ticket info, live results, online store and much more. New victories await both Drupal and Arsenal, and we are glad to see the collection of awesome sports websites built with Drupal got another representative with a true winning spirit.

Wrap-up

We have told you briefly what’s new with Drupal in July 2017. Hopefully, this has been appetizing inspiring enough for you to get new cool features or an entirely new fabulous site. And our expert Drupal team will help you make it all come true!

Aug 01 2017
Aug 01

The smart drop and the clever whale — there is no doubt that Drupal and Docker are highly compatible! It seems like their element is water, however, their true “element” is efficiency. Flexibility, security, and open-source standards are also worth mentioning. So after sharing a collection of useful links for working with Docker, we would like to take a closer look at this great “couple” and see why it’s worth using Docker to boost your Drupal development.

Docker: where containerization starts

The best shipping service should be able pack your things well, so they do not take up much space and are properly separated from each other. It should then take them quickly and securely to any place, and you should know they will arrive in the same condition you sent them in.

Docker offers more than that. This lightweight, secure, open-source containerization platform is meant for creating, shipping and running your app or website. You can easily pack it – together with all its dependencies, settings and everything else it needs for working – into a Docker image, and then run it anywhere regardless of the environment. When you start your image, you get a container running. Containers, or instances of images, can be multiple for one image.

Docker in Drupal development: use areas and benefits

Docker makes the lives of Drupal developers and system administrators much easier by simplifying and streamlining many processes which include, but are not limited to:

● setting up a new environment

● deploying your new Drupal website’s copy

● continuous integration

● migrating your website to another server

● website upgrades from one Drupal version to another

● building, scaling, testing, and debugging your Drupal website

● configuring an infrastructure

Why exactly is Docker so helpful to Drupal developers and admins in all that and more? Let’s see.

● Consistency is all you need. Docker lets you improve collaboration between developers who work in different environments. It is easy to switch from a project using one PHP version to a project using a different version. Docker also provides good isolation from the host OS.

● Containers are highly configurable, fast and easy to create, configure, scale vertically and horizontally, discard or rebuild.

● Containers do not take up much space on disk — they are very lightweight. There can be many of them on the same host machine.

● The isolation of containers from each other lets the whole system stay uncompromised in case something goes wrong with one container. Usually, one container is responsible for one process or service. Container isolation is not complete (as is the case with classic virtual machines), but it is still beneficial for speed.

● There are plenty of helpful Docker images for Drupal on Docker hub that you can use right away. For example, our company’s repos offer lots of Docker images and containers (1 and 2). You could also check out the popular Docker4Drupal stack by Wodby that will help you speed up your local development on Linux, Mac OS X and Windows. It offers ready-made containers with Nginx, Apache, MariaDB, Drush, Solr, PHP and much more. And a fresh Docker4Drupal 2.3.0 version has been released a week ago with nice updates.

This is a just a drop in the ocean of what Docker can do for your Drupal development. We wish you luck in diving deeper and deeper into its endless capabilities, discover ready-made stacks, or be inspired to create your own. And our team is always ready to help you use Docker with maximum efficiency!

Jul 25 2017
Jul 25

Migration to Drupal 8 will save your time, effort and money in the future. It’s a fact! Discover
the great news about easy upgrades and backwards compatibility.

Technologies rush to the future, and website-building platforms run to keep up with them. Drupal is no exception — indeed, it’s a great example of it. Drupal 8 has had a great leap ahead thanks to its mobile-first nature, multi-language, accessibility, and editing enhancements, modern PHP, handy configuration management and so much more!

That’s Drupal’s essence. Each major release is a real gift box of brand-new features and better usability to make customers and developers happy. However, in this ultimate happiness, there always used to be a little spot of darkness.

A little shadow that used to hang over Drupal new releases

New versions seemed to burn the bridges between themselves and the old ones. It was like starting with a clean slate. Backwards compatibility was never a priority. Moreover, providing it could hamper website performance. So backwards compatibility was sacrificed in the name of progress.

As a result of these abysses between versions, new versions traditionally presented a challenge to developers across the globe who had to learn the fresh release from top to bottom.

Outdated releases used to go “overboard,” just like happened to Drupal 6, which became officially unsupported and stopped getting security or other updates. This left Drupal 6 website owners with the options of upgrade or support.

Depending on the amount of custom functionality, major website upgrades (from Drupal 6 to Drupal 7, from Drupal 7 to Drupal 8, etc.) could often be lengthy and costly. Yes, it’s worth it! But it’s also a little bothersome.

What if it were possible to get smoother upgrades? This was the dream of Drupal’s founder Dries Buytaert and his team, which they have now successfully brought to life.

Easy upgrades and backwards compatibility starting with Drupal 8

Now the shadows are removed and the abysses bridged! Congrats to developers and site owners, because Drupal is finally becoming backwards compatible.

This means that each new update will be compatible with previous releases. Moreover, when Drupal 9 comes out, it is going to be backwards compatible with Drupal 8.

This is a sure path to fast and easy upgrades, both between minor versions and between major versions — provided you are using the latest APIs and avoid the deprecated code. Dries Buytaert made an announcement about easy upgrades that raised a lot of excitement. Let’s look at the details.

The continuous innovation model

Drupal 8 is the first version to adopt the continuous innovation model. You no longer need to wait for years to see a brand-new release. The process will be more gradual. Minor versions will come regularly, about twice a year, and offer lots of lucrative functional niceties, and, as an awesome bonus, a smoother upgrade path from one to the next.

Deprecated code

New functionality and backwards compatible changes will be regularly introduced to Drupal 8. In this process, more and more code will be marked as deprecated. When there is too much deprecated code, Drupal 9 will be released without the deprecated systems. According to Dries, the modules using the freshest Drupal 8 APIs and avoid deprecated code will be fully functional in Drupal 9.

Drupal 9 and beyond

In other words, Drupal 9 will be almost the same as the latest minor release of Drupal 8, but without the deprecated code. Almost the same? Yes, but still different in one very important way. Moving to Drupal 9 will remain a very lucrative decision, because, when it comes out, Drupal 8 will stop getting nitty-gritty features, and the ninth version will become the new focus of the Drupal community’s attention.

And so it goes again and again, with Drupal 10, 11 and more! The progress is never-ending, which is awesome. And this progress is now more available than it has ever been.

A beneficial decision

So there is just one step separating Drupal websites owners from being forever free to make fast and easy upgrades with no hassle, with a considerable saving of time, money and effort. This step is migrating to Drupal 8 now, if you are on an older version.

Come to the bright side, and move to Drupal 8 with us ;) We have expert Drupal 8 developers on the team. Migrate once and enjoy the benefits of backwards compatibility forever!

Jun 06 2017
Jun 06

There is a real “elixir of vivacity” that can help your Drupal website or app come alive in a way it never has. Sound lucrative? You’ll discover the rest from today’s story. After a glimpse at combining Drupal with AngularJS, we are now moving on to another member of the JavaScript family that is rapidly gaining popularity — Node.js. Let’s discover the reasons for its recognition, the benefits of using Node.js with Drupal, and the tool that helps you bring them together.

Node.js: what’s the secret?

Node.js, the famous cross-platform JavaScript runtime, is the dream (and the reality) of more and more web developers, especially when it comes to building real-time and multi-user functionality, as well as web servers. They choose Node.js due to a number of reasons, some of which are as follows.

  • JavaScript everywhere. With Node.js, you can use JavaScript not just for client-side scripting, but also for server-side scripting. This bridges the gap between the front-end and back-end, synchronizes the data, and enhances the productivity. 
  • V8 engine. Node.js uses Google’s V8 JavaScript engine, which lets it gather amazing speed. 
  • Event-driven, non-blocking I/O model. The code execution is not blocked until another process is completed, which significantly improves performance. The event loop detects new events to promptly trigger the callback function. 
  • Open-source. Node.js has a handy Node Package Manager (NPM) with the repository full of modules and ready solutions created by the big developers’ community.

The tandem of Node.js and Drupal

Node.js can share with Drupal some of its real-time functionality magic, as well as awesome speed. This can be added to a solid foundation of a powerful, modern and advanced website or app that Drupal, as a content management platform, can provide. Together, these two can rock more than ever!

Real-time features

With Node.js, your Drupal pages can become especially dynamic, rich and interactive. The information is updated promptly and in real time, without reloading the page. Many users can be involved in shared processes. 

However, it’s much more than user entertainment, engagement and convenience — it’s also essential for monitoring various serious processes, responding to customers’ requests, and so on. 

Just a couple of examples:

  • Dashboards 
  • Games 
  • Chats 
  • Polls 
  • Warning systems 
  • Auction bidding 
  • Push notifications

Third-party APIs working faster

Here is another benefit of using Node.js with Drupal. Third-party API integration is very common with Drupal, but Node.js can make it work much faster. Due to its event-driven, non-blocking nature, there is no need to wait for the API’s response.

Integrating Drupal and Node.js via the special module

It shouldn’t come as a surprise that Drupal has a module for Node.js integration. It’s called the Node.js module and is ready for both Drupal 7 and Drupal 8.

To make the integration, you should install Node.js and the dependencies, make settings in the nodejs.config.js file (for which the module provides a sample), start your server, and test the result.

For every idea there is a tool or a combination of tools that can give additional capacities. Tell our developers about your idea, and they’ll combine Drupal with Node.js or other tools in the way that works best for you.

May 26 2017
May 26

As you may remember from the fairy-tales, knowing the secret words helps you to move even the mountains and open treasure caves. The words “Open, Sesame” from "Ali Baba and the Forty Thieves” work somewhat similarly to modern website passwords. However, making passwords work perfectly is a complex art, and it is one of the touchstones of Drupal website security. Thankfully, Drupal equips you with lots of power for this, thanks both to its out-of-the box features and lots of useful modules.

Passwords: what should they be like?

At first glance, it might seem that setting complicated requirements for users’ passwords is necessary for security. However, this may sometimes work against you.

For example, forcing users to have a strict composition of letters and numbers in passwords may lead to passwords that are hard to remember and have to be saved somewhere. And asking people to change passwords too often may eventually annoy them so they end up creating weaker passwords.

In addition, you should never forget that, first of all, you need to convince people to register, which people are reluctant to do.

So what you need is a good mix of strictness and usability. This proportion largely depends on what kind of “treasures” are kept in a particular “cave” — for example, a website which involves payment processes deserves a more complicated entry control. In addition, there also are other means to enhance password security that do not require anything from users.

Let’s see how Drupal modules let you take into account all these and many more twists and turns in password policy, so you can choose what’s right for your website. The following is a blend of Drupal 7 and Drupal 8 modules, some of which are available for both versions, and some of which are in active development.

Some useful Drupal modules for working with passwords

Drupal password policy

This module lets you impose a set of requirements on passwords created by users. They include: length, digits, case, punctuation and more. You can set what kind of characters, and in what amount, have to be used in a password. The module also offers a password expiration feature. In the Drupal 7 version, there is a basic blacklist functionality, where you can add the most common words from the dictionary to prevent their use and avoid weak passwords. In Drupal 8, this feature is coming soon.

Security Questions

If your website requires it, add an additional lock to the doors by implementing security questions during the login and password reset procedures. This module will help you do it in a flexible way, using a number of configurable options.

Two-factor Authentication (TFA)

What if you need more than one lock? Here is a double lock. The TFA module adds an additional step to the authentication procedure. This may include one-time passwords, codes sent by SMS, or pre-generated codes, as well as integration with third-party services (Authy, Duo etc.). The module encrypts sensitive data with the use of the PHP mcrypt library.

Password Strength Disabler

Do you not need any special locks? If you find it justifiably unnecessary for your website (and if you have thought twice), you can disable the password strength check and let your users feel more at ease when creating passwords. In this case, usability takes the lead.

OneAll Social Login

People appreciate the convenience of using an all-in-one login. Here is a module that lets users sign up and sign in to your site using their accounts on social networks. The list includes Facebook, LinkedIn, Twitter, Amazon, Disqus, Pinterest, Instagram, Foursquare and more — 30+ in total.

Email Verify

If a user makes a typo while providing an email address in the signup form it can cause problems, because are not going to get confirmation or other emails. Luckily, there is a module that checks whether the address really exists, first on the domain level, and then on the actual username level.

Secure Login

Be protected by the power of HTTPS. If your website is available via both HTTP and HTTPS, the Secure Login module makes sure your user logination forms (or other pages) are transmitted via HTTPS, so their passwords are hidden from prying eyes.

Flood control

You can limit the number of login attempts using a convenient admin interface provided by the Flood control module.

Fail2ban Firewall Integration

Enhance the login attempt limitation by blocking out the sources of suspicious requests. This module, which provides an automated firewall tool, is ready to help you.

Username Enumeration Prevention

When hackers know the usernames of website’s users, they can attempt brute-force attacks. The Username Enumeration Prevention module makes it more difficult for them to find these usernames.

These are just some of the great modules dealing with passwords in Drupal. Good luck in using them in the best way for your website!

And we can enhance your luck, or transform it into a 100% positive outcome — all you need is to contact our cool drupalers who are ready to help in any website optimization issue.

May 16 2017
May 16

With Drupal, there is no need to reinvent the wheel — the wheels are already in full motion! The vigorous community has created tons of ready made elements that make development easier, quicker and cheaper. What’s not covered by them can be custom made to fulfill whatever your heart desires. A great example are the contributed modules that Drupal has for all purposes, with custom ones being built for special features (see ready-made vs. custom-made modules). Today, we’ll consider one more example — Drupal distributions, and particularly OpenFed. So let’s set the wheels turning and look at some more details!

Drupal distributions and their mission

Distributions are pre-configured Drupal versions that include the core, specific modules, themes, libraries, etc. They can serve as awesome starter kits for site builders and developers. Distributions help them quickly set up even complex websites in specific fields (business, non-profit, government, corporate, blogging, social, and more), since many of them are specifically tailored to these uses. They can also be very suitable for website migrations from older versions.

After installing a distribution, you can continue configuration and customization and reduce the overall development time and costs.

In addition, these “kits” allow you to compare various options and present demos to customers. When it comes to newbie drupalers, they are also a great help to let people practice site building.

A great example: OpenFed distribution

Examples are worth a thousand words, so we will now focus our attention on OpenFed, a Belgium-made multi-purpose and multilingual distribution. It is very well suited for sites for public administrations, campaigns, events, and more. In Belgium, its motherland, OpenFed has become a kind of a standard for government websites.

Let’s take a look at the contents of OpenFed. It includes:

● A set of content types for meetings, job postings, photo galleries, etc.

● CKEditor

● Support for cool search tools

● A set of layout customization modules

● A set of security modules

OpenFed for Drupal 7 and Drupal 8

OpenFed is available for both Drupal 7 and Drupal 8. If you are using Drupal 7, you need to be equipped with PHP 5.3.5 or higher, set your PHP memory limit to 192-320M, and never forget to enable HTTPS on your web server. As far as Drupal 8 is concerned, there is a major recommendation to use Composer for installing OpenFed as well as maintaining your project.

OpenFed: development or migration

Our experience shows that building new websites and migrating old ones on the basis of OpenFed can be a very neat, convenient, time and cost-efficient decision, and strongly appreciated by customers.

Distribution or not?

In any case, the choice of whether to rely on a Drupal distribution like OpenFed or another distribution, as opposed to working with a clean slate, depends on several factors. They include: how relevant or similar your project is to the distribution “sample,” how much customization you need, what the distribution can give you, etc. You also need to choose the distributions actively maintained by the community so you will always have smooth update processes.

Our experienced drupalers are here to advise you on this issue. Just tell us about your website’s needs, and we will offer you an ideally proportioned cocktail of ready elements and customization, of rational costs and unique functionality. Luckily, Drupal allows us to make such a mix. Get it now! ;)

Apr 21 2017
Apr 21

Drupal 8 promised to make website management a piece of cake, and it is fulfilling its promise! Indeed, it has plenty of useful modules to do this, like the Inline Entity Form to work with entities, the Group to manage group permissions, the Rules and the Workbench Moderation to optimize a website’s workflow, the Webform to build online forms, and many more. Today, we’ll discuss one of them that brings order to handling user roles and permissions — the User Personas module in Drupal 8, which is under active development right now.

The User Personas Drupal 8 module and its essence

Each of us has many roles in life, which may change with time. However, we are personalities above all, and we are unique. Although real life and Drupal websites are different things, this is close to the philosophy of the User Personas module in Drupal 8.

Drupal has user roles, which define who can do what on a certain site. The practice shows that the most frequently used Drupal website roles, assigned to almost anyone in any team, are Content Administrator and Content Editor. The difference is checking or unchecking certain permissions that are duplicated for every role.

The author of the User Personas Drupal 8 module, Gabe Sullice, decided to move beyond that approach. So his innovative module offers creating so-called User Personas and putting them above roles.

What is this for? This allows you to create more accurate sets of responsibilities that meet unique job descriptions for any team member. It also lets you avoid the muddle with duplicated permissions and enhances security. Let’s discover more details.

User personas: what they are and what they do

User personas are a level higher than roles — they are actually sets, or bundles, of roles. Each role, in its turn, comes equipped with its own set of permissions.

You can create personas and assign specific roles to them. Personas can refer to single users or their groups. In addition, different personas can share roles.

More accuracy due to treating roles as responsibilities

One of the most important points in the User Personas ideology is to stop treating roles as people’s jobs and start treating them as responsibilities instead. Roles should not describe who people are but rather what people do, i.e., they should be more specific and single-purpose.

OK, let’s imagine a persona called “Reader” and what they should be able to do. Logically, they should be allowed to read and probably comment on the content. So it’s worth giving them the “Viewer” and “Commentator” roles, which, in their turn, should include the permissions for viewing the comments, editing their own comments and posting their own comments. A very clean approach! This is an example Gabe Sullice gave in his article about the User Personas module (which he continued describing in the new version of the article). He also suggested another helpful module to assign roles to new users called Auto Assign Role.

Putting an end to endless permission checkboxes

Working with traditional Drupal roles, a website administrator has the tedious task of managing checkboxes with permissions that have to be duplicated again and again. This involves security risks, makes bugs harder to find, and makes human error more likely to occur.

The User Personas module for Drupal 8 solves this issue and frees you from these endless checkboxes with permission duplicates. Permissions will be simply shared when sharing roles.

Better not try this on live websites ;)

User personas do not interfere with anything on your website: when a set of roles is assigned to a user entity, everything else can work as usual. However, you should not install user personas directly on a live website because the roles are reset then. Be careful with it.

That’s how the User Personas module in Drupal 8 works. Indeed, user personas are unique, and so is your Drupal website! Whatever you wish can be implemented there, with no limits and no exception. So don’t hesitate to contact us for help with installing and configuring some module, or creating a unique one from scratch. And, of course, you can have a new Drupal 8 website developed for you, or migrate your existing one to Drupal 8. Drop us a line! ;)

Apr 11 2017
Apr 11

Drupal 8.3.0 is here — congrats, drupalers and customers!

Undoubtedly, the biggest days in the Drupal world are the days of major releases. Everyone had been waiting for the release of Drupal 8 like kids at Christmas, then “unwrapped” their present with impatience. They were impressed with its brand-new features! Each feature deserved to be described, which resulted in our collection of Drupal 8 articles to mark its birthday. However, you do not have to wait for so long anymore — the Drupal community now also prepares big gifts in small packages twice a year. They are minor releases, and the latest of them, Drupal 8.3.0, has come out on April 5. In this article, we will take a glance at this new approach to Drupal releases, and, of course, see what makes Drupal 8.3.0 so cool.

The new Drupal philosophy: minor releases offer a lot of innovations

Beginning with Drupal 8, the Drupal community decided to switch to the approach of making regular minor releases (8.1.0, 8.2.0, 8.3.0 and so on), meant to make everyone’s adoption of the next new big product more seamless. Minor releases offer significant innovations with backwards compatibility, API enhancements, better usability, an easy upgrade path, and more. Each of the releases is scheduled for a certain month and preceded with a beta and an RC version, so you always know when to expect it and what to expect from it. So let’s delve into the newest of them, Drupal 8.3.0.

Drupal 8.3.0 and what’s new in it

Better content editing with CKEditor 4.6 and more

Convenience of content editing is among Drupal 8’s main policies. Drupal 8.3.0 features a new version of CKEditor (4.6) which has an updated UI, a new and modern-looking default Moono-Lisa skin, the Copy Formatting plugin, the completely rewritten feature for pasting from Word, keyboard shortcut hints, new Upload File and Balloon Panel plugins, and more. Drupal 8.3.0 also offers the AutoGrow plugin for that makes it work better with larger screen sizes. In addition, you can now enjoy the drag-and-drop image editing feature.

The Big Pipe module now stable and improved

Here is a module that has become known as one of the most interesting novelties of “the great eight.” The Big Pipe greatly improves a website’s performance by delivering the unchanging part of the page to users immediately and then serving the rest of the content. Coming to Drupal 8 as an experimental module, the Big Pipe has finally reached the stable stage in 8.3.0, as well as undergone some enhancements, including those for usability on mobile devices.

The experimental Workflow module

This innovation will be especially handy for companies with lots of content authors and complicated content approval processes. One of the experimental Drupal 8.3.0 modules — the Workflow — will now add its power to the Content Moderation module, introduced yet in Drupal 8.2. Using it, you can easily configure the content publishing states and give certain users the permissions to change these states. You will also see your workflows on the screen and enjoy a simple and intuitively understandable UI.

Improvements in the APIs

The new features and bug fixes to the APIs are impressive in Drupal 8.3.0. Here are just some of them:

  • The REST API now allows user registration
  • The anonymous performance of REST API has grown by 60%
  • 403 responses now come with a reason for access denial
  • The Migrate API has reached its beta stage.

Drupal 8.3.0 has also become better in terms of website administration, content type layouts, etc. You can see more details in the great Drupal 8.3.0 review by Gábor Hojtsy.

As you see from the serious work around 8.3.0, Drupal 8 is in the centre of attention from the Drupal community. It will be getting the best, the newest, and the most relevant features. Maybe it’s time to come to the Drupal 8 side? ;) Get a new shiny website or upgrade your current one with the help of our skilled drupalers. It’s worth discussing right now!

Mar 21 2017
Mar 21

We once offered you a selection of free responsive Drupal themes,
as well as advanced tutorials on creating themes and subthemes.
Today, our focus will be very specific: we will discuss
Drupal themes for construction websites.

The construction industry and Drupal web development have a lot in common. Drupal websites, like good buildings, can be very solid, beautifully designed, and convenient in every way. For them, architecture also matters! And they can also be built brick by brick — using Drupal modules and themes.

There are special Drupal themes perfectly suited for construction businesses — so feel free to check out their collection. We have included Drupal 7 and Drupal 8 themes with plenty of useful features. They help construction companies easily and elegantly showcase their offers by providing ready page templates, customizable to anyone’s liking.

These themes are based on the modern, fast and lightweight Bootstrap framework, and have Drupal Commerce or Ubercart support for online shopping.

The themes that we have gathered are all responsive, so their design will neatly adapt to absolutely any device screen. Many of them are also Retina-ready — this latest trend basically means that the designs look great on high-definition phones or tablets with no pixelation even when zooming-in.

Well, examples are worth a thousand words, so let’s see what has been built by drupalers for builders!

Some great responsive Drupal themes for builder and construction websites

Yellow Hats

Yellow hats are something you are likely to see on the demo of every theme in the building category. So we choose  a modern theme of the same name to be the first on our list! It is extremely flexible and customizable, responsive, Retina-ready, built on Bootstrap 3.x, and offers an impressive list of features like Parallax effect, HTML and CSS3 validation, Google Maps, +11 homepages, +250 HTML pages, an online shop due to Ubercart support, a wealth of headers, footers, blocks and more.

Great Drupal themes for construction websites

Housebuild

You could also try Housebuild, a responsive and Retina-supportive Drupal theme, good for construction, renovation, electric works, and other business websites. This theme is clean and professional, easy to use and to customize. It features CSS3 animations, Google Maps integration, Bootstrap 3.x support, sliders, unlimited colors, and more.

Great Drupal themes for construction websites

Builder

The Builder Drupal theme is close to the above described Housebuild theme. It is also responsive, supports Retina displays, and offers a similar set of useful features, as well as Instagram integration and an online shop thanks to Drupal Commerce support.

Great Drupal themes for construction websites

Construction

Here is an easily customizable Drupal theme, great for websites of construction and related companies. It has a responsive layout, a special drag-and-drop tool to create layouts (Superhero framework), and a wealth of customization opportunities. The “Who we are”, services, shop (Drupal Commerce), news and other blocks are at your disposal.

Great Drupal themes for construction websites

Darna

The Darna Drupal 8 theme is meant for construction, architecture, plumbing and renovation companies, as well as other businesses. It is responsive and ready to work with Retina displays. Being easy to use, Darna can boast an impressive list of features like reusable code, W3C validation, Pixel perfect, Google maps, Bootstrap 3x, multiple header and homepage options, shop pages (Ubercart), and more.

Great Drupal themes for construction websites

Gates

You could give a try to this multipurpose responsive Drupal 8 theme with a support for Retina displays, used for construction and other types of websites. It lets you present a portfolio, a shop due to Ubercart support, news, services etc. The Gates theme is based on Bootstrap 3.3.5, has over 1000 icons, plenty of layout options, unlimited color schemes and much more.

Great Drupal themes for construction websites

Habitus

The Habitus theme for Drupal 8 means 14 clean and modern responsive HTML pages. It is based on a 12-column Bootstrap grid, has variations for homepage and “coming soon” page, a portfolio, a blog, a gallery, a 404 page and much more to meet the needs of your construction company or other business.

Great Drupal themes for construction websites

Construct

Here is another cool example for construction, renovation, electricity, isolation, maintenance and business companies. It is a responsive, Retina-ready and SEO optimized Drupal 7 theme on the basis of Bootstrap 3. The Construct theme has 11 custom blocks, valid HTML5 & CSS3, Twitter Feed, Google maps, etc.

Great Drupal themes for construction websites

Constractor One

Meet another nice responsive theme for Drupal 8 which will be very useful for construction and renovation industry companies with its limitless customization options. The Constractor One offers drag-and-drop layouts, more than 580 icons, Parallax effect, HTML5 and CSS3, support for video, RTL (right-to-left text direction) and more.

Great Drupal themes for construction websites

Structure

You could also take a look at the modern responsive and Retina-supportive Drupal theme called Structure. Structure is definitely its strong point, because it offers +15 homepage and +3 header styles, Mega Slider, all pages required for building companies (about, prices, services, etc.), Drupal Commerce support and so on.

Great Drupal themes for construction websites

These are just some examples of excellent Drupal themes for construction websites. If these or other ready themes do not fully cover your needs, our developers will build a unique one for you. Builders will always understand each other, no matter whether they create houses or websites and themes. Let’s build awesome things together!

Mar 10 2017
Mar 10

This phrase has long been a famous Internet meme: in any situation, keep calm and clear your cache! And the power of Drupal cache is really strong, because it can be helpful even in the case of so-called White Screen of Death or WSOD.

WSOD (White Screen of Death): oops, what is it?

From time to time, every Drupal user or developer encounters WSOD. One of the most common scenarios is it happens after some module or core updates, as well as during custom module development.

The page goes totally blank with no content, warnings or errors — just the big white “nothing”. It is whiter than the endless Arctic snow, and you just do not know how to find your way through it.

But, as stated above, keep calm! Of course there are ways to debug White Screen of Death. They include: enabling error reporting, checking error log files or Watchdog tables, disabling the modules that might have caused the problems, increasing your PHP memory limits if your site might have run out of it, restarting your web server, rebuilding your permissions and many more. You can try various methods one by one until some of them actually work.

In some cases, however, a perfect way to fix WSO is clearing the cache tables, which we will examine more closely.

Drupal cache clearing to resolve WSOD

Drupal caching is a great solution to improve a site’s performance. It helps avoid tons of calls to the database and save your server’s resources and time. When a page is loaded for the first time, Drupal saves its content, scripts, menu links and much more to the cache table and uses it again during the next page loads. Some modules, like the Big Pipe in Drupal 8, offer exceptional opportunities to get the best out of caching.

The caching tables have a multitude of things to handle. They can sometimes run into a problem due to various reasons. Often this happens when you are moving your site to another server. And then you have the scary WSOD!

But there is no need to worry — just empty the cache table. Though the task does not look easy with White Screen of Death, there are a couple of ways to do it without coding.

Clear the cache using the database

You can use PHPMyAdmin or other database administrative tool to get to your Drupal website database. Empty (truncate) the tables with the "cache_" prefix , without deleting them. Manipulations with the database should be done carefully.

Clear the cache using Drush

An alternative to this is using Drush command-line interface, which seems to often offer quick solutions when other things do not work. Even though Drush may be helpless sometimes as well, you could try to these Drush commands for emptying the cache table:

Drupal 7:

drush cache-clear all or drush cc all — to clear all at once

drush cache-clear or drush cc — to choose which cache to clear

Drupal 8:

drush cache-rebuild or drush cr — to rebuild the website in addition to clearing the cache

Clear the cache using the Performance page

Another option to try is to get to admin/config/development/performance and use the "Clear all caches" button.

To wrap up

Clearing your cache might be enough to bring your website “back to life” again and help you resolve the White Screen of Death (WSOD) error. However, you can always rely on professional error-fixers and problem-resolvers like our affiliated Drudesk support service. Looking too pale is not good for your website’s health ;) The Drudesk guys will establish the reason for the WSOD or any other condition and will quickly make your website feel fine!

Feb 07 2017
Feb 07

To do: improve your Drupal website’s SEO. This sounds like a pretty big task on your list! ;) Big tasks are easier to cope with when they are divided into clear, smaller steps. Great news! You can have a smart adviser, named SEO Checklist module, who can give you this list of steps and prompt you how to fulfill them. The module has been ported to Drupal 8 with some improvements, so we are happy to include its review into our collection — along with the Views, the Inline Entity Form, the Fast 404, the Workbench Moderation, the BigPipe, and the Rules Drupal 8 module stories.

Discover Drupal’s SEO capabilities with the SEO Checklist module

This module is a treasure for many marketers, website administrators, and developers who would like to leverage Drupal’s huge SEO potential but need some assistance with it. And this potential is incredible — we have previously written reviews of the powerful Drupal 7 SEO modules in part 1 and part 2. Many of these have reached stability in Drupal 8 as well.

The SEO Checklist module tells you what modules to install and what actions to perform so you can use the best SEO practices with Drupal. It does it in a user-friendly and popular way that most people appreciate — as a checklist, along with lots of hints to speed up your work.

You do not necessarily have to follow all the steps, your smart adviser just gives you good ideas. To work with it, you will need some basic understanding of SEO. The module is also not a replacement for an experienced SEO expert who can provide a good SEO strategy, build links or do keyword research.

The module’s “father” Ben Finklea, CEO at Volacci Drupal SEO agency, created it with the best search engine optimization “secrets” in mind. He also wrote a book called Drupal 8 SEO explaining in detail how to make the best use of what the module recommends to you.

How the SEO Checklist module works

After downloading and enabling the SEO Checklist module, on the left sidebar, you will see all these tasks grouped into functional categories. They embrace various SEO aspects (clean URLs, meta tags, search engines, analytics, security, performance and many more). Each category has its own checklist. To make tasks fulfillment easier and faster, it includes the links to download and enable the modules, as well as to make proper settings in your admin screen.

When a task from the checklist is done, it is checked off. After you click the Save button, the progress bar at the top of the page shows you how much is accomplished. The checklist shows you which task has been completed, when and by which user, and which still remain to be done.

Thanks to the date and time marked for each action, you can also have handy reports about your SEO optimization efforts.

Your wise SEO assistant is always up-to-date and informs you whenever there is something fresh and new to be recommended.

The SEO Checklist module in Drupal 8: porting and improvements

Created back in 2007 for Drupal 6, this useful SEO module is now supported for Drupal 7 and Drupal 8. Travis Carden, the creator of the Checklist API module, deserves special thanks for porting it to Drupal 8. He has also been helping Ben Finklea with this project all the way from the beginning and is its co-maintainer.

In Drupal 8, the module has become still more helpful. The major change it has undergone in “the great 8” is that it now includes CLI commands that you can run via Composer, Drush or Drupal console. You can find them right on your checklist next to each of the tasks and paste them in your command line. “Now that Drupal's Composer endpoints are out of Beta, the developer community is using more CLI tools than ever," says Ben Finklea.

It’s time to be at the top of the search results. With Drupal, it’s possible!

You can download the SEO Checklist module, as well as get absolutely any custom functionality created for you or have a fresh and new Drupal 8 website built for you by our Drupal gurus. So here is a useful step for your checklist — contact InternetDevels right away! ;)

Jan 20 2017
Jan 20

Drupal 8 is so irresistible in its innovations that it just makes you wanna… pack your things and migrate! ;) To “pack” your website’s content and configuration carefully and move them to Drupal 8, there is a cool tool called Migrate API. As with any relocation, it's easier to “pack your things” when they fit into “standard boxes.” The same applies to websites: the less custom functionality they have, the quicker the upgrade process will go. We will touch upon this and many other interesting issues while discussing Migrate API, its benefits, the modules it includes and the migration process it provides.

Migrate API: best things come to Drupal 8 core!

Not only do the best things come to Drupal core, but the greatest ideas are born at DrupalCons. At one of these, DrupalCon Prague, there was a discussion of building an improved and powerful migration system for “the great 8” that would inherit the best concepts from Drupal 7’s Migrate module but make the upgrade process way easier and much more enhanced.

Mission completed! Drupal 8 core got Migrate API that was added as a set of experimental modules, but has been improving and gaining trust, and has now (beginning with subversion 8.2.5) reached beta stability.

Migrate API can offer you:

  • robust, smooth and repeatable (if necessary) migrations from Drupal 7 or 6 to Drupal 8
  • direct upgrades from Drupal 6 to Drupal 8
  • migrations to Drupal from other sources
  • no need for PHP updates (like there used to be)
  • a handy UI and Drush integration (see also some tips of upgrading with Drush)
  • detailed documentation
  • migration templates
  • easy rollback functionality

The modules Migrate API includes

They are now “the great three,” but they used to be “the great two” — up until Drupal 8.1.x subversion was released, which was when the Migrate UI module joined in. So here they go:

  • the Migrate module that provides general API functionality for your upgrades
  • the Migrate Drupal module that offers special configuration for Drupal 6 to Drupal 8 and Drupal 7 to Drupal 8 migrations
  • the Migrate Drupal UI module that has a convenient UI to use instead of Drush

Some extra modules to use with Migrate API

However, that’s not all, so you can improve your migration process with Migrate API even more by downloading some additional contributed modules.

The Migrate Tools module offers a basic UI to list migrations and show messages, as well as general migration Drush commands:

  • drush migrate-status
  • drush migrate-import
  • drush migrate-rollback
  • drush migrate-stop
  • drush migrate-reset-status
  • drush migrate-messages

The Migrate upgrade used to have a UI that moved to core, so its main destination now is to provide important Drush commands for upgrades between Drupal versions, as well as to do rollback if necessary:

  • drush migrate-upgrade
  • drush migrate-upgrade-rollback

With the help of the Migrate Plus module, you can greatly enhance your custom upgrades. It provides extra functionality, for example, for grouping migrations together, as well as XML and JSon parser plugins to make import from file-based sources.

The Migrate Manifest module will let you run selected migrations defined in a manifest file.

And, finally, if you want to move from Wordpress to Drupal (see the comparison), the Wordpress migrate module is here for you to export your Wordpress files and migrate them to Drupal.

Migration templates

A lot of work has already been done to simplify the upgrade process! Drupal 8 has lots of ready migration templates for the core stored in YAML configuration files. In case with contributed modules, there may also some ready migration files, so it’s worth checking out. But, as far as custom functionality is concerned, get ready to create your own custom migration files for it. However, you can always entrust it to professional developers.

A glimpse at the migration with Migrate API from Drupal 7 or 6 to Drupal 8

  • Before the migration, it’s better to have a fresh Drupal 8 installation, because it will make the process easier.
  • Next, you should tell Drupal how to connect to the source database, for example, in your settings.php file.
  • Enable all the required modules both on the source and the destination website.
  • Run your migrations via Drush or UI, whichever is more convenient for you.
  • Review your migrations to see the result.
  • If necessary, easily roll them back.
  • After that, uninstall the migration modules.
  • Done!

Have a smooth upgrade process with Migrate API and an amazing new life for your website on Drupal 8! Upgrades have become a really popular service, especially since the end-of-life announcement for Drupal 6, so we have sharpened our skills in them to perfection. So, no matter how complex your website is or how much custom code it has, your upgrade will be safe and easy with us. Big migrations begin with a small step like contacting us right now ;)

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