Planet Drupal

Subscribe to Planet Drupal feed - aggregated feeds in category Planet Drupal
Updated: 51 min 26 sec ago

Liip: A quick look on the current state of Drupal 8 (ecosystem)

Thu, 07/07/2016 - 13:21

Eight months ago Drupal 8.0.0 was released. Exciting news for drupalists. Since then comparing D8’s features to its predecessor is a topic in daily business. «Can drupal 8 do what we can do now with 7 today?”. After playing around with D8 i get the feeling some crucial features are missing. Dries invited people to tell ”why we not use or migrate to drupal 8” – and got a clear answer: A majority of drupalist (60%) are waiting for certain modules. So the follow up question would be what are these modules.

On the fly my top 10 wishlist would be:

  • pathauto
  • token
  • webform
  • metadata
  • views_bulk_operations
  • flag
  • rules
  • xmlsitemap
  • redirect
  • search_api

Today it seems quite difficult to get a good overview of D8 ecosystem. Also because some module development moved to github to have a better collaboration tool. I was irritated to see no D8 version of the webform module in the download section on  – That’s a module with 1/2 million downloads for D7. Comments on this issue gives some answers. Without committed maintainers from the beginning the porting takes much longer. A highly complex module like webform probably needs almost complete rewrite to fit into the new core of D8. Porting module from D7 to D6 was much easier. For forms we could use in some cases the core Form API, core contact forms or the eform module. But our clients would most likely miss out on the experience of D7s webform module.

Under the hood Drupal 8 core changed significantly. Symfony2 for example is now playing its music to give us new possibilities. I guess in some cases there are new solutions we have yet to discover. From a suitebuilder point of view, D8 is delightfully similar to what we know from D7. However, it will take some getting used to not trying to add the old modules we know to this new architecture.

In the end the importance of a variety of mature modules that play together nicely is crucial when it comes to efficiency, maintainability and stability of a project…

“I am confident that Drupal 8 will be adopted at “full-force” by the end of 2016.”
Dries Buytaert

Drupal is a registered trademark of Dries Buytaert.

Categories: Elsewhere

Srijan Technologies: Docker: A Microcontainer for Faster Software Workflows

Thu, 07/07/2016 - 11:54

Docker, a container-based technology which I just came across, is great for setting up environments. It was first introduced to the world by Solomon Hykes, founder and CEO of dotCloud at Python Developers Conference in Santa Clara, California, in March 2013. The project was quickly open-sourced and made available on GitHub, where anyone can download and contribute to it.

Containers vs. Virtual Machines

You might be wondering, "What is the difference between Containers (like Docker) and Virtual Machines"?

Well, virtual machines (VM) work by creating a virtual copy of a computer's hardware, and running a full operating-system on that virtual hardware. Each new VM that you create results in a new copy of that virtual hardware, which is computationally expensive. Many people use VMs because they allow you to run an application in a separate environment which can have it's own versions of software and settings, which are different from the host machine.

On the other hand, container technologies like Docker, isolate the container's environment, software, and settings, in a sandbox; but all sandboxes share the same operating-system kernel and hardware as the host computer. Each new container results in a new sandbox. This enables us to pack a lot more applications into a single physical server as compared to a virtual machine.

Docker containers are isolated enough that the root process in a container cannot see the host machine’s processes or filesystem. However, it may still be able to make certain system calls to the kernel that a regular user would not, because in Docker, the kernel is shared with the host machine. This is also why Docker containers are not virtual machines and thus a lot faster.

Note, however, that Docker relies on a technology which is only available in the Linux kernel. When you run Docker on a Windows or Macintosh host machine, Docker and all it's containers run in a virtual machine

That said, there are two projects trying to bring Docker-style containers natively to OS/X , Dlite and Xhyve. But last I heard, these projects were still very experimental. So consider yourself warned.

When you are done with a container, on a Mac host machine, it’s probably good to suspend the containers, because they run in a virtual machine and that has a lot of overhead. But on a Linux host machine, there would be no need to suspend them because they would not create (much) additional overhead (no more than, say, MAMP).

Docker is a tool that promises to scale into any environment, streamlining the workflow and responsiveness of agile software organizations.

Docker’s Architecture

This is a diagram explaining the basic client-server architecture which docker uses.


Important Terminology

  • Docker daemon: A Docker engine which runs on the host machine as shown in the image above.
  • Docker client: A Docker cli which is used to interact with the daemon.

