Inhalt abgleichen
Drupal.org - aggregated feeds in category Planet Drupal
Aktualisiert: vor 12 Sekunden

Axelerant Blog: Drupal Dev Days Lisbon 2018: Retrospectives

14. Juli 2018 - 6:18


Drupal Developer Days Lisbon
was valuable, nicely organized, and full of energy. Two Axelerant team members attended to contribute a workshop and a session on two key topics, and they wanted to share key highlights with you, to thank the volunteers, and to encourage more developers from around the world to make it in 2019.

Drupal.org blog: What's new on Drupal.org? - June 2018

14. Juli 2018 - 0:39

Read our Roadmap to understand how this work falls into priorities set by the Drupal Association with direction and collaboration from the Board and community.

Announcements Last chance to vote in the Drupal Association board election

Elections for the Drupal Association board end on July 13th, 2018 at 5pm Pacific (in just over an hour at the time this is posted). There are nine candidates from 7 countries across six continents representing a wide variety of perspectives from the Drupal community. Anyone user who has been active in the last year and registered before the elections began is welcome to cast a ballot.

We encourage you to vote today and help guide the future of the Drupal Association.  

Reminder: Drupal Europe is coming up soon

Drupal Europe is coming up in less than 60 days! Drupal Europe will be the largest gathering of the Drupal community in Europe and is a reimagining of this important community event as both technical conference and family reunion. The Drupal Association engineering team will be attending to connect with the community, provide updates on Drupal.org, and listen to some of the incredible speakers who will be in attendance.

Join the community in Darmstadt, Germany from September 10-14, 2018. Make sure to register, book your travel, and secure accommodation: http://drupaleurope.org/

Project maintainers: Change your git remote configuration

Git authentication methods for Drupal.org hosted projects are changing as we approach upgrading our developer tooling stack. In particular we will be:

  • Deprecating password authentication for git

  • Deprecating the git remote format <username>@git.drupal.org/project/<yourproject>.git in favor of git@git.drupal.org:project/<yourproject>.git

We have updated the version control instructions for Drupal.org projects, and put a message in the git daemon for any user who makes a push using the deprecated format.

For more information, please review: https://drupal.org/gitauth

Drupal.org Updates Ecommerce industry page launched

Since last year, one of our ongoing initiatives has been to develop more content on Drupal.org focused on specific industries. Drupal is an incredible powerful tool for building ambitious digital experiences, but it's flexibility can sometimes be overwhelming. These industry specific pages help Drupal evaluators discover how Drupal can be tailored for their specific needs, and highlight successful case studies of Drupal in the wild.

The Drupal Association has launched our sixth industry page promoting the power of Drupal for Ecommerce. We want to thank Commerce Guys for their contributions to getting this page off the ground.

Display project screenshots in a more user friendly way

For every new Drupal project that a developer or site-builder undertakes, time is spent evaluating distributions, modules, and themes to find integrations that will accelerate launching the project.

To improve the user experience for users evaluating modules on Drupal.org, we've implemented a new lightbox-style display for project screenshots.

Here's an example of a screenshot from the Token project:

Granted more maintainers the ability to give contribution credit

Since the introduction of contribution credits at the end of 2015, they've become an important part of the way the Drupal community recognizes individual and organizational contributions to the project. The Drupal Association Engineering team regularly reviews the contribution credit system to make small tweaks and adjustments to make the experience even better.

For our most recent update, Drupal.org now grants all project maintainers with the 'maintain issues' permission the ability to grant contribution credit, instead of just those users with 'Write to Version Control' permissions. This means that a much wider group of maintainers can now participate in granting credit.

Showing maintainer photos on top level Docs guides

Documentation is critically important to the Drupal project To make it easier for potential contributors to find out who they should reach out to for issues that affect the top levels of documentation, we've added maintainer information to the top level documentation guides.

Email confirmation when creating an organization node

To help more organizations that work with Drupal join our community, we now send an email confirmation to any user who creates an organization profile with information about becoming listed as a service provider, details about the contribution credit system, and information about becoming a Drupal Association member or supporting partner.

We encourage everyone in the Drupal community to ask your clients to create a Drupal.org organization profile. Bringing end-users into the contribution journey will be a key part of Drupal's long term health and success.

Contributing to the Open Demographics Initiative

One of our goals on the Drupal Association engineering team is to adopt the Open Demographics Initiative in our user registration process. As part of our effort to work towards that goal, we have contributed a machine readable version of the demographic questions and and answers to the ODI project.

We're hopeful that can be reviewed and committed soon, and be used as the basis for an ODI Drupal module.

Security Improvements Added PSA and SAs to the /news feed

To increase the visibility of security notifications, Public Security Announcements and Security Advisories will now be included in the https://drupal.org/news feed.

Multi-value CVE field for Security Advisories

We've also updated the security advisory content type so that an advisory can be associated with multiple CVEs.

Infrastructure Updates DrupalCI: Converted core javascript tests to use Chrome driver

The DA Engineering team has worked together with Core to convert the Core javascript tests from using PhantomJS to using Chrome Webdriver. This provides much more powerful and better supported tools for javascript development in Drupal.

DrupalCI: Reduced disk space usage of the DrupalCI dispatcher

One of the most important services the Drupal Association provides for the project is DrupalCI, the suite of tools used to test all of Drupal's code. These tools are very powerful, but also expensive to maintain, and something we have to monitor carefully. In June, we spent some time automating disk space management for the DrupalCI dispatcher, to help reduce the maintenance cost of keeping it running smoothly.

———

As always, we’d like to say thanks to all the volunteers who work with us, and to the Drupal Association Supporters, who make it possible for us to work on these projects. In particular we want to thank:

  • OPIN - Renewing Signature Supporting Partner
  • Srijan - Renewing Signature Supporting Partner
  • Lullabot - Renewing Premium Supporting Partner
  • Aten - Renewing Premium Supporting Partner
  • Phase2 - Renewing Premium Supporting Partner
  • WebEnertia - *NEW* Premium Supporting Partner
  • Pantheon - Renewing Premium Hosting Supporter
  • Datadog - Renewing Premium Technology Supporter
  • Promet Source - Renewing Classic Supporting Partner
  • Evolving Web - Renewing Classic Supporting Partner
  • ImageX - Renewing Classic Supporting Partner
  • Adapt - Renewing Classic Supporting Partner
  • Green Geeks - Renewing Hosting Supporter
  • Microserve - Renewing Classic Supporting Partner
  • ThinkShout - Renewing Classic Supporting Partner
  • Amazee Labs - Renewing Classic Supporting Partner
  • Four Kitchens - Renewing Classic Supporting Partner
  • Access - Renewing Classic Supporting Partner
  • Appnovation - Renewing Classic Supporting Partner
  • Studio Present - Renewing Classic Supporting Partner
  • undpaul - Renewing Classic Supporting Partner
  • Position2 - Renewing Classic Supporting Partner
  • Blend Interactive - Renewing Classic Supporting Partner

If you would like to support our work as an individual or an organization, consider becoming a member of the Drupal Association.

Follow us on Twitter for regular updates: @drupal_org, @drupal_infra

