SlideShare a Scribd company logo
1 of 98
Download to read offline
Drupal as a
Programmer-Friendly
        CMS
     Suzanne Kennedy
        Co-founder 
       @evolvingweb
About Me
   • Drupal consulting,
     development, and
     training
   • Help organizations
     build awesome
     Drupal sites + apps
   • Specialize in
     multilingual Drupal
     and Apache Solr
What Can You Build
  with Drupal?
Build an Engagement Platform
Publish Lots of Content
Multilingual Content
Flexible Content Architecture
Flexible Theme Layer
Fancy Search UI
Intranets
Web Applications
Drupal as a CMS
Nodes
Nodes are basic content building blocks
Content Types
Nodes can have different fields + settings

   Event               Blog Post
   •   Date           • Author + Date
   •   Location         Published
   •   Description    • Body Text
   •   Signup List    • Comments
Node Settings
Fields
Revisions
Taxonomy
Taxonomy

Vocabulary

Terms

Child Terms
Taxonomy + Fields
Menus
Roles
Permissions
Blocks
Themes
Modules
Specific Modules
API-Style Modules




Voting API   Rules
API-Style Modules




      Flag API
Custom Modules
Custom > Contrib
Administrative UI
Multilingual




Content Translation   UI Translation
Multilingual
Drupal as a
Framework
Content
Architecture
Entity Type



Bundles



Entities
Entity Types
Entity types are classes that define content
Content          Users           Taxonomy      Comments
Content title       D. Schrute
                                  adventure               Wow, can't
                    Germany                     city breakwait to get
                                               dwight
                                  city break   8 Sept    started.
                    J. Halpert
                    Spain         sailing
                                                  joe    Me too!
                                  shopping     8 Sept
Custom Entity Types
 You can define custom entity types
Entity API
CRUD for Entities




    Editing a       Editing a Node
Department Entity
Custom Fields
Custom Form Widgets
Custom Formatters
Views
Lists of Content
Defining Lists
Contextual Filters
External Data
   Sources
Custom Table
            Query




Custom Activity Table   Activity Stream View
Features
Configuration = Messy


         Text




        Illustration: drupal.org/node/580026
Bundles of Config


             Features

             Contrib

             Core
Features
Components
Exportables
• Content Types   • WYSIWYG Profiles
• Fields          • Configuration
• Menus           • Rules
• Taxonomy        • Flags Logic
• Views           • Roles
• Image Styles    • Permissions
Configuration > Code




Views Configuration
                     Views in Code
Benefits of Features

• Stability of the site
• Version control
• Better development workflow
• Distribute to other sites
Distributions
                      OpenPublish
                Commons
   Conference (COD)
How Does Drupal
    Work?
Serving a Request
Drupal Bootstrap
         The steps that
         Drupal
         bootstrap
         carries out
         when a page
         request is
         called.
Drupal Menu System
How does Drupal know what to render?
Drupal Hook System
How hooks are
        implemented
Any module can implement a hook as follows:

 function <module_name>_<hook_name>(args) {
   //possibly alter an argument
   //possibly return something
 }
Example: hook_init()
/**
  * Implementation of hook_init()
  *
  * Do stuff on the front page
  */
function my_module_init() {
    if (drupal_is_front_page()) {
      drupal_set_message('Front page message!');
    }
}
Alter Hooks
• Modify data generated in other
  modules before it gets rendered
• Examples:
    •   hook_form_alter()
    •   hook_mail_alter()
    •   hook_menu_alter()
    •   hook_menu_link_alter()
Form API - benefits
• No more HTML generation!
• Data validation
• Security checks, caching
• Code reuse (custom elements, form
  altering)
• AJAX
Without it...
Defining form
        structure
• Structured arrays
  define all settings
  and attributes
• All standard
  HTML input
  elements
  available
Defining form
         structure
• Array keys
  starting with '#'
  are specific
  form api
  attributes
• All others are
  child form
  elements
Required Select Box
Multiselect with default
Submission
• Simple '#type' =>
  'submit' element
• Submit buttons can
  have their own
  submit function,
  allowing different
  buttons to do
  different things in a
  simple way.
Drupal Theme System




1. Load the Theme   2. Preprocess the HTML   3. Display Templates
Things Developers
       Like
Drush
Coding Standards
http://drupal.org/coding-standards
Devel
Services Module
     Hello!              Hello!


iPad, iPhone Apps    Desktop Applications




       Hello!




  Android Apps        Other Drupal Sites
Other Things
   Developers Like
• Database Abstraction
• Caching
• Unit Testing (Simple Test)
• Renderable Arrays
• Multisite
Drupal.org for
 Developers