Workflow components

  • Docker image: A read-only disk image in which environment & your application resides.
  • Docker container: A read/writeable instance of an image, which you can start, stop, move, and  delete.
  • Docker registry: A public or private repository to store images.
  • Dockerfile: A Dockerfile is instructions for how to build a single image. You can think of a Dockerfile as kind of Vagrantfile, or a single Chef cookbook, or an Ansible script, or a Puppet script.

Because Docker allows you to run so many containers at the same time, it has popularized the idea of microservices: a collection of containers, each of which contain a single program,  all of which work together to run a complex application (e.g. Drupal).

Taking Drupal as an example, every Drupal site has at least two dependencies: an HTTP server (Apache, Nginx, etc.) running PHP; and MySQL. The idea of microservices would involve packaging Apache+PHP separately from MySQL; as opposed to most Drupal virtual machine images which bundle them together into the same VM. For more complicated setups, you could add another container for Solr, another container for LDAP, etc.

For me, the main advantage of using microservices is that it’s easier to update or swap one dependency of an application without affecting the rest of it. Another way of looking at this is that microcontainers make it easier to modify one piece without waiting a long time for the virtual machine to rebuild.

When I was using a virtual machine on a particularly complex project, if I needed to make a change to a setting, I had to make that change in the Puppet config, then run vagrant destroy && vagrant up and wait two hours for it to tell me that the new configuration wasn’t compatible with some other piece of the system. At which point I had to repeat the two hour process, which wasted a lot of time.

If I had been using Docker (properly), then I could have just changed the setting for that one program, rebuild that program's container (5 seconds), and not have to worry that one piece of the machine needed at least Java 6 and the other piece of the machine could not work without Java 5.

Now that you know the possibilities with Docker, watch this space to find out how all this applies to Drupal.

Categories: Elsewhere

Kristian Polso: My first thoughts on Drupal 8 development

Thu, 07/07/2016 - 11:08
So on my summer holiday I decided to finally take a look at custom module development for Drupal 8. During this time I made some interesting findings, and thought sharing them would probably help others too. Note that I was determined to build a REST API module, so a lot of the findings below are regarding that aspect of development. Documentation is really lacking in parts It's kinda sad, but quite often I had trouble finding information on how to use different controllers or functions, or how to do stuff X in Drupal 8 compared to Drupal 7.
Categories: Elsewhere

Flocon de toile | Freelance Drupal: Managing media with Drupal 8

Thu, 07/07/2016 - 10:00
Media management has been identified as a priority in the last DrupalCon (New Orleans 2016). If we could have on Drupal 7 some contributed modules offering an unparalleled user experience for media management, Drupal 8 was still orphan not long ago for an equivalent solution. With the stable release of the Media Entity module, Drupal 8 now has a robust and scalable solution to offer its users a customized media management. Let's explore how to set up a media management on Drupal 8 with the Media Entity collection.
Categories: Elsewhere

Radium on Drupal: GSoC 2016 | Using Web Components in Theme Design

Thu, 07/07/2016 - 09:17
Overview My project can be seen as a mixture of tools that uses Web Components to enhance Drupal’s frontend experience. In previous weeks, I have been programmatically turning parts of Drupal into Web Components and exporting some of them. This week, I would like to talk about using Web Components in Drupal themes, and furthermore, a Web Component-driven approach for theme design.
Categories: Elsewhere

Arpit Jalan: GSOC 2016- Starting with Face Detection feature of Google Cloud Vision API- Week 6

Thu, 07/07/2016 - 07:18
TL;DR Previous week I had worked on grouping the contents based on the dominant color component in their images, if present. The work is under review of the mentors. And once, it gets reviewed, I would work further on that issue. Meanwhile, I have started developing and implementing the Emotion Detection feature of the Google Cloud Vision API. It would detect the emotion of the person in the profile picture uploaded, and if the person looks angry or unhappy, he would be notified thereof. This feature is especially important when building sites for professional purposes, as the facial looks matters a lot in such cases.
Last week, I had worked on implementing the Dominant Color Detection feature in the Google Vision API module. The code is currently under the review by the mentors. Once, they review it, I would develop further on it if it requires any changes.
Hence, meanwhile, I have started working on implementing a new feature Face Detection in an image. This feature gives us the location of the face in an image, and in addition, the emotions and expressions on the face.
I have used this feature to detect the emotion of the person in the profile picture uploaded by him/her. If the person does not seem happy in the image, he/she is notified thereof of their expressions. This is especially useful when the end users are developing a site for professional purposes, as in professional matters, expressions matters a lot.
Coming to the technical aspect, I have made use of hook_entity_bundle_field_info_alter() to alter the image fields, and check the emotions in the uploaded images. This function has been used, as we only want to implement this feature on the image fields. If the image is not a happy one, then appropriate message is displayed using drupal_set_message(). This feature also makes use of Constraints and Validators just like the Safe Search detection feature.Presently, the code is under the review by the mentors.
In addition to the implementation of Face Detection, I also worked on expanding the tests of the Safe Search Detection feature of the Google Vision API module to test other entities as well, in addition to the nodes. I have expanded the tests to test the safe search constraint on the comment entity as well.This requires the creation of a dummy comment type, adding an image field to the comment type, and attaching the comment to the content type.The image field contains the safe search as the constraint on it. This test is basically similar to the tests present in the module for the node entity.The code is under review by the mentors and would soon be committed to the module.For reference on how to create dummy comment types and attaching it to the content types, the CommentTestBase class is very helpful.
Categories: Elsewhere