Ashday's Digital Ecosystem and Development Tips: Omeda and Drupal: A Perfect Relationship (Manager)

13. Juli 2018 - 21:00

As you may have figured out by now, Drupal is a great platform for 3rd party integrations. Whether it’s eSignatures with Hellosign, more sophisticated search with Solr, or a host of other options, Drupal works best when it’s not trying to reinvent every wheel and is instead used to leverage existing business tools by tying them all together into a robust and useful package. Today, we’re going to take a look at a new set of integration modules that Ashday has just contributed back to the Drupal community: Omeda, Omeda Subscriptions and Omeda Customers.

Palantir: Help Us Modernize the Admin UI of Drupal

13. Juli 2018 - 20:16
Help Us Modernize the Admin UI of Drupal brandt Fri, 07/13/2018 - 13:16 Sarah Lowe Jul 13, 2018

Take this survey to help us make Drupal the best platform for content editors and managers to use everyday.

Help us modernize the admin UI of Drupal.

Do you use Drupal? Before working at Palantir, I used Drupal only once: to help a legacy client with their Drupal 6 website. They had a support contract with my company, so if they had an issue or question I would do my best to help them, even though the original team who built the site had moved on to other jobs, and even though my company focused on WordPress sites.

I remember scrutinizing every menu item of the admin section, trying to familiarize myself with the platform while careful not to misclick and mess up something on the client’s site. Some of the terms I could understand—users, taxonomy—but some were new or vague, and not very clear to their meaning such as nodes, views, and blocks. While I was able to help the client at the time, I felt Drupal was too obtuse of a platform for me.

Redesign planned for Drupal

Now that I’m at Palantir, and knowing Drupal is a bigger part of my job, I’m still struck by how user unfriendly the platform can be out-of-the box, especially to a non-developer. While add-on modules like Workbench and Content Moderation can mitigate some of this complexity, installing and configuring those requires specialized knowledge. From talking to current clients, I know that I’m not the only one who feels intimidated by Drupal’s default administrative interface.

The Drupal community is also aware of the high learning curve to Drupal, and is in the process of modernizing the look and feel of the admin experience to make it more intuitive. Given how big the changes are, it’s the perfect time to include the people who work with Drupal every day to make sure Drupal is a system everyone feels comfortable using.

Therefore, I am working with fellow Palantir web strategist Michelle Jackson, Drupal front-end designer Cristina Chumillas, co-founder and front-end lead at Evolving Web Suzanne Dergacheva, project manager Antonella Severo, design consultant Roy Scholten, folks from the Drupal Association and other interested volunteers to conduct research on popular content management systems and web platforms such as Drupal, WordPress, Squarespace, and Joomla in order to learn how best to update Drupal.

Here’s where you come in

We want to make Drupal the best platform for content editors and managers to use everyday. Therefore, if your job involves updating the company blog, swapping out images, tagging content to group related information, or some other way you interact with your website, we want to hear from you.

We put together a quick, 5-10 minute survey that asks about your general familiarity with Drupal. For example, we want to know common tasks you perform on the platform as well as frustrating pain points. This way we can target our redesign efforts to make Drupal work better for you.

In addition to the opportunity to shape the future of Drupal, at the end of the survey you’ll have the opportunity to enter into a drawing for two great prizes: 1 full conference ticket to the (new) DrupalCon Content Marketing track at DrupalCon Seattle 2019 - $695 value (flight and hotel not included), or 1 two-day, online Drupal 8 training session from fellow Drupal agency Evolving Web.

Take the Survey So what happens next?

This survey is step one of our research efforts. After reviewing the common tasks, we’ll ask folks who had provided their email address if they are willing to participate in card sort exercises to determine the best label for grouping common tasks together. Next we’ll design solutions to address the biggest pain points and ask participants to validate our assumptions through usability tests.

Looking at the long term, we are interested in comparing Drupal with other popular systems such as WordPress and Squarespace. We plan to reach out to people who use those platforms to find out what they find easy or difficult about them, which may inform the direction of the Drupal redesign. No matter which direction our research takes, we want to ensure we’re building a product with you, the content editor, in mind.

More ways to help

We want to make the new Drupal as intuitive as can be on a global scale, but as a small team of volunteers, there’s only so much we can do on our own. If you develop or design for Drupal, and are interested in our research efforts, there are a number of ways to get involved. First, check out the Admin UI and JavaScript Modernization initiative on Drupal.org. Then, reach out to us on the #admin-ui channel on Slack. We can show you how to copy the survey so you can run your own tests. We’re especially grateful if you’re able to translate it and test users in Africa, Asia, and Latin America.

It shouldn’t take specialized knowledge to update and maintain a website on Drupal. With your help, we can make Drupal a more approachable platform for content editors. I can’t wait to hear from you!

Community Drupal People

Drupal blog: Kevin Thull's unique contribution to Drupal

13. Juli 2018 - 19:15

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've ever watched a Drupal Camp video to learn a new Drupal skill, technique or hack, you most likely have Kevin Thull to thank. To date, Kevin has traveled to more than 30 Drupal Camps, recorded more than 1,000 presentations, and has shared them all on YouTube for thousands of people to watch. By recording and posting hundreds of Drupal Camp presentations online, Kevin has has spread knowledge, awareness and a broader understanding of the Drupal project.

I recently attended a conference in Chicago, Kevin's hometown. I had the chance to meet with him, and to learn more about the evolution of his Drupal contributions. I was struck by his story, and decided to write it up on my blog, as I believe it could inspire others around the world.

Kevin began recording sessions during the first community events he helped organize: DrupalCamp Fox Valley in 2013 and MidCamp in 2014. At first, recording and publishing Drupal Camp sessions was an arduous process; Kevin had to oversee dozens of laptops, converters, splitters, camcorders, and trips to Fedex.

After these initial attempts, Kevin sought a different approach for recording sessions. He ended up developing a recording kit, which is a bundle of the equipment and technology needed to record a presentation. After researching various options, he discovered a lightweight, low cost and foolproof solution. Kevin continued to improve this process after he tweeted that if you sponsored his travel, he would record Drupal Camp sessions. It's no surprise that numerous camps took Kevin up on his offer. With more road experience, Kevin has consolidated the recording kits to include just a screen recorder, audio recorder and corresponding cables. With this approach, the kit records a compressed mp4 file that can be uploaded directly to YouTube. In fact, Kevin often finishes uploading all presentation videos to YouTube before the camp is over!

This is one of Kevin Thull's recording kits used to record hundreds of Drupal presentations around the world. Each kit runs at about $450 on Amazon.

Most recently, Kevin has been buying and building more recording kits thanks to financial contributions from various Drupal Camps. He has started to send recording kits and documentation around the world for local camp organizers to use. Not only has Kevin recorded hundreds of sessions himself, he is now sharing his expertise and teaching others how to record and share sessions.

What is exciting about Kevin's contribution is that it reinforces what originally attracted him to Drupal. Kevin ultimately chose to work with Drupal after watching online video tutorials and listening to podcasts created by the community. Today, a majority of people prefer to learn development through video tutorials. I can only imagine how many people have joined and started to contribute to Drupal after they have watched one of the many videos that Kevin has helped to publish.

