Nov 14 2018
Nov 14

Make your life easier by using the terminal to start, stop or restart Apache web server on Mac OX by simply executing the apachectl commands.

Start Apache server command:

sudo /usr/sbin/apachectl start

or

sudo apachectl start

Stop Apache server command:

sudo /usr/sbin/apachectl stop

or

sudo apachectl stop

Restart Apache server command:

sudo /usr/sbin/apachectl restart

or

sudo apachectl restart

And yes it's not always necessary to check what the status of Apache is, you can simply run the restart command mention above without worrying about whether is running or stopped.

Restart command is also very helpful if you make any changes related to your Apache server configuration in httpd.conf. And sometimes just restart the server to before starting debugging why the website is not responding or something wrong with your Apache PHP setup.

Nov 14 2018
Nov 14

Midwest Drupal Camp (MidCamp) is an annual event held in Chicago that brings together people who use, develop, design, and support the Web’s leading content management platform, Drupal.

For more information email us at [email protected]

Thanks to Amazee.io for hosting our site.

Nov 14 2018
Nov 14

"A Drupal 8 initiative to improve Drupal's content workflow", this is how Dries Buytaert first defined the Workflow Initiative, back in 2016. Now, coming back to 2018, you must be asking yourself a legitimate question: “How do I set up a content workflow in Drupal 8?”

“How do I manage, extend and customize an editorial workflow to fit my Drupal 8 website's publishing needs? One including multiple users, with different permissions, that manages the workflow status of... different content types.”

Which are the (not so) new content management features and functionality implemented to Drupal core by now? Those aimed at improving the user experience (editors, content authors...)?
 
Let's get you some answers:
 

1. Introducing: The Content Moderation Drupal 8 Module

Content Moderation has reached stable version in Drupal 8.5. 

Why should you care? What makes this core module of critical importance for creating your content publication workflow?
 

  • because otherwise, you'd have only two built-in states to “juggle with”: published and unpublished
  • because it enables you to build a simple workflow for drafts, too
  • … to set up new custom editorial workflows, as well, in addition to the default one
     

In short, what this module does is that it enables you to create a flexible content workflow process where:
 

  • one of the editors in your team stags a “Draft” content
  • and another user on your Drupal 8 website, with different permission reviews/updates it
     

It comes as a powerful tool for you to leverage when your workflow needs are more complex than “ON/OFF”.
 

2. How to Set Up a Simple Content Workflow in Drupal 8

You'll only need 2 modules for putting together the workflow for a basic content publishing scenario:
 

  • Workflows, that will provide just the framework needed for managing the states and transitions included in the process
  • Content Moderation, which will add the “Draft” state, a “Draft to Published” content workflow, and an admin view for handling all the drafts
     

And here's setting up a basic content publishing workflow in 4 simple steps:
 

  1. Enable the “Content Moderation” core module
  2. Go to “Configuration” and click the “Workflow” tab; it's the last one in the unfolding drop-down menu
  3. Open the “Workflows” page
  4. Tada! You've just turned on your default “Editorial workflow”
     

For now, you should be having 3 major states in your workflow:
 

  • draft
  • published
  • archived
     

Note: use permissions to grant content contributors the right to edit/create drafts, editors the “Transition drafts to published” permission, admins the right to “restore to draft transitions” and so on...

And voila! Your default editorial workflow, with the Content Moderation module ON, should suit your basic state tracking needs. It should fit any standard use case.

Now, if your workflow needs are a bit more complex and website-specific... keep on reading:
 

3. Content Revisions in Drupal 8

One of the most powerful features that Content Moderation will “turbocharge” your editorial workflow with is: 

Saving each change as a content revision in the database. 

It stores all revisions in the system. But let's take a common scenario, shall we?

Let's say that a second editor decides to make an update to a piece of content (either a content type or a custom block type). He/she updates it, then saves it as a “Draft”. You'll then still have the published version of the content, that's live, on your Drupal website, as well as this Draft (or several drafts), stored, as a revision, in your database.

A crucial functionality for any complex content publishing workflow:
 

  • with content revisions, you get to keep track of who's updated what and when
  • … to trigger log messages regarding those changes, informing other content authors that a given content has been edited
  • and you can also revert to the oldest revisions if needed
     

4. How to Extend and Customize Your Content Publishing Workflow 

Rest assured: there's no need for custom code writing, even if your content publishing needs are a bit more complex.

Here's what it takes to extend and to custom-tune your default content workflow in Drupal 8:
 

  1. While on your “Workflow” page, just click the “Add a new state” button and add more workflow states: “Needs Review” or “Second Review” etc.
  2. Next, make sure you adjust your transitions to support your newly added state(s). For instance, a “Second Review” state would require a “Move to Second Review” transition. 
  3. Then, apply your extended workflow to either a specific content type or to a custom block type
  4. You can also create new separate content publishing workflows to have a different one for your press releases, a separate publishing workflow, an editorial workflow for your blog posts, a warehouse workflow etc.
     

Defining multiple workflows in Drupal 8, each one with its specific “ecosystem” of states and transitions, is now possible.

How to Create and Manage a Content Workflow in Drupal 8: Set Up a Custom Content Workflow

