Planet Drupal

Syndicate content
Drupal.org - aggregated feeds in category Planet Drupal
Updated: 1 hour 19 min ago

Srijan Technologies: Clear Cache Tag to Improve Caching Mechanism in Drupal

Fri, 01/31/2020 - 13:20

Regardless of the extra-ordinary design, captivating content, and right product illustration on a company’s website, how bad would it be if it fails to engage users most of the times. A Google report unveils that a new visitor will stay and come back only if the app or page loads content within 3 seconds. Having said that, the online brands only get 3 seconds to hook the new visitor to their site or application. 

Srijan Technologies: Clear Cache Tag Module To Improve Caching Mechanism in Drupal

Fri, 01/31/2020 - 13:20

Regardless of the extra-ordinary design, captivating content, and right product illustration on a company’s website, how bad would it be if it fails to engage users most of the times. A Google report unveils that a new visitor will stay and come back only if the app or page loads content within 3 seconds. Having said that, the online brands only get 3 seconds to hook the new visitor to their site or application. 

qed42.com: Drupal Global Contribution Weekend 2020

Fri, 01/31/2020 - 12:51
Drupal Global Contribution Weekend 2020 Body

After a successful DrupalCamp Pune 2019 last September, the Pune Drupal community did not hold any meetups. Global Contribution Weekend was scheduled in January 2020, and I thought this would be a great opportunity for the Drupal Pune community to have a meetup as well. 

Core members of the Pune community had a meeting, where we decided the event format and location. QED42 which always volunteers and encourages people to participate in the opensource events decided to host the Drupal Global Contribution Weekend.

| Drupal communities began uniting in India

Drupal Delhi community had already planned for GCW on the 25th January. Jaideep, Senior Engineer at QED42, who is one of the active members of the Drupal Community in India connected with us and shared the idea of collaborating with the Pune community. We had an initial meeting about the type of issues that should be targeted in the GCW 2020. Later it came to our knowledge that other communities are also planning to have the GCW 2020 event. We contacted other communities and proposed the idea of carrying out the GCW 2020  unitedly all over India.

The following Indian Local Drupal communities were planning to host the Global Contribution Weekend: 

  1. Pune

  2. Delhi 

  3. Bangalore

  4. Kolkata 

  5. Chennai 

  6. Kochi 

  7. Mumbai 

| Sprint Planning

We decided to focus on the Drupal 9 readiness, Olivero theme and contrib modules issue queue. Olivero, one of the Drupal core initiatives, seeks to create a new default front-end theme for Drupal with a modern look and feel. The Community started triaging the issues. Hardik Patel shared a large number of issues which he had prepared for the Global Contribution Weekend and needed to be review. Sonal Sangale triaged several frontend issues from the Drupal issue queue. Similarly, the other communities were triaging the issue queue.

| Event Day 

The code sprint in India started at 10 AM. Prasad Shirgaonkar presented a session about Drupal India Association and its vision. This was the first time we saw different local communities from India collaborating at a global event. Approximately 150+ people from different Indian Drupal communities were connected via video conferencing. 



Following Prasad’s session, VijayaChandran Mani delivered a session on the State of Drupal 9 from London. He spoke about various tools which can be used to check  Drupal 9 compatibility. Vijaya presented tools like drupal-cheker, drupalstan, etc. which make upgrading the existing Drupal 8 modules to Drupal 9 a super easy task. This fueled our determination on contributing to the forthcoming Drupal 9. VijayaChandran Mani incorporated Gabor Hojtsy slides on State of Drupal 9 in his session.

We then had a lightning session presented by Rangaswini Khandare on ‘Automatic Updates in Drupal core’. This is a recent Drupal initiative which is gaining traction and was featured in DrupalCon Amsterdam as well. Rangaswini introduced us to the goals & objectives of Automatic Updates and explained the amount of work done in Phase 1 and the progress of phase 2. She also encouraged people to join this initiative and contribute to the core.

| Code Sprint

After Rangaswini’s session, the Global Contribution Weekend participants at QED42’s Pune office geared up to begin the code sprint! Find the list of issues we worked on here - https://www.drupal.org/project/issues/search?projects=&project_issue_followers=&issue_tags_op=%3D&issue_tags=GCWIndia2020

Here are a few glimpses of Drupalers contributing toward making Drupal better.

QED42 also sponsored a scrumptious lunch for the contributors in Pune.

| Pune Drupal Community Contribution Highlight

Total 38 issues were picked for the contribution.

| Statistics for GCW 2020 all over India

Total 67 issues were picked for the contribution.

After 5+ hours of code sprint, we concluded the Drupal Global contribution weekend with a group photo and contentment in our hearts.

Pratik Kamble Fri, 01/31/2020 - 17:21

Srijan Technologies: Drupal Global Contribution Weekend 2020 at Delhi NCR

Fri, 01/31/2020 - 10:56

Kickstarting the year with a contribution weekend globally from 24 January - 26 January, Drupal Association was able to gather participants from over 30 cities in 17 countries.  Among the 7 locations the contribution sprint happened in India, Srijan Technologies led the Delhi NCR sprint from its Gurgaon office on 25 January 2020.

OpenSense Labs: Top 10 User Access Modules for Drupal 8

Fri, 01/31/2020 - 10:30
Top 10 User Access Modules for Drupal 8 Jayati Fri, 01/31/2020 - 15:00

Access and security are collateral concerns born out of the world of the internet. When a website is under development, a major chunk of time and effort goes into making it secure from all sorts of malicious activities. Taking the threats and data breaching affairs into account, every platform has a protocol to follow. For the security and usability purpose, every website has certain permissions granted to view, edit, or delete the content on the site. For example, open source CMS like Drupal provisions various modules that let you configure the user access. 

What is user access?

Every website has a tech team working on the development of the site while they assign certain roles in the process to each individual. Similarly, user access is the possession of a particular role on the website that allows the user with specific permissions. The user access is determined by the site owners who assign the roles to the users with a login Id and password