Kevin's story is a great example of how everyone in the Drupal community has something to contribute, and how contributing back to the Drupal project is not exclusive to code.

This year, the Drupal community celebrated Kevin by honoring him with the 2018 Aaron Winborn Award. The Aaron Winborn award is presented annually to an individual who demonstrates personal integrity, kindness, and above-and-beyond commitment to the Drupal community. It's named after a long-time Drupal contributor Aaron Winborn, who lost his battle with Amyotrophic lateral sclerosis (ALS) in early 2015. Congratulations Kevin, and thank you for your incredible contribution to the Drupal community!

Ryan Szrama: Voting ends today for the next Drupal Association At-Large Director

13. Juli 2018 - 18:53

I'm currently serving as one of two community elected At-Large Directors on the board of the Drupal Association. The D.A. supports Drupal in a variety of ways, including maintaining drupal.org, running DrupalCon, and marketing Drupal to foster its adoption and community growth. If you use Drupal at all, you benefit from the work of the Association staff, and I couldn't be prouder of the work they're doing. The team really is incredible, and it's been a pleasure to get to know them more this past year.

Serving on the board has also given me the opportunity to get to know the other board members, including the At-Large Director elected before me, Shyamala Rajaram. She has focused on helping the D.A. board and staff consider how to foster adoption and growth around the world, including in her home country of India where she is a Drupal agency leader and community organizer. Not only has she brought a unique perspective to these conversations at the board level, but she contributes with a humble, generous spirit that has led and served us well. Thank you, Shyamala!

Her term on the board is expiring, and the Drupal community is currently engaged in electing her replacement from a very qualified list of candidates. The D.A. is a key part of the Drupal ecosystem, and each member of the board has the ability to influence how it uses its websites, events, and marketing programs to support the project and foster its growth. Its influence is often indirect, but it is no doubt consequential.

Today is the last day to do vote! Anyone who has used their drupal.org user account in the last year is eligible, and I encourage you to vote. Once you've reviewed the candidates, click the bright green "Vote now!" button in the top right hand of the election homepage. You can rank your choices in order of priority (1st, 2nd, 3rd, etc.), but you can also just pick one person as your 1st choice if that's all the time you have.

If you do vote, thanks for your contribution!

Evolving Web: Boosting the Voice of the Small Drupal Shop

13. Juli 2018 - 17:58

One of the reasons why I’ve chosen to run for a position on the Drupal Association Board of Directors is because I’ve noticed that small-to-medium-sized agencies would like to contribute more to Drupal’s strategic direction. These businesses have played a huge role in building Drupal’s code, community and success over the years, and I believe they’re also a key component of its long-term sustainability. Companies with 25 or fewer people registered on Drupal.org make up the majority of those listed in Drupal’s Marketplace. It’s not a comprehensive survey, but it suggests that smaller agencies are the backbone of the community.

 

I’m an owner and co-founder of an 11-year-old agency that employs just over a dozen team members. We have a diverse client stable that includes non-profits, government departments, universities and businesses of varying sizes. Their project budgets range from $5,000 to $500,000, so it’s important to us—and many others like us—that Drupal continues being able to offer powerful and complex functionality for a wide price range.

I’ve heard the conversations about how Drupal 8 has made it more challenging to work with a smaller team and more expensive to build sites and applications. I’ve seen its relatively sluggish adoption statistics. I’ve watched with interest as Backdrop works on advancing a Drupal fork that doesn’t leave the needs of the smaller agencies behind. I sense that we’re at a watershed moment when these businesses need a strong voice at the table.

Small shops have unique strengths to offer clients: they’re often flexible, speedy, local and personal, with strong customer support. One way the Drupal Association could give a boost to these agencies would be by developing more guidelines and models for Drupal Business Summits. Aimed at helping prospective end-users decide whether Drupal could help meet their needs, these events have the potential to drive Drupal’s growth in new regions. Smaller agencies, often located in places with under-tapped markets, are perfectly positioned to lead the charge.

Getting elected to the Drupal Association Board of Directors would give me the opportunity to share my experience and expertise as a small-business owner. I invite you to make your own voice heard as well, by voting in this important election. (Voting ends today: July 13, 2018).

+ more awesome articles by Evolving Web

Specbee: How Drupal & Blockchain are Changing The Perception of Decentralized Architecture

13. Juli 2018 - 15:37

There is a new Birdman in the town! An idea that has gripped the biggest institutions in the market. A technology, that enthusiasts believe, could change the world. "A truly extraordinary invention that does really mundane things", as told by Paul Brody, E&Y Global blockchain leader. Some see it go much further than the effect on "big stock trades". Further into cracking down on music piracy, child labor and a lot of other things around the world. Yes, I'm definitely talkng about Blockchain Technology. The idea that Drupal and Blockchain can work together to create a secure decentralized architecture is quite fascinating

Hook 42: June Accessibility (A11Y) Talks - What's New with WCAG 2.1

13. Juli 2018 - 15:21

The June A11y Talk welcomed back Drupal Core Accessibility Maintainer, Andrew Macpherson. The “What's New with WCAG 2.1” talk discussed the new guidelines that were released in early June.

Web Content Accessibility Guidelines (WCAG 2.1) extends WCAG 2.0 and is intended as an interim until WCAG 3.0 is released. The new guidelines were needed due to advancements in technology and to fix some gaps and shortcomings in the earlier guidelines. Some of the new guidelines cover touch/mobile devices, speech control, and cognitive disability support.

Amazee Labs: Recap Pt.1: Drupal Dev Days Lisbon 2018

13. Juli 2018 - 14:26
Recap Pt.1: Drupal Dev Days Lisbon 2018

This year’s Drupal Dev Days took place in sunny (well, for the most part) Lisbon, Portugal. Over 400 people attended this year’s Dev Days, and I was one of them. I am fairly new to Drupal, and this was my first conference dedicated to Drupal. This was a week-long event, something that was unusual to me as I am used to attending one or two-day events.

Vijay Dubb Fri, 07/13/2018 - 14:26 Day one

Day one was all about Contribution at ISCTE. Let’s just say my first day didn’t get off to a great start. It took me over 30 minutes to find the entrance to the University, where the event was taking place, and I wasn’t the only one.

It also didn’t help that it was raining, but luckily I had my umbrella (being British I never leave the house without it). Once I found the place, I realised I’d left my adapter at home, so I headed out to get one. Luckily, there was a shop nearby. Along with my purchase, I headed back to help with contributing to some of the Drupal innanatives.

There, I met Ruben Teijeiro, who introduced me to several people and how to get started. I really wanted to contribute to the Frontend space, especially to the new admin UI. Setting up wasn’t the easiest (which I expected), as I use Windows for all my development. There I also met Christophe Jossart, a long time contributor to Drupal, who tried to help me with setting up the site on my machine, but to no avail.

By the end of the day with the help of installing WSL on my machine, I had managed to install the site, get it up and running, only then to be served with several errors, by which time I had called it a day. It might sound like all doom and gloom, but I made a lot of progress made throughout the day.

Day two Friction

The first keynote session of the week was given by Bojan Zivanovic. He spoke about the evolution of Drupal (version 7 to 8) and how Drupal has made several changes to Core using modern practices, making it a much better framework.

