LATEST FROM OUR BLOG

Take your daily dose of (only) relevant news, useful tips and tricks and valuable how to's on using the latest web technologies shaping the digital landscape. We're here to do all the necessary information sifting for you, so you don't have to, to provide you with content that will help you anticipate the emerging trends about to influence the web.

5 Drupal 8 Initiatives and The Pressing Issues They Address
Drupal user “complaints” turned into strategic battle-plans, resulting in groundbreaking improvements pushing Drupal forward. This is how Drupal 8 initiatives grow into stand-alone Drupal core features. They signal the “sore points” for the Drupal community of developers to focus on.  And from all the “user complaints” turned into new Drupal 8 features and functionalities so far we can't but mention:   Views, now part of Drupal core the plethora of multilingual capabilities   configuration management   OK, so these ones already developed into widely-leveraged Drupal functionalities. But which are the currently work-in-progress ones? What's going on in the backstage? What “surprises” to expect from the Drupal core maintainers? What best practices should you get a grip on so you can use capitalize on them during your next Drupal projects? Since we kind of anticipated your “curiosities”, we've selected 5 of the Drupal 8 initiatives that you should be particularity interested in. As they're aimed at easing your life both as a Drupal developer and as a Drupal site/app owner. Let's dive right in:   1. The Out-of-the-Box Experience Initiative  A much-needed “promise”, I could call this initiative. The promise of an initiation for all newcomers to Drupal who, at the moment, don't get a very warm welcoming.  They're left pretty much all alone on their discovery “adventure”, where they unveil Drupal's capabilities. Therefore, the goal that this initiative serves is that of showing off Drupal 8's true potential, all its powerful functionalities and tempting features. And all this nicely wrapped in a visually appealing theme and enriched with example content, as well. In short, this out-of-the-box experience is geared at welcoming new users into the Drupal 8 world! Take this scenario for instance: You're facing the challenge of briefly showcasing some of Drupal's functionalities (which are perfectly suited to their project's needs, needless to add) to a potential customer. With the out-of-the-box experience initiative turned into a powerful Drupal 8 core functionality at hand, you'll be able to get a demo site up and running in no time and to... “enlighten” your audience.    2. The Drupal Media Initiative: One of The Drupal 8 Initiatives Getting Loads of Attention The Drupal 8 media initiative started as a reaction to all the content editors' complaints about:   the cumbersome procedure of tracking down specific items from the media library the poorly intuitive media loading process taking place in Drupal's back-end   Moreover, this dissatisfaction risked turning into a reason for some to opt for WordPress, instead, better equipped to answer content authors' needs. And being able to reuse file content is still one of their most pressing ones.   3. The Workflow Initiative  And this is arguably the most ambitious of all the Drupal 8 initiatives in our selection here. That is because it targets a whole lot of content management goals: a whole lot of content creation shortcomings that editors have been signaling for some time now. To name a few:   the content previewing experience: in case of a content-heavy Drupal website, the preview of the site won't give you an accurate preview of how content is going to look (just an interpretation of how it would look); and with new and new devices emerging, this inconvenience might risk turning into a serious drawback for Drupal 8's adoption      multiple publishing states (instead of just the basic published/unpublished duo): specific content creation scenarios call for specific publishing states ( e.g. “draft”, “archived”) and providing content writers with such kind of granular control is one of the goals that this Drupal initiative serves   simultaneous workflow moderation/publishing of content items of the same group (nodes, menus, blocks): and this is when the concept of “workspaces” stepped into the spotlight   granting different levels of role permissions when it comes to changing a content's publishing state (from draft to published or from archived to published etc.); the content creator would be granted his/her own level of permission, the editor and the content managers their own and so on    customizable workflows: so that content managers should be able to set up and juggle with multiple workflows per content types   Summing up:   the Workflow initiative in Drupal 8 means sustained effort and a huge amount of work invested in granting editors (even) more control over the content creation process   … in enriching the editorial experience with new, much-needed content sharing, reviewing and collaboration tools   … in improving the content workflow   … in getting Drupal 8 equipped with content editing, stagging and deployment capabilities   … in making it possible for content editors to stag content in a non-production environment and have it automatically moved to a production environment and get it published   4. The Migrate Initiative  Imagine a world where:   you would no longer need to be constantly on alert, posted on all the critical patches and upgrades to quickly “grab and install” migrations from other platforms to Drupal would run smoothly, requiring much less of your time and of your other resources   … "time" that you could then invest in customization tasks, in creating and tailoring unique features for the site/app that you're working on. Well, it looks like this world is no longer just a product of your imagination, but a soon to become a real one!  The Migrate initiative is geared precisely at streamlining both the migration and the upgrading processes in Drupal 8.   5. The API-First Initiative  And this initiative comes to boost, even more, Drupal's already robust capabilities to integrate with other platforms and modules. Now since these integrations are intermediated third-party services APIs, enabling data to be transferred both ways, the need for Drupal to provide its own APIs emerged. Then, Drupal 8 would be able to make its own content easily accessible to other devices, services, and apps, as well.   End of list! I'm particularly curious now: Which of these 5 Drupal 8 initiatives do you think that will have the biggest impact on your work as a developer or on your Drupal user experience once it grows into a stand-alone core feature? ... Read more
Serge Karpyuk / Jan 11'2018
The 7 Best Drupal 8 Distributions: Why Should You Even Use One in the First Place?
What are Drupal 8 distributions anyway? Why bother using one: what would you gain by using one instead of building your Drupal 8 site from scratch? And, most importantly: which are the best Drupal 8 distributions to choose from? … the top-rated ones, both by other companies already using them and by Drupal experts, as well? There are lots of different Drupal Distributions: Commerce Kickstarter, Open Atrium, Drupal Commerce, etc. build for different versions of Drupal. Which ones are the best? Let's jump straight ahead to the answers you're looking for now, shall we? First Things First: What Is a Drupal Distribution After All? “A Drupal distribution packages a set of contributed and custom modules together with Drupal core to optimize Drupal for a specific use case or industry." (Dries Buytart, Distributions Remain a Growing Opportunity for Drupal) Take it as an all-in-one-place or a conveniently quick and easy-to-install package. One which, once “unwrapped”, delivers you all the site-specific features and business use-case/industry-specific functionality that you need:   Drupal core precisely those contributed and custom modules that you need  themes predefined configuration installation profiles libraries   Bottom line: it's Drupal + additional software components (strategically assembled and preconfigured) that you get with a Drupal distribution software. One that will turn setting up your use-specific Drupal 8 site into a breeze! “How to install a Drupal distribution?” quickly turns from a hard nut to crack into nothing but a child's play. Just imagine how much time and valuable resources you'd otherwise invest in:   scanning through the overwhelmingly rich collection of Drupal modules figuring out which are THE ones catering to your specific use case or industry installing all the needed elements (and here we're not referring to Drupal 8 modules only) one by one   And here we can talk about 2 types of Drupal distributions:   the full-featured ones  the quick-start tools   Key Advantages of Using One Over Building Your Site From The Ground Up Before we push forward, into the spotlight, the best Drupal 8 distributions to choose from, let us outline what you'll gain, precisely, from making this decision:   Using a Drupal distribution over setting up your website from scratch.   launching your website turns into a matter of a few... hours; instead of delving into a load of thousands of modules yourself, the preconfigured site that you get by choosing a software distribution delivers you everything you need in a single download: wrapped up in one installable package!    by comparison, the “traditional” way of setting up your site would grant you access to Drupal core only; any additional functionality needed calls for... additional downloads   maintaining your whole ecosystem of modules and other site components becomes less time-consuming: one single update is enough for all Drupal modules and features (vs “hundreds” of them in a conventional Drupal site build scenario)   And now since selecting the proper Drupal distribution, the one that best suits your specific type of site, your business use case, and industry, is key, let us reveal to you the top-rated ones to consider choosing from:   And Here Are The 7 Best Drupal 8 Distributions 1. Lightning Empower your editorial team and you'll get (even) better content on your Drupal 8 site! With the Lightning Drupal distribution for enterprise, you get to turn crafting, adding, editing, and publishing content into a rich authoring experience! How does it work you say? Practically Lightning's built to "fuel" the editorial experience with these 4 modules' powers combined: Workflow, Media, Layout, and Preview. Hence, content editors get all their feature/functionality needs satisfied for creating great content (and handling content editing operations) with great ease.   2. Varbase The "nitty-gritty" of any Drupal web project! This is what you'll get once you "unwrap" your package with the "Varbase" name tag on! Basically, the essential modules, configurations, features, and functionalities that any Drupal 8 site needs are all bundled up in this starter kit, at a click's distance! Get all these necessities downloaded and installed and give your site's development a major speed boost.   3. Contenta Planning to jump on the decoupled Drupal bandwagon? To progressively decouple your Drupal 8 site maybe? Then Contenta, the API distribution for Drupal 8, makes your best "ally" in turning your decoupling Drupal project into a success story! What it does, precisely, is it eases the overhead of making a decoupled architecture work (or simply “trying it on”, to see first whether it fits you or not):   it provides you with an API-ready platform (admin configuration here included) ... demo content ... and even example front-end applications   4. Reservoir Here's another API-first Drupal distribution, (still) an experimental one, that you can rely on for supporting your Drupal decoupling initiative.  ... if you were looking precisely for a flexible and easy to use tool for building a Drupal content repository that your front-end app could easily access via HTTP APIs. But what makes Reservoir one of the best Drupal 8 distributions?   it takes the burden of modeling and managing content off your shoulders  it enables your team of developers to set up a basic, yet functional content back-end, all while preserving the rich content editing experience (with all the functionality and features that editors get "spoiled" with) that Drupal 8's well famous for    Note: surprised that Contenta and Reservoir have made it to our "best Drupal 8 distributions" list? Don't be! The 2 API-first distributions might still be community-driven experiments. Yet, all the potential they "promise" to unlock in a digital landscape where the channel/device/design-agnostic trend and the API-first approach rule is not to be underestimated.   5. Thunder Out-of-the-box publishing technologies (Riddle Interactive Content, Facebook Instant Articles) and modules from industry partners (Valiton, Nexxt.tv, Acquia) is what you'll get along with your Thunder "package". In short: all you need in an all-in-one the bare necessities and more addressing all your professional publishing needs!   6. LISSA Kickstart A Drupal distribution built to help you streamline your events and client notifications management and publishing process.  What you'll get specifically is a Drupal-based technology stack for real-time messaging in second screen apps. One which, as a media company, you get to leverage for:   pushing notifications to your clients publishing video stream (live or on-demand) ... with convenient ease   7. Open Social By far one of the most popular Drupal distributions, Open Social couldn't have possibly missed from our top including the best Drupal 8 distributions. Go for it if it's a:   social community platform intranet solution portal or any other Drupal-powered social project that you're planning to build   It will dramatically speed up the development process as it provides you, right out-of-the-box, with all the elements that your social community site could need:   Notifications Timeline Events Follow Groups   And this it IT! Our own selection of the very best Drupal 8 distributions to consider as "candidates" for your own specific Drupal project. Select the one that best fits your project's specific use case, then weigh its advantages and... decide how you'll invest the time that you will have saved using it (instead of building your site from scratch). ... Read more
Adrian Ababei / Nov 23'2017
GraphQL on Drupal 8: Inject High Performance Into Your Drupal Decoupled App
Data, database, data fetching, data requests, data retrieving, data receiving... all modern web apps — fully or progressively decoupled front-end applications — have an insatiable “appetite” for data. And satisfying this particular “hunger”, with no compromise on performance, is the “mission” that GraphQL on Drupal 8 — the module —  has been invested with. Retrieving the requested data with as little time and resources used on round trips to the server as possible. With no under- or over-fetching, with no need for versioning. In short: the module “exploits” all the limitations that the Restful approach started to show in addressing well-known data issues; it came out as a result of Dries Buytaert's advice and forecast on advancing Drupal's web services. But let's not beat around the bush anymore and dive right in:   GraphQL This... GraphQL That... But What Is GraphQL After All? It's Facebook's patented technology created in 2015.   And app layer query language designed to revolutionize the way data gets retrieved, interpreted and formatted: all these processes take place based on a GraphQL schema!   Approaching the data in terms of graphs and exposing those graphs in a schema guarantees that the caller's data request is identically structured as the delivered answer. Not to mention that the same caller gets to formulate his data requests more explicitly and specifically thanks to GraphQL. No wonder that front-end Drupal developers have started to perceive it as a powerful rival to REST! To the standard REST approach to retrieving data in apps built with headless Drupal 8. In this respect, let's briefly recap just some of its “luring” features:   it perfectly matches the data request's structure with that of the delivered response  it queries the requested data based on s self-documented, automatically generated data exposure schema   GraphQL & Drupal: A Duo Powering The Future of Decoupled Drupal Take GraphQL as the intermediary used in decoupled Drupal projects between the JavaScript front-end and the Drupal back-end. The one invested with the role of smoothing and streamlining the interaction of the decoupled front-end with the Drupal data source. A role that used to be played, in all Drupal decoupled apps, exclusively by the RESTful web services, remarkably well developed in Drupal 8. Till the traditionally used REST architecture started to prove its failure in addressing data access issues. And GraphQL on Drupal 8, the dedicated GraphQL module, started being built. The improved overall performance, that this new approach to retrieving data promises, derives from:   GraphQL's way of retrieving data based on a schema its entire system of types and fields    … which guarantees predictable responses only (the client-side apps are enabled to request for specific data) and, implicitly: no round trips and no extraneous data. A responsible use of server resources. Moreover, in case of complex, hierarchical data, not only that the caller gets to shape a “straight to the point” request, but it gets to ask for all the needed data on the same query! An efficient use of server power especially when your decoupled Drupal app's front-end requests loads of data in a context of slow mobile internet connection.   GraphQL on Drupal 8: Your Data Graph Conveniently Exposed in a GraphQL Schema   And then... the GraphQL module was born! Not yet part of the Drupal core, but powerful enough to allow front-end Drupal developers to use it to its full potential in their decoupled Drupal projects. The main “mission” that its maintainer, Sebastian Siemssen, invested it with was: to turn Drupal into a GraphQL-powered data hub for decoupled front-end apps, by implementing a schema. A GraphQL schema exposing the available field types and entity. Practically via TypedData API your Drupal 8 site's data graph becomes more “readable” for the GraphQL library.  This way, the client-side app gets to request for more than specific data/field values and to receive precisely the required info. And this streamlined data fetching process with GraphQL on Drupal 8 can only lead to zero bloated responses. There's more!  We can't be talking about “a” module, but a whole ecosystem of submodules that you can read more about on Drupal GraphQL Github:   GraphQL Content  Entity Reference Breadcrumbs Boolean Content Mutation Link Image Menu File Block Views   Have you already harnessed the full potential of GraphQL on Drupal 8 to fuel your web apps with? If not, why hesitate? Why do you still think it might not be a robust enough alternative to the traditional REST approach to data fetching? ... Read more
Adrian Ababei / Nov 17'2017
Drupal 8 Group Module: How to List Related Group Content 
“Fallen for” Drupal 8 Group Module's principle of using entities and entities relations (as opposed to node “knots”) for handling groups? For the entire concept behind it: sectioning your Drupal site into multiple “micro-sites”, where users having different sets of permissions gain access to certain “micro-sites” only? A "seductive" entity API-powered idea indeed! And here you are now: pulling your hair out to find a way to link your user groups with their corresponding content (nodes). To list related group content! How you do that? How do you filter content and relate it to the group that it belongs to? Keep reading...   But First: A Few Words About The Drupal 8 Group Module As you must already know, the Group module was born as a solution to all the limitations that the Organic Groups module, its older “rival”, presented. A major drawback being, for instance, the fact that it provided no API. No API to rely on for configuring a site's role and permission system and content types across its ecosystem of user groups. And before we point out its most significant strong points, allow us to list and to briefly detail a few key concepts to fully understand how this module works:   group type: a fieldable entity (common pitfall: do not take user-defined groups for nodes!) group (user) membership: a “group type” fieldable entity specific to a given group, incorporated through a plugin; in other words: each “Group type” can feature multiple fields that describe their user memberships    the Group Node module: provides “Group type”-specific fieldable entities which describe to what level a group is connected to the nodes of a given content   Now that we've shed some light onto these key notions, let us highlight to you the Drupal 8 Group module's key advantages over Organic Groups:   self-contained admin, great UI: everything you need for configuring your groups' functionalities is right there, in your admin menu, no need to delve into a dozen of pages for adding your groups, your group types etc.; simply look for the Group section (neighboring the “People” one)   improved data model: Group relies on group dedicated entities, opening up a whole new era for handling groups of users, groups of content...   “pluggable” architecture: take the “Group Node Module, for instance, that the Drupal 8 Group module ships with; it enables you to integrate nodes into a given group and to share access to private content among that group's members only   Before We Dig Into It: How Do You Programmatically Add New Content To Your Group? Put yourself into this Drupal developer's shoes: “He/she has just created an Article node and now he's facing the challenge of programmatically adding it to a pre-configured group on his website." How does he solve the “problem”? By using the addContent() method, which leverages the following function added to the Group module: Group::addContent(ContentEntityInterface $entity, $plugin_id, $values = [])  Note: $plugin_id: it stands for 'group_node:YOUR_NODE_TYPE_HERE' $values: add them only if you want to fill in the fields on the node-to-group relation entity   Now What If You Need to Bulk Add Content To Your Group? That's right? What if you had to add multiple nodes to one of the groups on your Drupal site relying exclusively on the Drupal 8 Group module's capabilites? Basically your key objective then would be adding a group content entity to each node connected to your Group. Here are the steps to take:   Make certain that you have a GroupType   Check that this GroupType has all the proper plugins enabled (GroupType::installContentPlugin(); read deprecation notice)   Put together a group of said GroupType   Bulk add those nodes using: $group->addContent($node, 'group_node:NODE_TYPE_HERE');            Tip: do rely on the API at hand, GroupInterface::addContent(), for this! Or, if you prefer a shorter version, one that doesn't “constrain” you to use the API,  here's a three-step migration process to get inspired by:   Ensure that a group does exist, first things first   (Bulk) Migrate your nodes   Manually put together your GroupContent entities   And Finally: This Is How You Show Related Group Content Or, better said “how you create a view for showing that content” using the Drupal 8 Group module. Before we dig into the step-by-step guide, we'd like to highlight the fact that:   you'll be using “node id” as a contextual filter   the process requires 2 types of Views relationships: Contextual Node > Parent Group and Parent Group > Nodes in group   And here are the promised steps:   Create your content view (it should have at least one block)   Under your View's relationships choose “Content: Parent group” and then click the “Require this relationship box”; you'll now see new relationships listed in the dropdown menu   Next, from the same dropdown menu select the following relationship: "Group: Node entities", then hit the “Require this relationship” box   Then it's time to define your contextual filter: select “Content NID” from the dropdown menu, hit the “Provide default value” box, then pick “Content ID from URL” from the next dropdown unfolding there   Now it's time you defined the “Group Node” relationship (under Format more precisely) for every single rendered entity, content and/or field (according to your own selections)   Navigate to /admin/structure/block and select the region of the page that you want this block to be displayed on   In short: all there's left for you to do now is simply display nodes from the second relationship that you've defined and (if you want to) filter them by creation date, content type, whatever criteria you'd like. And this is how you do it! How you show related group content using the Drupal 8 Group module's functionalities! Do let us know if you encounter any (other) roadblocks as you're putting this advice into practice! ... Read more
Adrian Ababei / Sep 08'2017
Better Accessibility in Drupal 8: 7 Significant Improvements 
“Drupal 8 is the most accessible version of Drupal, and brings with it some features not seen in any other Content Management System, open-source or proprietary.“ (Phil Wolstenholme, A new era of accessibility in Drupal 8). But where do you start enhancing your organization site's accessibility? Your accessibility planning? For it's true: Drupal 8 does come loaded with some truly “impactful” new features and accessibility improvements that will drastically improve the way visitors with disabilities will interact with your website. And where do you add that they all come out-of-the-box! Yet: how do you set your priorities? Which accessibility features do you start implementing first and put a particular focus on as you train your editorial staff? And this is why we, the web development team in Toronto, have come up with THE list (or “selection” if your prefer)! It includes 7 most significant improvements around accessibility in Drupal 8. The ones that you should rush in to make the most of first things first:   1. HTML5 Elements: Add Semantic Meaning Into Your Code “By default” I should add! Since now Drupal 8 works with HTML5 elements in its templates so that you get to “invest” your code with... meaning! “Meaning” that screen readers can now interpret, making their navigation on your website a lot smoother. Now your web pages “do” make sense to them! Here are just a few examples of HTML tags that you can use now for better defining the elements on a given web page on your site: <footer>, <header>, <section>, <figcaption>, <article> etc. Note: better structuring content on your web pages using these HTML5 elements will support your SEO efforts, too! Since it's not just assistive technologies that can better “decipher” and surf through your web pages, but search engine crawlers, too! How about that for a win-win situation?   2. Introducing “ Tabbing Manager”: A Constrained Tabbing Order And here's another significant enhancement around accessibility in Drupal 8!  Just try to imagine a scenario where a non-visual user is facing a page overlay. How would he/she know where to tab into and close it? This is where Drupal'8 new JavaScript feature, “Tabbing Manager”, comes in handy! It practically limits the user's options for tabbing around a web page so that, using his keyboard only, he can gain faster access to the important elements on that page.  Controlled tabbing dashing away confusion! This is how we could define this new feature implemented in Drupal 8 core and impacting your own site's usability!   3. Extensive Support for The WAI-ARIA Markup: Better Accessibility in Drupal 8 Simply complying with the WAI-ARIA standards is not nearly enough. You need to actually make those attributes added to your HTML5 elements understandable to screen readers! Drupal 8's core maintainers have been well aware of this aspect and have packed it with substantial support for the ARIA markup.  In short: as you'll add the given set of attributes to your code, you'll be ideally structuring your web pages so that assistive technologies can easily navigate through and distinguish their different content sections!   4. Aural Alerts: Visual Updates Made Accessible to Everyone How could a visually impaired user catch sight of a visual update on the web page that he's on? Of an animation or of an alert box popping up? The screen reader that he relies on can only read one part of a web page at a time... Introducing “Drupal.announce”, a JavaScript feature which presents screen readers with texts appended to nodes that can be read out loud to the user! So that the visitor should be informed, through a reading user agent, of all the changes/updates happening on various parts of the page (color changes, pop ups, animations)!   5. Alternative Text for Images: Now A Required Field By Default  When you say “better accessibility in Drupal 8”, we should immediately think of all the key features enhancing it which have now become “mandatory”  to implement! Like the ALT text field, a feature allowing visual impaired users to understand an image's meaning with the help of a short descriptive text. Screen readers are enabled to associate the image's meaning with the given text-based content. Note: simply filling in that field with generic short text isn't enough! You should also make your content writers aware of its significance and, therefore, that it's important to properly describe the image through that short text!  Another note: here we go again, intersecting our efforts to make our websites fully usable for everyone with our SEO efforts! It's not just users depending on assistive technologies for navigating your site that will benefit from this “by default” ALT text feature, but guess who else: search engine crawlers!   6. CSS Display Options: Hidden, Visually Hidden, Invisible... Here's the scenario that called for the adoption of 4 different CSS display classes in Drupal 8:  “When using “display:none;” in your code you're practically making those specific elements invisible to visual, non-visual and screen readers, too!” See why such such an improvement in terms of accessibility in Drupal 8 was greatly needed? Its maintainers have implemented accessibility-naming conventions that you get to use for (still) hiding elements on your site from users' sight while keeping them visible for screen readers. And here are the 4 different CSS classes for hiding/displaying elements on your site: hidden: hide certain elements both from users and screen readers visually-hidden: hide elements from users only (keeping them accessible to screen readers) visually-hidden.focusable:  invisible: hide the element(s) from both users and screen readers, but with no layout impacting the page   7. An “Enable Inline Form Errors” Option for Improved Accessibility in Drupal 8 “This field does not support the use or commas or semi-colons as separator”!  Imagine this error message showing up at the top of a web page as a visually-impaired user is filling in a form on your site. A message that his screen reader informs him of, but which lacks a key detail: which form field? The user might have already completed several form fields, how would he know which one the error message refers, to? See? This is where the newly implemented option for enhancing accessibility in Drupal 8 by enabling inline errors within the form itself instead of displaying them on the top of the page, was needed! Note: do be aware of the fact that it's still a work-in-progress functionality, with a few pending issues left for its maintainers to address! And speaking of enhancing accessibility and therefore usability when dealing with forms, it's almost needless to add that implementing ARI markup in your forms will help all your visitors: to interact with all the fields of a given form with great ease   to distinguish whether they've skipped filling in certain fields or checking off  certain boxes   Quick Recap With all its improvements and newly implemented features Drupal 8 offers you an extensive built-in accessibility support! And it makes a great base for you to take advantage of and make the best use of. How? By training your team in this respect and integrating all the best practices into your organization's specific workflow so that they turn into... routine: adding properly descriptive ALT texts   using <h1>, <h2> heading tags for creating perfectly structured flows of content etc.   Complying with the accessibility standards, adopting all these best practices and, overall, making the web equally accessible and usable for everyone, will only require an certain investment of time (at the beginning) and... attention! No need for complex technologies or special skills acquiring for you to invest in! Don't you agree? ... Read more
Adrian Ababei / Sep 07'2017
Create a Drupal Image Gallery with Colorbox module
Web design trends may come and go, yet a visually-appealing image gallery never gets outdated! So, learning how to create a Colorbox Drupal image gallery in Drupal 8 is crucial if you aim to “dazzle away” your visitors! And before we delve deep into our step-by-step guide on putting together your gallery, we feel like stressing this out: Colorbox for Drupal 8 is an image field formatter in entities and views! Nothing less, nothing more! But one that: pairs with the Insert module easily incorporates image styles and image field it's ideally customizable   Now let's get straight to the core of our tutorial, which will take you from installing to key setups, to customization and all the way to theming your Drupal image gallery with CSS: Step 1: Install The Colorbox Module and Its Libraries Installing Colorbox will be a two-step stage, in fact: First, you download and install the module itself Next, you install the resources-loaded library that your module won't actually work without And it seems that “2” is your “lucky number” in this process, for there are 2 possible ways of installing the Colorbox module on your Drupal 8 site:   you either download it to your PC, then navigate to the “Extend” page and hit the “Install new module” button or you right-click the module's download link, copy its location, paste it on your Drupal 8 site's “Extend” page (logging into your admin panel, obviously) and then... hit the “Install new module” button The choice is yours, the result is the same! And you're almost done! “Almost”, for you still need to install your library in the “sites/all/libraries” folder on your Drupal site. Just access the same link on Drupal.org, go to “Dependencies” and click on the first link that you have there: “The Colorbox plugin 1.x“ Luckily, Drush saves the day, once again (and your time, as well) providing you with a simple command to install your library: drush colorbox-plugin. Easy peasy! Note: since we're at the installing phase, we seize the chance to suggest you go ahead and install a Bootstrap-based theme, as well!   Step 2: Create Content for Your Future Drupal Image Gallery Now that everything's successfully installed on your computer and ready to be leveraged, let's create some content for our virtual gallery, shall we? Here are the easy steps to take: Structure > Content types Create a new content type for your Colorbox image gallery Set up a new Image field for your newly created content type  Now it's time to run a quick test on our gallery and you'll need content for this; “dummy” content accepted, too!  But first things first: name your new gallery! Then manually upload some of the images that you've already prepared for your gallery or use the Devel module for generating dummy content. News alert: you get to leverage the MultiUpload option added to Drupal 8 and enter all your images at once (instead of one at a time, like we used to do it)! Now let's go to the next key step of this tutorial on how to create a Colorbox Drupal image gallery in Drupal 8: creating the image style!   Step 3: Configure The Image Style Now have some fun configuring those images to your liking: Navigate to Configuration > Image styles (it's right under “Media”) Name your image style Hit the “Create new style” button   Great! Next, it's time you added a new effect to your newly created image style so that your images get sized the way you need them to. For this: Go to Effect Select the Scale and Crop effect setting the width and height of your choice Hit “Update Style”   Step 4: Put Together a View When You Create a Colorbox Drupal Image Gallery You must be looking at the images in your gallery getting all piled up one under the other right now, with... no Colorbox effect whatsoever! No need to despair! It's perfectly predictable and easy to “fix”: you just need to create a view: Structure > Views > Add new view! Note: once you choose your new content type to keep in mind to select the “Gallery” type and to have your block displayed as a “View”, not as a “Page”!   Next “Add the Field” for your image. Then: Enter your class type: Block > Style Options > “Row class” Name your class: Block > CSS class > CSS class name(s) And finally “Save” your view   Step 5: Place Your New View/Block And it's time you placed your newly formatted block (or “block displayed as a view”, if you prefer), a step you can't overlook when you create a Colorbox Drupal image gallery:  Go to Structure > Block layout Hit the “Place block” button and select your new block   Note: your view might not look exactly visually-enchanting right now. Yet, no need to worry, for we'll be applying CSS to it later in this tutorial. Also, at this stage of the process, you can't preview it in Views; you can only visualize it once it's live, on your website.   Step 6: Make The Due Adjustments to Your View  Since your view is not yet “ready to be shown off to the world”, you need to go back and edit it:   Choose the “Content: title” field > “Rewrite results”: here type in your title tag as {{ title }} (you'll then be able to style the title text and to move it, as well)   Choose the “Content: image” field> “Formatter” field > set it to “Colorbox” > “Image style for content”> set it for the image style that you've already created at Step 2   Step 7: Add Some CSS Styling  And it's about time that you “beautified” your new Colorbox gallery! Define the way your images and text will get displayed by theming it with CSS! For instance: you might fancy its title to be displayed over the images in your gallery, as a caption.  The location of your CSS file will depend greatly on the theme you'll choose to use! The END! How about putting into practice all these info, tips and tricks here to create a Colorbox image gallery in Drupal 8? One to upgrade your current content and to impress your site's visitors with!       ... Read more
Adrian Ababei / Aug 25'2017
Which Drupal 8 Ecommerce Modules Are Truly Indispensable to Your Site? 
Would you settle for out-of-the-box functionality and still dare to “dream big”? To aim at above-the-average conversion rates on your Drupal ecommerce site?  Or are you determined to go beyond the “by default” set of features and to supercharge your online store with some extra power, too? With a couple of additional Drupal 8 ecommerce modules, as well? And it's only then that you'll feel entitled to hope for “truckloads” of online shoppers! Now if the second scenario best fits your strategy, then you must probably be slightly overwhelmed right now as you dig through the wide array of modules for Drupal ecommerce sites.  How do you avoid “stacking” non-essential Drupal 8 modules on your website? How do you filter them and “extract” only the “bare essentials”, the ones that shouldn't miss from your ecommerce site if you have big plans for it? You use our list here below for sorting them out, that's how!    1. Drupal Commerce  Take it as your site's transition from a basic online store that pretty much just... takes orders, to a fully-fledged, feature-rich and perfectly equipped ecommerce “machine”! And this “transition” is actually made possible thanks to a heavy “arsenal” of features and functionalities that the Drupal Commerce module supercharges your site with. Let's list just the most notable ones of them:   it enables you to have multiple payment gateways   it integrates social media   it comes with mobile responsiveness capabilities   it enables you to display international currencies   it empowers you to create product types having tailor-made attributes    it grants your web designers more freedom   it's PCI compliant (your servers won't ever store your customers' credit card details)   it makes “joggling with” dynamic product displays possible   And the list is actually a never-ending one. It's a multi-purpose, “Swiss army knife” type of module (or “cluster” of sub-modules?) that covers all aspect related to:   products  orders customers payment processing   If you dare to go big, to build out a large-scaled website, to go international, as well, then this module shouldn't miss from your own “arsenal” of essential Drupal 8 ecommerce modules!    2. Ubercart Now if you want to start small (right away) and grow big, then Ubercart makes the perfect Drupal e-commerce solution for your strategy! It will help you get your basic shopping cart system up up and running in no time! Take it as a basic online shop “kit” that you can assemble hassle free! And when we say “online shop” we do refer to a wide variety of ecommerce industries that a Ubercart-powered website can serve:   digital downloads selling physical, shippable goods  subscription billing services   … and it's ideally easy to administer it, as well! Once you've set up your online store, you get to instantly “harness its power”, to use the entire plethora of Ubercart features at its full potential:   manage products and orders   keep track of your stock levels with a simple mouse click   create configurable product catalogs   incorporate your favorite payment system (and even add a whole “bunch” of them, that your customers can choose from)   generate product and customer reports   add multiple images to each one of your products   set up an automatic organizer for your items   display shipping quotes   Note: by far the most notable Ubercart feature is the one-page checkout functionality. And we all know to what extent a simplified, just-a-few-steps check-out process can positively impact UX and, therefore, the sales, too, right?   3. SEO Checklist: One of the Must-Have Drupal 8 Ecommerce Modules  So let us recap! You want:   a module that should instantly supercharge your site with all the needed functionality that would turn it into a powerful sales-generating “machine”   another Drupal module that could help you set up your store hassle free, providing you with all the needed features in the form of a kit to put together   Yet you'd end up with nothing but a “deserted” site, that no one would visit (for no one would know about it) if you didn't have your on-page SEO in place, right? And since “SEO” sure means a never-ending “to do” list, what more convenient way to take care of your ecommerce site's SEO than by actually... checking off a list? A functional list presenting you with all the tasks you need to carry out! Guess-working is out of question, maybe hiring a team of SEO “gurus”, as well, and venturing all by yourself into the “deep see of SEO possibilities” doesn't sound like a strategy. Therefore, installing and leveling this module's “convenience” and superpower is a must! Haven't you “sprinkled” enough (proper) keywords across your piece of content? Have you entered the right title tags? Have you chosen a riskily lengthy title?  When in doubt, let the SEO Checklist module show you the right way to optimize your site! When you've missed to complete a certain SEO task, the same module will instantly signal it to you! Moreover, it's regularly updated! So, you don't need to worry about being left behind Google's algorithm changes. Your list of tasks to check off will get automatically adjusted to those changes! Note: not only that your SEO checklist “warns” you about the wrongly completed or missed tasks, but it enables you to keep a close track of your work, as well. To closely monitor your progress! Take it as more than just one of the indispensable Drupal 8 ecommerce modules: take the Drupal SEO Checklist as a “handbook” including all the best SEO practices that ensure you a place right into the spotlight on the search engines' stage!   4. Adsense Thinking of running Adsense adverts on your Drupal 8 ecommerce site? There's a module for that! Practically what Drupal Adsensde module does is providing you with the needed “kit” of add blocks that you can then easily move around and display on your site to your liking. It even enables you to point out the roles that it should disable those ads for! Note: do keep in mind that you'll need to sign up with Google Adsense first things first, before you go ahead and trigger this module's functionality on your site!   5. Currency Now let's go back to your “go international” plan! You're now facing a whole plethora of challenges, ranging from “going multilingual” to... displaying your product's prices in each one of your visitors' currency, right? Well, you know there's always a module in Drupal for pretty much every functionality you need. And currency is no exception! The Currency module is one of those Drupal 8 ecommerce modules that “encourages” you to keep dreaming big! What it does is what its name says:   it displays your prices in multiple currencies, along with relevant currency information, too   it boosts your site with a currency conversion functionality   And it looks like we've reached “the bottom” of our list including all the “can't live without” Drupal 8 ecommerce modules! How does you own  list of “bare essentials” modules look like? Does it include other modules indispensable to your online store, as well?  ... Read more
Adrian Ababei / Jul 21'2017
5 Contributed Modules for Building Your Drupal 8 Multilingual Site 
Do you want to stick to the basics or go beyond it? In other words: would you offer your visitors the same multi-language experience that they would get on any other Drupal 8 multilingual site or are you ready to take multilingualism to the next level and enhance it with an extra contributed module or two, as well? Especially when you have an "overwhelming" collection of multilingual contributed modules to choose from for picking precisely the one(s) that cover your site's specific needs! Since going multilingual doesn't have to mean using the same "recipe of modules", irrespective of the Drupal 8 site's particularities, right? This being said, let us reveal to you the list of 5 Drupal 8 contributed modules, each one loaded with multilingual functionality, that you might want to supercharge your  website with:   First: A Few Words About the Out-of-the-Box Multilingual Functionality in Drupal 8 You can easily consider yourself a spoiled one: Drupal 8's been built with multilingualism in mind! Therefore, if you would have had to mix and match an entire "array" of contributed modules for building a basic multilingual website in Drupal 7, it only takes 4 CORE modules to build a perfectly functional one in Drupal 8! You practically get multilingual functionality "by default"! A huge jump-start! And now speaking of this multilingual pre-built “kit”, made of 4 key modules, let us enlist them for you:   Language Interface Translation Content Translation  Configuration Translation    Note: Upon building your multilingual Drupal 8 site we advise you to go for another one of the languages available on your website instead of English; this will automatically trigger the installation of some key multilingual-friendly modules. And now, let us proceed with our list of contributed modules that will help you tailor Drupal 8's multilingualism to your own site's specific needs:   1. Language Cookie  A more than useful tool whenever you need to identify your visitors' mother languages.  And how does it “detect” it for you? Easily: basically it adds a new “cookie” field to the Language Negotiation settings. And therefore, the language on your site will instantly be set in accordance with this extra cookie.  As simple and yet as effective as that! You can just “relax” knowing that the languages on your Drupal 8 multilingual site will automatically get “paired” precisely with their native speakers.   2. Localization Client  Need to fix or create and add translations to certain pages on your website? Don't worry, you definitely don't need to sift through all your pages and take them one by one for finding precisely those with missing or “flawed” translated content. You simply install and enable this module here and harness the power of its on-page translator editor. Just navigate around your pages precisely to your target one(s)... edit/add your translation... save it and... that's it!   3. IP Language Negotiation, A Key Module for Your Drupal 8 Multilingual Site “Kindred” with the Language Cookie module, we could say, since this one, too, helps you detect your visitors' mother languages. It's just the means used for this "language detection" process that differs: the IP Language Negotiation module “teams up” with the “country language detection” module, ip2country,  for that. By detecting the countries that your visitors access your multilingual Drupal 8 site from it instantly displays the content on your website in their own languages.   4. Language Fallback  Call it a “safety net” or a “plan B” module if you like! Take this use case scenario, for instance: “You're using multiple regional variants of a language of your website: Welsh English and Scottish English, let's say. Well, first of all, you define your site's default language, English, then define its 2 “variations”: Scottish and Welsh. Whenever a string needs to get translated, the module will first look for the Scottish translation, then for the Welsh variant.” Take it as an “insurance policy” that if something unexpected happens, meaning that a certain translated string can't get delivered to your visitors in your custom language, they will always get the requested content in another familiar language/dialect (the “fallback language").   5. Language Selection Page  Instead of striving to “detect” your site visitors' mother languages, how about empowering them to choose the languages they'd like to see your site's content translated to? And how does this module empower them to do that? By presenting them with a landing page where they get to choose their preferred languages from those available on your Drupal 8 multilingual site. Now how does “placing the power of choice into your users' hands” benefit your website?  It's a helpful strategy to adopt whenever you don't have enough relevant data on your site users, for instance (you don't know what each visitor's mother language is, what countries they access your website from, etc.) Or it could simply be the fact that you don't want to influence their choices. “Empowering the end-user” is Drupal's philosophy after all. And even so more Drupal 8's, right?   This is our selection of contributed Drupal 8 modules “loaded” with multilingual functionality that our team has carefully put together for you! How does your own “arsenal” of multilingual-friendly modules look like? ... Read more
Adrian Ababei / Jul 12'2017
The Group Module: Setting Up User Groups Is Now Easier Than Ever
Back in the old days, when we didn't have the Group module to “save the say”, whenever we needed to set up a certain user group hierarchy and a more or less intricate structure of group roles, with different levels of permission and different types of content to be accessed by each one of these groups, we used to call the Organic Group module for “help”. It used to be the one and only solution to our “challenge” actually. Yet, no matter how familiarized we already are with it, we still cannot ignore its “flaws” and “aspects that could be improved” (that we'll be tackling in this post in a bit). And so, with an enhanced Drupal site builder's and developers' experience in mind and due to the context of a slightly flawed Organic Groups module, the Group module was built! A so much more than just an “alternative”: a soon to be the norm whenever developers deal with user groups on Drupal social sites. Now let's give you some key arguments for why you should consider using it for creating and managing user communities on your website and some guidance on how to harness its full power:   First of all: Which Are The Contexts of Use for the Group Module? Which are those “scenarios” that call for the creation of user groups with shared content and shared permissions precisely to that specific content? Let us point out some of the most common ones:   1. a (high) education Drupal website, where a professor having an admin role, too, can group his own students into communities and share certain resources, certain information with them exclusively while keeping them hidden from the other visitors on the site   2. a library with multiple branches, where the staff from a physical location is given access to specific dedicated sections and, therefore, to specific content only on the library's website   3. a speaker's website where he/she also organized online conferences and needs to group the participant and grant them (paid or not) access to informative content and resources     What Makes It a Better Alternative to The Organic Groups Module? You can't ignore the Organic Groups module's “sore points”, even if it might have turned into a “familiar” tool to use each time time you're in a “setting up granular permission” type of situation:   it hasn't always leveraged Drupal's new functionalities in core   it doesn't “spoil” us with API   And now, let's “dig up” all those improvements brought to the Group module which easily turn it from “just” an alternative into a replacement module for Organic Groups:   1. Better Structured Data “Tempting flexibility”, that's how we could call this improvement.  Remember how in the Organic Groups module everything was intertwined, interconnected? User groups had to be attached to a node or a taxonomy term or to a... Well, not anymore! In the Group module, each user community is an “independent” entity and this is where the “tempting flexibility” derives from.   2. A More Intuitive UI And this is, no doubt, one of the Group module's most heavy weighting improvements. We're talking about Drupal after all, with a “culture of empowerment”, so a clear and super intuitive UX was a must! Practically you'll be provided with everything you'll need to use, served to you right on a “silver plate”: once you've installed the module, simply look for the “Group” section “neighboring” the “People” section! Your admin toolbar will provide you with all the tabs/options that you need to navigate through and select from. Therefore, don't expect a whole “marathon” of tabs and pages and sub-tabs that you would need to swim through for configuring your Drupal 8 site's user groups! A simple UI grants you a “fewer clicks” experience!   3. It Provides Group Roles to Choose From and Assign To It's a “new” concept that this Drupal 8 module introduces. Well, almost new, for these roles are very similar to Drupal's user roles and their functionality is the same. Except that they're applied to group types instead (not to individual users)! They fall into 3 types:   member: a member of the user group with a user account on the website, too   outsider: not a member of that specific “community”, yet he/she has an account on the website   anonymous: has no user account on the given website   4. Site builders Can Define Permission Sets for Each Type of User Group Basically, this functionality that the Group module provides site builders with eliminates the risk of group members “not playing fair”. The set of permissions can be configured and then assigned to each group instance.   5. An Improved Developer Experience  The Group module in Drupal 8 “spoils” Drupal developers with a well-documented code.This way they get quickly familiarized with it and do the right tweaks for extending the module's functionality. And now speaking of its extensibility feature, we have some really good news /spoiler alerts for you:   you get the Group Node module, too, out-of-the-box, once you install Group in Drupal 8; this enables you to quickly add your nodes and grant access to that specific private content exclusively to the members of the group that you will have created   it “plays well” with other Drupal 8 modules, too   thanks to its plugin system, it turns the writing of a module into a matter of just a few lines of code; developers get to easily enhance its functionality     How to Use the Group Module in Drupal 8? The whole step-by-step process, from the very first step, where you enable the module itself (a 3-in-1 module, actually), to the very last one, where you add your groups, is very well detailed HERE. What tabs to click on, what drop-down menus to unfold and selections to make, it's all there. So, we won't go on rephrasing the whole tutorial in this post, since you'll find all the steps (screenshots there included) that you'll need to complete explained there:   you install and enable your module   you set up your group types (for instance: content editors, publishers, content creators, interns)   you link group types to content types, too   you pick groups from the group types that you will have created as step 1 and populate them with members   There are a couple of key aspects of this Group module installation, enabling and properly configuring process that we'd like to draw your attention to:   once you get started with the installation, you'll be “warned” that you need to rebuild your permissions   you get to create custom fields for each one of your group types (it's you who'll decide what personalized content goes there: that specific user community's logo, its location, etc.)   And that's it! You can now step into and enjoy a new era of user groups creating and granular permission granting made easy!  Have you tried the Group module on your Drupal 8 site yet? ... Read more
Adrian Ababei / Jun 08'2017