DrupalCon News: Call for Content Closes with Record Submissions

Wed, 06/07/2016 - 23:38

In true Drupal fashion, we had a huge amount of proposals for DrupalCon Dublin on the last day to bring us to a record-breaking 621 session submissions.

Categories: Elsewhere

GVSO Blog: [GSoC 2016: Social API] Week 6: Facebook Widgets Buttons

Wed, 06/07/2016 - 20:37
[GSoC 2016: Social API] Week 6: Facebook Widgets Buttons Submitted by gvso on Wed, 07/06/2016 - 14:37

Week 6 is over, and we are already in the second week of the second half of Google Summer of Code 2016. We are working hard to have the Social API project ready to be used widely before GSoC ends. Furthermore, we are trying to already have some implementors, so developers can see sample modules developed on top of the Social API, Social Auth, Social Post, and Social Widgets.

Tags Drupal Planet Drupal GSoC 2016
Categories: Elsewhere

Axelerant Blog: 16 Drupal 8 Features You Should Know

Wed, 06/07/2016 - 20:00

Development started on Drupal 8 features back in March of 2011. Since then, the developer and application framework world has looked forward to the outcomes of every development, feature completion, clean-up, API completion, beta, and release candidate (RC) phase with baited breath. In November of 2015, Drupal 8.0.0 was released. Sighs of relief turned to curious murmers—what’s this all about?

Drupal 8 takes an already terrific content management framework to ever greater heights for users, administrators, and developers. There’s a seriously sharp focus on user-friendliness, but content presentation, new ways to create data structures, build APIs, multilingual capabilities, and the delivery of mobile accessibility out of the box? Drupal 8 brings those to the table too.

Looking for help with Drupal 8?

Here’s an Open Source Staffing Guide so you can find the right people faster.

hbspt.forms.create({ portalId: '557351', formId: '0e484b0e-3475-47ed-b8f5-49fa6b4cacab' });

There are 16 Drupal 8 features worth knowing.

While Symfony 2 powers the Drupal 8 backend, a lighter and faster core offers tons more capabilities for modules and themes. Plus, the Drupal 8 migration and the onward curve is significantly reduced. These changes and more are key reasons to consider that switch to Drupal 8. But I’m getting ahead of myself, here are the 16 top Drupal 8 features:

1. New Theme Engine

Drupal 8 includes a brand new theming engine called Twig, which is PHP-based, flexible, fast, and secure. It’s much easier to create beautiful and more functional Drupal websites using Twig, as its templates are written in a syntax that’s less complex than a PHP template or others while being more secure.

2. Mobile First From The Get-Go

Drupal 8 is mobile first in its approach. All the built-in themes that come with Drupal 8 are responsive, along with an admin theme that adapts to different screen sizes, and a ‘Back To Site’ button to go back to the front page. Tables fit into any screen size without a hitch, and the new admin toolbar works well on mobile devices.

3. More HTML5 Power to You

HTML5 is now more or less the de facto standard when it comes to writing web markup. The same is now available natively in Drupal 8, giving you access to input fields like date, e-mail, phone, etc., and even more functionality and compatibility with mobile and handheld devices.

4. Multilingual Ready

Drupal 8 boasts extensive multilingual features right out of the box. The admin interface has built-in translations. You can also create pages with language-based Views filtering and block visibility. Translation updates from the community are automatically facilitated.

5. Manage Your Configuration

Drupal 8 has configuration management built into it at the file-system level so that carrying over configuration elements (like content type, views, or fields, etc.) from local development to the server is a breeze. You can use a version-control system to keep track of configuration changes. Configuration data is stored in files, separate from the site database(s).

6. Easy Authoring

New Drupal 8 features bring unprecedented power into the hands of the Content Editor, with WYSIWYG editor CKEditor now bundled with the core. However, the most touted improvement remains the in-place editing capability that Drupal 8 will afford users, a result of the Spark Initiative.