One interesting part was the adaption of  Drupal 8, which was a plus (40%), and the loss of Drupal 7 sites (11%), however, by putting them together Drupal actually lost over 35,000 sites in the last year. There were several reasons as to why this could be the case, including time spent installing Drupal and setting up the development environment, especially for those on Windows (like me :sigh:). It all relies on the community to help and improve what is already there, to make it easier for both new and current users.
 

“Sometimes our Drupal websites end up looking like this.” - Bojan Zivanovic (in reference to the above image).

Watch session

Overview of GDPR modules for Drupal

Another session I attended was a comparison of the top GDPR modules and how you can make your Drupal site GDPR compliant.

The talk covered many aspects - from rights of the user to form checking and security. It was apparent that there are several modules that help do this, so having a short list of the best ones made it easier. It also became apparent that to become compliant, you require more than one module.

One thing that came out of this session, which I totally agree with, was that site security was often neglected in the past but is now at the forefront of all sites.

Watch session

How to delight content editors with UX when building Drupal 8 websites

This session, given by Chandeep Khosa, was the last one I attended and was the highlight of the day for me. Adding features to the Drupal like Admin Toolbar, like a theme module to make it look nice, or even add help text, may sound rudimentary, but how many actually do so and make use of it? (No, really?) Most content editors are not used to the Drupal admin like developers are, so it was nice to hear what we can do to make it easier for them.

One specific module I found very interesting was the tour module, which provides guided tours of the site interface via tooltips, something available in core today. I didn’t even know this existed. One thing I took away from this was that if you don’t need it, hide it, why show something to users that don’t get used?

Watch session

Part 2 of my Drupal Dev Days Lisbon 2018 Recap will follow soon. Thanks for reading.

Flocon de toile | Freelance Drupal: Make a SQL query on multiple tables with Drupal 8

12. Juli 2018 - 23:59
Drupal 8 provides an API, with EntityQuery, which significantly simplifies writing SQL queries to retrieve and list a set of contents. Thus it is very easy to retrieve a list of contents according to complex criteria and conditions, without needing to know precisely the tables and their syntax for each field associated with an entity. But we may need to resort to more complex queries that involve associating data from multiple tables.

Evolving Web: Drupal Association's Role in Growing the Community

12. Juli 2018 - 20:49

As you probably know, voting is currently open for the Drupal Association’s Board of Directors. The Board of Directors plays an important role in developing the Association’s strategic direction, and voting for the Board of Directors is an opportunity for members of the Drupal community to participate in shaping the Association’s future.

One of the reasons I’m running for this position is because I want to help grow the Drupal community into new areas, and to ensure that the Association’s strategic vision is representative of the needs of Drupal’s diverse community.

Although Evolving Web is a relatively small Drupal company, we have an incredibly diverse team, with our 15 employees coming from 11 different countries. Managing such an international team has broadened my perspective and made me think about the the Drupal experience in communities around the world.

There are several areas where I want to make sure that Drupal better serves the needs of its growing communities:

Toolkit for Drupal Event Organizers

Anyone who’s been to DrupalCon or a DrupalCamp knows that it’s an amazing opportunity to make connections with other developers and designers, to ask questions, share knowledge, and build a sense of community.

There are plenty of opportunities I see to create a toolkit that would allow for more and larger community-organized events. Already, the Association has standardized the branding for future DrupalCons, and provided a DrupalCon license that will be available so that the community can organize DrupalCons in Europe.

I think that it would be great to provide a more open version of this license, that would be a template anyone can use to organize DrupalCamps. For regions where the Drupal community is still small, and there are only so many people able to volunteer their time and effort, having an easily-adaptable format, planning procedures and best practices could make organizing a DrupalCamp a much less daunting prospect.

Similarly, this year we’re organizing the first ever Drupal Business Summit in Montreal. This is another type of event which could be replicated in other cities and regions, and could be a great tool for growing Drupal adoption along with community.

Promote Drupal Global Training Days

Drupal Global Training Days (GTD) is an exciting community initiative that I’m proud to be a part of. The idea behind Global Training Days is to introduce new and beginner users to Drupal. It’s a great way to introduce Drupal to regions where there are not yet large or active Drupal communities. It also provides a welcoming environment that can be less intimidating for non-developers or people just starting to explore Drupal.

Global Training Days are a great opportunity to expand any Drupal community, whether new or established, and can be used at the community level to promote Drupal. I think having more shared marketing tools to promote these trainings would be a powerful tool for growing the community.

Understand New Users’ Needs

As a trainer, I’ve had the exciting opportunity to introduce people from all over the world to Drupal and to see them on their journey toward using Drupal and becoming involved in the community. Over the past seven years, I’ve trained over 1,200 people from at least 17 different countries; across Canada and the US, at DrupalCon Munich, and at DrupalCon Asia in Mumbai.

Through these trainings, and my interaction with trainees, I’ve developed an understanding of how newcomers perceive Drupal, as well as an appreciation for the diversity of needs and priorities of Drupal users around the world. There’s an Admin UI initiative underway to improve the experience of content editors, which I think will go a long way to making Drupal feel more intuitive for new users.

+ more awesome articles by Evolving Web

Drupal core announcements: New provisional Drupal 7 maintainer: Pol Dellaiera

12. Juli 2018 - 19:23

I'm pleased to announce that Pol Dellaiera has accepted our invitation to be a provisional Drupal 7 core maintainer.

Pol is based in Belgium and has been working in the Drupal community for 13 years. He is working at the European Commission and is on the core team of the OpenEuropa Drupal 8 project. After being tasked to write a new theme that was going to be the base for all current and future Drupal 7 sites at European Commission, Pol wrote Atomium and Registry on steroids -- two of his last contributions.

Like many, Pol believes there is still so much good in Drupal 7 and is passionate about keeping it alive and healthy. You can read more about his background and thoughts on his blog.

Please join me in welcoming Pol as a provisional Drupal 7 core maintainer.

Dries Buytaert: Kevin Thull's unique contribution to Drupal

12. Juli 2018 - 18:00

If you've ever watched a Drupal Camp video to learn a new Drupal skill, technique or hack, you most likely have Kevin Thull to thank. To date, Kevin has traveled to more than 30 Drupal Camps, recorded more than 1,000 presentations, and has shared them all on YouTube for thousands of people to watch. By recording and posting hundreds of Drupal Camp presentations online, Kevin has has spread knowledge, awareness and a broader understanding of the Drupal project.

I recently attended a conference in Chicago, Kevin's hometown. I had the chance to meet with him, and to learn more about the evolution of his Drupal contributions. I was struck by his story, and decided to write it up on my blog, as I believe it could inspire others around the world.

Kevin began recording sessions during the first community events he helped organize: DrupalCamp Fox Valley in 2013 and MidCamp in 2014. At first, recording and publishing Drupal Camp sessions was an arduous process; Kevin had to oversee dozens of laptops, converters, splitters, camcorders, and trips to Fedex.