Projects on Drupal.org
Drupal.org Issue Queue
Git Integration
Security Team
Documentation
More Reasons to
  Use Drupal
Drupal is in Demand!
Drupal is Open Source!
Drupal Community
We’re Hiring
          Developers
          Sysadmins
          Project Managers


evolvingweb.ca/careers
Drupal Training
          Drupal for Developers
          March 30th

          Drupal Layout &
          Theming
          May 24-25th

evolvingweb.ca/training
Thank You!
 Suzanne Kennedy
   @evolvingweb

More Related Content

Similar to Drupal as a Programmer-Friendly CMS at ConFoo

Android application development
Android application developmentAndroid application development
Android application development
Linh Vi Tường
 
Drupal overview-training
Drupal overview-trainingDrupal overview-training
Drupal overview-training
Sam Davis
 
Intro to Features Module on Drupal
Intro to Features Module on DrupalIntro to Features Module on Drupal
Intro to Features Module on Drupal
Aidan Foster
 
Introduction To Drupal
Introduction To DrupalIntroduction To Drupal
Introduction To Drupal
Lauren Roth
 

Similar to Drupal as a Programmer-Friendly CMS at ConFoo (20)

Drupal Skils Lab 302Labs
Drupal Skils Lab 302Labs Drupal Skils Lab 302Labs
Drupal Skils Lab 302Labs
 
Online Drupal Training Syllabus
Online Drupal Training SyllabusOnline Drupal Training Syllabus
Online Drupal Training Syllabus
 
72d5drupal
72d5drupal72d5drupal
72d5drupal
 
Android development course in pune ppt.
Android development course in pune ppt.Android development course in pune ppt.
Android development course in pune ppt.
 
October 2014 - USG Rock Eagle - Drupal 101
October 2014 - USG Rock Eagle - Drupal 101October 2014 - USG Rock Eagle - Drupal 101
October 2014 - USG Rock Eagle - Drupal 101
 
Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8
 
Drupal In 1 Hour
Drupal In 1 HourDrupal In 1 Hour
Drupal In 1 Hour
 
Things Made Easy: One Click CMS Integration with Solr & Drupal
Things Made Easy: One Click CMS Integration with Solr & DrupalThings Made Easy: One Click CMS Integration with Solr & Drupal
Things Made Easy: One Click CMS Integration with Solr & Drupal
 
Android application development
Android application developmentAndroid application development
Android application development
 
Python - A Comprehensive Programming Language
Python - A Comprehensive Programming LanguagePython - A Comprehensive Programming Language
Python - A Comprehensive Programming Language
 
Drupal overview-training
Drupal overview-trainingDrupal overview-training
Drupal overview-training
 
Intro to Features Module on Drupal
Intro to Features Module on DrupalIntro to Features Module on Drupal
Intro to Features Module on Drupal
 
Introduction To Drupal
Introduction To DrupalIntroduction To Drupal
Introduction To Drupal
 
Drupal intro
Drupal introDrupal intro
Drupal intro
 
Drupal -Introduction to Drupal
Drupal -Introduction to DrupalDrupal -Introduction to Drupal
Drupal -Introduction to Drupal
 
Lecture3
Lecture3Lecture3
Lecture3
 
Drupal intro
Drupal introDrupal intro
Drupal intro
 
Overview Of Drupal
Overview Of DrupalOverview Of Drupal
Overview Of Drupal
 
Overview Of Drupal
Overview Of DrupalOverview Of Drupal
Overview Of Drupal
 
Ramp Up Your Web Experiences Using Drupal and Apache Solr
Ramp Up Your Web Experiences Using Drupal and Apache SolrRamp Up Your Web Experiences Using Drupal and Apache Solr
Ramp Up Your Web Experiences Using Drupal and Apache Solr
 

More from Suzanne Dergacheva

10 New Things You Can Do with Drupal 8 Out-of-the-Box
10 New Things You Can Do with Drupal 8 Out-of-the-Box10 New Things You Can Do with Drupal 8 Out-of-the-Box
10 New Things You Can Do with Drupal 8 Out-of-the-Box
Suzanne Dergacheva
 

More from Suzanne Dergacheva (20)

It's All About the Experience: What I’ve learnt from talking to thousands of ...
It's All About the Experience: What I’ve learnt from talking to thousands of ...It's All About the Experience: What I’ve learnt from talking to thousands of ...
It's All About the Experience: What I’ve learnt from talking to thousands of ...
 