Site and content creators or editors can edit text on any page without having to switch to the full edit form. Drafts are now much easier to create, and web security is now better implemented as a result.

7. Quick Edits

There’s something great about seeing something that needs changing and having the ease of access to change it—directly and quickly. Now Quick Edit is a backport of the Drupal 8 in-place editing for Fields. So if you’re logged into Drupal content is in front of you, edit the text directly for quick fixes and additions from the front-end.

8. Views Now Part of Core

Views sit high up in the Drupal module hierarchy, as it is an integral part of most website projects, and a lot is pretty much impossible without it. Site designers have used use this hitherto-contributed module to output galleries, maps, graphs, lists, posts, tables, menus, blocks, reports, and what-have-you.

With this Drupal 8 feature, Views is part of and firmly integrated with the core. The front page and several administration pages are now Views, and users will now be able to quickly create pages, blocks, admin sections, etc., and modify existing ones just as effortlessly.

9. Better Support for Accessibility

Drupal 8 has excellent support for industry standard accessibility technologies, like WAI-ARIA. ARIA Live Announcements API and TabManager are significant improvements in Drupal 8, which provide control for rich Internet applications. Bells and whistles like better font sizes, tweaked color contrasts, jQuery UI’s autocomplete, and modal dialogs go a long way towards making Drupal 8 a breeze to use.

10. Web Services Built-in

Drupal 8 now makes it possible to use itself as a data source, and output content as JSON or XML. You can even post data back to Drupal 8 from the front end. Hypertext Application Language (HAL) is implemented in Drupal 8 and makes exploitation of web service capabilities less painful.

11. Fields Galore

Drupal 8 ships with bucket-loads of field types in the core, thus taking its content structure capabilities up a notch. New field types like entity reference, link, date, e-mail, telephone, etc., aid content creation, and now you can attach fields to more content types, as well as create custom contact forms by attaching fields to them.

12. Guided Tour

Now the descriptive text is right under the help link. Users can click and then take the tour; pop-ups appear, explaining how this all works, one of the most helpful Drupal 8 features to newcomers. This user-friendly boost is well-received as it’s making the CMS easier for everyone to understand.

13. Loading Speed

Drupal 8 caches all entities and only loads JavaScript when necessary. When a page is viewed, its content doesn’t need to be reloaded again. Previously viewed content is quickly loaded from the cache. Once configured and enabled, caching is completely automatic.

14. Industry Standards

Drupal 8 aligns with the latest PHP 7 standards like PSR-4, namespaces, and traits, and uses top notch, outstanding external libraries like Composer, PHPUnit, Guzzle, Zend Feed Component, Assetic to name a few. Meanwhile, underlying Drupal 8 features modern, object-oriented code that’s the order of the day, by Symfony 2.

15. JavaScript Automated Testing

Automated testing is not possible for front-end, so JaveScript (JS) automated testing is now possible with Drupal 8.1. Now QA’ers can test the JavaScript front-end automatically, saving time and making continuous integration that much easier.

16. Big Pipe in Core

With Big Pipe part of Drupal core, developers can optimize the site load performance for the end-user significantly. While this feature has nothing to with actual performance and is only perceived, it’s a great feature to have since end-user is able to see a difference in site load times.

Enough Drupal 8 features to think about?

These 16 Drupal 8 features are some of the most important reasons that this upgrade is so worth celebrating; it’s the collective work of over 3,000 contributors. But more importantly to you, this might be that big, bright answer you’ve been searching for.

Got Drupal 8 your mind? Tell us why. jQuery(document).ready(function() { var cta_577d522de2e3e = false; jQuery(document).scroll(function() { if ( typeof ga !== 'undefined' && typeof isScrolledIntoViewPort !== 'undefined' && jQuery.isFunction( isScrolledIntoViewPort) && isScrolledIntoViewPort('.cta_577d522de2e3e') && cta_577d522de2e3e == false ) { cta_577d522de2e3e = true; ga('send', 'event', 'cta-wide', 'view-drupal-migration', 'Tell us why'); } }); }); More Drupal 8 resources:

This article was originally published in July, 2014. It has since been updated.

This article 16 Drupal 8 Features You Should Know by Jasper Levi first appeared on Axelerant - Axelerant: Expert Drupal Development, Support, & Staffing.

Categories: Elsewhere

Miloš Bovan: Week 7 of GSoC ‘16: Mailhandler updates

Wed, 06/07/2016 - 19:47
Week 7 of GSoC ‘16: Mailhandler updates