After these initial attempts, Kevin sought a different approach for recording sessions. He ended up developing a recording kit, which is a bundle of the equipment and technology needed to record a presentation. After researching various options, he discovered a lightweight, low cost and foolproof solution. Kevin continued to improve this process after he tweeted that if you sponsored his travel, he would record Drupal Camp sessions. It's no surprise that numerous camps took Kevin up on his offer. With more road experience, Kevin has consolidated the recording kits to include just a screen recorder, audio recorder and corresponding cables. With this approach, the kit records a compressed mp4 file that can be uploaded directly to YouTube. In fact, Kevin often finishes uploading all presentation videos to YouTube before the camp is over!

This is one of Kevin Thull's recording kits used to record hundreds of Drupal presentations around the world. Each kit runs at about $450.

Most recently, Kevin has been buying and building more recording kits thanks to financial contributions from various Drupal Camps. He has started to send recording kits and documentation around the world for local camp organizers to use. Not only has Kevin recorded hundreds of sessions himself, he is now sharing his expertise and teaching others how to record and share sessions.

What is exciting about Kevin's contribution is that it reinforces what originally attracted him to Drupal. Kevin ultimately chose to work with Drupal after watching online video tutorials and listening to podcasts created by the community. Today, a majority of people prefer to learn development through video tutorials. I can only imagine how many people have joined and started to contribute to Drupal after they have watched one of the many videos that Kevin has helped to publish.

Kevin's story is a great example of how everyone in the Drupal community has something to contribute, and how contributing back to the Drupal project is not exclusive to code.

This year, the Drupal community celebrated Kevin by honoring him with the 2018 Aaron Winborn Award. The Aaron Winborn award is presented annually to an individual who demonstrates personal integrity, kindness, and above-and-beyond commitment to the Drupal community. It's named after a long-time Drupal contributor Aaron Winborn, who lost his battle with Amyotrophic lateral sclerosis (ALS) in early 2015. Congratulations Kevin, and thank you for your incredible contribution to the Drupal community!

Phase2: Backend Drupal 8 101 (Part 1): Data Digging in Drupal 8

12. Juli 2018 - 17:17

One of the most fundamental tasks of back-end Drupal 8 development is learning how to capture and utilize data. Unfortunately, as a new developer, trying to do so feels like wandering into an endless labyrinth of arrays, methods, objects, and arcane wizardry.

Lullabot: Decoupled back ends in the age of brand consistency

12. Juli 2018 - 16:51

It may sound surprising to hear about brand consistency from a back-end developer. This is traditionally a topic for UX and marketing experts. Nevertheless, brand consistency is a powerful trend that’s affecting how we architect content APIs.

One of the ways I contribute to the Drupal API-First Initiative, aside from all the decoupled modules, is by providing my point of view from the implementation side. Some would call that real world™ experience with client projects. This means that I need to maintain a pragmatic point of view to make sure that we can do with Drupal what clients need from us. While being vigilant on the trends affecting our industry, I have discovered that there is a strong tendency for digital projects to aim for brand consistency. How does that impact implementation?

What I mean by brand consistency

When I talk about brand consistency, I only refer to a small part of it. Picture, for a moment, the home screen of Netflix on your TV. Now picture Netflix on your browser and on the app for your phone. They all look the same, don’t they? This is intentional.

The first time I installed Netflix on my wife’s iPad I immediately knew how to use the app. It took me about a second to learn how to use a complex and powerful application on a device that was foreign to me. I am an Android person but I was able to transition from using Netflix on my phone while on the bus to my wife's iPad and from there to the living room TV. I didn’t even realize that I was doing it. Everything was seamless because all the different devices running Netflix had a consistent design and user experience.

If you are interested in the concept of brand consistency and its benefits you can learn more from actual experts on the subject. I will focus on the implications for API design.

It changes the approach to decoupled projects

For the last few years, I have been speaking at events and writing about the imperious necessity for your back end to be presentation agnostic. Consumers can have radically different data needs. You don’t want your back end to favor a particular consumer because that will lead to re-coupling, which leads to high maintenance costs for the consumers that you turned your back on.

When the UX and designs are consistent across consumers, then the statement ‘the consumers can have radically different data needs’ may no longer apply. If they really are consistent, why would the data they need be radically different? You cannot be consistent and radically different at the same time.

Many constraints, API design tips, and recommendations are based on the assumption of presentation agnosticism. While this holds true for most projects, a significant number of projects have started to require consistency across consumers. So the question is: if we no longer need to be presentation agnostic in our API design, what can we optimize given that we have a single known presentation? We made many compromises. What did we give up, and how do we get it back?

How I approached the problem

The first time that I encountered this need for unified UX across all consumers in a client project my inherent pragmatism was triggered. My brain was flooded with potential optimizations. Together with the rest of the client team, I took a breath and started analyzing this new problem space. On this occasion, the client had suggested the BFF pattern from the start. Instead of having a general-purpose API back end to serve all of your downstream consumers, you have one back end per user experience. Hence the moniker ‘Backend for Frontend’ or BFF. This was a great suggestion that we carefully analyzed and soon embraced.

What is a BFF?

Think of a BFF as a server-side service that takes care of the orchestration and processing of the different interactions with the API (or even multiple APIs or microservices) on behalf of the consumers. In short, it does what each consumer would do against your presentation agnostic API, and consolidates it on the server for presentation. The BFF produces a render-ready JSON object.

In other words, we will build a consumer in the back end, but instead of outputting HTML, CSS, and JavaScript (using the web consumer as an example) we will output a JSON document.

undefined

You can see in the code above that the shape of the JSON response is heavily influenced by the single design and the components in the frontend. This implies some rigidness on front-end differences, but we agreed that’s OK for our case. For your completely different design, the JSON output would look completely different.

How we implemented BFFs

After requirements are settled, we decide that we will have a single Backend For Frontend that will power all the consumer applications. Instead of having one BFF for each consumer, as Netflix used to do it, we will only have one. The reason is that with one we ensure brand consistency. Also, as Lee Byron puts it:

The concern of duplicating logic across different BFFs is more than just maintaining two repositories of similar code rather than one. The concern is the endless fight against accidental divergence.

Additionally, we don’t have those requirements, but the BFF is also the best place to add global restrictions like authentication, request filters, rate limits, etc.

Our team decided to implement this as a set of rigid endpoints in a Serverless [LINK] application written in NodeJS. As you can imagine, you can implement this pattern with the tools and the stack you prefer. Since this will be so specific to your project’s designs you will likely need to start from scratch.

How consumers deal with BFFs

We create this consumer in the backend in order to simplify all the possible front ends. We move the complexity of building a consumer into a central service that can be reused by all the consumers. That way we can call the consumers, dumb clients. This is because the consumers no longer need to craft complex queries (JSON API, GraphQL, or whatever else); they don’t need to aggregate 3rd party services; and they don’t need to normalize the data from the different APIs, etc. In fact, all the data is ready to render.

In our particular case, we have been able to reduce the consumers to renderers. A consumer only needs to:

  1. Process an incoming request and then determine what screen to grab from the BFF. Additionally, extract any parameters from the request, like the entity ID. In addition to that any global parameters, like the user ID from the device, are added to the parameter bag.
  2. With the name of the screen and the extracted parameters the consumer makes a single HTTP request to the BFF.
  3. The BFF responds with all the data needed for rendering in a shape ready for rendering. The consumer takes that and renders all the components.
  4. The consumer finally adds all the business logic that is exclusive of the front end on top of the rendered output. This includes ads, analytics, etc.
