SlideShare a Scribd company logo
1 of 80
Week 7
Drupal
The worlds most complex
and expensive CMS
Reclaimhosting.com
Drupal.org
Bryan Ollendyke
[at]btopro
Developer Activist
reclaimhosting.com
Mid term format:
- Next week come to class
- Stefan will hand out a paper test
- There are 15 questions (15 pts)
- This is an “open web” exam
- Leverage the web in order to answer
appropriately
Order these projects by complexity,
from highest to lowest
_ Grav
_ WordPress / ClassicPress
_ Drupal
_ Depends on the project really...
Order these projects by complexity,
from highest to lowest
3 Grav
2 WordPress / ClassicPress
1 Drupal
X Are you kidding? Its not even close
____ is a popular command line
program used for version control in
code based projects
_ YAML
_ JSON
_ Markdown
_ Git
____ is a popular command line
program used for version control in
code based projects
_ YAML
_ JSON
_ Markdown
_ GitX
This data format helps with readability
of text based documents while
providing lightweight formatting
_ YAML
_ JSON
_ Markdown
_ Git
This data format helps with readability
of text based documents while
providing lightweight formatting
_ YAML
_ JSON
_ Markdown
_ Git
X
Web components are a W3C
standard that are a composition of
which of these existing technologies
_ Docker
_ HTML
_ JavaScript
_ CSS
_ YAML
Web components are a W3C
standard that are a composition of
which of these existing technologies
_ Docker
_ HTML
_ JavaScript
_ CSS
_ YAML
X
X
X
Which company popularized Web
components through the creation of
the Polymer library
_ Facebook
_ Apple
_ ReclaimHosting
_ Google
_ Microsoft
Which company popularized Web
components through the creation of
the Polymer library
_ Facebook
_ Apple
_ ReclaimHosting
_ Google
_ Microsoft
X
Survey / feedback:
- There will also be 6 basic survey questions about
how class is going
- I present to IST administration in November
- Please answer honestly as this can benefit the structure
of the class and possibly the major as a whole
- You’ll get 2 bonus points for answering these
After finishing the midterm:
- Use the week to catch up on any
labs you are missing
- There is not an assigned lab
- See you the week after to talk
HAXcms and the future of the web
- Any questions?
Today’s Topic / What you'll learn about
- Drupal - Why everyone hates it but loves
profiting from it
- Setup Drupal in reclaim hosting
- To a “team” based design exercise in
class to get a feel for data modeling
as it’s a popular reason Drupal exists
- Play with site building capabilities
- Build a small site on Drupal:
- Use Views to visualize data
- Content types to model data
- Add some user roles
Drupal
Week 7
Drupal
The worlds most
needlessly expensive CMS
Reclaimhosting.com
Drupal.org
Bryan Ollendyke
[at]btopro
Developer Activist
Links to poke around / sources
- https://drupal.org/
Community hub for the project
- https://reclaimhosting.com/
where we’ll install it
- https://backdropcms.org/
Popular fork of Drupal 7; different
reason for forking but still interesting
- https://simplytest.me/
A cool testing platform that spins up a
container running Drupal + modules you
tell it to download. Gives you 30 minute
and then the site self destructs
Drupal
drupal.org
Example usage – grammy.com
nbcuniversal.com
uk.lush.com
psu.edu
news.psu.edu
bjc.psu.edu
drupal.psu.edu
We’re known enough for Drupal we are aggregated on drupal.org
elmsln.org
Terms / definitions for today
- Module
- Install Profile
- Drupal
- Views
- Content Types
- PHP / MySQL / MariaDB
- Backdrop
- Node / Entity
Drupal
Terms / definitions for today
- Module – Plugin / way of extending
platform. Drupal is the MOST modular
- Install Profile – starting point for new
sites. Similar to Grav’s skeleton concept
- Drupal – A project built out of a
misspelling, started by friends in a dorm
in Belgium to communicate between dorms
- Views – 1 of the most powerful concepts
of all CMSs that exist. Allows secure,
click and build database querying and
rendering. This is why Drupal kills the
competition.
Drupal
Terms / definitions for today
- Content Types – Data modeling concept
baked into the system. WordPress ships
with “Pages” and “Posts”. Drupal ships
with nothing.. Then adds in “Page” so
you can grasp it. But you can define new
types of content dynamically, great for
data modeling an organization.
- PHP – backend language it’s written in.
Drupal 7 and below are custom PHP and
“hook” based. Drupal 8+ are Object
oriented
- MySQL / MariaDB – database engine
- Backdrop - popular Drupal 7 fork
Drupal
Terms / definitions for today
Node / Entity – Drupal “pages” are called
nodes. A node is a type of entity.
Entities power the entire system
(menus, nodes, perms, configuration)
This expresses drupal’s flexibility to
it’s core. It happens to deliver websites
that’s not the required purpose of it.
I’ve built Drupal apps to accept photos
from car insurance adjusters, build
brands for sporting websites and deliver
educational material online.
It has no use-case it can’t meet.
Drupal
My bias in this situation
- I’ve written 100s of modules for Drupal
- I’ve got multiple million downloads of
these projects with several 10,000+
active installs (I don’t track so dono)
- Drupal is dramatically, technologically
superior. No question.
That superiority expands the digital divide
and it’s part of why I’ve stopped
participating in the community as well. I
still attend DrupalCon regularly and have
many friends from events in the space but I
now try to get them onto webcomponents.
Drupal
Why people like Drupal
- Crazy flexible. Great for ”headless”
development and acting as a backend /
content storage system
- Content is stored in complex database
format that’s hard to read manually,
but makes for incredible abstractions
between the data and visualization layer
- Drupal is a massive onion, layers upon
layers of complexity, each layer staying
in it’s lane though. So it’s highly
configurable and scalable as a result
of these abstractions
Drupal
elmsln.org/node/5 (drupal 7)
elmsln.org/node/5.json
elmsln.org/node/5.xml
Why people like Drupal
- Content modeling is second to none
field types can be added to give even
more possibilities
- Views to visualize and build database
queries in the browser is complex but
saves hundreds of tedious hours of
manual hours writing database queries
and does so securely
- Extensibility – Drupal is built for
pro developers and the elite class dev.
It requires using conventions that are
expected by elite firms and government
agencies for security
Drupal
Content modeling
Content modeling
Views
Views
Why people like Drupal
- Security – Drupal’s got tons of things
built into the platform that help enforce
secure code being created and launched
- Form API that allows for building forms
out of array / object data
Drupal
Why people like Drupal
- Menu / routing API (older example)
Drupal
But.
If that API isn’t secure.
Everything blows up
WP vs Drupal code methodology (refresher)
- WordPress conventions from 2003 are still
prevalent
- Code / standards / conventions have
dramatically improved since 2003.. Yet
WP code remains in a stasis
- WP is hacked a lot historically because
of it’s ”autoupdating” nature
- Each Drupal major version is an API
breaking change. Meaning Developers have
to rewrite / update all plugins each
release and are responsible for
making the changes themselves
Drupal
Update manager not on by default and NOT visual
And hard to find
And very techy oriented
Drupal versions (1-8) is breaking change
- This is great for security / conventions
- Allows for pruning “technical debt” or
code and ideas that no longer are valid
- WordPress supports every version always
so you can see the major difference here
Drupal
Drupal versions (8.8.x +) deprecates
- Major historical shift for Drupal
- 8.8.x will effectively be the same API
wise as Drupal 9
- Drupal 9 and beyond will no longer hijack
core APIs but will instead provide
deprecation notices which can be easily
checked via command line
- This will make it far less painful to
upgrade while still being able to keep
only code that makes sense as conventions
refine over time
Drupal
HAXcms 2019 < 10 Experimental
Edu
GravCMS 2014 < 100 Docs
Edu
WordPress 2003 > 10,000,000 Small / Mid
NGO
EDU
Drupal 2000 > 100,000 Top level
Gov, EDU
Marketing
Name Age Community Industries
HAXcms 💰 🦑 < 0.0000001%
GravCMS 💰 💰 🦑 🦑 < 0.5%
WordPress 💰 💰 💰 🦑 🦑 🦑 33%
(of top 10 mill)
Drupal 💰 💰 💰 💰 💰 🦑 🦑 🦑 🦑 🦑 4% - 6%
Name Cost Complexity Popularity
Drupal Key concepts
- Modules
- Install profiles
- Themes
- Views
- Blocks
- Content types / Entity API
- Field API
- Permissions / Roles / User accounts
Drupal
What Drupal is not great for
- Small sites
- Cost. It costs a ton to operate
- Complexity / team size. Lots of layers
is great for scope but terrible for
number of people required to know how
to do everything
- I am a unicorn / full stack bc of this
Drupal
Drupal 7 vs Drupal 8/9
- Drupal 7 was “hook” based
hook_page_build
hook_page_build_alter
hook_module_enable
hook_node_update
hook_node_view
- Drupal 8/9 is built on Symphony and is
almost completely object oriented
Drupal
FORK FORK FORK FORK FORK FORK
Backdrop
- Drupal 7 with functions renamed from
drupal_ to backdrop_
- Lots of enhancements to UX backported
from D8
- ”Configuration management” changes in
Drupal 8 backported to Backdrop
- Stores all configuration changes
in YAML files
- More small community focused, easier to
maintain for NGOs, education, small sites
Drupal
Dirty Drupal secret
- Every example site I showed today is
built in Drupal 7... Still.
- Drupal’s expense and flexibility makes it
really hard to upgrade historically and
Drupal 8 has been out for 5 years yet still
doesn’t have the adoption level of Drupal 7
Drupal
What we’ll do now
- An in class activity
- We’re going to practice some data modeling
(Drupal excels at Data model mapping)
- You’re in a temporary group with the
people in the row your sitting in
(ugh, group work, I know, don’t worry)
- Have someone type up the data model that
you think would accurately model the
relationships and details of each entity
Drupal
Data modeling problem
- We are creating an online university
- The university is made up of colleges
which offer courses, have faculty and
need classrooms
- Coordinate as needed, but work on
a single data model to express these
entities and their relationship to each
other
- I’ll use Draw.io to create a single image
to demonstrate the relationships between
them based on a shared definition
Drupal
Data modeling
Take 10-15 minutes and figure out the fields
and relationships of this data
Courses
{come up with the relationships}
{come up with the fields}
Faculty
{come up with the relationships}
{come up with the fields}
Rooms
{come up with the fields}
Drupal
Data modeling into lab
- Now, let’s build a shared data model
that we all agree on
- I’ll use Draw.io to create a single image
to demonstrate the relationships between
them based on a shared definition
- Based on our shared definition we will
then use the image as the basis for what
will be needed in the Drupal site
Drupal
Lab Context
- You are the site builder that works in the
organization who has been doing Grav / WP
- You’ve starting to do websites that require
a lot of data and users and you don’t think
that WordPress is the right fit anymore
- Your Project Manager (with the same name as
you, weird huh?) agrees but has never used
Drupal and is concerned about you being able
to handle it
- They give you a map of the data model and
ask you to model the information in Drupal
and create a views that pull data together
Drupal
Lab Deliverable
- Create a Drupal site that accurately
represents the data model that we’ve
agreed on in class (on website / slack)
- Model these entities:
- Course
- Faculty
- Room
- Create 5 courses on the site (either
your own or make them up whatever)
- Create rooms and faculty and associate them
with these courses so all courses have
faculty and a room
Drupal
Lab Deliverable 1 of these
- Create a View that shows the list of courses
- Title this schedule
- Make sure it shows up in the menu bar
- Make it display as a table
- Add fields that are relevant for people
viewing the site
- Create a View showing a list of the faculty
- Title this Our Faculty
- Make sure it shows up in the menu bar
- Make it display as a grid / list
- Add fields for photo, name
- BONUS 2PTS: Use a “Relationship” in the
view in order to show the courses that
faculty members are teaching
Drupal
Submitting the Lab
- Create your Drupal site building out the views and content
types that we chose to model our data off of this week
- Create a Home page in the menu that includes:
- 500 words on why Drupal is the choice for big organizations
- Links to 3 resources backing this claim
- A link to your YouTube video
- Record the video explaining Drupal’s use-case / context and
then show one of the following techniques (or both if u like)
- How to create a content type and add fields
OR
- How to create views, adding filters and sorting to the view
- Post your link to your site in: #lab7-drupal
Grading the Lab deliverable
- Did you create a Drupal site in Reclaim and
post your link to the channel (1pts)
- Did you create content types that match our
data model? (3pts)
- Did you create the view that matches the
requested data to display? (3pts)
- Did you record a video that demonstrates
site building technique (3pts)
10 point lab
BONUS 2PTS: Use a “Relationship” in the view in
order to show the courses that faculty members
are teaching
Drupal
Quick break / Questions?
Let’s build a Drupal
site on Reclaim hosting
Log into
reclaimhosting.com
Drupal
reclaimhosting.com
Bryan Ollendyke
[at]btopro