In this blog, we will be talking about the user access permissions in Drupal 8 and understand how it works with the available modules. 

Permissions management in Drupal 8

With a lot of different functions and features, the permissions in Drupal 8 work in a little different way. From viewing published content to changing the state of functions and features, permission control access in Drupal is assigned as a role. There are 3 default roles as follows:

  • Anonymous: Visitors who are not logged into your site.
  • Authenticated: User with an account who’s login is authenticated with a minimum set of permissions that are given to all logged-in users. 
  • Administrator: Users who can do everything on the site and change the functionalities.
Limitations of permissions management in Drupal 8

These default roles are quite limited in themselves. They do not define the access in detail and require modules to further strengthen the access control. Following are the limitations:

  • The roles you create yourself or the authenticated user role do not receive the permissions given to anonymous users.
  • There’s no granular control at various level.
  • In case of a lot of custom modules where the contributed modules introduce important functionality, the piece of code requires more hold of access levels which isn’t available.

Thus, we need user access modules that will grant broader access control and permissions.  

Top Drupal 8 user access modules

Here is a list of the most popular user access modules for Drupal 8 depending on the functionality you want for your website:

#1 Node View Permissions

Apart from allowing the combining of other user access modules, the Node View Permission module adds two types of permissions to all content type, namely, "View own content" and "View any content".

#2 Menu Admin per Menu

As the name suggests, the Menu Admin per Menu module permits and restricts access to only Administer menus and menu items to add, modify or delete menu items. It gives access to certain sections of the menu without giving access to the full admin panel.

#3 Block Content Permissions

You can gain the control access to administer block content types (custom block types), administer block content (custom block library) that lets you create, update, or delete specific types of block content with this module. However, the Block Content Permissions module doesn’t remove the block permissions from "Custom block library - Blocks" views page

#4 Protected Pages

Every website has multiple pages with different types of content and not every information can be shared with every user with a role. Thus, the Protected pages module allows the admin to protect certain web pages with a protection password. Further, you can also ser session expiry time, bypass permission and global password settings to strengthen the security feature. 

#5 Permissions by Term

Based on the taxonomy terms, you can restrict the access to specific content on the website. The permissions are applied to the user roles and work well for nodes, views, menus, etc. The Permissions by Term module also aids in linking the taxonomy terms with specific accounts. 

#6 Vocabulary Permissions Per Role

Within the taxonomy access, you can set up permits only for content editors to work with a particular taxonomy vocabulary without hampering the “administer taxonomy” permissions. The Vocabulary Permissions Per Role module gives you control over the number of users with permissions and access. 

#7 Override Node Options

You can now set permissions for each field on the node form within the Authoring information and Publishing options fieldsets. The Override Node Options module can also let your make certain fieldsets collapsible.

#8 Block Region Permissions

Control access to block management within each region of your website’s theme with the Block Region Permissions module. The module grants access to see the following:

  • Region's header, message, and blocks on block layout page
  • Region in region selector fields on block layout page
  • Region in region selector field on configure and place block pages
  • Can update or delete blocks placed in region
#9 Workflow

A contributed module, Workflow allows you to create workflow states for various node types. Further, it allows transitions between states like updating from “Draft” to “Published” and similar per role. It enables you to set up the Workflow to alter states from form, page, comment, a special block, and a special workflow tab.

#10 Content Access

As per the role and author, the content access module lets you manage the permissions for content types. You can specify custom view, edit and delete permissions for each content type or enable the content access settings. Thus, it allows customization of access for each content node. 

Conclusion

These modules are more than a boon for your Drupal website. They impart the highest of security walls for the users and helps your website remain safe from third-party users. The modules are designed to make sure that the user roles and permissions are not misused by the users and they optimize the development process for the team. 

To know more about the power of Drupal, drop us a line at hello@opensenselabs.com

blog banner blog image Drupal Modules Drupal 8 Module user access permission management Blog Type Articles Is it a good read ? Off

Mobomo: Mobomo’s Picks: Top 10 Drupal Websites

Thu, 01/30/2020 - 16:13

A chef can make a great meal with a few basic ingredients. But when offered a massive pantry full of options, the result can be a work of art.

The same principle applies when it comes to website CMS software. A basic template-style CMS can result in something that hits the spot. But Drupal’s staggering degree of flexibility and modular options has allowed the developers of some of the world’s most prominent websites to create gorgeous and highly functional sites that inspire, inform, and elevate.

Here are our top 10 picks for Drupal websites that we think have raised the bar:

  • Tesla
  • PGAL
  • University of Texas at Austin
  • Children’s Hospital of Los Angeles
  • Mint
  • National Baseball Hall of Fame
  • The Australian Government
  • Rethinking Picasso’s Guernica
  • The Emmy Awards
  • NASA

Let’s examine these in more detail:

10. Tesla

A rare day passes by without Tesla making headlines. The brand and its founder, Elon Musk, are renowned for big, audacious ideas that have potential to change the world. The beautiful photography and design make every section look like a high-end editorial page in a magazine, while the simple, intuitive navigation and call-to-action features are clean and unobtrusive. It all combines to create a website that’s aspirational yet attainable.

9. PGAL

PGAL is an international design firm focusing on interiors, architecture, planning, and engineering. Their challenge is to show and tell, so that potential clients are dazzled by the site’s visuals while still being able to find enough solid information to want to take the next step. The site, which uses imagery as the gateway to project stories, is a delightful rabbit-hole that we could spend hours exploring. Make sure to check out their Projects page, as it is an excellent example of how to show off a portfolio in a clean but comprehensive way.

8. University of Texas at Austin

University websites can often be an overstuffed nightmare to navigate, but the team behind UT Austin’s website got it right: Their menu navigation is clean, well-organized, and enticing. Add to it a home page that evokes the fresh excitement of starting the post-secondary journey, while peppering in well-organized data that invites the reader to learn more, and you have a website that gets students and their families off to the perfect start.