Pros and cons

The pros of this approach are stated throughout the document, but to summarize they are:

  • Massive simplification of the consumers. Those complex interactions with the API are in a central place, instead of having each consumer team write them, again and again, in their native language.
  • Code reuse across consumers. Bug-fixes, changing requirements, improvements, and documentation efforts apply to all consumers since much of the logic lies in the BFF now.
  • Increased performance. The backend can be optimized in numerous ways since it does not need to enable every possible design. This can mean denormalized documents in Elastic Search with the pre-computed responses, increased cache hit ratios in calls to APIs now that we control how those are made, faster server-to-server communications for 3rd party API aggregation, etc.
  • Frontend flexibility. We can ship new features faster when front ends are dumb clients and just render the BFF output. Unless we need to render new components or change the way something is rendered there are few reasons to require an app update. Bear in mind that some platforms don’t support automatic updates, and when they do not all users have them turned on. With this re-coupled pattern, we can ship new features to old consumers.

On the other hand, there are some cons:

  • Requires a dedicated back-end team. You cannot just install an API generator, like Contenta CMS, that is configured in the UI and serves a flexible JSON API with zero configuration. Now you need a dedicated backend team to build your BFF. However, chances are that your project already has a dedicated back-end team.
  • Brings back the bikeshedding. In DrupalCon Baltimore, I talked about how the JSON API module stops the bikeshedding. In this new paradigm, we are back to discussing things like the shape of the response, the names in it, how to expose these responses, etc.
  • It requires cross-consumer collaboration. This is because you want to design a BFF that works well for all current consumers and future ones. Collaboration across different teams can be a challenge depending on the organization.
To summarize

An organization that can make the compromise of a consistent design across consumers can simplify their omni-channel strategy. One way to do that is to move the complexity from several consumers to a single one, that lives in the back end.

Some organizations have used the BFF pattern successfully to achieve these goals in the past. Using this pattern, the different consumers can be simplified to dumb clients, leaving the business logic to the BFF. That, in turn, will allow for better performance, less code to maintain, and smaller time to market for new features.

Photo by Andrew Ridley on Unsplash

Acquia Developer Center Blog: Experience Express in Lisbon: Forging the Future of Drupal Architectures and Initiatives at Drupal Developer Days

12. Juli 2018 - 16:47

In Lisbon, steep slopes and sweeping vistas towering over placid waters and crowded ports characterize the topography of one of the most beautiful cities in Europe.

This year, the Portuguese capital played host to Drupal Developer Days, possibly the most important event for developers specializing in Drupal. Held at the University Institute of Lisbon, it was a conference not to be missed, with innumerable insights from Drupal core contributors and maintainers.

Tags: acquia drupal planet

Acro Media: How to Create a Product Catalog with Search API, Solr and Facets

12. Juli 2018 - 16:45

This tutorial will walk you through setting up an awesome Drupal Commerce product catalog using Search API and Solr, and then adding various ways of filtering the results (product search, sorting options and Facet categories). The end result of this guide will be a catalog that functions in the same way as our Urban Hipster Drupal Commerce demo site’s catalog. You can try it here. If you don’t already know why we use Search API, Solr and Facets for catalogs, check out this article to get up to speed.

Even though we’re going to be using products, once you understand how it works you’ll be able to apply the same method for other type of content such as a blog, videos, resources, and more. The datasource can change but the process is the same.

Let's get started! Follow along with this video or skip below for a written guide. 

What you need before starting

  1. A running Solr server (Solr 6.4+)
    This tutorial assumes you have Sor running and can make a new core.

  2. Drupal 8 installed with the following modules:

    TIP:
    Get most of what you need quickly with Commerce Kickstart. Note that you will still need to install the Facets module after getting your Kickstart package.

    • Commerce 
      composer require drupal/commerce
    • Search API 
      composer require drupal/serach_api
    • Solr
      NOTE: This module requires you're running Solr 6.4+ and PHP 7
      composer require drupal/serach_api_solr
    • Facets 
      composer require drupal/facets
Getting started
  1. Install/start Solr and add a new core that we’ll use later.

  2. Enable the Commerce, Search API, Solr and Facets modules.
Setup a basic Commerce store For this tutorial, get your site and basic store set up by doing the following:

  1. Add a product category taxonomy vocabulary that is at least 2 levels deep.
    If we use clothing as an example, we might have Men and Women as the first level, then t-shirts, shorts and shoes as the second level for each.

  2. Setup you basic Commerce store, product types and product variation types.
    If you’re new to Commerce, take a look at their documentation to get up and running quickly.

    NOTE: Make sure to add the taxonomy vocabulary you created as a ‘taxonomy reference’ field to your Product Type.

  3. Add 10 or more simple products for testing the catalog as we go.

Add a Search API server and index Search API server

Admin: Configuration > Search and metadata > Search API
Admin menu path:
/admin/config/search/search-api

  1. Click ‘Add server’.

  2. Configure the server.
    1. Name your server and enable it.
    2. Set ‘Solr’ as the server ‘Backend’.
    3. Configure the Solr connector.
      The defaults are usually fine. The main things to add are:
      • Solr connector = ‘Standard’.
      • Solr core = Whatever you named your core.
    4. Under ‘Advanced’, check ‘Retrieve result data from Solr’.
    5. Look over the remaining settings and update if you need to.
Search API index

Admin: Configuration > Search and metadata > Search API
Admin menu path:
 /admin/config/search/search-api

The index is where you set what data source is used by Search API. Eventually, you’ll also specify specific fields to be used for filtering the displayed results.

  1. Click ‘Add index’.

  2. Configure the index.
    1. Name your index.
    2. Data source should be ‘Product’
      This can be anything, but we’re creating a Commerce catalog and so we want to use the store products.
    3. Select the server you just created.
    4. Save. Don’t add any fields for now, we’ll do that later.
    5. Go to the ‘View’ tab and index your results. This will index all of the products you have added so far.
Create a View for the catalog

Admin: Structure > Views
Admin menu path:
 /admin/structure/views

The View will use the data source we’ve identified in our index and allow us to create a catalog with it, and then assign ways of filtering the catalog results (i.e. a search field and/or facets).

  1. Create a new View.
    1. View Settings, select your index.
    2. Create a page (this will become our catalog).
  2. View Display settings.
    1. Format > Show
      Set as ‘Rendered entity’, then in the settings, set your product types to use a ‘Teaser’ view mode instead of the default.

      NOTE: You may need to create this view mode if it doesn’t already exist.

      NOTE:You could alternately use Fields instead of view modes, but I like to keep my product display settings all within the product type’s display settings. Then you can potentially customize the display per product type if you have more than one.
  3. Save the view .
    These basic settings should give us our overall catalog. You can confirm by previewing the view or visiting the page you just created.
Add Fulltext datasource fields for a catalog search field

