Drupal Introduction
1. What's a drupal?
etymologically, technically, actually
Etymologically
druppel
Technically
- categorized as a CMS
- more accurately:
"A content management framework (CMF) is a system that facilitates the use of reusable components or customized software for managing web content."
Actually
- drupal empowers, it puts you in the driving seat
- by facilitating you to build data models for the structured content you want to manage, making abstraction manageable
- goes a long way in solving the flexibility/simplicity dilemma
- it's a modular construction kit
Simplicity
"Optimus Tiny" by aloshbennett is licensed under CC BY 2.0
Flexibility
"Lego mining truck" by Marcus T Ward is licensed under CC BY-ND 2.0
- this flexibility comes at a certain cost: a modular vehicle construction kit will by nature require you to read the instruction manual first
- the building blocks are available, but you'll need to learn how they fit together
It's mature And it's big
- In it's 20th year (since 15th January 2001)
- Over 1.000.000 websites run on Drupal....
So, why drupal?
- state-of-the-art CMS
- if you can do drupal, you can do anything
- the power of drupal: manageable abstraction
2. Installing drupal (FYI)
Client-server model
LAMP architecture
A number of folders on a webserver (hosted on a machine controlled by a linux operating system), written in php and connected to a database on a mysql-server.
- __L__inux
- __A__pache
- __M__ysql
- __P__hp
Drupal versions
- At any given time, there are two major release series of Drupal which are supported. Currently, these are Drupal 7, 8 and 9. This is not an academic matter.
- Drupal 8 (released 19/11/2015)
- Drupal 8 releases
- ships with enough functionality out of the box that for the first time site builders should be able to create fairly sophisticated sites
- is in line with the web landscape of today, with its mobile-first approach
- Drupal 9 - released on June 3, 2020
- The Evolution of Drupal. Drop 1.0 to Drupal 8.
FYI: installing drupal on your own device
("localhost")
- WAMPServer and MAMP
- With DDEV-Local
Installing drupal on ulyssis.org
- Every group gets it own drupal8 instance on Ulyssis
- Group projects 2019-20
- The drupal version we will be using this semester: 8.9.13
3. Drupal Structure
- flexibility through several layers of abstractions
- nodes hold the structured information
- the site's information architecture (including navigation structure) is designed separately by the menu system, taxonomy (tagging of content), views (lists of content), and blocks (side content which often have links to different site sections)
- the theme system, along with display modules, controls how all this looks
- layers are kept separate, so you can provide different navigation and presentation of your content to different users, various functions and content can be shown or hidden as needed
- concepts to explain these abstractions (not always intuitive)
- node: "A piece of content in Drupal, typically corresponding to a single page on the site, that has a title, an optional body, and perhaps additional fields."
- entity: "Any defined chunk of data in Drupal. This includes things like nodes, users, taxonomy terms, files, etc"
-
get to know the basic building blocks for assembling a Drupal site and how they relate to each other
- modules
- content types, fields
- blocks
- menus
- taxonomies
- themes
- (install profiles)
-
directory structure
Drupal building blocks
The difference between building and developing a drupal website.
3.1. Modules
Modules are functional plugins that are either part of the Drupal core (they ship with Drupal) or they are contributed items that have been created by members of the Drupal community.
Contributed module examples
Extend and customize Drupal functionality with contributed modules.
- Faceted search (drupal 7)
- Linkit
- Pathauto
- Geofield Map
- Google Analytics
Contributed modules in default online publishing site
3.2. Contenttypes
The most important way that Drupal helps you manage content is with content types. Different types of content require different features = fields
"a Content Type is a pre-defined collection of data types (Fields) which relate to each other by an informational context."
-
tumblr content types
-
default contenttypes and contenttypes you make yourself
example contenttypes
3.3. Views
The Views module allows you to query your site’s database, and present the content you select.
Using the Views module, you can fetch content from the database and present it to the user as lists, posts, galleries, tables, maps, graphs, menu items, blocks, reports, forum posts, webfeeds, JSON text files etc. It provides a graphical interface to a SQL query builder that can access virtually any information in your database and display it in any format.
example views
- http://en.pedalion.org - only titles
- http://mdrn.be
- homepage, people, projects, publications, studio
- http://lukvanhaute.com
- homepage
- boeken
- http://informatiewijzer.be/module/omgaan_met_data.html - accordeon
3.4. Themes
- Responsible for controlling both your site’s visual design and layout
- A theme generally consists of
- HTML markup,
- CSS,
- JavaScript,
- and media (images, video, and audio).
- Find a theme on drupal.org
- Drupal8 W3CSS Theme
- Drupal 8/9 theme that uses the w3.css framework.
- Smaller and faster than other CSS frameworks.
- Easier to learn, and easier to use than other CSS frameworks.
- Uses standard CSS only (No jQuery or JavaScript library).
- Speeds up and simplifies web development.
- Demo
Installation Profiles and Distributions
"a distribution defines a packaged version of Drupal that upon installation, provides a website or application built for a specific purpose."
Example distributions & install profiles
- Openpublish
- Commerce Kickstart
- Open Scholar
- Varbase "The Ultimate Drupal 8 CMS Starter Kit" (Bootstrap Ready) - try it on simplytest.me
- Overview
4. Building your site
Plan well
The admin interface - navigate your site
- the admin menu - the drupal dashboard: almost everything you want to change and modify on your site can be accessed from here
- content overview, add content