More Related Content

What's hot

Zimmertwins Presentation
Zimmertwins PresentationZimmertwins Presentation
Zimmertwins Presentation
Ashok Modi
 
Introduction To Drupal
Introduction To DrupalIntroduction To Drupal
Introduction To Drupal
Lauren Roth
 

What's hot (20)

Taking your site from Drupal 6 to Drupal 7
Taking your site from Drupal 6 to Drupal 7Taking your site from Drupal 6 to Drupal 7
Taking your site from Drupal 6 to Drupal 7
 
Drupal 7x Installation - Introduction to Drupal Concepts
Drupal 7x Installation - Introduction to Drupal ConceptsDrupal 7x Installation - Introduction to Drupal Concepts
Drupal 7x Installation - Introduction to Drupal Concepts
 
Zimmertwins Presentation
Zimmertwins PresentationZimmertwins Presentation
Zimmertwins Presentation
 
An Introduction to Drupal
An Introduction to DrupalAn Introduction to Drupal
An Introduction to Drupal
 
Drupal 6x Installation
Drupal 6x Installation Drupal 6x Installation
Drupal 6x Installation
 
Introduction to Drupal
Introduction to DrupalIntroduction to Drupal
Introduction to Drupal
 
Introduction to drupal
Introduction to drupalIntroduction to drupal
Introduction to drupal
 
