Gartner recently released an interesting tech note discussing how automated business processes and online integration and transformation of business workflow should be a focus for businesses. By 2022, 50% of digital business technology platform projects will connect events to business outcomes using event-driven intelligent business process management suite (iBPMS)-oriented frameworks - here is a link to the Gartner article.
As Drupal module maintainers, we at Nextide need to be constantly updating our modules to add new features or patch issues. Whether your module is available for download or is a custom module for a client site, you can't expect users to uninstall and reinstall it to pick up new features. If you have data or configuration changes, update hooks are mandatory to learn. This post will show how we created a new content entity in a Drupal update hook.
Expo just got nominated for the Swedish design award. Before Expo was nominated for two publishing awards, best magazine and best magazine website. The winners will be announced 7th of November 2018 in Stocholm where Ramsalt will be present. While we we wait, we have decided to share with you the secrets behind building Expo.se on Drupal.Short about the client
Expo is a Swedish anti-racist magazine started in 1995 by Stieg Larsson, also known as the author of the Millennium series books, where the inspiration comes from Expo. Expo magazine is issued by the non-profit Expo Foundation. The magazine contains investigative journalism focused on nationalist, racist, anti-democratic, anti-semitic, and far-right movements and organisations. The people responsible for Expo make no connections with specific organisations or political parties, but work together with individuals and organisations that share Expo's platform. The magazine is headquartered in Stockholm.Why Drupal was chosen?
Drupal was chosen for many reasons and out-ranked other solutions because it fulfilled many of the requirements from Expo. The strong capabilities for large amount of data, content-authoring options and the high level of community support were a few key elements where Drupal perfectly met the needs. Additionally, Drupal provided reliable content management and moderation features, as well as an editor and user-focused interface. Especially when it came to the wiki functions.
Other reasons include
- Feature flexibility
- No licensing fees
Goals, requirements and outcome
Previous site pain points
The previous version of the site was spread over a number of subsites/subdomains which the client was eager to unify into one categorised Drupal site.
Complex, custom database structure & content editing
The database of the previous site was overly complex and custom built which made the site very hard to maintain. On top of that the content editing forms were very long and confusing.
Expo has a huge readership but without a mobile friendly version of the site the full potential of their reach was not being met.
Understanding the pain points of the previous site was essential in making sure we met the needs of the client.
At Ramsalt we’ve developed our own distribution of Drupal called Ramsalt Media which is specialised for online publishers including newspapers & magazines. Ramsalt Media includes all the tools are publisher needs including article scheduling, WYSIWYG, media management and frontpage management. We were able to use Ramsalt Media as a platform to build on top for the rest of the site needs which went outside that of our standard clients. At the time of project start in 2017, Ramsalt Media was only stable for Drupal 7 so initial development has been done in Drupal 7, but Ramsalt Media has since 2018 been available in Drupal 8 buildt with Thunder.
Key development steps
Expo produces both a physical magazine and regular online articles so all the old articles from the custom database had to be migrated into Drupal along with their related media assets. As mentioned above, the database had a very complex structure & naming convention, once information from the previous developer was provided we were able to start mapping the migration for the some 7000+ articles & 2500+ media assets. The migrate module was the main contrib module we used for the migration.
We also made use of rules autotag module which allowed us to read article titles & body content and auto tag articles on migration based on the topics they covered. The topics were all predefined as taxonomy terms, if an exact match was found in the title or body then the article was tagged with the given taxonomy term. This gave the editorials a helpful kick start in categorising all the articles within Drupal as taxonomy term landing pages (see: https://expo.se/tag/hatets-politik-2017 ) where deemed an important new piece of functionality on the site.
Just double click on any text and you jump into edit mode, with our module QuickerEdit.
Improved Publishing Tools
As previously mentioned the site was built on top of our own distribution called Ramsalt Media. Ramsalt Media pulls together some of the best contrib modules out there to make article & content publishing easier and more streamlined.
We worked closely with Expo’s own design team led by Daniela Juvall throughout development. The goal was a simple, clean design with bold typography which was inline with Expo’s physical magazine style. The magazine has been nominated for a number of design awards in Sweden.
As mentioned the previous site was not responsive so it was essential the new site was optimised for all devices.
The theme was custom built for Drupal 7 using sass.
The New Wiki
Another major part of the development involved creating a new Wiki section to expo.se to house information on all the topics covered by Expo. This included information about right-wing political leaders and groups as well as their symbols and related articles. This section was built as a number of different content types which were then bridged together using taxonomy and entity reference fields. This approached allowed wiki nodes to be associated to a single taxonomy term which could in turn be associated with other content on the site. Binding the wiki together is a central search page which was built using the search API, facets & panels.
Long read or long form articles have become more and more popular with our publishing clients in recent years. They allow for a richer and longer form of article to be published.
Expo wanted long read functionality to be able to post longer articles from the physical magazine in a richer and more eye catching manner. We used the paragraphs module for this and created a number of custom paragraph types to store the different types of content needed to make up a long read. This included text paragraphs, call to actions, images and videos.
We also created a “layout” paragraph type which allowed all paragraph types to be laid out in a set responsive left/right column layout. On top of paragraphs we custom built a floating “table of content” (optional) and read indicator bar.
We found paragraphs to be the best option for this job although the node edit form is an area where we are hoping to improve in the future as it can become confusing on very long articles.
The rest of the site was built out using custom content types & fields, views, entity collection, panels/page manager and views content panes. This allowed for a rapid & streamlined approach to site building. Using views content panes meant similar displays could reuse a single view using pane settings to vary the display as needed.
Scheduler: allows editors automatically set articles & content to publish (and unpublish) at a set date & time.
Entity Collection: allows editors to control the frontpage articles list in a custom order and apply custom styles to each article in the context of the frontpage. This along with views & panels allowed us to build a custom frontpage and inject custom blocks with the frontpage article flow.
Entity collection was used throughout the site to give a unified approach to all content lists/blocks you see throughout the site.
Media: allows editors to upload media to a central library allowing easy reuse of media throughout the site.
Fields: of course the fields module & it’s contrib modules are used to provide custom field types allowing editors to add galleries, videos, article sources, bylines and more.
The ADCI Solutions team had an opportunity to take part in outstanding Drupal Europe 2018, shared knowledge and got new friends.
Have you missed this conference? Read this blog post, learn all the details and news from this event!
Im getting a 5xx Server Error when trying to view any project page on Drupal.org, such as module and theme pages. Not sure if its me or you, really appreciate any info.
At Drupal Europe 2018 I had the chance to learn the latest developments regarding the editorial experience in Drupal 8.Content planner
Currently Drupal’s out of the box content overview screen (admin/content) provides a somewhat Spartan experience. Thus the need arose of a more feature rich content dashboard. With that need in mind, the team of Netnode found inspiration in content planning tools like Buffer, Gathercontent, Trello and Scompler.
This resulted in the Content planner project. This contributed module will provide a content planning dashboard that allows editors to easily find the content they need to work on.Content planner features
Some of the features of Content planner are:
- a content status giving quick overview of the state the websites content is in
- a calendar that allows scheduling the publication of the nodes
- a recent content list giveing the editor quick access
- a kanban board voor content with columns for the content statuses draft published archived and so forth
De module is quite young and still needs improvement, but it seems useful enough to start using in your projects. By adding Content planner to your website you will probably increase your popularity among your editorial colleagues tenfold!Autosave form
Another development that could make many editors working with Drupal happy is autosaving forms and resolving conflicts.
It automatically saves the field values every minute when you are filling out a form (for example a node or a contact form). To be able to do this correctly it bypasses all form validation, disables any implemented forms hooks and keeps the form ID intact so that the normal Drupal form editing workflow is not being disturbed.
At the moment the module is not able to autosave when creating a new node because essential information like the node ID is not available at that moment.
Autosave states are saved per user and it’s disabled when two users are working on the same content.Conflicts
If multiple users are working on the same content then conflicts may arise. The conflict module aims at resolving those conflicts by comparing the following versions of the content:
- the initial content;
- the content that’s being edited;
- the content that’s stored (which could be the content that’s been edited in the meantime by another user);
Most fields will be merged automatically but fields that have conflicting values are presented to the user so he can choose how to resolve them. The UI for resolving conflicts is currently being re-evaluated and contributions in this area are more than welcome.
If you are looking for ways to improve the editor experience of your projects then put Autosave form and Conflict on your checklist.
For two full days on Wednesday and Thursday, BADCamp offers world-class training from some of the best Drupal instructors — for FAR LESS than you’d pay elsewhere. Full day trainings are $20, and half-day trainings only $10. There are only a few seats left in some of our classes, so sign up soon to reserve your spot!Classes offered on Wednesday:
- Component-based Theming with Twig
- Drupal 8 Content Migrations
- Modern Workflows for Modern Devs (half day training)
- Navigating the Issue Queue - A beginner's guide to contribution (half day training)
- A Drupal 8 Crash Course for Non-Developers
- Component Based Development with Drupal 8
- Intro to Backdrop CMS
- Object Oriented PHP
- Upgrading your local development environment with DDEV
- Web Accessibility 101 Training
Summits are back for 2018 with some past favorites and new offerings. These day-long single-track events bring together a wide variety of folks working with Drupal, sharing and collaborating along a unified theme.Where should I stay?
October in Berkeley is a popular time of year so we encourage you to book your hotel now. We have rooms reserved in two host hotels. See the website for more options.Hotel Shattuck Plaza
Right in downtown Berkeley, next to the Berkeley BART station. To get the special BADCamp rate, you’ll want to reserve by September 25, 2018.
ONLINE RESERVATIONS: https://reservations.travelclick.com/17233?groupID=2066400
Or: call the Hotel at (510) 845-7300 and ask for the BADCamp 2018 Rate (Attendee Code is 1810BADCAMP).Graduate Berkeley (Formerly the Hotel Durant)
CALL RESERVATIONS: (510) 845-8981, and ask for BADCamp 2018 Group Block Rate
ONLINE RESERVATIONS: https://tinyurl.com/BADCAMP18 (case sensitive)
EMAIL RESERVATION REQUEST: email@example.comWe need your help!
BADCamp is 100% volunteer driven and we need your hands! We need stout hearts to volunteer and help set up, tear down, give directions and so much more! If you are local and can help us, please contact Anne at Anne@badcamp.net or sign up on our Volunteer Form.Thanks to Our Sponsors
Would you have been willing to pay for your ticket? If so, then you can give back to the camp by purchasing an individual sponsorship at the level most comfortable for you.See you in Berkeley!
One of the best things about BADCamp is that it happens in Berkeley. Berkeley is a GREAT town: it's right on the San Francisco Bay, with places to see, and also, great food at many cool restaurants. Our friends at Promet Source have put together a list of five of their favorite places in Our Fair City of Berkeley. Check them out!1. The Cheese Board Collective
As a devoted pizza lover, this 47 year old co-op was a no-brainer to include. From delicious baked goods, to the option to purchase cheese to go, you can't go wrong! They also have a new flavor of vegetarian pizza each day, mmm.2. Berkeley Marina
If you're looking for a good place to enjoy the outdoors, then you should check out the Berkeley Marina. A nice place to stroll, and have a picnic, possibly with cheese and bread from the Cheese Board Collective!3. Tilden Regional Park
If you're an early riser, or even a night-owl and still have energy after BADCamp, then you should check out Tilden Regional Park. Full of all types of flora, this park will absolutely inspire you in the best way. They even have a steam train to ride- Come on!4. Berkeley Campus
As you'll be visiting the University for BADCamp, it makes sense to get a good look around. The Berkeley Campus offers a variety of tours including a free one, and don't forget to check out the Greek Theatre as well!5. Grizzly Peak
If you're the type who loves to get an aerial view of the places you're visiting you're in luck. About a 15 minute drive from campus is an unforgettable place to see breathtaking views, especially at sunset. Beware, the drive up is a bit steep, so if you're not comfortable driving in the mountains, take a Lyft!
Drupal Modules: The One Percent: Drupal Modules: The One Percent — Entity Class Formatter (video tutorial)
Here is where we bring awareness to Drupal modules running on less than 1% of reporting sites. Today we'll consider Entity Class Formatter, a module which allows you to add fields which can be passed to your entity as classes.
We're excited to mark the first minor update for our Drupal 8 products since the initial D8 release! There are no new features in this update but we're incrementing the middle digit in our version numbers for Glazed Theme and Glazed Builder because of a change we made in how Bootstrap Panels are handled. This change may require manually re-saving of pages that use the panels Glazed Builder element. More info about that in the Changelog.
Thanks to changes in how panels are handled we now support an option to select all the Bootstrap-native panel styles in our Glazed Builder panel element. Besides the panels update both the Glazed Theme and Glazed Builder releases contain various small fixes.Managing Sooperthemes' Growth
Besides crushing bugs we've been working on other areas of our products and services during the hot summer that we've had in the Netherlands. Since the release of our Drupal 8 products we've seen a growth in subscription sign-ups and also in sales questions and support tickets. To handle the extra workload we're now onboarding a full-time customer success manager as well as a full time content/marketing manager. Check out our brand new Sooperthemes instagram account for the behind-the-scenes.Sneak Peek: Glazed Builder User Profiles
This feature has been requested for so long I'm really excited that it's finally happening. We're working on adding an interface similar to the WYSIWYG Drupal module. This interface let's you create profiles that limit the elements, buttons, and settings a user sees in the Glazed Builder interface. Check out the sneak preview here:
This is the fourth installment in a series presenting work on shared configuration that comes out of the Drutopia initiative. To catch up, see Part 1, Configuration Providers, Part 2, Configuration Snapshots, and Part 3, Respecting Customizations.
In the next installment we'll start to pull it all together, showing how all the pieces covered so far fit into a solution for merging in configuration updates. But first there's one more piece to add. In this installment we'll be looking at creating and updating configuration alters.
First off, what is a configuration alter?
An alter is an addition, deletion, or change to a piece of configuration.
When we're producing a several packages of shared configuration - what are often called feature modules - sooner or later we need a particular feature to modify configuration that was provided by another feature.
Say I'm producing a Drupal distribution that includes two different features: an event feature and a location feature. Any given site might install the event feature, or the location feature, or both, or neither. (A big part of the point of having distinct features is to make them optional and independent.)
In this example, say the event feature provides an 'event' content type with fields including a required 'date' field. The description of the event content type is: "An event takes place at a specified time." The location feature provides a 'location' content type.
But if I have both events and locations, there's a relationship between them. Events take place at a location. So on a site with both the event and the location features installed, the event content type should get an additional required field, "Venue", that's a reference to a location. When that happens, the description of the original event content type should change accordingly. Now it should read: "An event takes place at a specified time and place."
To make this happen, the location feature (or, possibly, a third feature) is going to have to alter the event feature's configuration.
Even though it is has been 20+ years since I graduated from college, every September I struggle to get back to work while also feeling inspired to learn something new.
This summer I took a rest from blogging about sustainability, but I kept on coding. I felt a little guilty thinking my blog might lose its momentum, yet somehow on the “work” side, I just kept on plugging away at the Webform module’s issues queue and managed to fix a bunch of issues and make some important accessibility and UX improvements.
Coding is what I love to do
As I charge forward toward a stable release of Webform 8.x-5.x by Christmas, it’s time to start thinking about what’s next for the Webform module. There are a lot of people in our community thinking and talking about the future of Drupal. Drupal and most Content Management Systems (CMS) are moving towards a decoupled and headless approach.
Beginning to think about headless Webforms and Form API (FAPI)
If we could...Read More
A slick new feature was recently added to Drupal 8 starting with the 8.5 release — out of the box off-canvas dialog support.
Off-canvas dialogs are those which slide out from off page. They push over existing content in order to make space for themselves while keeping the existing content unobstructed, unlike a traditional dialog popup. These dialogs are often used for menus on smaller screens. Most Drupal 8 users are familiar with Admin Toolbar's use of an off-canvas style menu tray, which is automatically enabled on smaller screens.
Drupal founder Dries posted a tutorial and I finally got a chance to try it myself.
In my case, I was creating a form for reviewers to submit reviews of long and complicated application submissions. Reviewers needed to be able to easily access the entire application while entering their review. A form at the bottom of the screen would have meant too much scrolling, and a traditional popup would have blocked much of the content they needed to see. Therefore, an off-canvas style dialog was the perfect solution.Build your own
With the latest updates to Drupal core, you can now easily add your own off-canvas dialogs.Read more
It has been a week full of impressions, old and new friends and exciting challenges at Drupal Europe! The Drop Guard team members Joe, Max, Alexey, and Johanna attended the Drupal event from 10th to 14th of September.
This is a brief overview of our Drupal Europe highlights and impressions, enjoy it!Drupal Planet Drupal Drupal Community Events Team
Our CTO Max Madl held his first workshop at Drupal Europe last week. The main goal of this hands-on session was to show the audience what it means to update a Drupal project
b.) with helping tools & services
c.) fully automated.