265 videos, 7h 23m

How we can use the Redirect module to prevent duplicate URLs and why that's important

Show videos in one column
Show videos in split view
Mark multiple complete (member-only)
Add multiple to a playlist (member-only)
Change speed.5x1x1.5x2x3x


  1. 13:17Introduction
    1. 3:53Welcome to "Drupal 8 Site Building"
    2. 3:23What makes Drupal different than other site building tools
    3. 1:19How we're going to deal with updates to Drupal 8 and contributed modules
    4. 1:07About the web site we're about to build
    5. 1:41How to install a new Drupal 8 site with Dev Desktop
    6. 1:17How to set up a Drupal installation
    7. 0:37How to log in and log out, even if the log in link is hidden
  2. 31:36How to work with modules, improve navigation and add site branding
    1. 1:49How to change the logo and header background colors
    2. 1:33What a "theme" is and how to hide the site title
    3. 1:55How to use the administration menus and add shortcuts
    4. 1:29What a "module" is and how to install and uninstall modules
    5. 1:37Why some very useful modules are not part of core Drupal
    6. 4:27How to evaluate the health of a contributed module for use in a project
    7. 0:35How development (dev) releases of modules work
    8. 1:27What "alpha," "beta," "rc" and "stable" releases are and their security implications
    9. 1:05How to install and enable a contributed module through the user interface
    10. 0:53Why the terms "install" and "enable" might be confusing when it comes to modules
    11. 2:09How to apply our module assessment checklist to the Coffee module
    12. 1:11How to manually install a contributed module
    13. 0:45How to jump to any administration page using the Coffee module
    14. 1:29Quiz and challenges origin story
    15. 1:17Quiz for chapter 2 of "Drupal 8 Site Building"
    16. 0:45Challenges for chapter 2 of "Drupal 8 Site Building"
    17. 7:10Solutions for chapter 2 of "Drupal 8 Site Building"
  3. 37:55 How to set up content types, create content and create simple views
    1. 3:07How to create content and what the content creation form settings mean
    2. 0:33How to edit content in-place and through the content edit form
    3. 0:59What the term "node" means and why "content" gets used more in the interface
    4. 0:57How to change the default home page
    5. 1:27Adding our "About us" page
    6. 1:03Reviewing our "tour type" and "tour types" wireframes
    7. 1:55The benefits to modeling data instead of using flat HTML
    8. 0:55What a CSV file is and how to view it as a spreadsheet
    9. 2:43How to add and configure a custom content type
    10. 1:35How to change the label and settings on a default "body" field
    11. 1:27Overview of textual field types
    12. 1:17The pros and cons of reusing fields across multiple content types
    13. 0:49Adding a plain textarea field
    14. 0:35Adding our first tour type content
    15. 1:43How to change field order and position field labels
    16. 0:27How to hide the "submitted by" text on a content page
    17. 0:31How the "Back to site" link works
    18. 0:43Adding our other tour type content in
    19. 3:49How to add a view, and what settings the Views wizard affects
    20. 1:11How to add fields to a view
    21. 1:55How to change the HTML element used for fields and field labels in a view
    22. 0:33Reflecting on the value of data modeling versus flat HTML now that we've used Views
    23. 1:35Quiz for chapter 3 of "Drupal 8 Site Building"
    24. 0:41Challenges for chapter 3 of "Drupal 8 Site Building"
    25. 5:25Solutions for chapter 3 of "Drupal 8 Site Building"
  4. 5:56How to back up and restore a Drupal site and start from a chapter snapshot
    1. 0:43Why it's useful to know how to back up and restore a site
    2. 0:47How to back up a Drupal site's files
    3. 0:57How to back up a Drupal site's database
    4. 0:57How to restore a Drupal site's files from a backup
    5. 0:21How to restore a Drupal site's database from a backup with phpMyAdmin
    6. 2:11How to restore a snapshot for any chapter in this series
  5. 19:34How to work with users and permissions
    1. 1:49How to add a new user
    2. 1:25How to use Masquerade to log in as any user and how to log in as two users at once
    3. 2:13How roles and permissions work, and what the anonymous, authenticated and administrator roles are for
    4. 1:55How to add a role and why to keep permissions to a minimum
    5. 0:13How to assign a role to a user
    6. 0:53How to assign a user authorship of content so they can edit it
    7. 2:03Assigning authorship of our tour type content to allow creators to edit them
    8. 0:49How to add a field to users
    9. 2:01What an entity is, the difference between user and node entities and how the Profile module works
    10. 1:17Quiz for chapter 5 of "Drupal 8 Site Building"
    11. 0:19Challenges for chapter 5 of "Drupal 8 Site Building"
    12. 4:37Solutions for chapter 5 of "Drupal 8 Site Building"
  6. 38:17How to use reference fields, views relationships and image styles
    1. 3:09Options for merging multiple fields automatically into a node's title, and creating our "staff" content type
    2. 1:42How to add a select box or list field to a content type or other entity
    3. 4:26How to add an image field, what "machine name" means and comparing private and public files
    4. 1:51How to change the order of fields in a content creation form and change select boxes to checkboxes
    5. 2:37Adding our staff content
    6. 1:11How to merge a field with multiple values in a view and what "delta" means
    7. 3:09How to use image styles to render an image at any size and shape
    8. 0:17Adding a body field to our view
    9. 1:21How the personal contact form works, and how to create a user-based view
    10. 0:55Explaining why we need a reference field and adding another user
    11. 4:57How to add a reference field and a relationship to connect two entities and pull data from both into a view
    12. 4:03How to rewrite the output of a field in a view to include content from multiple fields
    13. 0:39Reviewing our view an an anonymous user and how to log out via a URL
    14. 1:03How the anonymous and authenticated roles don't stack, and how to give permission to use the personal contact form
    15. 1:17Quiz for chapter 6 of "Drupal 8 Site Building"
    16. 0:31Challenges for chapter 6 of "Drupal 8 Site Building"
    17. 5:09Solutions for chapter 6 of "Drupal 8 Site Building"
  7. 44:58How to debug email and fight spam
    1. 1:33How to prevent email from being accidentally sent by using Maillog
    2. 0:39Why to create a list of tasks to execute before going live
    3. 0:45How to get to a module's configuration page
    4. 1:35How to configure Maillog and how to review sent messages
    5. 1:55How the user registration form works and options for combatting spam
    6. 0:41How to unblock or approve a user account
    7. 1:07What a new user will see when logging into a site for the first time
    8. 4:01How to hide the user registration form and a walkthrough of user account settings
    9. 1:25How and why to install the Honeypot module
    10. 1:35How to configure Honeypot to protect a form
    11. 1:29How to verify the Honeypot module is working for a form
    12. 3:25How to install and configure the CAPTCHA module to deter spam
    13. 0:41How to add a CAPTCHA to a form
    14. 1:53How to install and configure reCAPTCHA
    15. 0:43Why a CAPTCHA can result in frustrated users
    16. 1:45How and why to set up a Mollom account for spam filtering
    17. 3:55How to install and configure the Mollom module
    18. 0:55How to uninstall modules that are dependencies of other modules
    19. 1:07Why it makes sense to completely uninstall unused modules
    20. 1:59How the built-in flood control protection for the log in form works
    21. 0:53How to log in when your account has been blocked for too many failed login attempts
    22. 1:51Quiz for chapter 7 of "Drupal 8 Site Building"
    23. 0:23Challenges for chapter 7 of "Drupal 8 Site Building"
    24. 8:43Solutions for chapter 7 of "Drupal 8 Site Building"
  8. 42:15How to use taxonomy and comments
    1. 2:33Reviewing our blog entry and blog listing wireframes
    2. 0:31Configuring our blog entry content type
    3. 1:39What the terms "taxonomy," "vocabulary" and "term" mean
    4. 1:09How to add terms directly to a vocabulary and view a term page
    5. 1:17How to add a taxonomy reference field (i.e. tagging) to a content type
    6. 1:19Adding a blog entry and testing out our tag field
    7. 1:05How to change a taxonomy field to use a more tag-like input mechanism
    8. 2:43How to add an image field and display it as a thumbnail
    9. 2:01How to use the Colorbox module to provide a photo gallery overlay
    10. 1:55How to find documentation on a contributed module when it doesn't quite work right
    11. 0:35How to set up the "libraries" folder and add a jQuery plugin
    12. 1:37How to flush Drupal's cache and why we would need to clear it
    13. 1:01How to add multiple images at once and view multiple images in Colorbox
    14. 2:25How to add commenting via a comment field
    15. 1:25Testing our comment field and an overview what we need to do to make our comment form public
    16. 0:53How to allow anonymous users to add moderated comments
    17. 1:09How to moderate unpublished comments
    18. 1:47How to allow anonymous users to post unmoderated comments and protect our comment form
    19. 1:47The pros and cons of using a third-party service like Disqus or Facebook for comments
    20. 0:33How to set up a Disqus account
    21. 3:17How to install and configure the Disqus module
    22. 1:11Quiz for chapter 8 of "Drupal 8 Site Building"
    23. 0:33Challenges for chapter 8 of "Drupal 8 Site Building"
    24. 7:50Solutions for chapter 8 of "Drupal 8 Site Building"
  9. 37:08How to add CSS, edit date formats, modify view modes, and use Display Suite
    1. 1:29What CSS is and how we'll use it to fix a layout issue
    2. 1:21How to use a browser to discover which element's CSS you need to modify
    3. 0:55Comparing adding CSS via a module like Asset Injector and creating a custom theme
    4. 3:03How to inject CSS through the user interface with the Asset Injector module
    5. 1:39How to troubleshoot issues with CSS from Asset Injector not working
    6. 0:59How to add CSS to display image field images in a row
    7. 0:37Where to find the CSS we use and reassurance that CSS is tricky
    8. 0:39Reviewing the differences between our wireframe and the default "Submitted by" line
    9. 1:37How to modify the date format used in the "Submitted by" line
    10. 1:01How to add a custom date format
    11. 2:03Installing Display Suite and Token and how to tell when a module has dependencies
    12. 1:45How to use Display Suite to adjust page layout and give greater control over fields
    13. 2:37How to add a custom field in Display Suite to replace the "Submitted by" line and how Token works
    14. 2:33What view modes are and how to modify hidden view modes
    15. 2:05How to add a custom view mode and use it in a view
    16. 2:37How to modify the teaser view mode
    17. 1:17Modifying our CSS injector rules and selectors to apply our CSS to the new view
    18. 1:07Quiz for chapter 9 of "Drupal 8 Site Building"
    19. 0:27Challenges for chapter 9 of "Drupal 8 Site Building"
    20. 7:17Solutions for chapter 9 of "Drupal 8 Site Building"
  10. 32:55How to set up paths and redirects, and working with blocks and block types
    1. 1:11The benefits of using a readable url and how Pathauto can help
    2. 1:11How to install Pathauto and why Drush is useful for installing modules with dependencies
    3. 1:21How to configure a pattern in Pathauto to automatically generate URL aliases for new content
    4. 0:53How to bulk generate aliases for existing content with Pathauto
    5. 0:57Creating Pathauto patterns and bulk generating aliases for tour types and blog entries
    6. 1:31How we can use the Redirect module to prevent duplicate URLs and why that's important
    7. 1:47Demonstrating how Redirect adds redirects from old URLs and what a 301 redirect is
    8. 0:29How to browse URL redirects and change the redirect status code
    9. 1:45How to use the Diff module to see the differences between content revisions
    10. 0:33Reviewing a message from our boss
    11. 1:29What "blocks" and "regions" are and how to hide a block
    12. 1:13Overview of enabled blocks and a more detailed explaination of blocks and regions
    13. 0:45How to add a module-supplied block to a region and create a copy of an existing block
    14. 1:07Two approaches we can take to creating a custom block
    15. 1:55How to create a custom block type
    16. 0:25How to adjust how fields in a custom block type are displayed and ordered
    17. 1:23How to create a custom block of a particular custom block type
    18. 1:13How to place an instance of a custom block and making some minor adjustments to the block
    19. 1:27Adding a "featured adventurer" content type
    20. 1:37How to create and place a Views block
    21. 1:57When it makes sense to use a content type instead of a custom block type
    22. 0:59Quiz for chapter 10 of "Drupal 8 Site Building"
    23. 0:25Challenges for chapter 10 of "Drupal 8 Site Building"
    24. 5:22Solutions for chapter 10 of "Drupal 8 Site Building"
  11. 36:26How to use exposed filters and contextual filters in views
    1. 3:49Adding our "tour" content type with a date field, number field and content reference fields
    2. 0:29How to switch a reference field input to use a select box instead of an auto-complete in
    3. 0:59Why we're going to use a view to filter out options for a reference field input
    4. 1:45How you can use "displays" to share common configuration between views
    5. 1:39How to filter options that display in an entity reference field using a view and what "delta" means
    6. 1:05Adding our tour nodes
    7. 1:11How to quickly add multiple fields from the same content type to a view
    8. 0:53How to customize the date format in a views field
    9. 1:01Finishing the process of configuring and reordering our fields in the calendar view
    10. 0:47How to prevent past events from displaying in a calender-type view
    11. 0:45How to make columns sortable in a table-style view
    12. 0:57How to add a form (exposed filter) to a view to allow users to filter results
    13. 1:51How to add an exposed filter for a reference field in views using a relationship
    14. 1:47How to make a views exposed filter a dropdown with grouped filters
    15. 0:27How to change the text in the "apply" button for an exposed filter
    16. 0:59How to turn on Ajax reloading for views and the advantages of leaving it off
    17. 1:07How to hide the title of a filter and horizontally align an exposed filter's "apply" button
    18. 1:03How to add content above a view with a views header
    19. 2:23Adding a second views display for our calendar block and placing an instance of the block
    20. 1:55What a contextual filter is and how to show content that references the current page's node
    21. 1:05How to roll back a change applied to all views displays that should only apply to one
    22. 1:17How to display custom content in a view when there are no matching results
    23. 0:47Quiz for chapter 11 of "Drupal 8 Site Building"
    24. 0:29Challenges for chapter 11 of "Drupal 8 Site Building"
    25. 5:56Solutions for chapter 11 of "Drupal 8 Site Building"
  12. 24:15How to create custom forms and manage menus
    1. 0:59Reviewing our contact form and submission confirmation wireframes
    2. 2:09How contact forms work, what the configuration options means and how to use "weight"
    3. 0:23Reviewing what elements we need to change to make the default contact form match the wireframe
    4. 0:53How to change the contact form subject text input to a dropdown of options
    5. 1:13How to add a short text field with a placeholder to a contact form
    6. 0:15How to reorder fields in a contact form
    7. 0:39How to hide the "send yourself a copy" checkbox on a contact form and set a field to be required
    8. 1:05How to use the Contact Storage module to change the submit button text and hide the preview button on contact forms
    9. 1:57How to redirect to a custom page after a contact form is submitted
    10. 0:31How to review saved contact form submissions with the Contact Storage module
    11. 0:47Changes that will likely take place in future versions of the Contact module
    12. 1:37How to add a menu item to a menu directly and review our menu wireframe
    13. 0:39How to reorder menu items and add a menu item from the content edit form
    14. 0:45How to add a link to a views page to a menu
    15. 1:15Adding our calendar, blog and contact menu items and how we have to add contact form links manually
    16. 0:55How to move menus and how menus display as blocks
    17. 0:55How to add a menu, place a menu as a block, and delete a menu
    18. 1:11Quiz for chapter 12 of "Drupal 8 Site Building"
    19. 0:23Challenges for chapter 12 of "Drupal 8 Site Building"
    20. 5:44Solutions for chapter 12 of "Drupal 8 Site Building"
  13. 23:15How to customize search, run cron and improve performance
    1. 0:39Review of our search requirements and wireframe
    2. 1:03Demonstrating how search works by default and how to narrow down results by content type
    3. 1:57How cron works, what a cron job is and how to run cron tasks manually
    4. 1:43Overview of configuration options for search
    5. 1:53How to replace the default search with a more configurable view
    6. 1:51How to display an exposed filter as a block to create a search form block
    7. 1:43Removing the label, changing the button text and adding no results text for our views search
    8. 2:11How CSS and JavaScript aggregation work to speed up page load times
    9. 2:11How caching and cache tags work in Drupal 8
    10. 1:37How the BigPipe module works and what experimental modules are
    11. 1:29Quiz for chapter 13 of "Drupal 8 Site Building"
    12. 0:27Challenges for chapter 13 of "Drupal 8 Site Building"
    13. 4:31Solutions for chapter 13 of "Drupal 8 Site Building"
  14. 28:39How to evaluate the security of your site and configure text formats
    1. 1:57How to review permissions manually for security risks and installing the Security Review module
    2. 1:13How to check the security of permissions with the Security Review module
    3. 2:23Reviewing additional Security Review notices around trusted hosts and writable files
    4. 0:45What a text format is, and a review of its configuration
    5. 3:29How each text format filter works and how managed files are tracked in a database
    6. 2:07How text formats strip unallowed HTML upon viewing on a page or in a Wysiwyg
    7. 1:01Why the order of text format filters matter
    8. 0:59Reviewing our "callout" style wireframe
    9. 1:53How to add a CSS style dropdown to the Wysiwyg
    10. 0:31Applying our new callout style to the About page mission statement
    11. 2:33How to use the IMCE module to share images between users
    12. 1:27How to configure permissions for IMCE to prevent destructive actions
    13. 0:57Explaining the security implications of allowing the "img" HTML tag in a text format
    14. 0:55How to use the "Recent log entries" page to discover possible security and performance issues
    15. 0:35How to use the "top page not found" page to fix broken links
    16. 1:23Quiz for chapter 14 of "Drupal 8 Site Building"
    17. 0:27Challenges for chapter 14 of "Drupal 8 Site Building"
    18. 4:04Solutions for chapter 14 of "Drupal 8 Site Building"
  15. 13:16How to translate content and the interface
    1. 1:11How we're about to translate the interface, translate content and override specific interface text
    2. 1:15How to download and enable a new language for the Drupal interface
    3. 0:51How to remove the default language two letter prefix from URLs
    4. 1:11How to allow users to set their preferred language
    5. 2:15How to translate content into multiple languages
    6. 1:11How to replace nearly any text in the interface with your own text
    7. 1:05Quiz for chapter 15 of "Drupal 8 Site Building"
    8. 0:17Challenges for chapter 15 of "Drupal 8 Site Building"
    9. 4:00Solutions for chapter 15 of "Drupal 8 Site Building"
  16. 14:01How to update Drupal and contributed modules
    1. 0:43What we are about to do and how to restore a snapshot to practice upgrading
    2. 2:15How to update a contributed module
    3. 1:51How to update core Drupal from one minor or patch version to another
    4. 9:12Credits for "Drupal 8 Site Building"


Add to playlist

Add to , or

Add to new playlist:

Add to playlist
This is a member-only feature
But, it's easy to become a member

Add to cart:

Add to playlist

Add to , or

Add to new playlist:

Add to playlist
Contact us

Below are the supported keyboard shortcuts for our video player.

Start / stop video
Go to next video
Go to previous video
Increase or decrease player speed by 20%
Skip ahead or go back by 15 seconds
Jump to a percentage (2 is 20%, for example)
Toggle full screen
Videos Pricing More Search
BuildAModule Logo Icon BuildAModule Logo Icon
Become a member!
1 month
6 months
10% off
12 months
20% off
All memberships come with the following:
24 / 7 access to the entire 1800+ video library
An innovative video player with a rolling transcript
Extensive Drupal and cross-platform training
A thorough and thoughtful training style
Progress tracking
Take notes on specific video sections
Intuitive multi-user management
How many users?
Go solo with a single user, or give multiple team members access through one account and get discounts by bundling multiple users into a single membership.