Drupal
DrupalDrupal
Drupal
 
Drupal Experience Sharing at Prime College
Drupal Experience Sharing at Prime CollegeDrupal Experience Sharing at Prime College
Drupal Experience Sharing at Prime College
 
Introduction To Drupal
Introduction To DrupalIntroduction To Drupal
Introduction To Drupal
 
Optimizing Drupal 7 HTML Markup - Using Panels, Page Manager, and Fences to P...
Optimizing Drupal 7 HTML Markup - Using Panels, Page Manager, and Fences to P...Optimizing Drupal 7 HTML Markup - Using Panels, Page Manager, and Fences to P...
Optimizing Drupal 7 HTML Markup - Using Panels, Page Manager, and Fences to P...
 
Building Responsive Applications Using XPages
Building Responsive Applications Using XPagesBuilding Responsive Applications Using XPages
Building Responsive Applications Using XPages
 
Migrating a Vignette Website to Drupal: Story of Multnomah County
Migrating a Vignette Website to Drupal: Story of Multnomah CountyMigrating a Vignette Website to Drupal: Story of Multnomah County
Migrating a Vignette Website to Drupal: Story of Multnomah County
 
2011-11 Chennai Social Media Summit Keynote
2011-11 Chennai Social Media Summit Keynote2011-11 Chennai Social Media Summit Keynote
2011-11 Chennai Social Media Summit Keynote
 