Building a Great User Experience for Content Editors in Drupal 8
Building a Great User Experience for Content Editors in Drupal 8Building a Great User Experience for Content Editors in Drupal 8
Building a Great User Experience for Content Editors in Drupal 8
 
Dipping Your Toe into Drupal 8 Module Development
Dipping Your Toe into Drupal 8 Module DevelopmentDipping Your Toe into Drupal 8 Module Development
Dipping Your Toe into Drupal 8 Module Development
 
Device-Agnostic Content Strategy for Drupal
Device-Agnostic Content Strategy for DrupalDevice-Agnostic Content Strategy for Drupal
Device-Agnostic Content Strategy for Drupal
 
Creating a Reusable Drupal Website for Higher Education - Webinar
Creating a Reusable Drupal Website for Higher Education - WebinarCreating a Reusable Drupal Website for Higher Education - Webinar
Creating a Reusable Drupal Website for Higher Education - Webinar
 
Creating a Reusable Drupal Website for Higher Education - at USG Tech Day
Creating a Reusable Drupal Website for Higher Education - at USG Tech DayCreating a Reusable Drupal Website for Higher Education - at USG Tech Day
Creating a Reusable Drupal Website for Higher Education - at USG Tech Day
 
Creating Landing Pages and Layouts for Drupal 8 - DrupalCon Baltimore
Creating Landing Pages and Layouts for Drupal 8 - DrupalCon BaltimoreCreating Landing Pages and Layouts for Drupal 8 - DrupalCon Baltimore
Creating Landing Pages and Layouts for Drupal 8 - DrupalCon Baltimore
 
What is Drupal? And Why is it Useful? Webinar
What is Drupal? And Why is it Useful? WebinarWhat is Drupal? And Why is it Useful? Webinar
What is Drupal? And Why is it Useful? Webinar
 
Creating Layouts and Landing Pages for Drupal 8 - DrupalCon Dublin
Creating Layouts and Landing Pages for Drupal 8 - DrupalCon DublinCreating Layouts and Landing Pages for Drupal 8 - DrupalCon Dublin
Creating Layouts and Landing Pages for Drupal 8 - DrupalCon Dublin
 
What is Drupal? An Introduction to Drupal 8
What is Drupal? An Introduction to Drupal 8What is Drupal? An Introduction to Drupal 8
What is Drupal? An Introduction to Drupal 8
 
Using Core Themes in Drupal 8
Using Core Themes in Drupal 8Using Core Themes in Drupal 8
Using Core Themes in Drupal 8
 
Minimalist Theming: How to Build a Lean, Mean Drupal 8 Theme
Minimalist Theming: How to Build a Lean, Mean Drupal 8 ThemeMinimalist Theming: How to Build a Lean, Mean Drupal 8 Theme
Minimalist Theming: How to Build a Lean, Mean Drupal 8 Theme
 
Upgrading to Drupal 8: Benefits and Gotchas
Upgrading to Drupal 8: Benefits and GotchasUpgrading to Drupal 8: Benefits and Gotchas
Upgrading to Drupal 8: Benefits and Gotchas
 
Migrate for Site Builders from MidCamp 2016
Migrate for Site Builders from MidCamp 2016Migrate for Site Builders from MidCamp 2016
Migrate for Site Builders from MidCamp 2016
 
The Wonderful World of Drupal 8 Multilingual
The Wonderful World of Drupal 8 MultilingualThe Wonderful World of Drupal 8 Multilingual
The Wonderful World of Drupal 8 Multilingual
 
Creating a Drupal Install Profile for a Large Organization
Creating a Drupal Install Profile for a Large OrganizationCreating a Drupal Install Profile for a Large Organization
Creating a Drupal Install Profile for a Large Organization
 
Intro to Drupal Migrate for Site Builders
Intro to Drupal Migrate for Site BuildersIntro to Drupal Migrate for Site Builders
Intro to Drupal Migrate for Site Builders
 
Drupal migrate-june2015
Drupal migrate-june2015Drupal migrate-june2015
Drupal migrate-june2015
 
10 New Things You Can Do with Drupal 8 Out-of-the-Box
10 New Things You Can Do with Drupal 8 Out-of-the-Box10 New Things You Can Do with Drupal 8 Out-of-the-Box
10 New Things You Can Do with Drupal 8 Out-of-the-Box
 
Creating Dynamic Landing Pages for Drupal with Panels - Webinar
Creating Dynamic Landing Pages for Drupal with Panels - WebinarCreating Dynamic Landing Pages for Drupal with Panels - Webinar
Creating Dynamic Landing Pages for Drupal with Panels - Webinar
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 

Drupal as a Programmer-Friendly CMS at ConFoo