Now we’ll start setting up a Fulltext search field to let our users filter results using a product search field. The first thing we need to do is add some datasource fields to our index that the search will use.

  1. Go to your Search API Index and go to the Fields tab.

  2. Add Fulltext fields that you would like to be searchable (such as Title, SKU, Category taxonomy name, etc.).
    Here’s an example for adding the title:
    1. Click ‘Add fields’.
    2. Under the ‘Product’ heading, click ‘Add’ beside the ‘Title’ field.

      NOTE: If you’re adding a different field instead, you may need to drill down further into the field by clicking ( + ) next to the field. For example, to make a taxonomy term a searchable field, you would go to Your Vocabulary > Taxonomy Term > Name .

    3. Click ‘Done’.
    4. Set the field ‘Type’ to ‘Fulltext’.
      This is an important step as only Fulltext fields are searchable with the user-entered text search we are currently setting up.

      NOTE: Under the fields section is a ‘Data Types’ section. You can open that to read information about each available type.

    5. Optionally change the ‘Boost’ setting.
      If you have more than one Fulltext field, the boost setting allows you to give a higher priority to specific fields for when the terms are being searched.

      For example, multiple products could have a similar title, but each product would have an individual SKU. In this case, SKU could be given a higher boost than title to make sure that search results based on the SKU come back first.
  3. Next, add another field for the ‘Published’ status.

  4. Once you’ve added this field, set it’s type as ‘Boolean’.

  5. Reindex your data (from within the index view tab).
Set up the catalog search field within the catalog View

We can now set up the actual search field that our customers will use to find products, and use the datasource fields we added to our index to do this.

  1. Go to your catalog View.

  2. Under ‘Filter criteria’.
    1. Add ‘Fulltext search’ and configure its settings.
      • Check ‘Expose this filter to visitors, to allow them to change it’.
        IMPORTANT: This is what gives the user the ability to use this search field.
      • ‘Filter type to expose’, set as ‘Single filter’.
      • ‘Operator’, set as ‘Contains any of these words’.
      • ‘Filter identifier’, optionally adds an identifier into the url to identify a search term filter.
        (i.e. yoursite.com/products?your-filter-identifier=search-term)
      • Apply/save your settings.
    2. Add ‘Published’ and configure it so that it is equal to true.
      This uses the field we added to the index earlier to make sure the product is actually published. Chances are you don’t want unpublished results shown to your customers.
  3. Under ‘Sort criteria’.
    1. Add ‘Relevance’.
    2. Configure so that the order is sorted ascending.
      This will show the more relevant results first (factoring in the boost you may have applied to your index fields).
  4. Now we need to expose the search field to our customers. To do this:
    1. Open the ‘Advanced’ section of your catalog view.
    2. In the ‘Exposed Form’ area.
      • Set ‘Exposed form in block’ to ‘Yes’.
        This creates a block containing a search field that we can place on the site somewhere.
      • Set ‘Exposed form style’ to ‘Basic’ and update the settings. For now, the settings you might change are customizing the submit button text and maybe including a reset button.
  5. Add the search block to your site.
    Admin menu path: /admin/structure/block

    1. In your preferred region, click the ‘Place block’ button.
    2. Find the Views block that starts with ‘Exposed form’ and click ‘Place block’.
      Its full name will be determined by you view’s machine name and page display name (i.e. Exposed form: products-page_1).
    3. Configure the block as you see fit, and save.
  6. Test your search!
    You should now be able to see the search field on your site frontend and try it out.
Add more datasource fields for sorting options

We can optionally sort the catalog and search results with some additional sorting filters, such as sorting by Title, Price, Date added, etc. Let’s add the ability to sort our products by title with the option to choose ascending or descending order.

  1. Go to your Search API Index fields and add another 'Title' field the same as you did earlier. However, this time you want to change the field ‘Type’ to ‘String’. You should now have two Title fields added, one as ‘Fulltext’ and one as ‘String’.

    NOTE: The field type can be different depending on what field you’re adding. If you’re adding a sorting field such as Price > Number, you might use the ‘Decimal’ field type.

    TIP: I would recommend changing the Label for the new Title field to something like ‘Title for sorting’ so that it’s easier to identify later. You could even change the fulltext Title label to ‘Title for search’, just to keep them organized and easy to understand.

  2. Reindex your data (from within the index view tab).

  3. Go to your catalog View.
    1. Under ‘Sort criteria’.
      • Add the new title datasource and configure it.
        • Check ‘Expose this sort to visitors, to allow them to change it’.
          IMPORTANT: This is what gives the user the ability to use this sorting option.
        • Add a label for the filter
        • Set the initial sorting method.
      • Add any additional sorting fields if you added more.
    2. Open the settings for the ‘Exposed form style’ (within the view’s ‘Advanced’ section).
      • Check ‘Allow people to choose the sort order’.
      • Update the labels as you see fit.
    3. Save your view!
      Refresh your catalog page and you should now see sorting options available in the search block that you added earlier.

      TIP: If you DO NOT see the sorting options, this is a bug and is easily fixed. All you need to do is remove the search block and the re-add it.

      TIP: You can place this block in multiple regions of your site and hide the elements you don’t want to see with CSS. This way you can have a block with the site search and no filters in your header, and then also have another block on your catalog pages that shows the sorting filters but no search field.
Add Facets to the catalog

The filters we added earlier can only be used one at a time, however, often we want to filter the results based on a number of different options. For example, if I’m browsing an online store looking for shoes of a certain style and size, I don’t want to see everything else the store has to offer. I want to be able to go to a ‘shoe’ category, then pick the ‘type’ of shoe that I’m after, and finally pick the ‘size’ of shoe that’s relevant to me. I want to see all of the results that fit that criteria. Facets let use taxonomy (and other datasources) to achieve this.

Let’s add a Facet that uses the taxonomy vocabulary we created in the initial store setup. This will be our main catalog menu for narrowing down the product results. Each facet that is created creates a block that we can add into any region of our template.

  1. Add a Search API index fields for your taxonomy vocabulary. Set the field ‘Type’ as ‘String’.

    TIP: Like we did earlier, I would recommend renaming the label for this field to something like ‘Categories for Facet’.

  2. Reindex your data (from within the index view tab).

  3. Go to the Facets page.
    Admin: Configuration > Search and metadata > Facets
    Admin menu path:
     /admin/config/search/facets

    You should see a ‘Facet source’ available to use. When we created a View using our index, this is what added the Facet source here. Now that we have a source, we can create Facets to filter it.

  4. Click ‘Add facet’.
    1. Choose the ‘Facet source’ to use.
    2. Select the index ‘Field’ that this Facet will use (i.e. Categories for Facet, or whatever you labelled your field).
    3. Name your Facet (i.e. Categories).
  5. Configure the Facet.
    This will cover the basic settings that you will need. Start with this and then you can always play around with other settings later. Each setting has a pretty good description to help you understand what it does.
    1. Widget.
      Choose a ‘Widget’ for displaying the categories. For categories, I like to use ‘List of checkboxes’.
    2. Facet Settings.
      Check the following:
      • Transform entity ID to label.
      • Hide facet when facet source is not rendered.
      • URL alias as ‘cat’ (or whatever you like).
      • Empty facet behavior as ‘Do not display facet’.
      • Operator as ‘OR’.
      • Use hierarchy.
      • Enable parent when child gets disabled.
      • NOTE: the Facets Pretty Paths module can be used to give you nicer looking URL paths.
    3. Facet Sorting.
      Configure as you see fit. In this example, I would only check the following. These settings make sure that the taxonomy follows the same order that you have set within the vocabulary itself.
      • Sort by taxonomy term weight.
      • Sort order as ‘Ascending’.
    4. Save.
  6. Add the Facet block to your site.
    Admin: Structure > Block layout
    Admin menu path:
     /admin/structure/block

    1. In your preferred region, click the ‘Place block’ button.
    2. Find the ‘Categories’ facet block (or whatever you named it) and click ‘Place block’.
    3. Configure the block as you see fit.
    4. Save.
  7. Test your Facet!
    You should now see your Facet on the catalog page. Click the checkboxes and test out how it works!