Drupal in 30 Minutes
Drupal in 30 MinutesDrupal in 30 Minutes
Drupal in 30 Minutes
 
Presentation joomla-introduction
Presentation joomla-introductionPresentation joomla-introduction
Presentation joomla-introduction
 
XPages: No Experience Needed
XPages: No Experience NeededXPages: No Experience Needed
XPages: No Experience Needed
 
Drupal 6 Performance Tips
Drupal 6 Performance TipsDrupal 6 Performance Tips
Drupal 6 Performance Tips
 
Expanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate UsabilityExpanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate Usability
 
XPages Application Layout Control - TLCC March, 2014 Webinar
XPages Application Layout Control - TLCC March, 2014 WebinarXPages Application Layout Control - TLCC March, 2014 Webinar
XPages Application Layout Control - TLCC March, 2014 Webinar
 

Similar to Drupal

From Drupal 7 to Drupal 8 - Drupal Intensive Course Overview
From Drupal 7 to Drupal 8 - Drupal Intensive Course OverviewFrom Drupal 7 to Drupal 8 - Drupal Intensive Course Overview
From Drupal 7 to Drupal 8 - Drupal Intensive Course Overview
Italo Mairo
 
Drupal module development training delhi
Drupal module development training delhiDrupal module development training delhi
Drupal module development training delhi
unitedwebsoft
 
Drupal Aware Design: Good Techniques for Better Themes
Drupal Aware Design: Good Techniques for Better ThemesDrupal Aware Design: Good Techniques for Better Themes
Drupal Aware Design: Good Techniques for Better Themes
nyccamp
 

Similar to Drupal (20)

Drupal in-depth
Drupal in-depthDrupal in-depth
Drupal in-depth
 
Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7
 
Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7
 
EdTechJoker Spring 2020 - Lecture 6 - WordPress
EdTechJoker Spring 2020 - Lecture 6 -   WordPressEdTechJoker Spring 2020 - Lecture 6 -   WordPress
EdTechJoker Spring 2020 - Lecture 6 - WordPress
 
January 2017 - WPCampus Online - Learning from Drupal: Implementing WordPress...
January 2017 - WPCampus Online - Learning from Drupal: Implementing WordPress...January 2017 - WPCampus Online - Learning from Drupal: Implementing WordPress...
January 2017 - WPCampus Online - Learning from Drupal: Implementing WordPress...
 
Why I've Not bothered With Drupal 8
Why I've Not bothered With Drupal 8Why I've Not bothered With Drupal 8
Why I've Not bothered With Drupal 8
 
A Quick Look at Drupal
A Quick Look at DrupalA Quick Look at Drupal
A Quick Look at Drupal
 
Drupal
DrupalDrupal
Drupal
 
ClassicPress / WordPress
ClassicPress / WordPressClassicPress / WordPress
ClassicPress / WordPress
 
From Drupal 7 to Drupal 8 - Drupal Intensive Course Overview
From Drupal 7 to Drupal 8 - Drupal Intensive Course OverviewFrom Drupal 7 to Drupal 8 - Drupal Intensive Course Overview
From Drupal 7 to Drupal 8 - Drupal Intensive Course Overview
 