Notes:

  • the transitions in your workflow will stand for the permissions that you'll assign to different Drupal roles in your team
  • use clear, descriptive verbs to name them
  • remember to grant editors the permission to undo transitions, as well (they might need to revert a piece of content to “Needs Work” once they've reviewed it, for instance)

In short:

By defining multiple states for your piece of content (Published, Pending Review, Ready for Review, Ready for Second Review, Unpublished, Draft etc.) and managing the permissions corresponding to the state transitions you can build a content workflow in Drupal 8 capable to support even the most complex publishing scenarios.

Now, another common scenario where a custom content workflow in Drupal 8 is needed is when you have a website publishing content to multiple platforms. 

You have a Drupal 8 website, a native application and an internal portal, let's say...

Your publishing workflow would look something like this:
 

  • first, content gets moderated to be published on the front-facing Drupal website
  • then, it gets put in the queue for review before it gets published (or declined) on each one of the other 2 platforms
     

Note: if you need to further extend your editorial workflow and to apply it to a custom entity, for example, you can always write a WorkflowType plugin that meets your specific needs.

Then, you can apply your custom workflow to... steps in ordering in a resto app, steps in a manufacturing process and to pretty much any entity (think beyond content) that needs to change its workflow states...
 

5. How Do You Know If You Really Need an Editorial Workflow?

Do you really need to use content moderation? To set up a whole workflow for your publishing scenario?

You do, if and only if:
 

  • there are multiple content authors uploading content on your website, content that needs to be reviewed before it gets published
  • you're managing a team of multiple admins, with different user roles
  • each moderator knows his/her role in the publishing chain
     

But if the content authors in your team have the very same type of permission as the admins and they just push content through, a content moderation workflow is useless.

It would only slow down the publishing process.

So, just because you have the option to set up a content workflow in Drupal 8, doesn't mean that you should rush to implement it on your own website, too... Maybe you just don't need a workflow.

The END! 

What do you think about these content management capabilities in Drupal 8? Are they powerful and diverse enough to suit your workflow needs? 

Nov 14 2018
Nov 14

The role of marketers has evolved beyond simply managing and coordinating online advertising campaigns to drive traffic to their respective websites; successful marketers must transform themselves to become storytellers.

Storytelling is an essential skill to master the art of crafting a digital experience for your digital business would-be customers and users. 

Therefore, as a digital business, you must be strategic when it comes to choosing the appropriate platform for your digital experience. 

The fact that you can easily publish and manage multimedia content across multiple websites under one brand has made Drupal a popular and strategic platform for enterprises, the media, healthcare and even powering digital governments.

In short; Drupal is a dream come true for marketers working in the aforementioned industries and sectors.

 

Here are 5 Drupal modules that were created by the Drupal community for marketers:

 

 

HubSpot is a widely used and popular inbound marketing software platform that helps companies attract visitors, convert leads, and close customers.

HubSpot Integration Settings

Lead generation is a carefully planned ongoing process; deliberate in targeting users based on personalized content marketing.

HubSpot CRM is relied upon by marketers to enable them to qualify the leads generated from the landing pages they developed on their websites.

Marketers that use Drupal-based websites have saved a lot of time and effort by connecting their HubSpot CRM with their web forms that capture the desired user data.

For example, a Webform-based contact form on your site can send its data to HubSpot, where you may already track potential clients and contacts; or a Webform-based e-newsletter signup could send the lead to HubSpot's targeted marketing system, letting you use your pre-existing email campaigns.

Moreover, marketers that create content on HubSpot, can easily display it in Drupal 8’s front-end.

With almost 5,000,000 downloads and nearly 500,000 websites using this module; this makes Webform one of the most popular Drupal modules out there.

Webform Wizard Admin

Forms are an essential feature of a digital experience that relies upon gathering user data relevant to content marketing and personalizing user experiences across all relevant digital platforms.

Webform enables integration with various 3rd party marketing solutions such as MailChimp, HubSpot, and Salesforce to name but a few. You can find a comprehensive list of Webform add-ons here.

A great and simple guide to how you can get started on form building using Webform is available here courtesy of OSTraining.

This Drupal module adds the Google Analytics web statistics tracking system to your website.

Google Analytics Admin Section

According to Builtwith.com, Google Analytics is the most popular analytics tool in the world with at least 37 million live websites currently using the giant tracking and performance monitoring platform.

Marketers that use Drupal website benefit from the Google Analytics module to identify their traffic size, traffic sources and track the performance of their website with regards to ongoing personalization of their user experience.

Being able to seamlessly integrate Google Analytics also provides marketers with real-time data for current site usage and user behavior. In addition to the aforementioned; marketers can track almost every statistic imaginable such as User ID, domain, as well as how many and which files were downloaded and by whom.

For full details regarding the statistics that marketers can track, visit the official Drupal module webpage for Google Analytics here.

This module provides integration with MailChimp, a popular email delivery service.

MailChimp Logo

Regularly maintained and reliable, MailChimp is a favorite tool amongst email marketers. That is mainly due to the attention to both sides of the email exchanges taking place.

This Drupal module allows email marketers to create and send email marketing campaigns from your website and analyze the performance of the campaign while monitoring the behavior of users interacting with your emails.

On the other hand, your website visitors can choose to subscribe (or unsubscribe) easily to the email list of their preference.

MailChimp is not limited to email delivery only; you can also integrate MailChimp E-Commerce which allows marketers to optimize their online store sales via personalized email marketing campaigns and automation workflows.

This module provides integration with the Crazy Egg heat map service.

Crazy Egg Heatmap

Much of digital business and marketing success comes down to the ongoing enhancement of your digital experience.

This requires a consistent effort of monitoring feedback from your users who in the end must be able to enjoy an engaging user experience that doesn't feature frustrating issues such as slow page load speed and irrelevant content.

The aforementioned frustrations can heavily impact your search engine optimization (SEO) efforts to rank higher on search engines like Google; which makes monitoring online user behavior on-site all the more imperative for marketers.

Crazy Egg is a simple Drupal module that is easy to install to your Drupal 8 (or D7) website to gain access to various reporting formats that showcase online behavior on your web pages.

By recording the user behavior, marketers are able to gain a visual insight into how users interact with different elements, features, and components of their website. Marketers are able to understand where users face challenges browsing the site, which aspects of the website they spend most of their time on and which they avoid completely.

Ultimately, the feedback gained allows marketers to develop the best UI, UX, and content in a more informed manner.

This is a core Varbase feature. We strongly recommend Varbase as the ultimate starter kit and distribution to build your Drupal digital experiences.

Varbase SEO

Enterprise level organizations and governments that rely upon an ongoing content marketing process require a content publishing and management solution that can handle heavy traffic without compromising performance standards.

This is where Varbase saves the day.

Not only is Varbase inherently optimized for all search engines it also enables you as a content marketer to optimize your multilingual content regardless of the media format to a diverse and global target audience.

  • Optimized markup that is compliant and accessible to WCAG 2.0 Level AA standards
  • XML Sitemap that is also language aware
  • Content SEO grader and recommendations
  • Full-suite of meta tags and descriptive tags that makes your site more optimized, integrated and favorable to search engines such as Google, Yandex, and Bing, and social media networks such as Facebook, Twitter, and many other
  • Total control over how your site will look when appearing on search results
  • Handle redirects with ease and prevent dead links
  • Readable and SEO-friendly URLs that automatically reads your site's structure and hierarchy
You can view our work on digital experiences that were built using Varbase here.

Honorable Mentions:

Honeypot

One of the popular Drupal modules available out there. Used by marketers and Drupal platforms that wish to avoid spam.

Honeypot keeps your database clean by blocking spambots from using your web forms using both the honeypot and timestamp methods and is not as intrusive as CAPTCHAs.

 

Accelerated Mobile Pages (AMP)

The AMP module is designed to convert Drupal pages into pages that comply with the AMP standard

AMP is important because it helps web pages load faster which potentially improves usability and convinces visitors to stay longer on your site engaging with your content.

The logic is straightforward: faster load time leads to better engagement, which reduces bounce rate and improves mobile ranking.

If we were to feature every Drupal module out there the list would be way too long, so which Drupal modules do you prefer? How does it help you achieve your marketing goals?

Share with us your own preferences and we will surely feature them as soon as possible.

Nov 14 2018
Nov 14

Have you always secretly wanted to spend your evenings writing symphonies, learning about filmography or assessing climate change? Studying niche subjects have traditionally been for niche students. But e-learning platforms have changed all that with the provision for learning almost any subject online.

A student in the front and two behind him sitting on their chairs with a paper and a pen in their hands


Corporate e-learning has witnessed a stupendous 900% growth in the last decade or so. With more and more e-learning platforms flourishing, organisations are striving to be the best to stand apart from the rest. Drupal has been a great asset in powering education and e-learning with its powerful capabilities that can help enterprises offer a wonderful digital experience. Let’s trace the roots of e-learning before diving deep into the ocean of possibilities with Drupal for building an amazing e-learning platform.

Before the internet era

Infographic with ten rows, icons and text showing the timeline of e-learningSource: eFront

A brief history of e-learning can be traced through the compilation made by eFront. Even before the internet existed, distance education was being offered. In 1840, Isaac Pitman taught shorthand via correspondence where completed assignments were sent to him via mail and he would, then, send his students more work.

Fast forward to the 20th century, the first testing machine was invented in 1924 that enabled students to test themselves. The teaching machine was invented in 1954 by a Harvard professor for allowing schools to administer programmed instruction to students. In 1960, the first computer-based training program (CBT program) called Programmed Logic for Automated Teaching Operation (PLATO).

At a CBT systems seminar in 1999, the term ‘e-learning’ was first utilised. Eventually, with internet and computers becoming the core of businesses, the 2000s saw the adoption of e-learning by organisations to train employees. Today, a plenitude of e-learning solutions are available in the form of MOOCs (Massive Open Online Courses), Social platforms and Learning Management System among others.

E-learning: Learn anywhere, anytime

In essence, e-learning refers to the computer-based educational tool or system that allows you to learn anywhere and at any time. It is the online method of building skills and knowledge across the complete workforce and with customers and partners. It comes with numerous formats like the self-paced courses, virtual live classrooms or informal learning.

E-learning refers to the computer-based educational tool or system that allows you to learn anywhere and at any time

Technological advancements have diminished the geographical gap with the use of tools that can make you feel as if you are inside the classroom. E-learning provides the ability to share material in all sorts of formats such as videos, slideshows, and PDFs. It is possible to conduct webinars (live online classes) and communicate with professors via chat and message forums.

There is a superabundance of different e-learning systems (otherwise known as Learning Management Systems or LMS) and methods which enable the courses to be delivered. With the right kind of tools, several processes can be automated like the marking of tests or the creation of engrossing content. E-learning offers the learners with the ability to fit learning around their lifestyles thereby enabling even the busiest of persons to further a career and gain new qualifications.

Merits and Demerits

Some of the major benefits are outlined below:

  • No restrictions: E-learning facilitates learning without having to organise when and where everyone, who is interested in learning a course, can be present.
  • Interactive and fun: Designing a course to make it interactive and fun with the use of multimedia or gamification enhances engagement and the relative lifetime of the course.
  • Affordable: E-learning is cost-effective. For instance, while textbooks can become obsolete, the need to perpetually acquire new editions by paying exorbitant amounts of money is not present in e-learning.

Some of the concerns that need to be taken care of:

  • Practical skills: It is considered tougher to pick up skills like building a wooden table, pottery, and car engineering from online resources as these require hands-on experience.
  • Secludedness: Although e-learning enables a person to remotely access a classroom in his or her own time, learners may feel a sense of isolation. Tools such as video conferencing, social media and discussion forums can allow them to actively engage with professors or other students.
  • Health concerns: With the mandatory need of a computer or mobile devices, health-related issues like eyestrain, bad posture, and other physical problems may be troublesome. However, sending out proper guidelines beforehand to the learner like correct sitting posture, desk height, and recommendations for regular breaks can be done.

Building Yardstick LMS with Drupal

OpenSense Labs built Yardstick LMS, a learning management system, for Yardstick Educational Initiatives which caters to the students of various schools of Dubai.

Homepage of Yardstick LMS with logos of schools containing leaves, candle, open books, and firestickYardstick LMS Homepage

The architecture of the project involved a lot of custom development:

1. Yardstick Core

This is the core module of the Yardstick LMS where the process of creating, updating and deleting the nodes take place.

2. Yardstick Quiz

We built this custom module for the whole functionality of the quiz component. It generates a quiz, quiz palette and quiz report after quiz completion based upon the validation of the visibility of the report.

Quiz report of Yardstick LMS with table consisting of columns showing the list of schools, students and grades.


We could generate three kinds of reports: 

  • An individual-level quiz where one’s performance is evaluated
  • A sectional-level report where performance for each section is evaluated
  • Grade-level report where performance for all the sections is compared and evaluated.

For the quiz, we had different sub-components like questions, options, marks, the average time to answer, learning objective, skill level score, and concept. The same question could be used for different quiz thereby minimising the redundancy of the data. Also, image, video or text could be added for questions.

Subcomponents of yardstick LMS with a tabular column for assessing the learning objective and two of the metrics coloured yellow and red.


3. Yardstick Bulk User Import

This module was built to assist the administrators in creating users all at once by importing a CSV file. Also, there is an option to send invitation mail to all the users with login credentials.

Message box for importing users with a blank box and a submit button


4. Yardstick Custom Login

We provided a custom login feature where same login credentials could be used to log into the Yardstick system. That is, we provided an endpoint for verifying the login credentials and upon success, users were logged in.

5. Yardstick Validation

This module offers all the validation across the site whether it is related to access permission or some time validation.

6. Yardstick Challenge

It offers the user an option to submit a task which is assigned to them where they are provided with text area and file upload widget.

Yardstick LMS has an intricate structure

On the end user side, there is a seamless flow but as we go deeper, it becomes challenging. Yardstick LMS has an intricate structure.

We had two kinds of login:

  • Normal login using Yardstick credentials
  • And the other for school-specific login like the Delhi Public School (DPS) users.
Flowchart with rectangles and circles of different colours explaining Yardstick LMS custom loginYardstick LMS custom login for DPS users

For DPS users, we used the same login form but a different functionality for validating credentials. DPS school gave us an endpoint where we sent a POST request with username and password. If the username and password were correct, then that endpoint returned the user information.

If the username was received, we checked on our Yardstick system if the username exists. If it does not exist, then we programmatically created a new user with the information that we received from the endpoint and created a user session. And if does exist, then we updated the password on our system.

Yardstick LMS is designed to govern multiple schools at the same time

We designed Yardstick LMS in such a way that multiple schools can be governed at the same time. All the students of various schools will be learning the same content thereby building uniformity.

The core part of our system dwells in the modules. The module is a content type that can store numerous information like components, concept, description, objective, syllabus among others. 

Several different components can be added like Task, Quiz, Video task, Extension, Feedback, Inspiration, pdf lesson plan, Real life application, and Scientific principles.

Yardstick LMS real-life application component page with an image showing animated human figures and atomic theory written above themYardstick LMS Real life application component page

Schools could opt for different modules for different grades. When a module was subscribed by a school, a clone module of the master module was created and the school copy was visible only to the school. School version could be modified by the school admin as per their needs and preferences. Master module remained the same. While creating a subscription, administrator had to provide the date so that the components were accessible to the students. School admin could set different dates to different components and only the components with past date were accessible.

Flow chart showing rectangles, squares and elliptical circle of different colours to explain module subscription to school in yardstick LMSFlow Diagram of module subscription to school

Also, we provided an option to create a dynamic feedback form for the modules for analysis. Yardstick Admin had the option to design and create a feedback form as per their requirement and could assign it to a particular module. Different types of elements could be utilised for designing the form like rating, captcha, email, range slider, text field, checkboxes, radio buttons and so on.

Message box showing star icons, a blank box and a submit button


Students and teachers need to submit their feedback for each of the modules. On the basis of this, Yardstick team try to improve the content of the system.

Session evaluation page of yardstick LMS with a set of questions on the left and different options on the right and a blank box at the bottom


Also, various roles were defined for users such as Yardstick Administrator, School Administrator, Teacher, and Student.

1. Yardstick Admin

Yardstick Admin can perform all the operations. He or she can create new users, grant permissions and revoke them as well.

2. School Admin

It has the provision for handling all the operation which are only related to their school. School Admin handles the modules and their components and can import user for their school. All school reports and task submissions are visible to School Admins.

3. Teachers

Teachers can view modules and components assigned to their classes and provide remarks to the students for multiple components and they can view all kinds of reports.

4. Students

They can attempt quiz, submit tasks, view components and view their own reports.

What’s the future of e-learning?

According to a report on Research and Markets, the e-learning market is anticipated to generate revenue of $65.41 billion by 2023 with a growth rate of 7.07% during the forecast period.

The report goes on to state that with the advent of cloud infrastructure, peer-to-peer problem solving and open content creation, more business opportunities would pop up for service providers in the global e-learning market. The introduction of cloud-based learning and AR/VR mobile-based learning will be a major factor in driving the growth of e-learning.

The growth of the e-learning market is due to the learning process enhancements in the academic sector

According to Technavio, the growth of the market is due to the learning process enhancements in the academic sector.

Infographic showing statistics on e-learning market with icons representing bar graph, speedometer, horizontal lines, and a bulbGlobal self-paced e-learning market 2019-2023 | Source: Technavio

Following are major trends to look forward to:

  • Microlearning, which emphasises on the design of microlearning activities through micro-steps in digital media environments, will be on the rise.
  • Gamification, which is the use of game thinking and game mechanics in a non-game context to keep the users engrossed and help them solve more problems, will see increased adoption rates.
  • Personalised learning, which is the tailoring of pedagogy, curriculum and learning environments to meet the demands of learners, can be a driving force.
  • Automatic learning, like the one shown in the movie The Matrix where a person is strapped onto a high-tech chair and a series of martial arts training programs are downloaded into his brain, can be a possibility.

Conclusion

It’s a world which is replete with possibilities. As one of the most intelligent species to walk on this earth, we perpetually innovate with the way we want to lead a better lifestyle. We learn new things to gain more knowledge. And in the process, we find ways of improving our learning experience. E-learning is one such tech marvel that promises to be a force to reckon with. It is not a disrupting technology but something that is going to get bigger and bigger in the years to come.

As a content management framework, Drupal offers a magnificent platform to build a robust e-learning system. With years of experience in Drupal Development, OpenSense Labs can help in providing an amazing digital experience. 

Contact us at [email protected] to build an e-learning system using Drupal and transform the educational experience.

Nov 13 2018
Nov 13

After months of hard work, the Drupal Governance Task Force made thirteen recommendations for how to evolve Drupal's governance.

If you want to go quickly, go alone. If you want to go far, go together.

Drupal exists because of its community. What started from humble beginnings has grown into one of the largest Open Source communities in the world. This is due to the collective effort of thousands of community members.

What distinguishes Drupal from other open source projects is both the size and diversity of our community, and the many ways in which thousands of contributors and organizations give back. It's a community I'm very proud to be a part of.

Without the Drupal community, the Drupal project wouldn't be where it is today and perhaps would even cease to exist. That is why we are always investing in our community and why we constantly evolve how we work with one another.

The last time we made significant changes to Drupal's governance was over five years ago when we launched a variety of working groups. Five years is a long time. The time had come to take a step back and to look at Drupal's governance with fresh eyes.

Throughout 2017, we did a lot of listening. We organized both in-person and virtual roundtables to gather feedback on how we can improve our community governance. This led me to invest a lot of time and effort in documenting Drupal's Values and Principles.

In 2018, we transitioned from listening to planning. Earlier this year, I chartered the Drupal Governance Task Force. The goal of the task force was to draft a set of recommendations for how to evolve and strengthen Drupal's governance based on all of the feedback we received. Last week, after months of work and community collaboration, the task force shared thirteen recommendations (PDF).

The proposal from the Drupal Governance Task Force Me reviewing the Drupal Governance proposal on a recent trip.

Before any of us jump to action, the Drupal Governance Task Force recommended a thirty-day, open commentary period to give community members time to read the proposal and to provide more feedback. After the thirty-day commentary period, I will work with the community, various stakeholders, and the Drupal Association to see how we can move these recommendations forward. During the thirty-day open commentary period, you can then get involved by collaborating and responding to each of the individual recommendations below:

I'm impressed by the thought and care that went into writing the recommendations, and I'm excited to help move them forward.

Some of the recommendations are not new and are ideas that either the Drupal Association, myself or others have been working on, but that none of us have been able to move forward without a significant amount of funding or collaboration.

I hope that 2019 will be a year of organizing and finding resources that allow us to take action and implement a number of the recommendations. I'm convinced we can make valuable progress.

I want to thank everyone who has participated in this process. This includes community members who shared information and insight, facilitated conversations around governance, were interviewed by the task force, and supported the task force's efforts. Special thanks to all the members of the task force who worked on this with great care and determination for six straight months: Adam Bergstein, Lyndsey Jackson, Ela Meier, Stella Power, Rachel Lawson, David Hernandez and Hussain Abbas.

November 13, 2018

2 min read time

Nov 13 2018
Nov 13

The Drupal 8 Editor Advanced Link Module allows you to specify additional attributes when creating links in your content. This makes it easy to add a CSS class, an ID, open the link in a new window, or even specify a rel="nofollow" tag. The module is very easy to use, but there is a small trick to getting it set up. Watch the video to see how it's done and start customizing your links in no time!

Nov 13 2018
Nov 13

Drupal Modules: The One Percent — Delete all (video tutorial)

[embedded content]

Episode 52

Here is where we bring awareness to Drupal modules running on less than 1% of reporting sites. Today we'll investigate Delete all, a module which facilitates deleting users and/or content en masse.

Nov 13 2018
Nov 13

Partnership combines comprehensive UI design, UX, and digital strategy, with web development proficiency, to produce a holistic experience for clients.

Chicago, Illinois — November 13, 2018 — In September 2018, Promet Source acquired DAHU Agency, a strategy-focused, user experience and design agency that enhances the services offered to its clients. By expanding their services in UX and UI, and bringing new offerings in-house for digital strategy, WordPress development, messaging, and branding –  Promet aims to better serve their clients evolving needs as marketing and web technologies continue to converge and the need to provide functional, dynamic websites increases.

 

In his vision for Promet to be a strong digital agency focused on creating great user experiences through meaningful web applications, Andy Kurcharski, President of Promet, seeks to accelerate growth and innovation by providing comprehensive digital services to his clients.  Andy has more than 20 years of technical leadership experience from startups to Fortune 50 firms with industry experience in banking, telecommunications, government, and association technology management. Andy’s e-commerce experience dates to 1998 with the implementation of highly scalable enterprise solutions.

 

“In today’s technology landscape, we are seeing that our clients and their customers expect more from their websites” Kurcharski expressed. “Our addition of a new team to our existing core of web developers will help us to proactively approach new websites with a holistic mindset combining our technology expertise with great design and function to ultimately increase client success online.”

 

DAHU Agency, based in Dallas, Texas, not only provides Promet with an office central to service their clients in the Southwest region, but also brings expertise in design and digital strategy to help optimize user experience within an organization’s website.

 

Mindy League, CEO and founder of DAHU Agency, offers a highly thoughtful and adaptive approach to constantly evolving technologies and user behaviors. Her experience in building solutions for clients such as HP, Emerson, IBM, and Home Depot, contribute to a depth of perspective into the challenges and opportunities faced by top global brands. Mindy will join Promet as the Director of User Experience and Design.

 

DAHU’s distinct approach to engaging with clients has been described as “radical empathy” and it is this philosophy and mindset that complements Promet’s dedication to delivering groundbreaking results to their clients. Whether examining the impact of corporate strategies on customers and the broader enterprise, or developing products, Promet aims to step into their clients’ businesses with a fervent dedication to excellent experiences and high-impact results.

 

Click here for full press release. 


 

Nov 13 2018
Nov 13
  • By: Shefali
  • Date: 13-11-2018

Digitalization has opened doors that nobody imagined even existed. Opportunities did not just come knocking, they exploded their way in. Digital evolution has taken the world of professional publishing by storm. However, this evolution brought along a whole new set of challenges that publishers are still trying to cope up with. Many publishers of physical magazines had to shut shop as most of their readers had now shifted to e-magazines but the ones who saw the silver lining in the cloud, went online! And now the whole world is their audience.

Consumers are altering their preferences of consuming content ever so often and publishers have to make sure they reach their audience through more than just one medium. Plain text is passé – content that’s not enriched with any media (images/videos/gifs) are blindly rejected.

As our attention-spans are evolving (for the worse), it has become crucial for content to be fresh, relevant, interactive and alluring. Which means, publishers need to work even faster and find efficient ways to exhibit their content for better consumer engagement. A good Content Management System will let publishers to create and publish fresh content fast and efficaciously. Thunder - a Drupal 8 distribution – aims to resolve the problems faced by professional publishers and make their lives much easier.

Feel the Thunder

Originally designed for and by Hubert Burda Media, Thunder was later released as an open-source software in 2016. This community-driven CMS is based on Drupal 8 and consists of varieties of hand-picked modules meant solely for the publishing sector. Because it is open-source and completely non-profit, a Thunder Coalition was shaped where publishers, industry partners, core team and developers share their code/modules/extensions. So everyone benefits from the coalition while giving back at the same time.

With Drupal 8 already providing a vast collection of modules that are valuable for professional publishers, it was the most obvious choice of CMS to backup Thunder. Custom modules developed for Thunder are also contributed back to the Drupal community which encourages a strong circle-of-life.

So why reinvent the wheel when you can just realign it? – Said Anthony J. D’Angelo. And with Thunder, you don’t even need to realign it most times.

Get launched – quick and easy

A Drupal distribution is a complete package that comprises of installation profiles, modules, themes, libraries that are industry-centric and easily downloadable. Thunder distribution is an all-in-one package focused on professional publishers that is stable, extremely scalable and customizable. It consists of all the bare-necessities needed for a publisher to get up and running in the market faster. Installation is easy and quick and allows you to set-up your website faster than you think. Because it is open-source and free, it cuts down development efforts helping you save on time and money!

The Out-of-the-box Experience

Unless you want a feature that is very specific and bespoke, you are good to go with the core features Thunder has to offer. Responsiveness comes out-of-the-box not only for site visitors but for the editors and administrators too. The Paragraph module lets you create, modify and play around with content. It lets you drag and drop content and multimedia making it really flexible and easy to create beautiful stories.

Scheduling your content to be published is as easy as 1-2-3! Modules like Media Entity and Entity Browser make media handling more effective. Content Lock comes handy especially when many editors work together. It lets an editor lock a node they are working on and notifies the other(s) that the content is being edited. When you want to instantly check if your content looks alright on different devices, use the Responsive Preview module. Embedding videos from Youtube or Vimeo just got easier with the Video Embed Field module.

The Extra-Ordinary Extras

The little extras are what makes the ordinary, extra-ordinary. Thunder provides some optional modules that promise to give professional publishers that extra boost. Have you seen those articles on your Facebook app that load up in a jiffy and makes you feel like you haven’t even left the app? Yes, I’m talking about Facebook Instant Articles. With this module, editors can easily add content from their Drupal website to Facebook and drastically reduce load time on mobile devices.

The Google AMP (Accelerated Mobile Pages) module lets you deliver content like text, images, videos, Instagram and Twitter cards in a flash. If you need to cover an event as it occurs, the LiveBlog feature is your best friend. When you want to add content like surveys, polls, quizzes or top 10 lists, the Riddle Interactive Content plugin is precious. The Nexx.tv video player integration allows efficient distribution and flexible streaming of videos across various platforms.

The Drupal Advantage

Being a free and open-source content management framework, Drupal was the most obvious choice and Hubert Burda Media had to look no further. They had already had a great experience with Drupal and the release of Drupal 8 just made things better. Core Drupal features like Menu Management, User Management, Taxonomy, RSS feeds, system administration and page layout customization helped Thunder in building a strong foundation. A foundation that has been further enhanced with many more publisher-centric modules.

The Drupal community is constantly evolving, thereby adding more features, beefing up security and giving you all the support you need. The Thunder and Drupal Community are so closely-knit, you can’t tell the difference. Thunder makes it easy for organizations to share their customized modules with other industry-partners and the Drupal community so everyone benefits from their contribution.

Thunder has been built for publishers by publishers and just cannot be ignored if you are a professional publisher. It addresses all the pain-points of a publisher and helps accelerate the process of getting to market. Top publishers like Marie Claire, BUNTE, ELLE, Playboy, InStyle and many more trust Thunder. “Don’t give to get. Give to inspire others to give”. This seems to be the thought motivating the Thunder Coalition and the Drupal community to share the power of innovation. The advantages of being open-source are abundant but the most significant is the fact that you can give back to the community. It is like this amazing cycle of life that runs on trust and goodwill.

Nov 12 2018
Nov 12

The Paragraphs module in Drupal 8 allows us to break content creation into components.  This is helpful for applying styles, markup, and structured data, but can put a strain on content creators who are used to WYSIWYG editors that allow them to click buttons to add, edit, and style content.

The Drupal Paragraphs Edit module adds contextual links to paragraphs that give you the ability to  edit, delete and duplicate paragraphs from the front end, giving editors a quick, easy and visual way to manage their content components.

Installing

Install and enable the module as you normally would, it is a zero configuration module.  It works with Drupal core’s Contextual Links and/or Quick Links module. I did have to apply this patch to get the cloning/duplication functionality working though.

Editing

To use, visit a page and hover over your content area.  You will see an icon in the upper right corner of the Paragraphs component area.   

When you click the Edit option, you are taken to an admin screen where you can edit only that component.

Make your changes and click save to be taken back to the page.

In components that are nested, like the Bootstrap Paragraphs columns component, you will see one contextual link above the nested components.  If you click this, you will be taken to the edit screen where you can modify the parent, and the children.  That is the Columns component, and the 3 text components inside.

Duplicating/Cloning

The term that is used most often for making a copy of something in Drupal is to “Clone” it.  This is a little more complicated because it is technically complicated, but once you get the hang of it, it will become second nature.

Hover over a contextual link and click Clone.

On the edit screen, you are presented with a new Clone To section.  In this section you can choose where to send this clone to, whether that be a Page or a Paragraph.  In this example, I want to duplicate this component to the same page.

  • Type: Content
  • Bundle: Page
  • Parent: (The page you are on)
  • Field: (The same field on that page.)

You can also make any edits you want before saving.  For example, you could change the background color. Click save, and your new component will appear at the bottom of the page, with the new background color.

There are a bunch of possibilities with this way to duplicate components.  To clone to another page, change the Parent. To clone to a nested paragraph component, change the Type to Paragraphs and configure the settings you need.

Deleting

Deleting a component is as you’d expect.  Once you click delete, you are taken to a confirmation screen that asks you if you want to delete.

Conclusion

The Paragraphs Edit module is a simple and powerful tool that gets us a bit closer to inline editing and making our content creator’s lives easier and allows them to be more productive.  Give it a try on your next project and spread the word about this great little helper module!

Nov 12 2018
Nov 12

This blog has been re-posted and edited with permission from Dries Buytaert's blog. Please leave your comments on the original post.

Layout Builder, which will be in the next release of Drupal 8, is unique in that it can work with structured and unstructured content, and with templated and free-form pages.

Content authors want an easy-to-use page building experience; they want to create and design pages using drag-and-drop and WYSIWYG tools. For over a year the Drupal community has been working on a new Layout Builder, which is designed to bring this page building capability into Drupal core.

Drupal's upcoming Layout Builder is unique in offering a single, powerful visual design tool for the following three use cases:

  1. Layouts for templated content. The creation of "layout templates" that will be used to layout all instances of a specific content type (e.g. blog posts, product pages).
  2. Customizations to templated layouts. The ability to override these layout templates on a case-by-case basis (e.g. the ability to override the layout of a standardized product page)
  3. Custom pages. The creation of custom, one-off landing pages not tied to a content type or structured content (e.g. a single "About us" page).

Let's look at all three use cases in more detail to explain why we think this is extremely useful!

Use case 1: Layouts for templated content

For large sites with significant amounts of content it is important that the same types of content have a similar appearance.

A commerce site selling hundreds of different gift baskets with flower arrangements should have a similar layout for all gift baskets. For customers, this provides a consistent experience when browsing the gift baskets, making them easier to compare. For content authors, the templated approach means they don't have to worry about the appearance and layout of each new gift basket they enter on the site. They can be sure that once they have entered the price, description, and uploaded an image of the item, it will look good to the end user and similar to all other gift baskets on the site.

The Drupal 8 Layout Builder showing a templated gift basket

Drupal 8's new Layout Builder allows a site creator to visually create a layout template that will be used for each item of the same content type (e.g. a "gift basket layout" for the "gift basket" content type). This is possible because the Layout Builder benefits from Drupal's powerful "structured content" capabilities.

Many of Drupal's competitors don't allow such a templated approach to be designed in the browser. Their browser-based page builders only allow you to create a design for an individual page. When you want to create a layout that applies to all pages of a specific content type, it is usually not possible without a developer.

Use case 2: Customizations to templated layouts

While having a uniform look for all products of a particular type has many advantages, sometimes you may want to display one or more products in a slightly (or dramatically) different way.

Perhaps a customer recorded a video of giving their loved one one of the gift baskets, and that video has recently gone viral (because somehow it involved a puppy). If you only want to update one of the gift baskets with a video, it may not make sense to add an optional "highlighted video" field to all gift baskets.

Drupal 8's Layout Builder offers the ability to customize templated layouts on a case per case basis. In the "viral, puppy, gift basket" video example, this would allow a content creator to rearrange the layout for just that one gift basket, and put the viral video directly below the product image. In addition, the Layout Builder would allow the site to revert the layout to match all other gift baskets once the world has moved on to the next puppy video.

The Drupal 8 Layout Builder showing a templated gift basket with a puppy video

Since most content management systems don't allow you to visually design a layout pattern for certain types of structured content, they of course can't allow for this type of customization.

Use case 3: Custom pages (with unstructured content)

Of course, not everything is templated, and content authors often need to create one-off pages like an "About us" page or the website's homepage.

In addition to visually designing layout templates for different types of content, Drupal 8's Layout Builder can also be used to create these dynamic one-off custom pages. A content author can start with a blank page, design a layout, and start adding blocks. These blocks can contain videos, maps, text, a hero image, or custom-built widgets (e.g. a Drupal View showing a list of the ten most popular gift baskets). Blocks can expose configuration options to the content author. For instance, a hero block with an image and text may offer a setting to align the text left, right, or center. These settings can be configured directly from a sidebar.

The Drupal 8 Layout Builder showing how to configure a block

In many other systems content authors are able to use drag-and-drop WYSIWYG tools to design these one-off pages. This type of tool is used in many projects and services such as Squarespace and the new Gutenberg Editor for WordPress (now available for Drupal, too!).

On large sites, the free-form page creation is almost certainly going to be a scalability, maintenance and governance challenge.

For smaller sites where there may not be many pages or content authors, these dynamic free-form page builders may work well, and the unrestricted creative freedom they provide might be very compelling. However, on larger sites, when you have hundreds of pages or dozens of content creators, a templated approach is going to be preferred.

When will Drupal's new Layout Builder be ready?

Drupal 8's Layout Builder is still a beta level experimental module, with 25 known open issues to be addressed prior to becoming stable. We're on track to complete this in time for Drupal 8.7's release in May 2019. If you are interested in increasing the likelihood of that, you can find out how to help on the Layout Initiative homepage.

An important note on accessibility

Accessibility is one of Drupal's core tenets, and building software that everyone can use is part of our core values and principles. A key part of bringing Layout Builder functionality to a "stable" state for production use will be ensuring that it passes our accessibility gate (Level AA conformance with WCAG and ATAG). This holds for both the authoring tool itself, as well as the markup that it generates. We take our commitment to accessibility seriously.

Impact on contributed modules and existing sites

Currently there a few methods in the Drupal module ecosystem for creating templated layouts and landing pages, including the Panels and Panelizer combination. We are currently working on a migration path for Panels/Panelizer to the Layout Builder.

The Paragraphs module currently can be used to solve several kinds of content authoring use-cases, including the creation of custom landing pages. It is still being determined how Paragraphs will work with the Layout Builder and/or if the Layout Builder will be used to control the layout of Paragraphs.

Conclusion

Drupal's upcoming Layout Builder is unique in that it supports multiple different use cases; from templated layouts that can be applied to dozens or hundreds of pieces of structured content, to designing custom one-off pages with unstructured content. The Layout Builder is even more powerful when used in conjunction with Drupal's other out-of-the-box features such as revisioning, content moderation, and translations, but that is a topic for a future blog post.

Special thanks to Ted Bowman (Acquia) for co-authoring this post. Also thanks to Wim Leers (Acquia), Angie Byron (Acquia), Alex Bronstein (Acquia), Jeff Beeman (Acquia) and Tim Plunkett (Acquia) for their feedback during the writing process.

Nov 12 2018
Nov 12

The Drupal 8 Editor File Upload Module is a great module for allowing your content editors to upload files directly in your website content. If you have ever needed to upload a file, and then include a link to that file, then the Editor File Upload module will be useful. Rather than having to upload the file manually using FTP or through another module, then having to go back to create a link in your content to that file, this module lets you do it all in one step. This saves you (or the other content editors on your site) a lot of time.

Nov 12 2018
Nov 12

Agiledrop is highlighting active Drupal community members through a series of interviews.

Adam Bergstein is the maintainer of SimplyTest.me, runs the Drupal Coffee Exchange and participates in the Governance Task Force that just released its community proposal. Learn how Adam, aka Nerdstein, feels about Drupal 8 core development.
 

1. Please tell us a little about yourself. How do you participate in the Drupal community and what do you do professionally?

I go by [the nick name] Nerdstein and have been a part of the Drupal community for quite some time. My main contributions are porting/supporting Drupal 8 modules, giving talks at events, maintaining SimplyTest.me, running the Drupal Coffee Exchange and recently participating in the Governance Task Force.

I live in the United States with my wife and two daughters, whom I adore. I currently serve as the VP of Engineering for Hook 42 but had previous roles at CivicActions, Acquia and Penn State University. I have a masters in Information Security, and love working with teams, mentoring/enablement, architecture, security, Agile and DevOps.

2. When did you first came across Drupal? What convinced you to stay, software or the community, and why?

I started looking at Drupal during an evaluation of a project. This was right around the time that the business/agency ecosystem was just starting to take shape. While I was a bit intimidated by all of the new terminology and my lack of understanding open source communities, we selected Drupal. A vendor and I were impressed by how much progress was able to be made thanks to both core and contrib. 

While that piqued my interest, it still took me a long time to understand the community and to contribute. I attended Drupaldelphia back in 2014. I learned a lot, made several community connections, and really enjoyed it. At that point, I knew I wanted to participate and got the confidence to do so. 

I’ve always valued both, the people and the efforts of our vast community. We have some incredibly unique, fun and talented people that contribute in meaningful ways. I’m routinely impressed by how we face and solve hard problems. There is an incredible impact when we add up our collective efforts. I look at what we do each day and I’m proud to even have a small part in it.

3. What impact has Drupal made on you? Is there a particular moment you remember?

It’s made a huge impact. It’s allowed me to grow professionally and provide for my family. All of this while maintaining a feeling that I’m serving clients and for a greater good through the community efforts.

I remember the moment I went to Boston to the interview with Acquia, which was my first Drupal-centric position. I had not travelled much professionally, rarely attended community events, and generally had a sense of imposter syndrome (I shouldn’t even be here, sort of thing). I was surprised at how relevant my Drupal experience was, and knew this was the start of something much larger. 

4. How do you explain what Drupal is to other, non-Drupal people?

Basically a bunch of really cool people building technology together. People are shocked to learn how a significant number of (mostly) volunteers across the globe are able to come together to build software that is widely adopted. It seems a bit far-fetched at first, but I think people understand there is something larger and impactful happening in our community. I often compare this to proprietary efforts, like Microsoft, and the analogy is better understood. 

5. How did you see Drupal evolving over the years? What do you think the future will bring?

I actually have a blog post I’ve been drafting for several months on this very topic. I feel like we need to evolve both, the technology and our community. It is non-trivial to answer, and I need to state that this is my opinion. 

Technically speaking, I’d like to see Drupal core slow down on adding new features and focus on stability. The recent additions of Unami, media, layout builder and a stable migrate is incredibly impactful for Drupal as a product. I’d much prefer if we pause, reflect on what we’ve learned and polish what we have. Prioritizing and resolving already known open issues would stabilize Drupal and clean up a lot of the small things people find frustrating. The initiative around Composer-related improvements is a great example of something we learned and need to prioritize. And I sense there is a lot we can clean up in the core, like View Modes and the Block system, that could be incrementally improved to promote usability and consistency between features.

Community-wise, I would simply reference the proposal we have now released from the Governance Task Force. We proposed recommendations to several aspects of the community. A lot of work and deliberation went into the recommendations, and do a much better job communicating them than I ever could myself. 

6. What are some of the contribution to open source code or community that you are most proud of?

I am very proud of the opportunity I had to serve on the Governance Task Force. I see so much potential to help the community from the work done by the task force. I was so overwhelmingly impressed by my peers on the task force. It was a dream team of some of the most thoughtful, smart and easy-to-work-with individuals I’ve ever collaborated with. 

7. Is there an initiative or a project in Drupal space that you would like to promote or highlight?

I’ll take the time to highlight three things and would ask anyone who is interested in participating to reach out to me.

  1. SimplyTest.me will be going through some technical modernization that includes a new Drupal 8 front-end and the underlying tools that provision instances.
  2. We’re expanding the Drupal Coffee Exchange to better support international audiences. If you and others in your country enjoy coffee, please sign up! It’s a lot of fun for people.
  3. As part of the Governance Task Force, we publicly released a proposal and created issues for an open commentary period for the community. Get involved. You may have better ideas to contribute or be able to provide additional context to help move the efforts forward. 

8. Is there anything else that excites you beyond Drupal? Either a new technology or a personal endeavorment. 

I always rave about my two beautiful kids, my love for craft beer and my foodie tendencies. But lately, I have been trying to prioritize my physical health by running. Over the last two years, I have participated in over ten races and very recently was able to run a ten-mile run (~15K). For several years I focused on my education, jobs and family needs, while my physical health was not as good as it should have been. I have enjoyed running routinely and shocked by how much it helps relieves stress, gives me some fresh air and helps me remain balanced.
 

Nov 12 2018
Nov 12

Layout Builder, which will be in the next release of Drupal 8, is unique in that it can work with structured and unstructured content, and with templated and free-form pages.

Content authors want an easy-to-use page building experience; they want to create and design pages using drag-and-drop and WYSIWYG tools. For over a year the Drupal community has been working on a new Layout Builder, which is designed to bring this page building capability into Drupal core.

Drupal's upcoming Layout Builder is unique in offering a single, powerful visual design tool for the following three use cases:

  1. Layouts for templated content. The creation of "layout templates" that will be used to layout all instances of a specific content type (e.g. blog posts, product pages).
  2. Customizations to templated layouts. The ability to override these layout templates on a case-by-case basis (e.g. the ability to override the layout of a standardized product page)
  3. Custom pages. The creation of custom, one-off landing pages not tied to a content type or structured content (e.g. a single "About us" page).

Let's look at all three use cases in more detail to explain why we think this is extremely useful!

Use case 1: Layouts for templated content

For large sites with significant amounts of content it is important that the same types of content have a similar appearance.

A commerce site selling hundreds of different gift baskets with flower arrangements should have a similar layout for all gift baskets. For customers, this provides a consistent experience when browsing the gift baskets, making them easier to compare. For content authors, the templated approach means they don't have to worry about the appearance and layout of each new gift basket they enter on the site. They can be sure that once they have entered the price, description, and uploaded an image of the item, it will look good to the end user and similar to all other gift baskets on the site.

The Drupal 8 Layout Builder showing a templated gift basket

Drupal 8's new Layout Builder allows a site creator to visually create a layout template that will be used for each item of the same content type (e.g. a "gift basket layout" for the "gift basket" content type). This is possible because the Layout Builder benefits from Drupal's powerful "structured content" capabilities.

Many of Drupal's competitors don't allow such a templated approach to be designed in the browser. Their browser-based page builders only allow you to create a design for an individual page. When you want to create a layout that applies to all pages of a specific content type, it is usually not possible without a developer.

Use case 2: Customizations to templated layouts

While having a uniform look for all products of a particular type has many advantages, sometimes you may want to display one or more products in a slightly (or dramatically) different way.

Perhaps a customer recorded a video of giving their loved one one of the gift baskets, and that video has recently gone viral (because somehow it involved a puppy). If you only want to update one of the gift baskets with a video, it may not make sense to add an optional "highlighted video" field to all gift baskets.

Drupal 8's Layout Builder offers the ability to customize templated layouts on a case per case basis. In the "viral, puppy, gift basket" video example, this would allow a content creator to rearrange the layout for just that one gift basket, and put the viral video directly below the product image. In addition, the Layout Builder would allow the site to revert the layout to match all other gift baskets once the world has moved on to the next puppy video.

The Drupal 8 Layout Builder showing a templated gift basket with a puppy video

Since most content management systems don't allow you to visually design a layout pattern for certain types of structured content, they of course can't allow for this type of customization.

Use case 3: Custom pages (with unstructured content)

Of course, not everything is templated, and content authors often need to create one-off pages like an "About us" page or the website's homepage.

In addition to visually designing layout templates for different types of content, Drupal 8's Layout Builder can also be used to create these dynamic one-off custom pages. A content author can start with a blank page, design a layout, and start adding blocks. These blocks can contain videos, maps, text, a hero image, or custom-built widgets (e.g. a Drupal View showing a list of the ten most popular gift baskets). Blocks can expose configuration options to the content author. For instance, a hero block with an image and text may offer a setting to align the text left, right, or center. These settings can be configured directly from a sidebar.

The Drupal 8 Layout Builder showing how to configure a block

In many other systems content authors are able to use drag-and-drop WYSIWYG tools to design these one-off pages. This type of tool is used in many projects and services such as Squarespace and the new Gutenberg Editor for WordPress (now available for Drupal, too!).

On large sites, the free-form page creation is almost certainly going to be a scalability, maintenance and governance challenge.

For smaller sites where there may not be many pages or content authors, these dynamic free-form page builders may work well, and the unrestricted creative freedom they provide might be very compelling. However, on larger sites, when you have hundreds of pages or dozens of content creators, a templated approach is going to be preferred.

When will Drupal's new Layout Builder be ready?

Drupal 8's Layout Builder is still a beta level experimental module, with 25 known open issues to be addressed prior to becoming stable. We're on track to complete this in time for Drupal 8.7's release in May 2019. If you are interested in increasing the likelihood of that, you can find out how to help on the Layout Initiative homepage.

An important note on accessibility

Accessibility is one of Drupal's core tenets, and building software that everyone can use is part of our core values and principles. A key part of bringing Layout Builder functionality to a "stable" state for production use will be ensuring that it passes our accessibility gate (Level AA conformance with WCAG and ATAG). This holds for both the authoring tool itself, as well as the markup that it generates. We take our commitment to accessibility seriously.

Impact on contributed modules and existing sites

Currently there a few methods in the Drupal module ecosystem for creating templated layouts and landing pages, including the Panels and Panelizer combination. We are currently working on a migration path for Panels/Panelizer to the Layout Builder.

The Paragraphs module currently can be used to solve several kinds of content authoring use-cases, including the creation of custom landing pages. It is still being determined how Paragraphs will work with the Layout Builder and/or if the Layout Builder will be used to control the layout of Paragraphs.

Conclusion

[embedded content]

Drupal's upcoming Layout Builder is unique in that it supports multiple different use cases; from templated layouts that can be applied to dozens or hundreds of pieces of structured content, to designing custom one-off pages with unstructured content. The Layout Builder is even more powerful when used in conjunction with Drupal's other out-of-the-box features such as revisioning, content moderation, and translations, but that is a topic for a future blog post.

Special thanks to Ted Bowman (Acquia) for co-authoring this post. Also thanks to Wim Leers (Acquia), Angie Byron (Acquia), Alex Bronstein (Acquia), Jeff Beeman (Acquia) and Tim Plunkett (Acquia) for their feedback during the writing process.

November 12, 2018

4 min read time

Nov 12 2018
Nov 12

Visualization styles are configuration entities that store a reference to a drawer plugin (its Id) and a set of configuration defaults. These styles are used to create drawings. As VisualN defines it, a drawing is a ready, self-contained piece of markup (or render array) with possibly styles and scripts attached. Almost anything can be a drawing: a chart, an image gallery or even a web app.

In a sense, they are similar to image styles which are applied to an original image in order to get a styled one. In the case of visualization styles, they are applied to sets of data to get a drawing as a result. Though some drawers don't even need data to create a drawing.

Visualization style to drawing

Visualization styles can be created either using Available drawers preview UI or directly using VisualN > Visualization Styles administration page. Once created, they can be used anywhere on the site to create drawings: views, fields, blocks, embedded into content via ckeditor, tokens etc. Multiple styles can be created for the same drawer.

On the screenshot below a style is created for the Linechart Basic drawer provided with VisualN module.

Visualization style configuration form

To create a visualization style, its label must be set and drawer plugin selected. If selected drawer plugin configuration form provides required fields, those must be set up too.

Every drawer plugin may provide its own custom configuration form, be it very basic with just a few settings or a complex one with multiple fields and ajaxified elements. It is also ok for a drawer to have no (or empty) configuration form either. In the example above, Linechart Basic drawer provides Number of series setting which allows to vary the number of data series and thus lines on the resultant chart. The Update series button adjusts the number of text fields used to set labels for each series. Also it serves as an example of a configuration form with ajax elements.

The Leaflet Basic drawer (shipped with VisualN module as well) would show a different form: e.g. it provides settings for map viewport width and height. Thus, developers are free to create configuration forms of any structure and complexity without worrying about how those forms are integrated into the UI - everything is seamlessly handled by VisualN module.

Having visualization styles configured you are ready to create great drawings. Enjoy it!

Series contents

  1. Getting started
  2. Using available drawers preview
  3. Creating visualization styles
  4. Creating drawing (entity) types
  5. Creating interactive content in CKEditor with VisualN Embed
  6. Configuring VisualN Embed integration with CKEditor
  7. Using VisualN Excel module for Excel files support
  8. Sharing embedded drawings across sites
  9. etc.
Nov 10 2018
Nov 10

The Drupal 8 Image Widget Crop Module is a handy module for allowing your content editors on your website to crop images after they upload them. Have you ever uploaded an image on a website and had it automatically crop the image for you in a way that just looks wrong? This module solves that problem!

Nov 09 2018
Nov 09

Video of Drupal 8 Contact Storage Export Module - Daily Dose of Drupal Episode 215

In this episode, we cover the Drupal 8 Contact Storage Export Module. This episode covers a module that adds additional functionality to the Contact Storage Module (which we covered in episode 213). This module allows you to export your contact form submissions to a CSV file. It's a simple module that serves a very specific purpose. If you need to export your contact form submissions, this is how you do it!

Check out the Code Karate Patreon page

Nov 09 2018
Nov 09

This blog has been re-posted and edited with permission from Dries Buytaert's blog. Please leave your comments on the original post.

If you are still using PHP 5, now is the time to upgrade to a newer version of PHP.

PHP, the Open Source scripting language, is used by nearly 80 percent of the world's websites.

According to W3Techs, around 61 percent of all websites on the internet still use PHP 5, a version of PHP that was first released fourteen years ago.

Now is the time to give PHP 5 some attention. In less than two months, on December 31st, security support for PHP 5 will officially cease. (Note: Some Linux distributions, such as Debian Long Term Support distributions, will still try to backport security fixes.)

If you haven't already, now is the time to make sure your site is running an updated and supported version of PHP.

Beyond security considerations, sites that are running on older versions of PHP are missing out on the significant performance improvements that come with the newer versions.

Drupal and PHP 5

Drupal 8

Drupal 8 will drop support for PHP 5 on March 6, 2019. We recommend updating to at least PHP 7.1 if possible, and ideally PHP 7.2, which is supported as of Drupal 8.5 (which was released March, 2018). Drupal 8.7 (to be released in May, 2019) will support PHP 7.3, and we may backport PHP 7.3 support to Drupal 8.6 in the coming months as well.

Drupal 7

Drupal 7 will drop support for older versions of PHP 5 on December 31st, but will continue to support PHP 5.6 as long there are one or more third-party organizations providing reliable, extended security support for PHP 5.

Earlier today, we released Drupal 7.61 which now supports PHP 7.2. This should make upgrades from PHP 5 easier. Drupal 7's support for PHP 7.3 is being worked on but we don't know yet when it will be available.

Thank you!

It's a credit to the PHP community that they have maintained PHP 5 for fourteen years. But that can't go on forever. It's time to move on from PHP 5 and upgrade to a newer version so that we can all innovate faster.

I'd also like to thank the Drupal community — both those contributing to Drupal 7 and Drupal 8 — for keeping Drupal compatible with the newest versions of PHP. That certainly helps make PHP upgrades easier.

Nov 09 2018
Nov 09

First one on the list is Why I am one of the top contributors to Drupal? by Jacob Rockowitz. This blog post was inspired by Dries’ annual Who sponsors Drupal development? (2017-2018 edition) report. Jacob is one of the developers who contributes the most to the Drupal community. In this blog post, he wants to go a little bit further from the question who contributes the most - he is answering why is he contributing to Drupal. 

We continue our list with a blog post How Marketers can Benefit from Drupal 8 by Tim Cruse from Duo Consulting. Tim explains that we are witnessing increasing interest in Drupal 8, especially from the marketing department and that is with a good reason. In this blog post, he looks at the facts that make Drupal so valuable to marketers. 

The third spot is reserved for a blog post Decoupled Drupal Authentication with OAuth 2.0 by Preston So, Director of Research and Innovation of Acquia.  Preston explains that the most critical component of the decoupled Drupal architecture is a robust authentication mechanism that protects data transmitted between a Drupal site and API consumers. Drupal contributed ecosystem contains several highly useful modules that leverage more recent authentication standards like OAuth 2.0, which he takes a closer look at in this blog post. 

Let’s continue with Drupal Strategies: Landing Pages by Cindy McCourt from Promet Source. In this blog post, Cindy looks at five recipes for building landing pages in Drupal: Node page, Node Plus View Block, A View Page Plus a Block, Panel Page and Custom Theme Page and for each, she is answering how and why.

Our fifth choice is How we are improving Drupal's configuration management system by Dries Buytaert. He explains that configuration management is an important feature of any modern content management system. What will the future bring for Drupal in that area?

The sixth blog post we would like to highlight is End to End Testing With Drupal and Cypress by Edward Allison from Sevaa Group. At Sevaas they started to use Cypress to handle End to End tests for their Drupal sites. The experience was great, thus the process has not been complete without hurdles, therefore Ed finds a few concepts that have been helpful specifically for Drupal sites, he is walking us through. 

The next one is 9 Drupal Websites that Change the World by Vergiliu Hachi from Sooperthemes. In this article they talk about some of the world’s biggest organizations and NGOs who are dedicated to making the world a better place - NASA, Tesla, Doctors without Borders etc. Besides changing the world, all these websites have another thing in common: they all use Drupal.

And the last but not least one is a blog post is Atomic Design in Drupal with GraphQL & Twig - Webinar Recap, a recap of Philipp Melabs webinar by Daniel Lemon, both from Amazee Labs. Daniel gives us an insight into the webinar, where Philipps focus on building a real-world example website for a fictional web agency called Amazing Apps.

These are our top blogs from October… We will be collecting best Drupal blog posts in November too. Stay tuned.


 

Nov 09 2018
Nov 09

I'll keep this short and sweet, but we thought this would be a useful tip to share with the world as a potential security issue with the combined use of File::getFileUri() and FileSystem::realpath().

Consider the following code excerpt :

$file = File::load($some_file_uri);

if ($file) {
  $uri = $file->getFileUri();
  $file_realpath = \Drupal::service('file_system')->realpath($uri);
}

Seems pretty harmless right? Load up the file from $some_file_uri , If we have a valid file then get the URI and then grab the real path.

Wrong (potentially, depending on what you do with $file_realpath).

If $file is a valid file, but for whatever reason the file is no longer physically located on disk, then $file->getFileUri() will return a blank string.

It turns out that passing this blank string $uri into \Drupal::service('file_system')->realpath($uri) will return the full webroot of your site!

Depending on what you were doing with said $file_realpath, it could then be a security issue.

We were handling a user webform submission and then sending the submission over to a CRM system... because $file_realpath was now the webroot of the site, then code that followed to archive the user submitted file ended up archiving the entire webroot and sending this over to the client's CRM system. 

Luckily in this instance, the archive was only ever available temporarily server side and then went directly to the clients own CRM system, but in another circumstance this could have easily been a very serious security issue.

Fortunately the fix is quite simple, ensure the the $uri returned from ->getFileUri() is valid by some method, before passing through realpath(). Here, I now validate the uri matches what I know it should be for the current webform submission.

if ($file) {
  $uri = $file->getFileUri();
  $webform_id = $webform->get('id');
  $submission_id = $webform_submission->get('sid')->getValue()[0]['value'];
  $valid_file_scheme = strpos($uri, 'private://webform/' . $webform_id . '/' . $submission_id . '/') !== FALSE;

  if ($valid_file_scheme) { 
    // Proceed with the rest of the code..
  }
}
Nov 08 2018
Nov 08

If you are still using PHP 5, now is the time to upgrade to a newer version of PHP.

PHP, the Open Source scripting language, is used by nearly 80 percent of the world's websites.

According to W3Techs, around 61 percent of all websites on the internet still use PHP 5, a version of PHP that was first released fourteen years ago.

Now is the time to give PHP 5 some attention. In less than two months, on December 31st, security support for PHP 5 will officially cease. (Note: Some Linux distributions, such as Debian Long Term Support distributions, will still try to backport security fixes.)

If you haven't already, now is the time to make sure your site is running an updated and supported version of PHP.

Beyond security considerations, sites that are running on older versions of PHP are missing out on the significant performance improvements that come with the newer versions.

Drupal and PHP 5

Drupal 8

Drupal 8 will drop support for PHP 5 on March 6, 2019. We recommend updating to at least PHP 7.1 if possible, and ideally PHP 7.2, which is supported as of Drupal 8.5 (which was released March, 2018). Drupal 8.7 (to be released in May, 2019) will support PHP 7.3, and we may backport PHP 7.3 support to Drupal 8.6 in the coming months as well.

Drupal 7

Drupal 7 will drop support for older versions of PHP 5 on December 31st, but will continue to support PHP 5.6 as long there are one or more third-party organizations providing reliable, extended security support for PHP 5.

Earlier today, we released Drupal 7.61 which now supports PHP 7.2. This should make upgrades from PHP 5 easier. Drupal 7's support for PHP 7.3 is being worked on but we don't know yet when it will be available.

Thank you!

It's a credit to the PHP community that they have maintained PHP 5 for fourteen years. But that can't go on forever. It's time to move on from PHP 5 and upgrade to a newer version so that we can all innovate faster.

I'd also like to thank the Drupal community — both those contributing to Drupal 7 and Drupal 8 — for keeping Drupal compatible with the newest versions of PHP. That certainly helps make PHP upgrades easier.

November 08, 2018

1 min read time

db db
Nov 08 2018
Nov 08

Now that I’ve settled back down in Alaska after a fun trip to Berkeley for BADCamp, I’m finally digesting all of the info I gathered throughout the week. As always, it was cool to look over the schedule and see what topics were getting a lot of attention; and, without a doubt, it seemed like GatsbyJS was the hot-ticket item this year. So here’s a primer on what GatsbyJS is and why the Drupal community seems so head-over-heels for this up and coming site generator.

What is GatsbyJS?

For the uninitiated, GatsbyJS is a static site generator for React which allows you to compose a website using React components and JSX. Then, with a “Gatsby build” command, the entire React app gets compiled into a set of static HTML, JavaScript, and CSS files.

However, this is nothing new. Static site generators like Jekyll or Hugo have been doing this for years. So, what makes Gatsby so popular, especially within the Drupal community? Judging by the sentiments I heard from the four sessions on Gatsby I attended at BADCamp, I noticed that folks tended to gravitate toward a few essential features that made Gatsby appealing, not only as an integration with a Drupal backend but also more broadly.

Gatsby’s Drupal Source Plugin

The feature most commonly cited in BADCamp talks about Gatsby was the source plugin ecosystem, which allows a developer to define a backend “source” from which Gatsby will build pages. There is a robust and well-developed plugin for Drupal 8 (gatsby-source-drupal), which allows Gatsby to programmatically create content from Drupal’s content types, taxonomies, as well as blocks and menus.

The plugin works like this: first, you must enable the JSON API module, which exposes routes and schemas that help Gatsby import your content into your Gatsby application. Then, on the Gatsby side, you are able to query the data from your Drupal site using GraphQL and render the query results to various React components, such as page templates.

Build/Deploy Workflow

Secondly, the architecture around deploying/building a Gatsby site lends itself well to working with Drupal - using something like the Webhooks module, you can have your Gatsby site rebuild (and thus, pull new content) on every node create, update, or delete operation, and so forth.

This is very important, considering that most static sites are perceived as being labor intensive (in the sense that every time content is updated, someone needs to recompile the site); but, to hear Gatsby co-founder Sam Bhagwat talk about it, the ready availability of on-demand build triggers and integrations makes your static site actually perform much more like a cache. However, it’s the sort of cache that doesn’t require maintaining a highly technical caching stack like Varnish or Memcache. After the minute or two it takes for the build step to complete, your changes have completely propagated and site visitors are being served the new content.

React

Love it or hate it, React is here to stay. It is rapidly becoming the most common front-end stack in web development. Although it may not be for everyone, most developers who have spent the time to learn React tend to fall hard for it. Heck, this year’s Stack Overflow Annual Developer Survey puts React as one of the most “loved” frameworks by developers this last year, with 69.4% of respondents reporting that they enjoy working with React. Obviously, something is working for React in terms of developer experience. Being able to implement a React front-end without the architectural concerns of a complete decoupled solution certainly seems to be one of the bigger motivating factors behind Gatsby’s adoption among Drupal developers.

Performance

Last, but certainly not least, Gatsby’s appeal comes largely from speed. As mentioned above, since everything is served from static files, Gatsby sites load really fast. Without any server-side code to execute, the only limitations on performance are in the size of HTML/CSS/JS bundles being served over the network. When folks in a traditional Drupal site (or any other monolithic CMS) concoct solutions for better performance there are a few usual suspects:

  • better caching
  • reducing bundle sizes (minifying JS and CSS, for example)
  • optimizing images
  • serving non-dynamic site files (such as images) from a CDN

Out of the gate, a Gatsby site effectively implements all of these features by default. Since the entire site is a set of static files, your content is effectively ‘cached’ to the state of your website as of the last executed build, and the flat files that are generated from the build perform similarly to cache catch. Likewise, because Gatsby runs a build step, our entire HTML/CSS/JS bundle is minified from source using Webpack. No configuration required! Gatsby also comes pre-wired with a bunch of image optimization, including using the Sharp image processing library and progressive image loading to get a contentful, interactive page rendered as quickly as possible. And lastly, with a completely static site the most common way of hosting the site is through a CDN - some popular ones among Drupalers who use Gatsby include Netlify and Amazon S3. On top of all of that, Gatsby also has some other nifty built-in features like prefetching, which means that after the initial page load you’ll get lightning-quick performance between internal pages on your site.

Limitations

Of course, most folks discussing Gatsby + Drupal implementations at BADCamp were quick to acknowledge Gatsby’s limitations. First, and most notable among the limitations, is the inability to use conventional user-submitted data. If you wanted to define a webform and render those results into a views-generated table, that would be pretty straightforward in a conventional Drupal 8 site. In a Gatsby site, however, it would be much more complicated. Likewise, for many of the ‘nice to have’ out of the box things that Drupal gives us - authentication, custom user roles, and access restriction, etc. – they all need to be effectively re-engineered if we want to implement them on our Gatsby front-end. That said, we could certainly continue to do many of those things in Drupal, but in the emerging conventional patterns of using Gatsby and Drupal together, it is unclear what the ‘best practices’ method is for handling those use cases.

All in all...

I think it’s really interesting to see this attention and centralization on Gatsby as a defacto solution for decoupled Drupal sites. While there are plenty of limitations, Gatsby seems like an interesting solution for some of the characteristic decoupled problems that many decoupled Drupal devs are very familiar with by now.

And, as always, this year’s BADCamp was really great to get a chance to see the Hook 42 team – it’s amazing that we “see” each other so often online, but once we’re all together I’m reminded of what a smart, funny, and fun group of people we are. Can’t wait to see everyone again!

Nov 08 2018
Nov 08

Now that the excitement of BADCamp has worn off, I have a moment to reflect on my experience as a first-time attendee of this amazing, free event. Knowing full well how deeply involved Kanopi Studios is in both the organization and thought leadership at BADCamp, I crafted my schedule for an opportunity to hear my colleagues while also attending as many sessions on Accessibility and User Experience (UX) as possible.

Kanopi’s sessions included the following:

The rest of my schedule revolved around a series of sessions and trainings tailored toward contributing to the Drupal community, Accessibility and User Experience.

For the sake of this post, I want to cover a topic that everyone who builds websites can learn from. Without further ado, let’s dive a bit deeper into the accessibility portion of the camp.  

Who is affected by web accessibility?

According to the CDC, 53 million adults in the US live with some kind of disability; which adds up to 26% of adults in the US. Issues range from temporary difficulties (like a broken wrist) to permanent aspects of daily life that affect our vision, hearing, mental processing and mobility. Creating an accessible website allows you to communicate with 1 in 4 adults you might otherwise have excluded.

What is web accessibility?

Accessibility is a detailed set of requirements for content writers, web designers and web developers. By ensuring that a website is accessible, we are taking an inclusive attitude towards our products and businesses. The Web Content Accessibility Guidelines (WCAG) are a globally acknowledged set of standards that help us publish content that fits within the established success criteria. These guidelines are organized into the following four categories.

WCAG Categories:

  • Is your website perceivable? This applies to non-text content, time-based media (audio and video), color contrast, text size, etc.
  • Is your website operable? This ensures that content is easy to navigate using a keyboard, that animations and interactions meet real-user requirements, buttons are large enough to click, etc.
  • Is your website understandable? This means that text content is easy to read for someone at a ninth grade reading level, that interactions follow design patterns in a predictable manner, that form errors are easy to recover from, etc.
  • Is your website robust? This means that content should be easy to interpret for assistive technologies, such as screen readers.

The World Wide Web Consortium (W3C) is an international community whose mission is to lead the Web to its full potential. They have also published a checklist to aid our efforts in meeting WCAG success criteria.

How can we be successful in making the web accessible?

Industries have varied requirements when it comes to web accessibility. WCAG has three levels of compliance, ranging from A to AA to AAA. A conformity has the lowest set of requirements and AAA has the strictest set of requirements; so strict, in fact, it may be impossible to achieve across an entire site.

Efforts to meet these standards fall on every individual involved in the process of creating a website. Although there are many tools that aid in our journey, we reach accessibility through a combination of programmatic and manual means.

The most important thing to keep in mind is the fact that achieving success in the world of accessibility is a journey. Any efforts along the way will get you one step closer towards a more inclusive website and a broader audience base.

Please Remember: Once Kanopi helps you launch an accessible site, it’s your job to maintain it. Any content you add moving forward must be properly tagged; images should have proper alt text and videos should have captions. Users come to your site because they love your content, after all! The more you can make your content accessible, the more you will delight your users.

Interested in making your site more accessible? Check out some of the resources I linked to above to join in learning from my peers at BADCamp. If you need more help getting there, let’s chat!

Nov 08 2018
Nov 08

MidCamp is returning for its sixth year next March 20-23, 2019. We’ll be back at DePaul University for four days of presentations, professional training, contribution sprints, and socials. Designers, developers, and users will be able to brush shoulders with Drupal service providers, hosting vendors, and other members of the broader web development community.

Agenda Overview

This year we have some changes to our general agenda. We’ll be adding summits for the first time! We’ve also moved our sessions to Thursday and Friday so that attendees get some of their weekends back. A high-level agenda is as follows:

  • Wednesday, Mar 20 - Summits, Training, and Contribution Sprints

  • Thursday and Friday, Mar 21-22 - Sessions

  • Saturday, Mar 23 - Contribution Sprints

Stay Tuned for these Upcoming Dates

Stay tuned into the website and our newsletter for some upcoming dates.

  • NOW! - Ticket sales are open on Eventbrite. Spread the word and get your tickets early: https://midcamp2019.eventbrite.com/

  • Nov 14, 2018 - Our website will be fully up and running. It will be ready to open our call for papers.

  • Dec 12, 2018 - Call for papers will close and travel information will be available on the website.

  • Jan 9, 2019 - We will open the registration for training and summits.

  • Jan 16, 2019 - Announce Featured speakers on the website.

  • Jan 23, 2019 - We will post the Final schedule for the website.

Help us Make MidCamp!

It’s not too late to get involved with MidCamp 2019. We’re on MidCamp Slack. You can also contribute by telling us what topics you’re interested in seeing in the 2019 program.

Join the conversation

Nov 08 2018
Nov 08

This is a public update on the work of the Governance Task Force.

Drupal is one of the most successful open source projects in the world. Governance is fundamental to the project's success.

The community and the code has been built from the ground up. And as the code has grown, so has the community.

When communities are first emerging it's easy to bring newcomers along, but over time the community begins to mature, change, and then needs to adapt. Challenges and opportunities emerge as evolution occurs, and our community needs to navigate them strategically.

A Governance Task Force has been meeting weekly since May to put together the strategic proposal we now share with you. We've synthesized ideas, discussions, and experiences from people we've interviewed, and we've revisited the themes that emerged from the community listening project run by Whitney Hess and by previous governance discussions.

This Drupal Governance Task Force 2018 Proposal serves two purposes.

Firstly, it's clear that for community evolution to occur there needs to be broad agreement and buy-in. People are comfortable jumping in and building a new module, but community change and action is hard. People talked to us openly about the unclear processes and barriers holding back community progress.

We heard strong perceptions that support from Dries or the Drupal Association is needed before initiatives could be created or scaled; real or otherwise, this is affecting community progress and action. Speaking to people from the Drupal Association, the Community Working Group and other initiative leaders, they also feel limitations. But to change their terms of reference and priorities they also need to have a community directive.

The community is stronger and more influential than we sometimes assume  --- when we are speaking together.

That's why at the heart of this proposal is a new community governance structure.

The second purpose of the proposal is to create a starting point --- a framework. We’ve been practical, highlighting a range of actions that form a backbone for community evolution. It’s not a defined roadmap, and it’s not a list of every idea we had or heard. We welcome the discussion, debate and idea generation that this document will spark. We want to hear your solutions on how to get change done, and what you would like to contribute.

We strived to make practical recommendations with the potential to make progress, lower barriers, and help our community to continue to evolve with time.

Throughout this process we have heard people say they believe change is necessary. Change is necessary for the longevity of Drupal the project and the code. Change is necessary to create a new generation of Drupallers — the people we want to help build ambitious things and to have the chance to build a career within our community.

It is hard to not feel the project is at a crossroads. We’ve climbed the mountain of Drupal 8, we sit at the peak and look to the valley below.

Where we go next, and who we take with us, is up to you.

We hope this proposal helps.

David, Ela, Stella, Lyndsey, Rachel, Hussain, and Adam

File attachments:  Drupal-Governance-Task-Force-Proposal-2018.pdf
Nov 08 2018
Nov 08

The real cost of creating and maintaining a new website can be hard to estimate even for the best among Drupal professionals. By using the Total Cost of Ownership (TCO) methodology, organizations can ensure that both direct and indirect expenses of operating a website are considered and calculated rather than just emphasize on the initial spending. In this article we are going to take a look at what are the Drupal costs of owning a website versus using a proprietary software.

There are some key considerations to decide on before diving into building a website:

  1. Open Source vs. Proprietary License
  2. Creating and Managing Web Content
  3. Re-designing and Updating Content
  4. Future Upgrades and Longevity
  5. Long Term Savings

Custom Code - a necessity of the past?

Owning the custom code for your website has its own pros and cons, and in some cases it can still prove to be the most feasible choice depending on your website's needs. If you asked web developers a few years ago whether you should opt for a custom framework or open source CMS when building your website, they would tell you that open source CMS limit website's capabilities and features while with custom coding it's possible to adapt to any needs and necessary requirements. This has been changing at a fast pace since open source software started rapidly evolving and covering more and more ground in the industry. For example Drupal's exponential growth and limitless space for scalability has become rather impressive and hard to ignore for big organizations. Currently, Drupal serves as a direct competitor to the concept of custom code: people being able to integrate, twist and change the CMS to get the precise results they expect for their website. With the introduction of Drupal 8, new APIs have been integrated in the CMS which allow for supporting a decoupled Drupal site through Restful Web Services API, enhance user experience by faster page rendering and better caching protocols, as well as Drupal translation API which adjusts the language on your website depending on where the viewers lives - things that would have only been possible through custom code in the past. Not to say that building a custom code is unpractical, but in most cases the benefits that Drupal brings out-scales the custom framework, eventually saving organizations time, money and help them prevent future complications that might arise due to the custom.

1. Open Source vs. Proprietary License

Choosing a content management system (CMS) for a website is one of the fundamental decisions that has to be made before moving on to making other decisions. When talking about CMS, there are 2 directions a company can take: using an open source CMS such as Drupal or proprietary licensed software. If an organization opts for a Proprietary License, they have to regularly invest in the IT department that will take care to implement new website features, updates and support. Open Source CMS are continuously evolving and the bugs are discovered and fixed quicker due to a dedicated community of developers working to improve the CMS. Companies have the freedom to run it on numerous websites resulting in significantly reduced costs and can adapt the software to meet their business requirements. Besides, to further increase the functionality and convenience of the CMS, organizations can opt for using custom modules that enable Drag and Drop content management. For example our Glazed Builder module is currently one of the most powerful Drupal editors and is seamlessly integrated with both Drupal 8 and 7. Compared to the costs of proprietary license, Drupal costs are practically minimal, the CMS is more versatile (you're not stuck to a single software & its attributes) and it gives the organizations the power and freedom to build any kind of website.

2. Creating and Managing Web Content

Creating and managing content on your website on a regular basis is part of the daily routine for many stakeholders in large websites. Every open source CMS provides the necessary tools and flexibility to create new pages or edit already existing ones. In most cases this will still require assistance from a developer who will be responsible for handling it, but it doesn't necessarily have to. Thanks to the development of content editors and page builders such as Glazed Builder, managing and creating content is something anyone can do without relying on IT. They eliminate the need to go through the IT Department every time a change needs to be made on the website. This also drastically reduces IT costs and saves precious time, both could be re-invested in other company assets to deliver more value to consumers. On the other hand, managing content on proprietary website can prove to be quite a challenge, therefore there will always be a need for dedicated developers who are familiar with the software to systematically add and edit pages. 

3. Re-designing and Updating Content

The web environment is continuously evolving and changing at a fast pace. Along with it grows the customer expectations towards customers' online experiences and the value a website can deliver for them. In order to keep up and stay ahead of the competition, businesses need to periodically refresh their website's overall look and stay ahead by implementing new features that storm the web on a regular basis. It is also important to systematically update content in order to keep the information relevant, up-to-date and interesting for the visitor. When building a website, it is necessary to compare the long-term costs and available tools needed for re-designing the website and updating content. Open source software shines when it comes to empowering organizations in this aspect, Drupal having the reputation of the most flexible CMS makes it easy and convenient for organizations to create a new look for the website. Moreover, organizations can implement already made themes that suit their business model or create custom, unique themes by using page builders. Sooperthemes Glazed Builder gives you the control over every visual element on the website and makes it easy to modify them anytime in order to update and maintain content on main pages, product pages, landing pages, etc. 

4. Future Upgrades and Longevity

A website can last between 2-5 years before it needs a fresh re-design or to be completely rebuilt. The incentives that motivate businesses to upgrade their digital assets can include: security reasons, dated website, meeting Google SEO requirements or the necessity to keep up-to-date with the new technologies that emerge every year. Building organizational websites on a platform that grants the ability to be expanded and twisted to meet the latest trends in web technologies will prove to be a lifesaver when the time comes to upgrade the website. It will also eliminate the possibility to have to start building the website from scratch just because the proprietary foundation it was built on from the beginning does not allow for scalability. Drupal is known to be at the top of the industry when it comes to upgrades and space for future scalability. Drupal handles high-traffic websites with ease, maintaining minimum load times even at the highest peaks.

5. Drupal Costs & Long Term Savings

Analyzing the total cost of ownership of your website before starting to build it will save your organization a lot of money and time in the long run. These retained resources could be re-invested in other company facets that will add value for both the business and the end consumer. The costs of maintaining the website on a daily basis could be significantly reduced by using an open source software like Drupal. A good example is the Georgia Technology (GTA) case. When GTA decided to migrate 65 websites to Drupal, it resulted in 65% decrease on platform operational costs and costs associated with support decreased by 75% respectively. In the long term, the costs of operating a website on a Porprietary Licensed Software exceeds the Drupal costs by far. Unless there are very specific requirements for operating your website that could only be achieved with a Proprietary Software, Drupal will play a big part in minimizing the Total Cost of Ownership for an organizational website.

Nov 08 2018
Nov 08

What do you get when you put together: Drupal 8 + AI + UX? Drupal8's content management features and integration capabilities, AI, for storing and interpreting data and building a predictive model and UX for anticipating user behavior while adding a “human touch” to the equation? You get predictive UX in Drupal!

Is it possible? Can we implement predictive UX in Drupal and thus create anticipated user experiences that:
 

  • help you deliver meaningful content only    
  • simplify user choice
  • simplify users'... lives?
     

But how does machine learning actually power these predictive user experiences? What's the whole mechanism behind?

And how is predictive analytics UX any different from... personalization? 

Are there any “traps” to be avoided when using the same event data to make informed decisions on the customer's behalf? 

And last but not least: what makes Drupal 8 the best fit for predictively serving content?
 

1. What Is Predictive UX More Precisely?

“Less choice, more automation.”

Or: Anticipating users' needs and delivering them precisely and exclusively the content they need (when they need it).

In other words: creating those predictive user experiences that anticipate and meet your customers' needs...

Which one of these 2 possible definitions do you prefer?

Or maybe you'd like a more “elaborate” one:

Predictive UX means leveraging machine learning and statistical analysis to make informed decisions for the customer.

And if we are to turn this definition into a mathematical equation, it would go something like this:

machine learning (predicting) + UX design (anticipating)= predictive UX (based on a predictive or anticipatory design)
 

2. But Isn't This Just Another Word for “Personalization”?

As compared to personalization, predictive UX goes beyond tailoring content to users' past choices:

It actually makes decisions on their behalf.

It's not limited to leveraging data in order to deliver dynamic content. Which would automatically call for heavy manual work.

Instead, predictive UX is AI-driven, thus automating decision making on the user's behalf.
 

3. How Does Predictive Analytics Benefit You and Your Customers?

Here's an empathy exercise for you:

You're a mobile app user who's being constantly “flooded” by heavy streams of disruptive information through push notification, by text or by email. Or you're an online customer faced with a discouragingly “beefy” set of options as you're about to order food for lunch. There are so so many irrelevant options that you're striving to make your way through till you find the dish that really suits your preferences... that you just feel like closing the app and hitting the closest resto instead...

So, what if:

  • your app could... tell what you want to have for lunch and display the most relevant options only?
  • you would receive app alerts or push notifications in precisely the most appropriate moments (time of the day, of the month)?

It would:

  1. make your life so much easier
  2. improve your overall user experience 

As a company, by leveraging predictive analytics to deliver relevant user experiences only you'd be winning your customers' loyalty.

You'd be simplifying their lives, after all...
 

4. Leveraging Machine Learning to Create Predictive User Experiences

What's the whole mechanism behind the creation of predictive user experiences?

How is the machine learning technology/tool leveraged to predict user behavior?

It's no more than a 3-step sequence:
 

  1. you first define the problem (using machine learning terms)
  2. gather data in a suitable format
  3. put together a model 
     

For instance, here's a machine-learning-based recommendation system deconstructed:
 

  • content-based recommendation: recommending items based on similar characteristics
  • collaborative filtering: recommending items/services based on other customers' preferences (customers with similar past choices)
     

Note: more often than not it's a mix of these 2 types of recommendation systems that you'll find.
 

5. Predictive UX: 4 Common Sense Principles to Consider
 

5.1. Simplify the UI: keep the most relevant design elements and meaningful content only.

Instead of forcing customers to make too many choices, to scan through chunks of content, go for a minimal interface! Trim down the “irrelevant fat” and keep the essential.

Leveraging machine learning and statistical techniques, you should know by then what's essential and meaningful in terms of information and functionality for your users.
 

5.2. Disrupt the all-too-familiar patterns now and then.

In other words: don't get trapped into the “experience bubble”, where you keep recommending the same familiar options and encourage the user to make the very same choices over and over again.

Consider adding disruptive layers, now and then, “tempting” them to try something new, something different.
 

5.3. Avoid forcing those most relevant options on the user.

OK, so you have the data at hand, you're leveraging that machine learning algorithm that anticipates:
 

  • what the user needs
  • what the user wants
  • what the user's going to do next
     

That doesn't mean you should overlook that:

It's always the customer who makes the final choice!

So give them enough options to choose from! Put him/her in full control of the final decision-making process!
 

5.4. Create predictive user experiences that are helpful, not annoying

In other words: when it comes to push notifications, choose the most appropriate time (if you're a retailer, you can't possibly anticipate that anyone would read about your promotion during work hours).
 

6. Predictive UX in Drupal: What Makes Drupal 8 the Perfect Fit?

There are some particular characteristics that make Drupal the perfect “teammate” for a machine learning tool:
 

  • its content management features and (huge amounts of) data storing and maintaining capabilities
  • its API-first approach, which makes third-party integrations conveniently easy; you can integrate Drupal with any system providing an API and an interface 
  • the “decoupled architecture” approach, which enables Drupal to serve content in various ways
     

Now, just think about it:

Analyzing that huge volume of data, stored on your Drupal website, and leveraging it, using a machine learning tool, to create anticipated user experiences! Think of all the emerging possibilities of implementing predictive UX in Drupal!
 

7. And How Do You Implement Predictive UX in Drupal?

First of all: choose your machine learning tool.

Now, let's say you will have chosen to go with Apache PredictionIO for obvious reasons:
 

  • it's open source
  • it “spoils” you with a set of customizable templates
  • a full machine learning stack
  • the tool's also conveniently easy to deploy as a web service
     

Now, let's have a close look at the Drupal & machine learning tool interaction:

The Event Server collects data from your Drupal app/website — provides it to the Engine —this one reads it — leveraging machine learning, it uses it to put together a predictive model — one that it then sends over to your Drupal app/website — upon a query via REST

Et voila! A predictive result is sent to your Drupal website or application, one that will power a predictive user experience.

Now, since we've been talking about the event data that's being sent from Drupal to the machine learning tool and further “exploited” for building that predictive model, you should know that it comes in “2 flavors”:
 

  1. explicit: the user will have already rated or bought an item, so you have explicit information about his/her preferences 
  2. implicit: the already available information is being leveraged, since there's no past choice or user feedback to analyze for anticipating his/her needs
     

The END! What do you... predict:

Will we be witnessing more and more Drupal 8 websites leveraging predictive UX and, implicitly, machine learning technology, to create anticipated user experiences?
 

Photo by David Travis on Unsplash.

Pages

About Drupal Sun

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

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

See the blog post at Evolving Web

Evolving Web