Skip to content
This repository has been archived by the owner on Nov 17, 2021. It is now read-only.

theodorosploumis/drupal-lessons

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 

Repository files navigation

Drupal 8.x/9.x lessons

A basic structure for teaching (or learning) Drupal 8.x/9.x with lesson bundles. Bundles can/should be taught independently.

Table of Contents


Lesson bundles

What is Drupal

  • Simple explanation
  • Dries Buyaert, the Drupal "leader"
  • Who uses Drupal
  • (System) Requirements
  • Drupal core
  • Basic knowledge required for development (php, server, database, yaml, html, css)

Why Drupal - the Drupal way

  • Drupal vs "Others"
  • Several ways to do the same thing
  • Think with Drupal
  • Why Drupal is a "more expensive" CMS
  • Why is Drupal hard
  • Drupal Frontend vs Backend

Drupal terminology

  • Architecture
  • Code structure
  • Entities
  • Bundles
  • Blocks
  • Fields
  • Nodes
  • Themes
  • Regions
  • Modules
  • Libraries
  • System files
  • Users and Roles
  • Configuration
  • Distributions (Profiles)
  • Drupal versions

Extend Drupal with modules

  • What are modules
  • Where to find modules
  • How to create modules
  • Module issues etc
  • Publish modules

Drupal Entities

  • Types of entities
  • Data vs Configuration entities
  • Create new entities
  • Entity factory (bundles, fields, view modes, form modes)
  • Content types (Nodes)
  • Entities on the database

Drupal Blocks

  • The Block management UI
  • Drupal configuration UI
  • Register new blocks
  • Users, Roles and permissions

The User entity

  • Permissions UI
  • Register new permissions
  • User Roles
  • Assign Users to Roles

Drupal Views

  • What are Views
  • Create new Views
  • Views terminology
  • Advanced Views

Drupal REST API

  • Core JSON API (REST)
  • Create resources
  • REST authentication
  • Data Serialization
  • Extend REST API
  • JS frontend libraries with Drupal

Form submissions

  • Build a Drupal form (how to)
  • Webform module
  • Entityform module
  • Contact forms
  • Node forms

Theming

  • Get Drupal themes
  • The theme anatomy
  • Base themes and inheritance
  • Create a new theme
  • Theme settings
  • (Theme) layouts and breakpoints
  • Twig templates
  • Theme template
  • BEM, SMACSS and other CSS methodologies within Drupal
  • Attach CSS and JS (internal, external)
  • Working with JS
  • Useful modules for theming

Development for Drupal

  • Installing Drupal
  • IDE
  • Working environment
  • Working with composer and git
  • Drupal configuration (move a site to test, staging, live etc)
  • Drush (command line tool)
  • Drupal-Console (command line tool)
  • Debug Drupal
  • Testing Drupal
  • Working with the database
  • Update/upgrade Drupal core & modules
  • Backup Drupal
  • Applying and creating patches
  • Using simplytest.me
  • Useful modules for development

More topics

  • Migration to Drupal
  • Using (external) libraries
  • Multilingual Drupal
  • Image styles and picture breakpoints
  • Media and files management
  • Plugins
  • Symfony services
  • Menus
  • Text filters and CKEditor
  • Contextual links

Drupal.org

  • What is Drupal.org
  • Community and Accounts
  • Drupal documentation
  • Ask for help and contribute
  • Meetups and events
  • Drupal association
  • Drupal APIs
  • The Drupal initiatives
  • Publish projects on D.O. - procedure

Best practices and tips

  • Keep it simple, reduce complexity
  • Less is better (how to avoid contrib modules)
  • Stick with the default (core) backend theme (seven)
  • How to sell Drupal
  • The Drupal way
  • Learn by doing
  • Long term investment
  • Best/top Drupal modules
  • Which Drupal version should I use
  • How to search for projects on D.O.
  • Create your Distribution
  • Study the Drupal Cases on D.O.
  • Search more, develop less

Learning - Video Resources

Homework - Tasks

  • Create a simple website with 5 pages and 4 custom blocks
  • Create an image gallery website
  • Create a multiuser blog
  • Drupal as a Backend CMS (BaaS)

Useful Resources

License

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.