Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Drupal High Level Architecture - comprehensive

A high level overview of Drupal architecture and concepts. Drupal is very user friendly, it's just very picky about its friends.
by

Jason Smith

on 6 May 2015

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Drupal High Level Architecture - comprehensive

A high level overview
Drupal Architecture
Obligatory Block Diagram
Entities
Basic "content" wrappers
Template architecture
Filesystem
User
Taxonomy
Entity types
Bundles
Fields
Covered the basics
index.php
menu system
delivery callback
drupal_render_page()
theme()
*.tpl.php
Template files
html.tpl.php
page.tpl.php
region.tpl.php
block.tpl.php
field.tpl.php
Bootstraps required base library
Pulls in variable store
Check router table for
access restrictions for url
"magic" context
delivery callback function
build argument array
build structure array (render array)
walk render array
determine responsible theme functions
prioritize and organize structure
Template files are called by individual theme functions
Generate HTML/output from render array fragment
May (and often does) contain logic
May (and often does) call template file
Hooks
"events"
hook_menu()
mymodule_menu()
views_menu()
...
"There's a hook for that"
hook_form_alter()
/user/login
mymodule.module
mymodule_form_alter($f,$fs,$id)
_mymodule_theme_field($f)
Entities
Hooks (events)
Theme functions
Template files
API conventions
Questions?
Node
Byline
Epilogue
Article
Title
Body
Pro Drupal 7 Development
John K. VanDyk, Matt Westgate
module_invoke_all('form_alter', 'user_login',$formstuff);
Generate render array
drupal_get_form('user_login');
drupal_render($form);
call field theme function
HTML
Form API
Javascript API
What is Drupal
About Mediacurrent
Custom websites
Proven Processes


We help organizations architect custom websites by leveraging our proven processes and deep expertise in Drupal.
ADUG
Drupalcamp Atlanta
Atlanta Drupal Business Summit
Over 1.7 Million Websites Use
Drupal
McDonalds vs Ruth's Chris
Free and Open Source Content Management Framework/System
Drupal Permissions, Roles & Users
Keeping honest people honest
Authenticated
Admin (uid 1)
Anonymous
[User defined roles]
Editor
Contributor
Edit/Update
Create
Delete
Publish
Admin 1
Admin 2
Admin 3
Legal 1
Editor 1
Editor 2
Contributor 1
Contributor 2
Contributor 3
Admin 1
Admin 2
Admin 3
Legal 1
Editor 1
Editor 2
Contributor 1
Contributor 2
Contributor 3
Edit/Update
Create
Delete
Publish
Users

Permissions

Roles
Admin 1
Admin 2
Admin 3
Legal 1
Editor 1
Editor 2
Contributor 1
Contributor 2
Contributor 3
}
}
}
Admins
Legal
Editors
Contributors
Anonymous
Authenticated User
[Admin]
Drupal provided roles
Admin
Anon
Drupal Security
35 team members (Chris Hales)
Regularly publish security advisories
Proof: www.whitehouse.gov
http://drupalsecurityreport.org
Who is Using Drupal
But more sites are using Wordpress
What About Joomla?
Extensibility
Drupal - lego
Common standardized interfaces
Conventions for data exchange
Huge inventory of "bricks" (>20k)
Wordpress - Toybox
Modules operate largely independently of others*
Some require payment, and are therefore less vetted.
Rails/Groovy
Django
Joomla
Wordpress
Drupal
CakePHP
CodeIgniter
Framework
Product
End user complexity
Where is your supporting data
Framework vs Product
Framework
Product
High flexibility
Rapid Development
A coordinated balance of a powerful framework, with comprehensive distributions providing the most commonly needed use cases.
Manager
Separation of Responsibilities
Layout / Code / Content / Design
Abstractions are a Big Plus
Framework Drupal Proprietary
Data
Presentation

Developer
Theming/
Design

Layout
Designer
Designer
Vendor
Developer
Themer
Vendor
New
Functionality

Developer
Developer
Vendor
Architect
Vendor
Powerful Tools
- brings layout and presentation control to architects.
- brings data aggregation/curation to architects
- Allows independent parallel site development
- Manages configuration deployment and reuse.
- command line provisioning, configuration and management
Panels
Views
Theming
Features
Drush
More roles
Why do we care?
More parallel pipelines
Lower impact of bottlenecks
Simpler scope partitioning
Full transcript