The coding period of Google Summer of Code 2016 has been continued after midterm evaluation. After splitting the Mailhandler analyzer into more specific and independent analyzers for different parts of an email message (sender, entity type, PGP, body, footer), last week I was working on providing test coverage for those.

The current tests are mostly written as kernel tests because of their speed of execution. MailhandlerNodeTest represents an integration test for the node handler and tests the whole process of Inmail analyzers and handlers.

Newly written tests:

  • SenderAnalyzerKernelTest - the use case when a user is identified and when a user is not identified
  • PGPAnalyzerKernelTest - test assertions of PGP-signed messages which inlude body, sender etc
  • FooterAnalyzerKernelTest tests plain mail messages with and without the message footer
  • EntityTypeAnalyzerKernelTestcovers entity type and bundle pair of the mail subject.
  • SenderAnalyzerKernelTest covers the mail sender detection using From mail header field.

As they were all similar in the implementation, AnalyzerTestBase was added. It contains the list of required enabled modules and set up configuration for easier analyzer-specific work. 

Regarding the web tests, I extended MailhandlerWebTest with "Manage display" assertions of GPG key field which can be displayed via the public key, GPG key's fingerprint or as both properties.

Also, I would like to update you on status of related Inmail issues:

The plan for the next week seems quite interesting. Besides the mentioned Inmail issues, I will be working on adding support for creating comments by sending an email. All analyzers implemented in the previous week will be used as a part of new comment handler. I am looking forward to enriching Mailhandler with one more feature.



Milos Wed, 07/06/2016 - 19:47 Tags Drupal Open source Google Summer of Code Drupal Planet Add new comment
Categories: Elsewhere

Into my Galaxy: GSoC’ 16: Port Search Configuration module; coding week #6

Wed, 06/07/2016 - 19:06

Google Summer of Code (GSoC) is into the next phase of coding after the mid-Term evaluations which got over by June 27th. This also reminds students to speed up the coding activities to complete the projects within the schedules provided in the proposal.

I am porting Search Configuration module to Drupal 8 as part of this year’s summer of code. GSoC is definitely turning out to be a venue for the young students from universities around the world to work on real-world projects under the experience of well-known developers, learning new technologies, making use of version control systems, with regular meetings and finally building up a software which is going to help a large section of the society.

I blog regularly, sharing my project progress. If you would like to have a glimpse of my past activities on this port, please visit this link.

Drupal 8 has introduced the concept of Html twigs in place of the PHP templates. So, the PHP template files have to be now ported to the Html environment. The .tpl.php template file is replaced by the .html.twig file for the module templates.  Templates are simply text files which can give outputs in Html, Latex, CSV or XML formats.

To print some data, we usually take the service of echo statements in PHP.  The print statements are replaced by {{ }} in Html twigs.

<?php echo t(‘Let’s start the process.’); ?>

is replaced by:

{{ ‘Le’s start the process’|t }}

The variable names have to be converted to simple names. For instance,



{{  title }}

The PHP logics have to be replaced by {% %} syntax. This is applicable to all the logical statements.

<?php if ($page[‘title‘]): ?>


<?php endif; ?>

is transformed as:

{% if form %}


{% endif %}

Also, the variables are replaced by simple names.

<?php if ($logo): ?>

is transformed as:

{% if logo %}

These were some of the basic transformations to get started into created the HTML twigs.The use of the Html twigs has made the templates look very simple and easily understandable. It is really easy to get the templates converted to the Html twigs. This is always one of the crucial requirements of porting modules from Drupal 7 to Drupal 8.

Stay tuned for further updates on this port process.

Categories: Elsewhere

Zivtech: Drush: What You Should Know

Wed, 06/07/2016 - 16:00
Every release of Drupal requires its own version of Drush. There are some, but not many, changes for Drush moving from Drupal 7 to Drupal 8. Drush 8 can be used to control the new configuration management system. One change to look out for is that Drush cache-clear (cc) has joined forces with Drush registry-rebuild (rr) to become Drush cr, or cache-rebuild, in Drupal 8.
Understand Drush Short for Drupal Shell, Drush is a tool that allows developers to work on the command line, an interface that has both benefits and disadvantages to the Drupal UI (user interface). Some tasks, such as building Views, can be done faster in the UI, and some tasks, such as exporting views to a feature, are done faster on the command line. Drush is less of a replacement for the UI and more of a companion to it.

You might even say Drush stands for Drupal Rush because it speeds up the process so nicely. Basically, Drush offers a way around the Drupal user interface. You no longer have to click through the Drupal menu when you use Drush.

Using Drush, developers can import and export databases and features, clear caches, and migrate content from data feeds. Drush can also install modules, run security updates, and run database updates. Developers can also write and implement their own Drush commands.