Drupal module development training delhi
Drupal module development training delhiDrupal module development training delhi
Drupal module development training delhi
 
Doing Drupal: Quick Start Deployments via Distributions
Doing Drupal: Quick Start Deployments via DistributionsDoing Drupal: Quick Start Deployments via Distributions
Doing Drupal: Quick Start Deployments via Distributions
 
PHPNW Drupal as a Framework
PHPNW Drupal as a FrameworkPHPNW Drupal as a Framework
PHPNW Drupal as a Framework
 
Drupal is from Mars, Wordpress is from Venus: Finding your library's CMS soul...
Drupal is from Mars, Wordpress is from Venus: Finding your library's CMS soul...Drupal is from Mars, Wordpress is from Venus: Finding your library's CMS soul...
Drupal is from Mars, Wordpress is from Venus: Finding your library's CMS soul...
 
October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...
October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...
October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...
 
Drupal Overview For Techies
Drupal Overview For TechiesDrupal Overview For Techies
Drupal Overview For Techies
 
Drupal introduction
Drupal introductionDrupal introduction
Drupal introduction
 
Drupalcampatl d7
Drupalcampatl d7Drupalcampatl d7
Drupalcampatl d7
 
Drupal Experience Sharing At Prime College
Drupal Experience Sharing At Prime CollegeDrupal Experience Sharing At Prime College
Drupal Experience Sharing At Prime College
 
Drupal Aware Design: Good Techniques for Better Themes
Drupal Aware Design: Good Techniques for Better ThemesDrupal Aware Design: Good Techniques for Better Themes
Drupal Aware Design: Good Techniques for Better Themes
 

More from btopro

Future proofing design work with Web components
Future proofing design work with Web componentsFuture proofing design work with Web components
Future proofing design work with Web components
btopro
 

More from btopro (20)

ELMS:LN 2020 update @ Apereo
ELMS:LN 2020 update @ ApereoELMS:LN 2020 update @ Apereo
ELMS:LN 2020 update @ Apereo
 
EdTechJoker Open Activism Project
EdTechJoker Open Activism ProjectEdTechJoker Open Activism Project
EdTechJoker Open Activism Project
 
Lecture13 Containers
Lecture13   ContainersLecture13   Containers
Lecture13 Containers
 
Ed techjoker faculty presentation
Ed techjoker faculty presentationEd techjoker faculty presentation
Ed techjoker faculty presentation
 
IST 402 Presentation by Sonya
IST 402 Presentation by SonyaIST 402 Presentation by Sonya
IST 402 Presentation by Sonya
 
Lecture11 - Accessibility
Lecture11  - AccessibilityLecture11  - Accessibility
Lecture11 - Accessibility
 
EdTechJoker - HAXTheWeb
EdTechJoker - HAXTheWebEdTechJoker - HAXTheWeb
EdTechJoker - HAXTheWeb
 
Grav CMS
Grav CMSGrav CMS
Grav CMS
 
HAX camp 2019 - HAX The Camp address
HAX camp 2019 - HAX The Camp addressHAX camp 2019 - HAX The Camp address
HAX camp 2019 - HAX The Camp address
 
HAX camp 2019 - Welcome
HAX camp 2019 - WelcomeHAX camp 2019 - Welcome
HAX camp 2019 - Welcome
 
Web components and Package managers
Web components and Package managersWeb components and Package managers
Web components and Package managers
 
HTML / CSS / JS Web basics
HTML / CSS / JS Web basicsHTML / CSS / JS Web basics
HTML / CSS / JS Web basics
 
Background info on git / github
Background info on git / githubBackground info on git / github
Background info on git / github
 
EdTechJoker IST 402 - Syllabus day
EdTechJoker IST 402 - Syllabus dayEdTechJoker IST 402 - Syllabus day
EdTechJoker IST 402 - Syllabus day
 
Future proofing design work with Web components
Future proofing design work with Web componentsFuture proofing design work with Web components
Future proofing design work with Web components
 
The case for Web components - Drupal4Gov webinar
The case for Web components - Drupal4Gov webinarThe case for Web components - Drupal4Gov webinar
The case for Web components - Drupal4Gov webinar
 
HAX - Chaotic Good
HAX - Chaotic GoodHAX - Chaotic Good
HAX - Chaotic Good
 
HAXTheWeb @ Apereo 19
HAXTheWeb @ Apereo 19HAXTheWeb @ Apereo 19
HAXTheWeb @ Apereo 19
 
Open Apereo - Web components workshop
Open Apereo - Web components workshopOpen Apereo - Web components workshop
Open Apereo - Web components workshop
 
Web components training setup knowledge
Web components training setup knowledgeWeb components training setup knowledge
Web components training setup knowledge
 

Recently uploaded

Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
KarakKing
 