7. Children’s Hospital of Los Angeles

160,000 visitors go to CHLA.org every month, making it vital for the site to present clear, accurate, easily navigated information in a way that builds and maintains trust. It’s a tall order, but CHLA.org delivers. The design is clean but far from cold, while the most frequentlysearched information is put front and center instead of being hidden in the navigation bars, making it easy for frazzled parents to find out what they need to know. The sheer volume of information on the “Patients and Families” page could easily be overwhelming but is organized beautifully and intuitively.

6. Mint

Mint’s value statement: “We help you effortlessly manage your finances in one place.” They offer clean and simple financial management, using a clean and simple sentence to describe what they do. A cluttered or complicated website would completely undermine their brand. Fortunately, Mint.com is anything but cluttered or complicated. The simple and soothing colors and minimalist text are reassuring to visitors who want straightforward information, while the navigation and iconography make navigation a breeze.

5. National Baseball Hall of Fame

For any website to be successful, it has to give the end-users what they’re looking for, and the BHoF delivers. After extensive user research, the site was designed to showcase the incredible stories and artifacts in BHoF’s collection, bringing it all to life for the site’s visitors. Fortunately, it also does so in a way that’s easy to navigate, inviting visitors to spend plenty of time exploring.

4. The Australian Government

As with universities and colleges, government websites can often be an impenetrable labyrinth to navigate. Australia.gov.au does things differently, living up to their header, “Helping you find government information and services.” The site is incredibly well-organized, with virtually no clutter. And even though it has not one photo to speak of, it still manages to be attractive, through a judicious use of color and minimalistic icons.

3. Rethinking Picasso’s Guernica

The Museo Nacional Centro de Arte Reina Sofía created an ambitious project around one of Picasso’s most famous works of art, and the results were groundbreaking: The project has been recognized with a Webby as the best 2018 Cultural Institutions Website. The storytelling and imagery on this site are captivating, while the user experience is smooth and unobtrusive.

2.  The Emmy Awards

The Emmy Awards are splashy and glamorous on the outside, while requiring meticulous planning and organization behind the scenes. Their website is no different. With a plethora of content, rich color choices, and high-quality images, the site is as immersive an experience as the awards show is. But thoughtful, intuitive navigation, exciting features, and well-curated content demonstrate expertise.

1. NASA

NASA.gov is a massive resource on space, astronomy, and the universe, offering detailed information on present and past missions, gorgeous photography, educational resources, and information about the organization in general, to name but a few features. Organizing such a wealth of information in a coherent and clear way shows what is possible with Drupal.

Full disclosure: We’re the team behind NASA.gov, so it’s understandable that we might have a soft spot for this site. However, we’re far from alone in loving the finished product. Our friends at Vardot.com call it “a shining example of Drupal CMS used to present stunning information, and elevate the user’s experience,” and NASA.gov has made the top of more than one “Best Drupal Websites” list.

Want to see the possibilities that Drupal can hold for your organization’s website? Contact us today!

The post Mobomo’s Picks: Top 10 Drupal Websites appeared first on .

MD Systems blog: Global Contribution Weekend 2020 - Zurich Report

Thu, 01/30/2020 - 13:19
Every year, the last weekend in January is reserved for a global Drupal contribution weekend. Community members and contributing organizations from over 30 world cities volunteered to organize a local Drupal contribution weekend. Zurich was one of these cities and the full team of MD Systems was there.

Agiledrop.com Blog: Interview with Marloes Bosch of LimoenGroen

Thu, 01/30/2020 - 10:53

For our first Drupal interview of 2020, Marloes Bosch, accessibility-focused front-end developer at LimoenGroen, spoke to us about her career switch to Drupal, the awesome people from the Dutch Drupal community who have helped her along her journey, and why Drupal's commitment to accessibility is so important.

READ MORE

ActiveLAMP: Drupal 8 Campaign Builder

Thu, 01/30/2020 - 00:24

Creating a page builder in Drupal 8 with flexible paragraph types.

Read more...

Blue Drop Shop: 2019 Drupal Recording Year-end Update

Wed, 01/29/2020 - 22:13
2019 Drupal Recording Year-end Update kthull Wed, 01/29/2020 - 15:13

As I prepare to begin the year of recording ahead of me, I realize I haven't published an official 2019 year-end report, so here are last year's highlights:

  • 769 sessions were captured by the initiative, with an overall capture rate of 94.46% (down from 96.12% last year)
  • Of those, 93 were captured by others with either rented kits or a new equipment hub, for an overall capture rate of 79.49% (down from 83.33% last year)
  • Total session captures to date: 2,093 (and every one of them on drupal.tv)
  • Kits were shipped to 5 events (up from only 2 last year)
  • The list of trained recording volunteers is up to 26 people with varying levels of experience
  • I learned of at least two non-Drupal events that used the github docs to successfully record their content
  • I traveled to an all-time high of 15 events
  • I recorded DrupalCon Amsterdam...I'll just stop right there

I hope to publish a more in-depth update soon, specifically tracking against the roadmap as well as what's in store for 2020.

Thanks for all your support!

Drupal Association blog: The Drupal Association's look back at 2019...and plans for 2020

Wed, 01/29/2020 - 21:17

There’s much to reflect on from 2019 as the Drupal Association (DA) accomplished many organizational goals while also welcoming big leadership changes and supporting the evolution of Drupal as a product and project. 

We draw our strength from a global community of Drupal enthusiasts and are proud of the progress, innovation and momentum that encompassed 2019.

“We are grateful to have a wide variety of Drupal Association members and advocates — government, nonprofit, education, corporate, and individuals — who support our mission, and in turn the Drupal project,” says Heather Rocker, Executive Director of the Drupal Association. “We spent a great deal of time in 2019 focused on how we can best collaborate with current and potential stakeholders. Partnerships and collaborations create an atmosphere where Drupal is growing and better recognized, which is a win-win situation.”