To start using Drush, there are many different ways to install the setup. One way you can proceed is to install a LAMP stack (Linux, Apache, MySQL, and PHP/Python/Perl), then install Composer, and finally you can install Drush. Here’s a good tutorial.

Sound like a lot of steps? Maybe, but once you use it, there’s no going back. Dan Zinkevich, one of our staff developers, says, “I use Drush a lot during development. There are times when I can go a long time without opening my browser because all the commands that I need are available via Drush.” Dan recommends that Drupal developers learn Drush immediately, especially if they are committing code to a database.

Learning to use Drush is a bit like learning a language. There are dozens of commands. And there are also many plug-in commands from third party sources. Here’s a helpful site that breaks down commands by Drush version, and provides documentation for each.
Go Faster. Add Fetcher. If you build a lot of sites, then you end up with a lot of repetitive tasks. There are commands a developer runs repeatedly. Zivtech’s VP of Engineering, Howard Tyson, is a major fan of automation. He created Drush Fetcher, an extension that automates the process of provisioning a Drupal site on a local development environment or a server. “It used to take 30 to 45 minutes to set up a site, and now it takes 3 minutes,” explains Howard. “Fetcher doesn’t take away the cognitive load. It takes away the monkey work.”

Fetcher can set up the Drupal root, fetch the code, create a database for the site and a user with management privileges, update permissions, create symlinks, set up server configuration files, and generate Drush alias files. Fetcher also supports post installation tasks.

Drush and Fetcher are not about cutting corners. They simply bypass the web interface of Drupal. You don’t have to click through the menu to get the actions you want. And that’s a huge time saver.
Categories: Elsewhere

Mediacurrent: Ramping Up with the AMP Module in Drupal 8

Wed, 06/07/2016 - 15:14

By now, you should have heard about the latest buzz that is Google AMP - but if not, check out our previous introductory post to learn about the benefits (and potential pitfalls).

Categories: Elsewhere

Deeson: 24 things about Drupal 8 every CTO should know - Part 2

Wed, 06/07/2016 - 11:13

If you’re a CTO who’s thinking of migrating to Drupal 8, you might be dealing with a number  of questions about what this change means for your business. This week, we’re continuing to answer all of your lingering queries. In part 1 of this series, we covered planning for Drupal 8, and some important implications for Drupal 7. This week, we’re going to delve into the hot topic of Drupal 8’s new functionality, as well as some crucial issues relating to the front end. Are you sitting comfortably? Good, then we’ll begin.

New functionality in Drupal 8 9. Does Drupal Commerce feature in the Drupal 8 release?

Drupal Commerce is not maintained by the Drupal core team but maintained by a company - Commerce Guys. They have a Drupal 8 version of the module in active development.

The new Drupal 8 version is described as offering significant improvements over the old versions of Drupal Commerce, including better add to cart facilities, faster product creation and more intuitive product administration.

10. Are multilingual sites handled differently in Drupal 8?

Previous versions of Drupal had only partial support for multilingual websites. Multilingual projects usually involved stitching together a number of contributed modules to provide support for various elements of Drupal to be translated and each worked in a slightly different way. This inconsistency caused many projects budget and deadline pressures.

There has been a significant overhaul of multilingual capabilities in Drupal 8. Translations of all core elements are done in a sane and consistent manner in Drupal 8 core.

The installation system natively supports 94 languages. There are simple processes for installing new languages and language updates. The administration interface is entirely translatable. Assets, such as files or images, can now be assigned to a language or shared between languages.

11. How is the content editor experience different in Drupal 8?

Drupal 8 ships with the popular CKEditor WYSIWYG web editor. This means this tool is supported as standard and so will be maintained to continue to integrate well with it.

The new NavBar module in Drupal 8 core offers a clean administration tool for accessing all sections of the administration interface.

Drupal 8’s quick edit feature allows content editors the ability to do simple editing and changes in the page instead of loading a form specially for editing content.

On the horizon there are improvements to media handling in Drupal 8 as well which will give Drupal 8 a superior interface for managing assets such as files and images but this did not make it into core.

12. Does Drupal 8 handle complex user and content permissions any differently?

Under the hood the content access permission system has been rewritten in Drupal 8 but the behaviour for content administrators is much the same as before.  

It is expected that contributed modules will be providing the fine grained additional permission control they did in previous versions of Drupal. The popular choice in previous versions of Drupal for this was Organic Groups, which hadn’t been refactored to match more recent core versions. To provide stable functionality in Drupal 7 we have been using the Group module instead, we are planning to create a Drupal 8 release too.