One last thing...

The sites we've been building use the Facets Pretty Paths module for making nicer looking URLs with our catalog and filters. For a while we were plagued with a problem where, when the user selects a Facet category and then uses the sorting options, the Facets would uncheck and reset. This is obviously not good because the user is trying to sort the filtered down items, not the overall catalog. We need to be able to maintain the active facets when using the filters.

Luckily, a coworker came up with this nice little solutions that you can apply to your theme's .theme file. You just need to replace YOUR_THEME, YOUR-VIEW (i.e. products-page-1), and YOUR-PATH (i.e. products) in the code below. Ideally, this will be fixed within the module itself soon, but this will work while we wait.

/**
* Implements hook_form_alter().
*/
function YOUR_THEME_form_alter(&$form, FormStateInterface $form_state, $form_id) {
  // Store - Product Listing view exposed form.
  if ($form['#id'] == 'views-exposed-form-YOUR-VIEW') {
    $current_path = \Drupal::request()->getRequestUri();

    // If current path is within your catalog, correct the form action path.
    if ((strpos($current_path, '/YOUR-PATH') === 0)) {
      // Fix for views using facets with pretty paths enabled.
      // Replace form action with current path to maintain active facets.
      $form['#action'] = $current_path;
    }
  }
}

Done!

There you have it! You have now created a Search API index using Solr, setup a View to display the results of the index, and then implemented 3 different ways to filter the results (search, sorting and Facets). This is the start of an awesome product catalog and you can expand on it with more datasource fields however you want. Cool!

Evolving Web: Vote for Suzanne Dergacheva for Drupal Association Board Elections 2018

12. Juli 2018 - 15:45

It’s time to vote in the Drupal Association Board election! If you have an account on drupal.org, and have logged in over the last year, you can vote here

Our co-founder Suzanne Dergacheva is running for a member-at-large position on the board. Here are three things Suzanne wants to prioritize:

1. Increasing Drupal adoption: Suzanne has trained thousands of new people in Drupal, so she understands how important good communication is to increase adoption. She wants to help the association seize opportunities for Drupal growth through more targeted and consistent communication and marketing tools.

2. Enabling Drupal shops to grow their businesses: Suzanne is organizing the first Drupal Business Summit in Montreal this year, and believes this could be a replicable model in other regions to help Drupal shops promote the value of Drupal to businesses.

3. Growing the Drupal community: Suzanne manages a diverse team, comprised of employees from 11 different countries. Through her work as a trainer, she has introduced Drupal to people throughout North America and Europe, and at Drupalcon Asia in Mumbai. She’s passionate about making Drupal accessible to more people, and believes that the association can facilitate initiatives to communicate the value that Drupal places on user experience and accessibility.

In addition to her ambitious vision for the Drupal Association, Suzanne brings impressive qualifications:

  1. She served five years on the board the McGill Young Alumni, two as president. She was treasurer of the Montreal Drupal Association for five years. 
  2. Her talks “Building Landing Pages and Layouts for Drupal 8 ” and “Creating a Great User Experience for Content Editors”, were among the most attended and best reviewed at #Drupalcon. She keynoted DrupalCamp Montreal 2018, talking about the Drupal experience.
  3. She co-founded a successful Drupal agency which is 11 years old. She lead developers, designers, project managers, and marketers on Drupal projects big and small.
  4. She has volunteered her time to various Drupal community initiatives over the last 10 years

So go vote now! And better still, share this post with your friends and colleagues in the Drupal Community.

Vote on Drupal.org

Related Posts How We Can All Improve the Drupal Experience

The best part of my job is teaching Drupal. As a Drupal trainer, I get to meet a lot of Drupalers with really different backgrounds. Some are brand-new to Drupal, some have lots of experience. Listening to them tell of their Drupal journeys, both the highlights and the low points, has given me insights into the different ways people encounter Drupal and some of the most common reasons why they love it, use it and get involved in the community (or not).

Read More about How We Can All Improve the Drupal Experience »

+ more awesome articles by Evolving Web

Evolving Web: Drupal Association Board Elections 2018: Time To Vote

12. Juli 2018 - 15:45

It’s time to vote in the Drupal Association Board election! If you have an account on drupal.org, and have logged in over the last year, you can vote here

Our co-founder Suzanne Dergacheva is running for a member-at-large position on the board. Here are three things Suzanne wants to prioritize:

1. Increasing Drupal adoption: Suzanne has trained thousands of new people in Drupal, so she understands how important good communication is to increase adoption. She wants to help the association seize opportunities for Drupal growth through more targeted and consistent communication and marketing tools.

2. Enabling Drupal shops to grow their businesses: Suzanne is organizing the first Drupal Business Summit in Montreal this year, and believes this could be a replicable model in other regions to help Drupal shops promote the value of Drupal to businesses.

3. Growing the Drupal community: Suzanne manages a diverse team, comprised of employees from 11 different countries. Through her work as a trainer, she has introduced Drupal to people throughout North America and Europe, and at Drupalcon Asia in Mumbai. She’s passionate about making Drupal accessible to more people, and believes that the association can facilitate initiatives to communicate the value that Drupal places on user experience and accessibility.

In addition to her ambitious vision for the Drupal Association, Suzanne brings impressive qualifications:

  1. She served five years on the board the McGill Young Alumni, two as president. She was treasurer of the Montreal Drupal Association for five years. 
  2. Her talks “Building Landing Pages and Layouts for Drupal 8 ” and “Creating a Great User Experience for Content Editors”, were among the most attended and best reviewed at #Drupalcon. She keynoted DrupalCamp Montreal 2018, talking about the Drupal experience.
  3. She co-founded a successful Drupal agency which is 11 years old. She lead developers, designers, project managers, and marketers on Drupal projects big and small.
  4. She has volunteered her time to various Drupal community initiatives over the last 10 years

So go vote now! And better still, share this post with your friends and colleagues in the Drupal Community.

Vote on Drupal.org

Related Posts How We Can All Improve the Drupal Experience

The best part of my job is teaching Drupal. As a Drupal trainer, I get to meet a lot of Drupalers with really different backgrounds. Some are brand-new to Drupal, some have lots of experience. Listening to them tell of their Drupal journeys, both the highlights and the low points, has given me insights into the different ways people encounter Drupal and some of the most common reasons why they love it, use it and get involved in the community (or not).

Read More about How We Can All Improve the Drupal Experience »

+ more awesome articles by Evolving Web