Drupal Camp Asheville is proud to announce morning and afternoon training workshops on Thursday, July 8, 2021! Each of these workshops is included in the price of the camp admission and taught by a world-class instructor.
Thursday Schedule
Welcome: 7:45am-8am EDT (Hopin "Sessions" page)
Morning Trainings: 8am-12pm EDT in Zoom (see Hopin "Reception" page)
Lunch Break: 12-1pm
Afternoon Trainings and Unconference: 1-5pm EDT in Zoom (see Hopin "Reception" page)
Prize Raffle and Closing: 5-5:15pm EDT (Hopin "Sessions" page)
Space for these workshops is extremely limited, so please only register if you are 100% positive that you'll be able to attend.
Advanced techniques for components integration with Drupal (morning)
Training Description
Component-integration with a Drupal website is one of the most difficult process to grasp when developing with the component-based approach. There are so many scenarios for how values from Drupal fields should be retrieved. Drupal doesn't make things easier either since in most cases Drupal will not render just the value of a field but instead provides a full array for a field. In addition, retrieving field values from Drupal may require multiple Twig templates and these also vary depending on the entity type you are working with (i.e. blocks, views, nodes, paragraph types, media, etc.). You will be surprised to learn that sometimes the problem with integrations may be the result of how components are built.
Topics we will cover:
- In this workshop we will get to the bottom of component integrations.
- We will cover how to build components in your design system (i.e. Pattern Lab), with Drupal in mind.
- We will review how to account for Drupal attributes, title_prefix, and title_suffix in your components. Also we will cover what all of this means in general on a drupal website.
- We will explain how to properly break down components based on how Drupal handles the equivalent of the components we are building.
- We will make heavy use of View Modes which help Drupal do the heavy lifting for managing fields and how to render them.
- We will use the twig_field_value and twig_tweak modules to properly rendering fields as well as debugging Drupal's render arrays.
- Finally, not properly rendering fields in Drupal can lead to caching issues. We will cover how to ensure we are rendering fields the way Drupal expects it and therefore avoiding caching issues.
Who is your ideal audience member, the person who would get the most out of your training?
This training is primarily for front- and back-end developers who wish to learn how to build Drupal websites using the component-based approach, or who have already had some experience with components in a Drupal website.
What do you expect people to be able to take away from your training?
- Building flexible and scalable components using Twig and Pattern Lab
- Best practices for Drupal theming and development
- Drupal’s content array and how to preserve caching
- Debugging a theme to obtain fields and variables information
- Working with Twig template suggestions
- How to integrate front-end components with Drupal
- Best practices for using Twig’s include, embed, and twig blocks
- Working and planning for Drupal attributes
- Building reusable components
How much and what kind of technical knowledge do people need going in to your training?
Good understanding of Drupal's ecosystem is required to follow along with the training. Beginner to intermediate front-end or back-end development experience is useful.
Other requirements:
- A running Drupal 9 website will be required (If not using Mediacurrent's training environment, ensure your website is up and running)
- This is a hands-on training and coding experience is required to follow along with exercises.
- A code editor of your choice
- Enable the following components:
- Enable twig debugging (disable cache)
Getting Started with Drupal (morning)
Training Description
Are you Drupal-curious? Just getting started with CMS’ and WebOps? This live, three-hour workshop, will take you from understanding what Drupal is, why Drupal 9 matters, to creating basic content, users, and an overview of more complex Drupal features. No prior experience with Drupal or web development is necessary.
At the end of this workshop, you’ll have an understanding of how content creation in Drupal works, and have a working test site that you can tinker with for as long as you like.
Learning Drupal doesn’t have to stop after this workshop. You’ll get access to a recording of the workshop so you can work through the steps again, plus additional resources to take your learning further so you can leverage WebOps and Drupal to accelerate your workflows.
Agenda:
- What is Drupal?
- What's new in Drupal 9?
- Content Management
- Creating Structured Content
- Creating Dynamic Lists
- Users, Taxonomy, & More
- Pantheon
- Q&A
Who Should Attend:
All are welcome. The three-hour course consists of topic-driven lectures and step-by-step exercises delivered online.
Some typical attendees of past events have been:
- WebOps team members: project managers, content creators, site builders, QA testers and anyone else who works with a Drupal site.
- Drupal-curious developers: ever wonder how to build sites with Drupal?
- Junior developers: anyone getting started with web development will learn the foundations of Drupal.
Here’s What You’ll Learn:
- Drupal Basics: Getting set up to create content in Drupal, navigating and understanding the interface, and the benefits of the open source Drupal community.
- Content Types & Fields: Content Management Systems are built to help you manage complex content and relationships. Content Types and Fields are two powerful building blocks that Drupal offers to allow you to create and manage complex data structures within an easy UI.
- Dynamic Lists: You’ll learn how to use Views to create many different dynamic lists that update automatically across your website.
- Q&A: We'll spend a portion of the time answering any questions you have around the essentials of Drupal.
And self-paced resources to keep learning after:
- A recorded version of the workshop
- A workbook with exercises and links to resources
- Free discounts and offers from our training partners
- A free Drupal site running on Pantheon
Intermediate OOP in Drupal: Patterns, Services, Events, and Dependency Injection (morning)
Training Description
Drupal 8+ changes made it necessary for developers to have a stronger understanding of object oriented programming. In this training we'll discuss and demystify some of the most useful OOP concepts, patterns, and jargon as they apply to modern Drupal development.
This training will best serve developers who have some understanding of OOP, and want to learn more about the theory behind best practices seen in Drupal 8+ and Symfony. The approach of this training is a series of discussions paired with practical examples of how the topics apply to Drupal 8 module development. If things get really wild, we'll live-code some modules.
Topics include:
- OOP Concepts: Nouns & Verbs, Composition over Inheritance, Dependency Injection, Programming to Interfaces, Cohesion and Coupling
- Patterns: Dependency Injection Container vs Service Locator, Events (vs Hooks), Factory, Decorator
- Drupal/Symfony: Services and Dependency Injection for Services, Forms, Blocks, Controllers
Attendees will leave this training with working understanding of many new concepts they can use to create better and more maintainable Drupal modules.
Who is your ideal audience member, the person who would get the most out of your training?
This training will best serve developers who have some understanding of OOP, and want to learn more about the theory behind best practices seen in Drupal 8+ and Symfony. The approach of this training is a series of discussions paired with practical examples of how the topics apply to Drupal 8 module development. If things get really wild, we'll live-code some modules.
What do you expect people to be able to take away from your training?
Attendees will leave this training with working understanding of many new concepts they can use to create better and more maintainable Drupal modules.
How much and what kind of technical knowledge do people need going in to your training?
Some PHP experience required.
Up and running with Drupal's testing suites (morning)
Training Description
In this training, attendees will learn how to run Drupal's PHPUnit and Nightwatch.js tests on their own machine – directly on their machine, with DDEV, or with Lando!
We will cover:
- Configuration to run the tests and setting up Chromedriver
- Understanding the difference between the PHPUnit test suites: Unit, Kernel, Functional, FunctionalJavascript
- Getting to know Nightwatch.js and when to use it
- Writing PHPUnit tests
- Writing Nightwatch.js tests
Who is your ideal audience member, the person who would get the most out of your training?
Audience members would be comfortable writing code and running Drupal locally, and ready to be amazed by the efficiency they unblock by leveraging tests!
What do you expect people to be able to take away from your training?
Attendees will walk away knowing how to run Drupal's test suites to add test coverage to their code, or to contribute tests to Drupal.
How much and what kind of technical knowledge do people need going in to your training?
- Able to run a Drupal site locally
- Comfortable with the command line
- Comfortable writing PHP code
- Slightly comfortable with JavaScript (for Nightwatch.js)
Beginning with Backdrop CMS (afternoon)
Training Description
Backdrop CMS is Drupal 7, but it includes many of the features you'll find in Drupal 8. It's been optimized for performance, and improved for usability. Backdrop is targeted towards companies and organizations who are delivering comprehensive websites on a budget.
This introductory training will cover the basics of creating and administering a website with Backdrop CMS.
In this workshop all students will build their own portfolio website on Pantheon, using Backdrop CMS. As we walk through each of the steps required to build a website, we'll point out many the various improvements that have been made to Backdrop core systems. Students will be asked to follow along.
Topics covered:
- Logging in - the new dashboard
- Creating content - Pages vs Posts
- Creating content types - adjusting settings, and adding fields
- Content display - customizing how field data will be rendered
- Modules - how to install new functionality without leaving your site
- Views - Creating content lists (very basic high level overview)
- Layouts - Creating stand-alone pages, and modifying pages that already exist
- Configuration management - exporting & importing
- Upgrading from Drupal 7 to Backdrop CMS
There will be plenty of time throughout the day for questions and answers.
Who is your ideal audience member, the person who would get the most out of your training?
The ideal audience member is someone who is already familiar with Drupal 7.
What do you expect people to be able to take away from your training?
- Similarities with Drupal 7
- Improved feel: friendlier administrative interface
- Features that are comparable to those in Drupal 8 and beyond
- New features only available in Backdrop CMS
- Steps involved in upgrading from Drupal 7
How much and what kind of technical knowledge do people need going in to your training?
All that's required is a basic understanding of Content Management Systems.
Even if you have never built a website before, it should be possible to follow along in this workshop. Though we'll be comparing Backdrpp to Drupal, previous experience with either platform is optional.
Drupal Theming 101 (Building a Theme from Scratch) (afternoon)
Training Description
This half-day training is an extension of the Drupal Site Building 101 training. Training will cover the basics of creating a Drupal 8/9 theme, Twig templates and template overrides, and simple preprocessing.
Who is your ideal audience member, the person who would get the most out of your training?
This training is for Drupal site builders ready to take the next steps to develop a custom theme and front end developers new to Drupal or moving from earlier versions of Drupal to Drupal 8 or 9.
What do you expect people to be able to take away from your training?
Participants in this training should be able to create a basic custom theme for a Drupal website and understand how to control the look and feel of their website.
How much and what kind of technical knowledge do people need going in to your training?
Prior knowledge of Drupal site building is suggested. Basic understanding of CSS and HTML is also helpful.
Upgrading to Drupal 8/9 using the Migrate API (afternoon)
Training Description
You will learn to use the Migrate API to upgrade your Drupal 6/7 site to Drupal 8/9. Check how the automated upgrade procedure can help you get a head start in writing the migrations. You will learn different migration strategies, how to accommodate changes in site architecture, tips on troubleshooting issues, and much more.
With the maturity of Drupal 8 and version 9 already available, now is a great time to upgrade your site from Drupal 6 or 7.
There will be plenty of hands on examples to demonstrate different migration strategies even for projects that do not offer automatic upgrade paths. Time will also be allocated to answer attendee’s project specific questions for topics not covered in the predefined material.
Who is your ideal audience member, the person who would get the most out of your training?
Individuals and organizations who want to upgrade their Drupal 6/7 sites to Drupal 8/9. They will learn about the workflow and thought process to execute a successful upgrade project.
What do you expect people to be able to take away from your training?
- Understand the different approaches to upgrading your site to Drupal 8/9 using the Migrate API.
- Revise site architecture and map configuration from the previous site to the new one
- Use the Migrate Drupal UI module to understand module requirements for running upgrades.
- Use the Migrate Upgrade module to generate migration files.
- Cherry-pick content migrations for getting a content type migrated to Drupal 9.
- Modify a migration to convert a content type to a user entity.
- Modify a migration to convert a content type to a paragraph entities.
- Migrate images to media entities.
- Learn about writing a custom process plugin for providing a migrate path for modules that do not include one already.
- Tips and recommendations upgrade projects.
How much and what kind of technical knowledge do people need going in to your training?
To get the most out of this session, attendees should be familiar with Migrate API concepts. You can learn about them at https://understanddrupal.com/31-days-of-migrations You can also have a look at this video https://www.youtube.com/watch?v=eBP2vQIwx-o for an overview of the Migrate API.