The front-end and Drupal 8 13. Does Drupal 8 change theming and front-end standards approach?

In Drupal 7 PHP based templates made it too easy for developers to place logic in their templates which should have been managed in modules. Over time, templating code which was not strongly controlled would become fragile and it would be hard to find bugs and add new functionality.

Theming has changed significantly with the introduction of the Twig templating system in Drupal 8. Developers will now be able to write almost all markup in Twig templates rather than PHP code in functions. Though there will be an initial investment in learning required by development teams, the long term results will be cleaner templates which are more maintainable.

14. How is accessibility handled in Drupal 8?

There have been some improvements made to accessibility in Drupal 8.

WAI-ARIA landmarks, live regions, roles & properties are included which improves the accessibility of dynamic areas of the page. Drupal’s Form API now puts errors in-line rather than having the errors displayed in different regions to the form element which had the input error.

There is a JavaScript alert for audible announcements allowing site builders to include timely messages specifically for aural users. A new Tabbing Manager ensures a logical ordering to accessing page elements for users not using a mouse.

A general approach in Drupal 8 is to use standardised libraries to deliver functionality rather than trying to develop well known and well developed functionality from scratch. By working with library developers, best-of-breed technologies can be developed in partnership with a larger community.

One of the effects of this is that accessibility for a particular function can be developed by teams of people who really understand that field. A good example here is using the jQuery UI library to provide autocomplete functionality in Drupal 8. The Drupal community can now help the jQuery UI community in producing a better, more accessible tool.

We hope you’ve found this post useful and that it’s answered some of your most pressing Drupal questions. In the next part of our mini-series, we’ll be covering Drupal 8 in the enterprise, as well as architecture changes and those all important security issues.

If you’d like to receive the next part in the series, it’s simple: just sign up to our newsletter below.

Categories: Elsewhere

Drupal core announcements: Drupal 7.50 core release on Thursday, July 7

Wed, 06/07/2016 - 08:54

As previously announced, there will be a Drupal 7 core bug fix/feature release this week (alongside the upcoming Drupal 8 patch release).

The release will be labeled Drupal 7.50 (which is a version jump compared to the current 7.44 release); this is to indicate that this release, although still part of a stable release series, is a bit larger than normal and makes a few more changes and new features available than normal.

The release is expected on Thursday, July 7 to give a bit more time for final testing.

The final patches for Drupal 7.50 have been committed and the code is frozen (excluding documentation fixes, fixes for any regressions that may be found in the next couple days, and changes/additions to "experimental" features not yet intended for production sites). So, now is a wonderful time to update your development/staging servers to the latest 7.x code and help us catch any regressions in advance.

There are six relevant change records for Drupal 7.50 which are listed below. This is not the full list of changes, rather only a list of notable API additions and other changes that might affect individual sites or particular contributed modules, so it's a good place to start looking for any problems:

Other highlights of the release include improved support for PHP 7 (including all Drupal core automated tests now passing for PHP 5.4+ and PHP 7), improvements to robots.txt to help search engines which index your site's images/CSS/JavaScript, and of course a variety of important bug fixes. Translators might also want to be aware of a few administrative-facing translatable string changes and additions in this release.

For more information on the release, see the tentative CHANGELOG.txt for Drupal 7.50, the corresponding list of important issues that will be highlighted in the Drupal 7.50 release notes, and the full list of changes in the Drupal 7 commit log.

If you do find any regressions, please report them in the issue queue. Thanks!

