SlideShare a Scribd company logo
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development
Drupal Development

More Related Content

Viewers also liked (19)

PPT
Information Architecture for Drupal
Vanessa Turke
 
PPTX
Getting agile with drupal
Promet Source
 
KEY
Baby Got Backend (CMS Expo 2011)
Jeff Eaton
 
ZIP
Promiscuous Drupal
Jeff Eaton
 
ZIP
Drupal Development (Part 2)
Jeff Eaton
 
ZIP
Social Networking Applied
Jeff Eaton
 
KEY
Drupal in Action (CMS Expo 2011)
Jeff Eaton
 
KEY
Drupal in Action
Jeff Eaton
 
PDF
The Platypus Problem
Jeff Eaton
 
PDF
Deblobbing In The Real World
Jeff Eaton
 
KEY
Architecture Is For Everyone
Jeff Eaton
 
ZIP
ROI in a GPL World
Jeff Eaton
 
PPTX
Building enterprise high availability application with drupal
Ratnesh kumar, CSM
 
PPTX
Drupal 7 and SolR
Patrick Morin
 
PDF
Recoupling
Jeff Eaton
 
ZIP
Drupal Deployment
Jeff Eaton
 
PPTX
RESTful application with Drupal 8
Patrick Morin
 
PPTX
Adaptable Designs for Agile Software Development
Hayim Makabee
 
PPTX
A Software Architect's View On Diagramming
meghantaylor
 
Information Architecture for Drupal
Vanessa Turke
 
Getting agile with drupal
Promet Source
 
Baby Got Backend (CMS Expo 2011)
Jeff Eaton
 
Promiscuous Drupal
Jeff Eaton
 
Drupal Development (Part 2)
Jeff Eaton
 
Social Networking Applied
Jeff Eaton
 
Drupal in Action (CMS Expo 2011)
Jeff Eaton
 
Drupal in Action
Jeff Eaton
 
The Platypus Problem
Jeff Eaton
 
Deblobbing In The Real World
Jeff Eaton
 
Architecture Is For Everyone
Jeff Eaton
 
ROI in a GPL World
Jeff Eaton
 
Building enterprise high availability application with drupal
Ratnesh kumar, CSM
 
Drupal 7 and SolR
Patrick Morin
 
Recoupling
Jeff Eaton
 
Drupal Deployment
Jeff Eaton
 
RESTful application with Drupal 8
Patrick Morin
 
Adaptable Designs for Agile Software Development
Hayim Makabee
 
A Software Architect's View On Diagramming
meghantaylor
 

Similar to Drupal Development (20)

PPTX
Debugging in drupal 8
Allie Jones
 
PPTX
8 things to know about theming in drupal 8
Logan Farr
 
PDF
Drupal 8 simple page: Mi primer proyecto en Drupal 8.
Samuel Solís Fuentes
 
PDF
Patterns Are Good For Managers
AgileThought
 
PDF
Drupal Recipes: Building Image Galleries with jQuery and Flickr
Ben Shell
 
PDF
2023 - Drupalcon - How Drupal builds your pages
sparkfabrik
 
PDF
Drupalcon 2023 - How Drupal builds your pages.pdf
Luca Lusso
 
PPTX
Beyond DOMReady: Ultra High-Performance Javascript
aglemann
 
PDF
Using Backbone.js with Drupal 7 and 8
Ovadiah Myrgorod
 
PDF
Django Vs Rails
Sérgio Santos
 
PDF
jQuery UI Widgets, Drag and Drop, Drupal 7 Javascript
Darren Mothersele
 
PPTX
Валентин Мацвейко та Владислав Мойсеєнко — D8: Migrate Yourself: code->module...
LEDC 2016
 
PPTX
Migrate yourself. code -> module -> mind
Valentine Matsveiko
 
PDF
Intro To Mvc Development In Php
funkatron
 
PDF
Drupal 8, Where Did the Code Go? From Info Hook to Plugin
Acquia
 
PDF
Drupal Module Development
ipsitamishra
 
PDF
Drupal Module Development - OSI Days 2010
Siva Epari
 
ZIP
Learning the basics of the Drupal API
Alexandru Badiu
 
PDF
Choosing a Javascript Framework
All Things Open
 