Last year, the DA continued to support the global Drupal ecosystem via special events, marketing and outreach, engineering, technical and corporate partnerships, and open source advocacy.

This is an overview of these bodies of work, as well as a glimpse of the roadmap for the continuation of projects, goals, outreach and involvement. 

High-level accomplishments 

Much of our time and resources were allocated to producing multiple DrupalCons. First, in an unprecedented fashion, we announced the next four years of DrupalCon North America locations and dates.  


DrupalCon Seattle 2019. Photo by Rob Shea. 

In April, we hosted DrupalCon Seattle, which included tailored experiences for Content & Digital Marketers, Agency Leaders and Drupal End Users. High attendance reflected the interest in this approach of uniting those who use Drupal in different capacities. We awarded 10 scholarships and 12 grants — more than ever before — in order to have a cross-section of contributors in attendance, from nearly every continent. In conjunction with DrupalCon Seattle and DrupalCon Amsterdam was the International Splash Awards, recognizing the best uses of Drupal. The Splash Awards were spearheaded by a steering committee out of Europe. This Committee continues to share thought leadership and expand the reach of Splash Awards to local events and camps throughout the world.

The DA, to better support the international community, established a partnership with the European firm Kuoni Congress and together — with a powerhouse team of volunteers — hosted DrupalCon Europe in Amsterdam, with 1,500 attendees October 29-31, 2019. The DA team was onsite attending sessions, connecting with the community, and signing up new members! Following the success of the event, the partnership with Kuoni was renewed. 2020 will feature DrupalCon Europe in Barcelona, September 14-17.

Before looking to September, mark your calendars and buy tickets for DrupalCon Minneapolis, May 18-22, 2020. It’s a robust event in the making, with record-setting scholarship applications and awards; more than 750 session proposal submissions, more than 90 volunteers assisting with program development, industry summits, trainings to assist with migrations, and access to content not often found at local camps. Register before the rate increase on March 31, 2020.   

DrupalCon is one of the more visible activities the Drupal Association champions each year, but it is far from the only. Another key responsibility is to maintain the home of the community: Drupal.org — and to keep it thriving. 

We achieved a major 2019 milestone in our partnership with GitLab, migrating all of the backend git repository and code viewing tools. We know the community has been waiting on merge requests, a feature which should be coming in the first half of 2020. 

To serve our community, we have to have insight and understanding, which is why we undertook several initiatives to improve our data and visualization. At DrupalCon Seattle we shared demographic information about our community, which we use to track our success on diversity, equity and inclusion efforts. We also updated the project usage visualizations on Drupal.org to provide more insight about versions of Drupal core and contrib modules.

At the DA, we can't forget that the vast majority of users we serve are the anonymous visitors to Drupal.org who aren't yet fully engaged with our community, and might be learning about and evaluating Drupal for the first time. As such, we spent some time refreshing the tools for Drupal case studies, and created new Drupal Feature pages to tell the best stories of Drupal's successes. All this content, and the tremendous content created by the community participants in the Promote Drupal initiative, helps evaluators understand how Drupal can solve their unique business needs, and grows our community.

Throughout 2019, we worked with the Drupal core maintainers. Each month we meet to collaborate on infrastructural needs and key initiatives, and to support outreach for programs like the Minor Release Beta Testing program. As Drupal itself becomes more tightly integrated with cloud services that the Drupal Association maintains — like the updates system, the translation service, and Composer endpoints — our collaboration with the Drupal core team has been closer than ever. This culminated in the completion of the Composer Initiative, improving Composer-readiness for all users of Drupal in version 8.8 and above.

In fact, it's not just collaboration with Core, but with the whole Drupal community and beyond that drives our work. 

With the contributions of the community we were able to make small but powerful enhancements to the tools the community uses every day: from automatically generating a table of contents on each Documentation Page to allowing users to specify their pronouns, primary language, and location next to their issue comments — promoting greater empathy and understanding. That gave us something to be proud of, when the Drupal Association celebrated Pride Month with a rainbow logo, blog post and social media posts.

In collaboration with the Security Working Group and the Drupal Security Team, we continued to build out the structure of the new Drupal Steward program, an initiative we hope to see come to fruition in 2020. 

Perhaps our most significant collaboration of the year was with the European Commission. Because the EC is a major user of Drupal to serve the member states of the European Union, and a strong contributor to the Drupal project already, we were thrilled they chose to sponsor the Automatic Updates Initiative for Drupal. Phase one of that initiative was completed in December, and we're excited to see who we can collaborate with on the next phase in 2020.

Drupal has always been a community-driven project, and the work above illustrates how Drupal Association initiatives are no different. That's partly why we ended 2019 by announcing the formation of a Contribution Recognition Committee; to help us improve the ways we recognize both individual and organizational contributions to the project. 

Changes to Drupal Association Leadership

In 2019 the Board of Directors took the important step of appointing a new DA Executive Director, Heather Rocker, who began in May. The annual community election resulted in appointment of Leslie Glynn as at-large member of the board, and four additional board members were appointed: Grace Francisco, Lo Li, Owen Lansbury, and Ryan Szrama
“We’re excited to have these individuals join us in our efforts to broaden our reach into diverse communities and to grow Drupal adoption. They bring a range of experiences and expertise to the Association that will enhance our opportunities to reach new audiences, support the Drupal community, and elevate the Drupal project around the world,” said Adam Goodman, DA Board Chair.  We also thank board members completing their board service in 2019, including Jacob Redding, Mike Lamb, and Annie Miller. 

Achievements and “Firsts” 