Recently uploaded (20)

TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Plant propagation: Sexual and Asexual propapagation.pptx
Plant propagation: Sexual and Asexual propapagation.pptxPlant propagation: Sexual and Asexual propapagation.pptx
Plant propagation: Sexual and Asexual propapagation.pptx
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxCOMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptx
 
Basic Intentional Injuries Health Education
Basic Intentional Injuries Health EducationBasic Intentional Injuries Health Education
Basic Intentional Injuries Health Education
 
Philosophy of china and it's charactistics
Philosophy of china and it's charactisticsPhilosophy of china and it's charactistics
Philosophy of china and it's charactistics
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
Tatlong Kwento ni Lola basyang-1.pdf arts
Tatlong Kwento ni Lola basyang-1.pdf artsTatlong Kwento ni Lola basyang-1.pdf arts
Tatlong Kwento ni Lola basyang-1.pdf arts
 
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 

Drupal

  • 1. Week 7 Drupal The worlds most complex and expensive CMS Reclaimhosting.com Drupal.org Bryan Ollendyke [at]btopro Developer Activist
  • 3. Mid term format: - Next week come to class - Stefan will hand out a paper test - There are 15 questions (15 pts) - This is an “open web” exam - Leverage the web in order to answer appropriately
  • 4. Order these projects by complexity, from highest to lowest _ Grav _ WordPress / ClassicPress _ Drupal _ Depends on the project really...
  • 5. Order these projects by complexity, from highest to lowest 3 Grav 2 WordPress / ClassicPress 1 Drupal X Are you kidding? Its not even close
  • 6. ____ is a popular command line program used for version control in code based projects _ YAML _ JSON _ Markdown _ Git
  • 7. ____ is a popular command line program used for version control in code based projects _ YAML _ JSON _ Markdown _ GitX
  • 8. This data format helps with readability of text based documents while providing lightweight formatting _ YAML _ JSON _ Markdown _ Git
  • 9. This data format helps with readability of text based documents while providing lightweight formatting _ YAML _ JSON _ Markdown _ Git X
  • 10. Web components are a W3C standard that are a composition of which of these existing technologies _ Docker _ HTML _ JavaScript _ CSS _ YAML
  • 11. Web components are a W3C standard that are a composition of which of these existing technologies _ Docker _ HTML _ JavaScript _ CSS _ YAML X X X
  • 12. Which company popularized Web components through the creation of the Polymer library _ Facebook _ Apple _ ReclaimHosting _ Google _ Microsoft
  • 13. Which company popularized Web components through the creation of the Polymer library _ Facebook _ Apple _ ReclaimHosting _ Google _ Microsoft X
  • 14. Survey / feedback: - There will also be 6 basic survey questions about how class is going - I present to IST administration in November - Please answer honestly as this can benefit the structure of the class and possibly the major as a whole - You’ll get 2 bonus points for answering these
  • 15. After finishing the midterm: - Use the week to catch up on any labs you are missing - There is not an assigned lab - See you the week after to talk HAXcms and the future of the web - Any questions?
  • 16. Today’s Topic / What you'll learn about - Drupal - Why everyone hates it but loves profiting from it - Setup Drupal in reclaim hosting - To a “team” based design exercise in class to get a feel for data modeling as it’s a popular reason Drupal exists - Play with site building capabilities - Build a small site on Drupal: - Use Views to visualize data - Content types to model data - Add some user roles Drupal
  • 17. Week 7 Drupal The worlds most needlessly expensive CMS Reclaimhosting.com Drupal.org Bryan Ollendyke [at]btopro Developer Activist
  • 18. Links to poke around / sources - https://drupal.org/ Community hub for the project - https://reclaimhosting.com/ where we’ll install it - https://backdropcms.org/ Popular fork of Drupal 7; different reason for forking but still interesting - https://simplytest.me/ A cool testing platform that spins up a container running Drupal + modules you tell it to download. Gives you 30 minute and then the site self destructs Drupal
  • 19.
  • 20.
  • 22. Example usage – grammy.com
  • 29. We’re known enough for Drupal we are aggregated on drupal.org
  • 31. Terms / definitions for today - Module - Install Profile - Drupal - Views - Content Types - PHP / MySQL / MariaDB - Backdrop - Node / Entity Drupal
  • 32. Terms / definitions for today - Module – Plugin / way of extending platform. Drupal is the MOST modular - Install Profile – starting point for new sites. Similar to Grav’s skeleton concept - Drupal – A project built out of a misspelling, started by friends in a dorm in Belgium to communicate between dorms - Views – 1 of the most powerful concepts of all CMSs that exist. Allows secure, click and build database querying and rendering. This is why Drupal kills the competition. Drupal
  • 33. Terms / definitions for today - Content Types – Data modeling concept baked into the system. WordPress ships with “Pages” and “Posts”. Drupal ships with nothing.. Then adds in “Page” so you can grasp it. But you can define new types of content dynamically, great for data modeling an organization. - PHP – backend language it’s written in. Drupal 7 and below are custom PHP and “hook” based. Drupal 8+ are Object oriented - MySQL / MariaDB – database engine - Backdrop - popular Drupal 7 fork Drupal
  • 34. Terms / definitions for today Node / Entity – Drupal “pages” are called nodes. A node is a type of entity. Entities power the entire system (menus, nodes, perms, configuration) This expresses drupal’s flexibility to it’s core. It happens to deliver websites that’s not the required purpose of it. I’ve built Drupal apps to accept photos from car insurance adjusters, build brands for sporting websites and deliver educational material online. It has no use-case it can’t meet. Drupal
  • 35. My bias in this situation - I’ve written 100s of modules for Drupal - I’ve got multiple million downloads of these projects with several 10,000+ active installs (I don’t track so dono) - Drupal is dramatically, technologically superior. No question. That superiority expands the digital divide and it’s part of why I’ve stopped participating in the community as well. I still attend DrupalCon regularly and have many friends from events in the space but I now try to get them onto webcomponents. Drupal
  • 36. Why people like Drupal - Crazy flexible. Great for ”headless” development and acting as a backend / content storage system - Content is stored in complex database format that’s hard to read manually, but makes for incredible abstractions between the data and visualization layer - Drupal is a massive onion, layers upon layers of complexity, each layer staying in it’s lane though. So it’s highly configurable and scalable as a result of these abstractions Drupal
  • 40. Why people like Drupal - Content modeling is second to none field types can be added to give even more possibilities - Views to visualize and build database queries in the browser is complex but saves hundreds of tedious hours of manual hours writing database queries and does so securely - Extensibility – Drupal is built for pro developers and the elite class dev. It requires using conventions that are expected by elite firms and government agencies for security Drupal
  • 43. Views
  • 44. Views
  • 45. Why people like Drupal - Security – Drupal’s got tons of things built into the platform that help enforce secure code being created and launched - Form API that allows for building forms out of array / object data Drupal
  • 46. Why people like Drupal - Menu / routing API (older example) Drupal
  • 47. But. If that API isn’t secure. Everything blows up
  • 48. WP vs Drupal code methodology (refresher) - WordPress conventions from 2003 are still prevalent - Code / standards / conventions have dramatically improved since 2003.. Yet WP code remains in a stasis - WP is hacked a lot historically because of it’s ”autoupdating” nature - Each Drupal major version is an API breaking change. Meaning Developers have to rewrite / update all plugins each release and are responsible for making the changes themselves Drupal
  • 49. Update manager not on by default and NOT visual
  • 50. And hard to find
  • 51. And very techy oriented
  • 52. Drupal versions (1-8) is breaking change - This is great for security / conventions - Allows for pruning “technical debt” or code and ideas that no longer are valid - WordPress supports every version always so you can see the major difference here Drupal
  • 53. Drupal versions (8.8.x +) deprecates - Major historical shift for Drupal - 8.8.x will effectively be the same API wise as Drupal 9 - Drupal 9 and beyond will no longer hijack core APIs but will instead provide deprecation notices which can be easily checked via command line - This will make it far less painful to upgrade while still being able to keep only code that makes sense as conventions refine over time Drupal
  • 54. HAXcms 2019 < 10 Experimental Edu GravCMS 2014 < 100 Docs Edu WordPress 2003 > 10,000,000 Small / Mid NGO EDU Drupal 2000 > 100,000 Top level Gov, EDU Marketing Name Age Community Industries
  • 55. HAXcms 💰 🦑 < 0.0000001% GravCMS 💰 💰 🦑 🦑 < 0.5% WordPress 💰 💰 💰 🦑 🦑 🦑 33% (of top 10 mill) Drupal 💰 💰 💰 💰 💰 🦑 🦑 🦑 🦑 🦑 4% - 6% Name Cost Complexity Popularity
  • 56. Drupal Key concepts - Modules - Install profiles - Themes - Views - Blocks - Content types / Entity API - Field API - Permissions / Roles / User accounts Drupal
  • 57. What Drupal is not great for - Small sites - Cost. It costs a ton to operate - Complexity / team size. Lots of layers is great for scope but terrible for number of people required to know how to do everything - I am a unicorn / full stack bc of this Drupal
  • 58.
  • 59.
  • 60. Drupal 7 vs Drupal 8/9 - Drupal 7 was “hook” based hook_page_build hook_page_build_alter hook_module_enable hook_node_update hook_node_view - Drupal 8/9 is built on Symphony and is almost completely object oriented Drupal
  • 61. FORK FORK FORK FORK FORK FORK
  • 62. Backdrop - Drupal 7 with functions renamed from drupal_ to backdrop_ - Lots of enhancements to UX backported from D8 - ”Configuration management” changes in Drupal 8 backported to Backdrop - Stores all configuration changes in YAML files - More small community focused, easier to maintain for NGOs, education, small sites Drupal
  • 63. Dirty Drupal secret - Every example site I showed today is built in Drupal 7... Still. - Drupal’s expense and flexibility makes it really hard to upgrade historically and Drupal 8 has been out for 5 years yet still doesn’t have the adoption level of Drupal 7 Drupal
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71. What we’ll do now - An in class activity - We’re going to practice some data modeling (Drupal excels at Data model mapping) - You’re in a temporary group with the people in the row your sitting in (ugh, group work, I know, don’t worry) - Have someone type up the data model that you think would accurately model the relationships and details of each entity Drupal
  • 72. Data modeling problem - We are creating an online university - The university is made up of colleges which offer courses, have faculty and need classrooms - Coordinate as needed, but work on a single data model to express these entities and their relationship to each other - I’ll use Draw.io to create a single image to demonstrate the relationships between them based on a shared definition Drupal
  • 73. Data modeling Take 10-15 minutes and figure out the fields and relationships of this data Courses {come up with the relationships} {come up with the fields} Faculty {come up with the relationships} {come up with the fields} Rooms {come up with the fields} Drupal
  • 74. Data modeling into lab - Now, let’s build a shared data model that we all agree on - I’ll use Draw.io to create a single image to demonstrate the relationships between them based on a shared definition - Based on our shared definition we will then use the image as the basis for what will be needed in the Drupal site Drupal
  • 75. Lab Context - You are the site builder that works in the organization who has been doing Grav / WP - You’ve starting to do websites that require a lot of data and users and you don’t think that WordPress is the right fit anymore - Your Project Manager (with the same name as you, weird huh?) agrees but has never used Drupal and is concerned about you being able to handle it - They give you a map of the data model and ask you to model the information in Drupal and create a views that pull data together Drupal
  • 76. Lab Deliverable - Create a Drupal site that accurately represents the data model that we’ve agreed on in class (on website / slack) - Model these entities: - Course - Faculty - Room - Create 5 courses on the site (either your own or make them up whatever) - Create rooms and faculty and associate them with these courses so all courses have faculty and a room Drupal
  • 77. Lab Deliverable 1 of these - Create a View that shows the list of courses - Title this schedule - Make sure it shows up in the menu bar - Make it display as a table - Add fields that are relevant for people viewing the site - Create a View showing a list of the faculty - Title this Our Faculty - Make sure it shows up in the menu bar - Make it display as a grid / list - Add fields for photo, name - BONUS 2PTS: Use a “Relationship” in the view in order to show the courses that faculty members are teaching Drupal
  • 78. Submitting the Lab - Create your Drupal site building out the views and content types that we chose to model our data off of this week - Create a Home page in the menu that includes: - 500 words on why Drupal is the choice for big organizations - Links to 3 resources backing this claim - A link to your YouTube video - Record the video explaining Drupal’s use-case / context and then show one of the following techniques (or both if u like) - How to create a content type and add fields OR - How to create views, adding filters and sorting to the view - Post your link to your site in: #lab7-drupal
  • 79. Grading the Lab deliverable - Did you create a Drupal site in Reclaim and post your link to the channel (1pts) - Did you create content types that match our data model? (3pts) - Did you create the view that matches the requested data to display? (3pts) - Did you record a video that demonstrates site building technique (3pts) 10 point lab BONUS 2PTS: Use a “Relationship” in the view in order to show the courses that faculty members are teaching Drupal
  • 80. Quick break / Questions? Let’s build a Drupal site on Reclaim hosting Log into reclaimhosting.com Drupal reclaimhosting.com Bryan Ollendyke [at]btopro

Editor's Notes

  1. Icon created by Creative Stall from the Noun Project
  2. Icon created by Creative Stall from the Noun Project
  3. Icon created by Creative Stall from the Noun Project
  4. Icon created by Creative Stall from the Noun Project
  5. Icon created by Creative Stall from the Noun Project
  6. Icon created by Creative Stall from the Noun Project
  7. Icon created by Creative Stall from the Noun Project
  8. Icon created by Creative Stall from the Noun Project
  9. Icon created by Creative Stall from the Noun Project
  10. Icon created by Creative Stall from the Noun Project
  11. Icon created by Creative Stall from the Noun Project
  12. Icon created by Creative Stall from the Noun Project
  13. Icon created by Creative Stall from the Noun Project
  14. Icon created by Creative Stall from the Noun Project
  15. Icon created by Creative Stall from the Noun Project