KEY
[Coscup 2012] JavascriptMVC
Alive Kuo
 
Debugging in drupal 8
Allie Jones
 
8 things to know about theming in drupal 8
Logan Farr
 
Drupal 8 simple page: Mi primer proyecto en Drupal 8.
Samuel Solís Fuentes
 
Patterns Are Good For Managers
AgileThought
 
Drupal Recipes: Building Image Galleries with jQuery and Flickr
Ben Shell
 
2023 - Drupalcon - How Drupal builds your pages
sparkfabrik
 
Drupalcon 2023 - How Drupal builds your pages.pdf
Luca Lusso
 
Beyond DOMReady: Ultra High-Performance Javascript
aglemann
 
Using Backbone.js with Drupal 7 and 8
Ovadiah Myrgorod
 
Django Vs Rails
Sérgio Santos
 
jQuery UI Widgets, Drag and Drop, Drupal 7 Javascript
Darren Mothersele
 
Валентин Мацвейко та Владислав Мойсеєнко — D8: Migrate Yourself: code->module...
LEDC 2016
 
Migrate yourself. code -> module -> mind
Valentine Matsveiko
 
Intro To Mvc Development In Php
funkatron
 
Drupal 8, Where Did the Code Go? From Info Hook to Plugin
Acquia
 
Drupal Module Development
ipsitamishra
 
Drupal Module Development - OSI Days 2010
Siva Epari
 
Learning the basics of the Drupal API
Alexandru Badiu
 
Choosing a Javascript Framework
All Things Open
 
[Coscup 2012] JavascriptMVC
Alive Kuo
 
Ad

More from Jeff Eaton (18)

PDF
This Is not a Place of Honor
Jeff Eaton
 
PDF
An API Won't Fix Your Content Problem
Jeff Eaton
 
PDF
Hello, {{FIRSTNAME}}, My Old Friend
Jeff Eaton
 
PDF
Maps, Models, and Teams
Jeff Eaton
 
PDF
Collaborative Content Modeling
Jeff Eaton
 
PDF
Adventures in Drupal 8
Jeff Eaton
 
PDF
Modeling Rich Narrative Content
Jeff Eaton
 
PDF
Battle for the Body Field (DrupalCon)
Jeff Eaton
 
PDF
The Battle For The Body Field
Jeff Eaton
 
PDF
Workflow That Works Under Pressure
Jeff Eaton
 
PDF
Planning Beyond the Page
Jeff Eaton
 
PDF
Building Your Agency's Content Strategy Practice
Jeff Eaton
 
PDF
Prepare for the Mobilacalypse
Jeff Eaton
 
ZIP
Building Apis That Rock
Jeff Eaton
 
ZIP
Building Twitter in Drupal
Jeff Eaton
 
PDF
O'Reilly Drupal Webcast
Jeff Eaton
 
PDF
The Future of Nodes
Jeff Eaton
 
PDF
Form API 3
Jeff Eaton
 
This Is not a Place of Honor
Jeff Eaton
 
An API Won't Fix Your Content Problem
Jeff Eaton
 
Hello, {{FIRSTNAME}}, My Old Friend
Jeff Eaton
 
Maps, Models, and Teams
Jeff Eaton
 
Collaborative Content Modeling
Jeff Eaton
 
Adventures in Drupal 8
Jeff Eaton
 
Modeling Rich Narrative Content
Jeff Eaton
 
Battle for the Body Field (DrupalCon)
Jeff Eaton
 
The Battle For The Body Field
Jeff Eaton
 
Workflow That Works Under Pressure
Jeff Eaton
 
Planning Beyond the Page
Jeff Eaton
 
Building Your Agency's Content Strategy Practice
Jeff Eaton
 
Prepare for the Mobilacalypse
Jeff Eaton
 
Building Apis That Rock
Jeff Eaton
 
Building Twitter in Drupal
Jeff Eaton
 
O'Reilly Drupal Webcast
Jeff Eaton
 
The Future of Nodes
Jeff Eaton
 
Form API 3
Jeff Eaton
 
Ad

Recently uploaded (20)

PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PPTX
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
PDF
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PPTX
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
Alexandra N. Martinez
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
PDF
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
PDF
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
PDF
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
PPT
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
PDF
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
Alexandra N. Martinez
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 

Editor's Notes

  • #5: Core - bootstrap, route incoming page requests to modules Modules - Build page content and respond to events Many third-party modules, some build on top of other modules Theme - Turn data from modules into HTML. We’ll be concentrating on the module side of things today.
  • #6: Core - bootstrap, route incoming page requests to modules Modules - Build page content and respond to events Many third-party modules, some build on top of other modules Theme - Turn data from modules into HTML. We’ll be concentrating on the module side of things today.
  • #7: Core - bootstrap, route incoming page requests to modules Modules - Build page content and respond to events Many third-party modules, some build on top of other modules Theme - Turn data from modules into HTML. We’ll be concentrating on the module side of things today.
  • #8: Core - bootstrap, route incoming page requests to modules Modules - Build page content and respond to events Many third-party modules, some build on top of other modules Theme - Turn data from modules into HTML. We’ll be concentrating on the module side of things today.
  • #9: Core - bootstrap, route incoming page requests to modules Modules - Build page content and respond to events Many third-party modules, some build on top of other modules Theme - Turn data from modules into HTML. We’ll be concentrating on the module side of things today.
  • #10: Core - bootstrap, route incoming page requests to modules Modules - Build page content and respond to events Many third-party modules, some build on top of other modules Theme - Turn data from modules into HTML. We’ll be concentrating on the module side of things today.
  • #11: Core - bootstrap, route incoming page requests to modules Modules - Build page content and respond to events Many third-party modules, some build on top of other modules Theme - Turn data from modules into HTML. We’ll be concentrating on the module side of things today.
  • #12: Core - bootstrap, route incoming page requests to modules Modules - Build page content and respond to events Many third-party modules, some build on top of other modules Theme - Turn data from modules into HTML. We’ll be concentrating on the module side of things today.
  • #13: Core - bootstrap, route incoming page requests to modules Modules - Build page content and respond to events Many third-party modules, some build on top of other modules Theme - Turn data from modules into HTML. We’ll be concentrating on the module side of things today.
  • #14: This is a module. Two files, A few lines of code. In Drupal, that’s all you need to customize the behavior of the system and add new functionality.
  • #15: A little more complicated. Shorter function, has an .install file.
  • #16: This is a module, too. Views, one of Drupal’s most popular, contains over 400 files, over a meg of code and inline docs. Don’t worry, there’s a middle ground. We’re going to cover what they have in common.
  • #17: This is a module, too. Views, one of Drupal’s most popular, contains over 400 files, over a meg of code and inline docs. Don’t worry, there’s a middle ground. We’re going to cover what they have in common.
  • #19: Part 1: user with a web browser makes a request. sends a URL, optionally a cookie. http://www.mysite.com/articles/welcome.html
  • #20: Apache intercepts the request. Possibly routes it to other servers What folder should I look in for foo.com? Normally, it would then check /articles for a welcome.html file and send it back. .htaccess turns foo.com/blah into foo.com/index.php?q=blah ...And PHP takes over.
  • #21: Apache intercepts the request. Possibly routes it to other servers What folder should I look in for foo.com? Normally, it would then check /articles for a welcome.html file and send it back. .htaccess turns foo.com/blah into foo.com/index.php?q=blah ...And PHP takes over.
  • #22: Apache intercepts the request. Possibly routes it to other servers What folder should I look in for foo.com? Normally, it would then check /articles for a welcome.html file and send it back. .htaccess turns foo.com/blah into foo.com/index.php?q=blah ...And PHP takes over.
  • #23: Apache intercepts the request. Possibly routes it to other servers What folder should I look in for foo.com? Normally, it would then check /articles for a welcome.html file and send it back. .htaccess turns foo.com/blah into foo.com/index.php?q=blah ...And PHP takes over.
  • #24: Bootstrap All page requests go through index.php (front-side controller) Bootstrap Drupal core, load essential includes What site am I running? connect to database Is there a cookie? Load the user. Now, ask for menu items...
  • #25: Bootstrap All page requests go through index.php (front-side controller) Bootstrap Drupal core, load essential includes What site am I running? connect to database Is there a cookie? Load the user. Now, ask for menu items...
  • #26: Bootstrap All page requests go through index.php (front-side controller) Bootstrap Drupal core, load essential includes What site am I running? connect to database Is there a cookie? Load the user. Now, ask for menu items...
  • #27: Bootstrap All page requests go through index.php (front-side controller) Bootstrap Drupal core, load essential includes What site am I running? connect to database Is there a cookie? Load the user. Now, ask for menu items...
  • #28: Bootstrap All page requests go through index.php (front-side controller) Bootstrap Drupal core, load essential includes What site am I running? connect to database Is there a cookie? Load the user. Now, ask for menu items...
  • #29: The module Why, yes! Here’s a list of all the URLs I can handle. Explain each line. See api.drupal.org This is called a hook. We’ll get to this later.
  • #30: The module Why, yes! Here’s a list of all the URLs I can handle. Explain each line. See api.drupal.org This is called a hook. We’ll get to this later.
  • #31: Traffic Cop Is welcome.html an SEO-friendly alias? (about/welcome vs. welcome.html) Find the best match. (about) Run access checks. Call the function, passing along unused pieces of the path
  • #32: Grunt work Module’s function gets called. Extra params passed along. That’s how node module works -- ‘node’ plus a wildcard Can do anything now: print out JSON and exit(), etc. To build a normal page, build HTML and return it.
  • #33: Grunt work Module’s function gets called. Extra params passed along. That’s how node module works -- ‘node’ plus a wildcard Can do anything now: print out JSON and exit(), etc. To build a normal page, build HTML and return it.
  • #34: Presentation Checks for 404, 403, and empty page. index.php now has the contents of the page. theme(‘page’, $content) Sidebar blocks get loaded, the theme system is given a chance to add CSS and JS, etc.
  • #35: Presentation Checks for 404, 403, and empty page. index.php now has the contents of the page. theme(‘page’, $content) Sidebar blocks get loaded, the theme system is given a chance to add CSS and JS, etc.
  • #36: Presentation Checks for 404, 403, and empty page. index.php now has the contents of the page. theme(‘page’, $content) Sidebar blocks get loaded, the theme system is given a chance to add CSS and JS, etc.
  • #37: Oh, look. Welcome.html! Apache gets back the fully rendered HTML. Sweet. Document gets fired back to the user. The user’s browser renders it -- and they click on the next link and the process starts all over again.
  • #38: Important detail: when drupal asked about menus and modules responded, we saw a hook. hooks are everywhere: when pieces of content load, when a db query is run, when a user logs in&#x2026; that&#x2019;s a drupal event. module_invoke_all(&#x2018;hook&#x2019;) => for modules()&#x2026; <name>_menu() Modules can create their own hooks just by calling module_invoke_all()
  • #39: As a Drupal page is built, events are firing nonstop.
  • #40: As a Drupal page is built, events are firing nonstop.
  • #41: As a Drupal page is built, events are firing nonstop.
  • #42: As a Drupal page is built, events are firing nonstop.
  • #43: As a Drupal page is built, events are firing nonstop.
  • #44: As a Drupal page is built, events are firing nonstop.
  • #45: As a Drupal page is built, events are firing nonstop.
  • #46: As a Drupal page is built, events are firing nonstop.
  • #47: As a Drupal page is built, events are firing nonstop.
  • #54: Hooks can announce what&#x2019;s going on Allow modules to answer questions Allow modules to extend functionality Allow modules to change existing workflows
  • #55: Hooks can announce what&#x2019;s going on Allow modules to answer questions Allow modules to extend functionality Allow modules to change existing workflows
  • #56: Hooks can announce what&#x2019;s going on Allow modules to answer questions Allow modules to extend functionality Allow modules to change existing workflows
  • #57: Hooks can announce what&#x2019;s going on Allow modules to answer questions Allow modules to extend functionality Allow modules to change existing workflows
  • #58: Hooks can announce what&#x2019;s going on Allow modules to answer questions Allow modules to extend functionality Allow modules to change existing workflows
  • #59: What does &#x201C;hacking core&#x201D; mean? Why is it bad?
  • #60: What does &#x201C;hacking core&#x201D; mean? Why is it bad?