Community outreach is a cornerstone of the DA. In 2019, the DA supported creation of the Event Organizers’ Working Group, with the mission of supporting community-led teams to grow Drupal through local events.  Local Drupal Associations around the world formed, iincluding: Colombia, Burkina Faso, India and the beginnings of one in the United Kingdom. DA staff led meetings at Drupal events to unite volunteer groups, such as the resulting Drupal Pitch Deck team.
The DA also awarded member-funded grants to facilitate events, including the inaugural Flyover Camp 2019 and DrupalCamp Goa.

Drupal Association staff members were featured speakers at multiple events, including: Rachel Lawson at DrupalCamp Goa - India, hosting the keynote panel at Drupal Mountain Camp in Switzerland, and Heart of Clojure in Belgium; Neil Drumm at DrupalSouth in Australia; and Heather Rocker at DrupalCamp Atlanta. Staff also engaged with attendees at GovCon and OSCON.

The Drupal Association expanded its network of Supporting Partners, adding 15 new organizations and renewing 110 annual supporting organizations. As Supporting Partners, organizations that benefit from Drupal have the opportunity to financially support the ongoing maintenance and acceleration of the project. Not only do they fund the work mentioned above, they receive exclusive benefits that increase their visibility and support their bottom line.  Benefits include: DrupalCon discounts, featured content on Drupal.org, access to exclusive roundtables/summits, and positioning as trusted thought leaders and good citizens of the Drupal community. In 2019, Drupal Association Supporting Partners stayed up to date on important project news and collaborated with the DA and peers through quarterly informative webcasts, as well as roundtable meetings at DrupalCons.

2019 also saw a refreshed focus on Individual Membership in the Association—and pride in membership, as seen in the interactive campaign:

Drupal Jobs is the official jobs site of the Drupal Project and Drupal.org. In 2019, the DA added more value for employers looking to hire Drupal Talent; in addition to the listing on the Drupal Jobs site, we began maximizing visibility with job posts across our social media channels — a combined audience of 100,000+ followers. 
There were several DA promotional “firsts” as well: 

  • First participation in National Digital Inclusion Week Social Media campaign
  • First ‘Giving Tuesday’ participation & custom trivia challenge
  • First Educational Opportunities newsletter delivered quarterly

Looking ahead

The journey continues with much of the DA’s focus in 2020 on the release of Drupal 9. Now that Drupal itself is 19 years old(!), we are uniquely positioned to celebrate this release as a significant step forward in the CMS landscape for Drupal.  

The last 5 years of Drupal 8 have been transformative to the project, and the risks taken and the changes made in how Drupal is built have all culminated in what is shaping up to be an incredible Drupal 9 release. 

With Drupal 8, the project switched to semantic versioning and a rapid, six-month cycle of new feature releases. Our new guidelines around backwards compatibility and code deprecations have made Drupal continually relevant, yet ensured that it remains stable and well-supported. And best of all, these changes together mean that the upgrade to Drupal 9 will be a simple one. 

That's the story we’re telling in 2020; the best way to get ready for Drupal 9 is simply to keep up with the latest releases of Drupal 8. This next major release will be easier for every stakeholder — and for site owners, upgrading to Drupal 9 will require far less effort than upgrading to Drupal 8, which is the true celebration!

There are other engineering initiatives underway in 2020 as well. We want to enable merge requests for Drupal code repositories. We're also hoping to continue the work we did on the Automatic Updates Initiative, and are seeking new partners to help move that forward. And we're always collaborating with the community, making small tweaks and usability improvements. 

In 2020 the DA is striving to make diversity, equity, and inclusion a focus in our work. Staff will participate in an internal equity assessment of our systems and programs resulting in a DE+I workplan, as well as ongoing education on diversity, equity, and inclusion. Additionally, DA’s leadership team will begin to develop external programs with the goal of welcoming more people from underrepresented groups into the Drupalsphere.


Let's publicize Drupal 9 together! Please share your ideas about promoting Drupal 9

Thanks to so many individuals & organizations

We extend a hearty thanks worldwide to all the volunteers who work with us in so many capacities, and to the Drupal Association Supporters, who make it possible for us to work on all the aforementioned projects and plans. We are grateful to have a community centered around education, collaboration, and action.

Thank you all for being an essential part of our collective journey! Dries recently said this about the DA, and we believe it extends to our members:

“I've been impressed with how the Drupal Association keeps growing in its role and its impact on the Drupal project. You're working on so many important projects at the same time, and you do it with such passion, commitment and a big heart.” 

InternetDevels: Website navigation design with Menu Item Extras Drupal module

Wed, 01/29/2020 - 19:30

Aesthetic and engaging website navigation menus largely define your site’s success. They help your visitors easily get from point A to point B and finally reach point C — a conversion!

Read more

Jeff Geerling's Blog: Migrating JeffGeerling.com to Drupal 8 — LIVE!

Wed, 01/29/2020 - 17:33

tl;dr: Subscribe to my YouTube Channel; I'm going to start migrating this website to Drupal 8 on a livestream every Tuesday at 10 a.m. US Central (3 p.m. UTC).

Ever since Drupal 8 was released, I've been waffling on the decision to migrate/upgrade this website (JeffGeerling.com) to Drupal 8. The site started off years ago as a static HTML site generated by Thingamablog, a really old Java-based static blog generator.

In the years since, I migrated from Thingamablog to Drupal 6, and from Drupal 6 to Drupal 7. Each of these migrations also incorporated a complete redesign, and I did another semi-redesign halfway through the Drupal 7 lifecycle, to the design you see today:


[Dark mode] ftw!

Mediacurrent: A Recipe for an Embedded React Component in Drupal

Wed, 01/29/2020 - 17:16

Today, Drupal developers must acknowledge that when building a rich, stateful user-facing interface, it is best to use a modern JavaScript framework. Although less framework-driven JavaScript approaches like vanilla JavaScript and jQuery were good enough for many years, I have started to realize that my criteria for whether a piece of UX “should use a framework” has gotten pretty darn low.

Fortunately, even if Drupal is serving your site’s pages, it is possible to make use of React to build components. Some people refer to this method as “progressive decoupling.”