Note: Our recently-added Drupal 7 co-maintainers (stefan.r and Fabianx) and I will consider continuing to do larger Drupal 7 releases like this one every six months or so (in keeping with Drupal's new release cycle), if there is interest and continued contributions from the community. See the ongoing discussion for further details.

Categories: Elsewhere

FFW Agency: The ABC's of Drupal: Aliases, Blocks and Content Types

Wed, 06/07/2016 - 07:56
The ABC's of Drupal: Aliases, Blocks and Content Types Ray Saltini Wed, 07/06/2016 - 05:56

For anyone who's ever looked up a definition of a Drupal term and been left wondering what it all means, here are some practical real world explanations you can use to navigate the Drupalverse. Watch this space and use comments to send us your requests.

Aliases: URLs in Drupal often have multiple addresses or aliases. This helps avoid complex machine generated addresses and makes your pages more search engine friendly. Through a variety of methods aliases can be generated automatically according to predefined patterns and then changed or updated in bulk. It is one of Drupal’s most powerful features and is used for everything from SEO to structuring a site and its navigation.

Block: A block is essentially a container that can hold content, lists of content, code, images or text strings and can be placed into a region on a page. Blocks can be created programmatically by a Drupal module or manually. Core Drupal can be extended with contributed modules that create other containers with different names that can be used by Drupal in a similar manner as blocks. This can become confusing to understand and manage especially when more than one method is used on a site. Blocks are the primary means for managing page layout in Drupal core. Blocks can be placed in a region and then configured to be visible only under specific conditions such as a user’s role or the type of content displayed in the main content region of a given page. Once common, the use of executable code in a block in order to bring about a desired behavior on a page can introduce security risks and management overhead. Justified exceptions should be managed closely.  Other methods such as development of a custom module are preferred. The ability to add additional fields to blocks in Drupal 8 makes placing marketing automation and web analytics code in blocks more practical.

Content Type: A content type is a collection of data fields grouped together in a logical set to facilitate content entry and display. Default behaviors, such as preview, publish, save as draft or revision, are set up for each content type. Drupal core is preconfigured with two content types, Article and Basic Page. Users with appropriate permissions can create their own custom types. Think of a content type as the structure of the form you create to save multiple posts. A website about food might have a content type ‘Recipe’ that would include individual fields to collect data about ingredients, quantities, cooking time, etc. The Recipe content type could be used to create hundreds of individual Recipe records.

Tagged with Comments
Categories: Elsewhere

FFW Agency: Mastering the Basics: How to Do Discovery Right

Wed, 06/07/2016 - 07:36
Mastering the Basics: How to Do Discovery Right Ray Saltini Wed, 07/06/2016 - 05:36

Discovery is the part where you make it your business to find out what you don’t know you need to know. Discovery is a process, not a workshop or a questionnaire. There’s a reason why it's called Discovery. You may think you know what you're going to find but often you don’t. Your goal is to uncover any unanticipated issues or complexity and ultimately use the process to generate consensus around priorities and a project plan.

There are three fundamental steps to any really good discovery process. If you don’t fully embrace these steps and execute them with rigor you stand a good chance of missing something critical that can stall or even completely undermine your project. Rushing through discovery will almost always guarantee delays and additional costs. Many organizations will contract for discovery separately. The good news is the steps are simple. They are: think, ask, listen; rinse and repeat. Think carefully about your overall goals, your specific objectives, your resources and budgets and then formulate a thorough list of questions. Do this singularly by yourself and then invite your team members to do it with you. Broaden it to all your stakeholders. Don’t just go to your stakeholders for answers. Go to them for the questions too. Having them be part of the discovery planning will help you achieve buy-in later in the project and will support accountability.

Once you’ve got your questions go out and get your answers. Look at things from all angles and perspectives. Then begin to iterate. Rinse and repeat means that you challenge the answers you’ve been given and you seek to validate them from other angles and different sources.

There is a science to a good discovery but good discovery is also an art. Experienced technologists know what to ask and what to listen for. They know how to reform questions to get more precise and accurate information that will help generate a project scope and specifications.

These steps are the same whether you do your own discovery in-house or with help from a consultant or services organization. Make sure you have at least one person on the discovery team who has senior-level experience with the technology you expect to build out your project with whether it is Drupal or something else. Certainly take advantage of any specific methodologies, templates and/or applications that align with your organization's policies and workflows.

Tagged with Comments
Categories: Elsewhere

Talha Paracha: GSoC’16 – Pubkey Encrypt – Week 6 Report

Wed, 06/07/2016 - 02:00

Half of the Google Summer of Code coding period has passed and my project now has all the core functionality in it. For those who don’t know, Pubkey Encrypt is a D8 module in development, which aims to encrypt and secure websites’ data-at-rest using login credentials. I started week 6 work by finalizing everything we had done till then, so to get the module in shape for an immediate alpha release. I think it’s very important to release the project early, with a bit less functionality and tagged as an alpha version, instead of releasing it with full functionality at the end of GSoC. This is because of the fact that the module deals with security. And as is the case with any security-related project, there is a lot of chance for unexpected issues to come up during alpha testing in a real-world environment. Luckily, we are ahead of the project timeline we planned in February, by a few weeks. So I’m confident that we’ll be able to tackle any such issues that might come up unexpectedly, no matter how severe they are.

Categories: Elsewhere

ImageX Media: ImageX Ranked Top Drupal Development Agency on

Wed, 06/07/2016 - 00:40, a research firm based in Washington, D.C. dedicated to identifying the leaders in a variety of digital industries, has named ImageX as their top Drupal development agency. ImageX was awarded this spot after nine client projects were reviewed by Clutch, with ImageX achieving an overall client satisfaction score of 4.8/5.

Categories: Elsewhere