Selecting a Framework, or No Framework

Although vanilla JavaScript or jQuery is fine for small UI behavior implementations, I almost always select React for “centerpiece” user experiences. Here’s a couple of heuristics I use to decide whether employing a framework is worthwhile:

Am I using Drupal #ajax to manage more than a couple of states for end-user UX?

If so, I typically go with a React block. The #ajax API has been a workhorse for building a consistent editor/admin UX for Drupal, but it is just too slow to provide a good multi-state UX for visitors/end-users. This is because when a page uses the #ajax form API, you have to contact the server and reprocess the form for any kind of state change, even if there is no real reason to do so.

Does the page in question need to have many different React components?

This can make embedding react components more complex. Although a clever webpack and Drupal frontend library configuration can allow you to efficiently include multiple react components on a single page, it requires a more extensive setup. This can tip things in favor of staying with vanilla JavaScript or jQuery for a particular component if it might share a page with lots of other small components.

Building your React Block

You’ve decided to use React for a cool, stateful user interface. Congrats! I will show a couple of ways to make it happen.

Don’t use create-react-app

If you’re not familiar with create-react-app, it is a nice tool that generates scaffolding for a React application. It is also not great for building React blocks that you plan to embed in Drupal since these types of React applications are less complex. For instance, you do not need the public folder that create-react-app provides, nor do you need a lot of its dependencies. Some of these can interfere with being able to use React developer tools and can cause other confusion too.

What to do

It turns out it is not very difficult to generate your own react project with just the dependencies you need.

First, decide where you want your React component to live in your codebase. I usually put it into a custom module, because we need to write server-side code to embed the component. You could also put the React component into the theme.

Let’s say we want to use a custom module as the location, for now. I usually make a js/react/appname folder. Do this as you see fit, and move to that folder using the CLI. Then, let’s get started by initializing a new project.

npm init

 

This will generate a basic package.json and some scaffolding.

Next, you’ll want to set a node version. For this, I recommend nvm. You probably want the latest stable version of node:

nvm install node node -v > .nvmrc

 

Now it’s time to install the required packages. Here is a summary of what you’ll need:

Package name

ID

Description

Dependency Type

Babel Core

@babel/core

Babel is a JavaScript transpiler that converts the JavaScript that you write (e.g. React) into JavaScript that can run in any browser.

dev

Babel CLI

@babel/cli

CLI package for Babel.

dev

Babel Preset Env

@babel/preset-env

The basic Babel JavaScript transpilation package

dev

Babel Preset React

@babel/preset-react

Babel transpilation for React JavaScript

dev

Babel Loader

babel-loader

Allows webpack to use Babel as a transpiler.

dev

Webpack

webpack

A tool for bundling JavaScript so that a browser can use it.

dev

Webpack CLI

webpack-cli

Allows npm to run webpack commands

dev

React

react

The React JavaScript library

prod

React Dom

react-dom

The entry point to the DOM for React

prod

Dependency type refers to whether the module is needed for the actual production build that end users will be interacting with. 

To install these packages, start with dev dependencies:

npm install --save-dev @babel/cli  @babel/core @babel/cli @babel/preset-env @babel/preset-react babel-loader webpack webpack-cli

 

Then, install production dependencies

npm install react react-dom Add a webpack config

If you’ve worked with React before, it’s likely you’ve used webpack to build your project. The webpack config needed here is pretty basic:

const path = require('path'); const config = { entry: './src/index.js', devtool: (process.env.NODE_ENV === 'production') ? false : 'inline-source-map', mode: (process.env.NODE_ENV === 'production') ? 'production' : 'development', output: { path: path.resolve(__dirname, 'dist'), filename: 'app.bundle.js' }, module: { rules: [ { test: /\.js$/, exclude: /(node_modules)/, use: { loader: 'babel-loader' } } ] }, }; module.exports = config;

 

This goes in a file called webpack.config.js. I’ll explain the important parts:

Entry

In webpack, the entry point is the file that imports all of your other packages, at the top of your application’s tree. If you’re dealing with React, this is the file where you use react-dom to attach your react script to a DOM element.

Devtool

Based on whether we’re doing a production or development build, we tell the bundle to use a source map. This bloats the bundle a lot so you don’t want to add a source map to the prod build. The NODE_ENV comparison comes into play later when we have npm run our webpack script.

Output

The path to your bundle, containing the whole app (e.g. all the React components and imports you need). Usually this is in a “dist” folder.

Module

This tells webpack to use babel for transpiling your JS so that the browser can run React.

Configure package.json

There are two things you need to do:

Set up your scripts

You’ll need to add the following to the top level of package.json:

"scripts": { "build": "NODE_ENV=production webpack", "watch": "webpack --watch --progress" },

This tells webpack to either do a development (watch) or a production (build) build. As we noted earlier, we use an environment variable to establish whether to use a source map (which bloats the package but facilitates debugging).

Set up Babel

Another role that package.json plays is to let you configure how Babel works. You have to add this:

"babel": { "presets": [ [ "@babel/preset-env", { "targets": { "browsers": [ "IE >= 11", "last 3 versions" ] } } ], "@babel/preset-react" ] }, Build a "Hello World" React App

Below is a simple React app that will let you test things. Put this in src/index.js:

import React from 'react'; import { render } from 'react-dom'; const Root = () => { return ( <>Hi there</> ) } render(<Root/>, document.querySelector('#my-app-target'));

 

Nothing fancy.

Include your React app in Drupal

We have to tell Drupal to include our React app on a page. Here are the basic steps:

  • Define a library for your React app.
  • Include the React app’s target markup on a page.
  • Include the React app’s Drupal library on a page.
  • (Optional) Pass data to the app via drupalSettings.

Let’s break this down a bit:

Define a library for your React app

In your custom module, add a mymodule.libraries.yml file as follows:

my-app: version: 1.x js: js/react/my-app/dist/app.bundle.js: { minified: true }

 

This will let us load the library in an #attached property or in a Twig template.

Include the React app’s target markup on a page / Include the React app’s Drupal library on a page

There are quite a few ways to do this. I think the absolute simplest way is to put the following in the twig template where you want to load your React app:

{{ attach_library('mymodule/my-react-app') }} <div id="my-app-target"></div>

 

If we do this, the React app will put itself within the my-app-target div.

You can also use a render array to embed the app, if you want to do things from a form alter for instance:

$form['my_react_app'] = [ '#markup' => '<div id="my-app-target"></div>', '#attached' => [ 'library' => [ 'mymodule/my-react-app' ], ], ];

 

Let’s run it!

If you are following this as a tutorial, this is a good time to test things out. First, let’s test a production build:

npm run build

 

In the browser, load the page that is running your twig template from the last step. You should see the “Hi there” text in the target div.

(Optional) Pass data to the app via drupalSettings

A common use case is having a setting in Drupal (a checkbox on a paragraph entity, or some global variable) that we need to impact the way the React app works. We use the #attached/drupalSettings API to accomplish this.

Add drupalSettings dependency to Library

First, we need to modify our library definition as follows:

my-react-app: version: 1.x js: js/react/my-app/dist/app.bundle.js: { minified: true } dependencies: - core/drupalSettings Set drupalSetting value and provide to browser

Now, we need to pass the setting to the browser using the #attached framework. The details here depend on what part of Drupal we are working within. Generally you’ll need to work in either a preprocess hook or some type of callback that can change the render array. The #attached bits look the same regardless.

Here’s an example of the preprocess method:

function mymodule_preprocess_node(&$variables) { $variables['content']['#attached']['drupalSettings']['myReactApp']['mySetting'] = 'some value'; }

 

Or, if you are modifying the render array (forms, build layer etc):

$form['my_react_app'] = [ '#markup' => '<div id="my-app-target"></div>', '#attached' => [ 'library' => [ 'mymodule/my-react-app' ], 'drupalSettings' => [ 'myReactApp' => [ 'mySetting' => 'some value', ], ], ], ];

 

In this case, we add the drupalSetting in the same place where we add the markup and the library.

Access drupalSettings value in the React App

Luckily, drupalSettings is a global variable so you can use it directly in your React app:

import React from 'react'; import { render } from 'react-dom'; const Root = () => { return ( <>Hi there. My setting is {drupalSettings.myReactApp.mySetting}</> ) } render(<Root/>, document.querySelector('#my-app-target')); Conclusion

I hope this post has helped you add an embedded React app to your Drupal 8 site!

Tag1 Consulting: Decoupled Drupal - Strengths and Weaknesses

Wed, 01/29/2020 - 16:01
Description Decoupled Drupal has been a trending topic for years in the Drupal community as well as the larger CMS landscape. What do some of the pioneers of the decoupled Drupal phenomenon have to say about what's possible today for decoupled Drupal and what's in store for practitioners? From GraphQL v4, to live preview with Gatsby, to Web Components browser support, innovation in the Drupal community is now quickly challenging some of our initial assumptions and visions for the future. In this introspective and retrospective Tag1 Team Talk, join Sebastian Siemssen (Senior Architect and Lead React Developer, Tag1 Consulting), Fabian Franz (Senior Technical Architect and Performance Lead, Tag1 Consulting), Michael Meyers (Managing Director, Tag1 Consulting), and Preston So (Editor in Chief, Tag1 Consulting) for an insightful conversation with decoupled Drupal veterans on its past, present, and future.Read more preston Wed, 01/29/2020 - 07:01

DrupalCon News: Important Alert about Demographic Information in Confirmation Messages

Tue, 01/28/2020 - 19:22

The DrupalCon Minneapolis registration system was configured to include all information provided by the registrant in the confirmation message to both the billing and registrant contact in the system.

Srijan Technologies: Things To Know Before Embracing Drupal Multisite Functionality

Tue, 01/28/2020 - 19:20

No wonder, the proliferation in the number of websites surfacing on the internet has stimulated the industrial groups to look out for alternatives to grab users' attention. In fact, a survey by Forrester stated in one of its reports that enterprises, on average, have to handle 268 customer-facing websites; which is enormous!

Tag1 Consulting: Modern testing: part 3

Tue, 01/28/2020 - 17:14
Testing is becoming an essential keyword and toolkit for developers and development teams who seek to architect and implement successful and performant websites. Thanks to the unprecedented growth in automated testing tools and continuous integration (CI) solutions for all manner of web projects, testing is now table stakes for any implementation. That said, many developers find automated testing to be an altogether intimidating area of exploration. Fortunately, when paired with a development culture that values quality assurance (QA), you can focus on adding business value instead of fixing issues day in and day out. Three years ago, Yuriy Gerasimov (Senior Back-End Engineer at Tag1 Consulting ) gave a talk at DrupalCon New Orleans about some of the key ideas that Drupal developers need to understand in order to implement robust testing infrastructures and to foster a testing-oriented development culture that yields unforeseen business dividends across a range of projects. In this four-part blog series, we summarize some of the most important conclusions from Yuriy’s talk. And in this third installment, we’ll take a closer look at two of the most essential parts of any testing toolkit: unit testing and functional testing. Unit testing Unit testing is a particularly fascinating topic,... Read more preston Tue, 01/28/2020 - 13:59

Acro Media: Drupal as Middleware: How to Patch Digital Gaps in a Growing Business

Tue, 01/28/2020 - 16:45

Due to the nature of B2B sales, one of my roles is cold outreach. Most of the time my first method of outreach garners no replies. However, every so often I will receive a prompt email message or reply over the phone. It usually goes something along the lines of: “We already have a web development agency.” or “We are not interested.” I often wish I was at a sit-down meeting when these situations arise. This is because I simply cannot describe the multi-faceted solutions Drupal can provide, far and above a typical web development agency. “You should absolutely stay with them” is my typical response to prospects that have an agency they are happy with. I say this because there is so much more Drupal, as a business solution, can provide without even interacting with the frontend of their website. What we often promote with Drupal is its capability to create a more complete digital experience platform (DXP), not just a website.

What Gartner has to say about the DXP

In a 2019 report, Gartner has this analysis about DXPs:

“Driven by digital transformation efforts, organizations are moving beyond the traditional audience engagement resources of websites and mobile apps. There is a growing acceptance of the idea of digital experience platforms as vital to these efforts. DXPs provide a scalable foundation for creating, optimizing, integrating, delivering and managing a range of digital experiences for different audiences, both internal and external.1”

So let me unpack that a little bit in my own words. Essentially, your website and mobile apps are still very much at the forefront of digital marketing. Moving forward, though, more organizations have and will continue to create a more cohesive, single platform (DXP) in order to cater to all stakeholders of the company. This not only includes said organizations’ customers but also their teams and employees, allowing for a more comprehensive snapshot of the company from the outside and inside. In the same report, Gartner estimates that:

“Through 2021, 85% of the effort and cost involved in a digital experience platform (DXP) program will be spent on integrations with internal and external systems, including the DXP’s own, built-in capabilities.1”

In my opinion, this assumption by Gartner indicates that organizations are already well aware of the advantages a DXP can provide. If you're interested, click on the banner below to read the report.

An imaginary business case for a DXP  

Imagine you started a business selling gadgets. Your gadgets were better for target market X because they were less complicated than the gadgets that were available on the market at the time. So first off, you rented a storefront and sold the gadgets in your store, but you also realized you could scale your business by selling the same gadgets online. So in addition to your point of sale system (POS), you now had to adopt an appropriate ecommerce platform and build a website to sell the gadgets online.

Now that you were selling gadgets online you also had to have a shipping channel and a returns channel for replacing defective gadgets. As demand for your product began to grow you needed more gadgets on hand at any given time. The obvious solution was a warehouse, but you also needed a product information management (PIM) system to keep on top of your inventory and distribution channels.

As your product created a name for itself you opened a few more gadget stores and to satisfy demand across the globe you began selling your product through Amazon. With increased demand came competition, so in response, you invested in marketing software to stay on top of the industry trends. You began to diversify in order to make your business more resilient to market volatility. The diversification led to custom gadgets in addition to a gadget service and repair business.

In order to keep track of what your customers had purchased and to identify opportunities for cross-selling and up-selling, you invested in a customer relationship management (CRM) system. Finally, just under a year ago you invested in a new enterprise resource planning (ERP) system. This way all of your new departments had the information they needed to operate efficiently.

So we are now in the present day. Like many other businesses that grew at a rapid pace, you find yourself in a situation where all of your technology has become siloed. In this analogy, your data and information all exist, but it is locked away in separate silos. Each silo represents a piece of software, a distribution channel, a legacy POS system, or that missing Amazon integration that can only be accessed from one place. You can run a business this way, and many organizations do just that, without realizing that there is actually a more efficient way to do things. This is where the DXP comes into play. What you would prefer rather than individual silos would be a horizontal technology architecture with open lines of communication between everything. This, as one could imagine, can save a tremendous amount of time and manual workflows, eliminating what we call swivel-chair processes. Simply stated it is a more efficient way of doing business. The problem is many business owners and decision makers may not even realize this is happening because they live in their own silos and no one has pointed it out to them.

How does Drupal come into play?

Drupal is a content management system (CMS), but at the same time, Drupal can do so much more than a traditional CMS. Through API integrations, also known as API hooks, Drupal has the ability to be used as middleware. As middleware, Drupal can act as a modular engine that connects all the data from the aforementioned gadget business’ technology. Data can flow forwards and backward between the various pieces of technology and even integrate into legacy systems like the POS in the gadget example. Furthermore, the modular nature of Drupal middleware essentially future proofs your business allowing for business scalability.

To give an analogy, you can think of Drupal middleware as a computer with unlimited USB ports. The computer acts as the brain passing information back and forth between systems and the USB ports are the API hooks. USB ports are non-proprietary and you can, therefore, unplug cables you no longer need and replace them with new cables. You can also add or remove cables as necessary and the computer keeps on functioning as long as you configure the drivers. So as you outgrow software systems or you decide to replace that legacy POS, no problem because you can just plug in the new software, install the drivers, and you are back up and running again.

Connecting it all together

So to return to my statement at the beginning of this blog post, the reason I wish I could sit down with those who respond so quickly to my first cold outreach is that I do not want to be typecast as just another web development agency. In actual fact, because our expertise lies in Drupal we are far better positioned to provide solutions that lay beyond the scope of the traditional idea of a website. Sure we can develop an incredibly robust frontend experience and, likewise, a flexible scalable ecommerce engine. But, we can also use Drupal as middleware that allows for seamless flow of information between systems.

If you've read this and would like to have a quick chat, let us know! We're happy to help. I also mentioned a Gartner report from 2019 that is a great introduction for anyone trying to nail down their digital experience platform. Gartner has made this report available to us to share with our readers for a limited time, so check it out now while you still can.

1 - Gartner, "Don’t Wreck Digital Engagement With Bad Deployment Decisions for Your Digital Experience Platform,” 31 July 2019, Gene Phifer.

Gartner does not endorse any vendor, product or service depicted in its research publications, and does not advise technology users to select only those vendors with the highest ratings or other designation. Gartner research publications consist of the opinions of Gartner’s research organization and should not be construed as statements of fact. Gartner disclaims all warranties, expressed or implied, with respect to this research, including any warranties of merchantability or fitness for a particular purpose.

Chromatic: Script Management with Composer

Tue, 01/28/2020 - 16:00

Composer already manages our PHP dependencies, so why not let it manage our utility scripts too?