Loading presentation...

Present Remotely

Send the link below via email or IM


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.


Drupal Framework presentation

Created for the DSBW Class 2010-2011 UPC

Nick Veenhof

on 11 September 2011

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Drupal Framework presentation

Adam, Jose, Nick DSBW 2010 Drupal Inside Technology Stack Framework internals Node API Form API Hooks / Modifications Jquery / Ajax Theming Layer Demo Time! Node
Content Construction Kit
Context/features Drupal CMS - CMF - PAC - MVC - WTF - ... Messy code! Or easy to start?
So why not classes? node_prepare($node, $teaser = FALSE)
node_load($param = array(), $revision = NULL, $reset = NULL)
node_view($node, $teaser = FALSE, $page = FALSE, $links = TRUE)
hook_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL)
+ access operations / ACL http://api.drupal.org/api/drupal/developer--topics--forms_api_reference.html/6 hook_block
... Let's try it out! Introduction Introduction : http://bit.ly/1oWZj Software Features Don't invent the wheel again
Manage content with an easy-to-use web interface.
great options for new user accounts and granular user permissions.
presentation layer allows designers to create highly usable, interactive experiences that engage users and increase traffic with possibility of using an existing drupal theme.

Set of related information which makes Drupal very flexible

Each item can be handled in a standard way by both Drupal core and contributed modules

Module responsible for content

The Drupal flow Drupal distribution = Drupal Core + Contrib Modules + Contrib themes + Installation profiles Objects

In case of node and users, the data structure is defined by a database table instead of a class. Drupal exploits the relational nature of its supported databases to allow other modules to extend the objects with additional data fields.

Modules and themes are object-like as well, filling the "controller" role in many ways. Each module is a source file, but also bundles together related functions and follows a pattern of defining Drupal hooks. Abstraction

Drupal's hook system is the basis for its interface abstraction. If a module implements a hook, it enters into a contract to perform a particular task or return a particular type of information when the hook is invoked. Encapsulation

Like most other object-oriented systems, Drupal does not have a way of strictly limiting access to an object's inner workings, but rather relies on convention to accomplish this. Polymorphism

Nodes are polymorphic in the classical sense. If a module needs to display a node, for example, it can call node_build() on that node, followed by drupal_render(), to get an HTML representation. The actual rendering, though, will depend on which type of node is passed to the function; Inheritance

Modules and themes can also be thought of as classes that inherit their behavior from an abstract base class Patterns

Singleton (module)
Decorator (node)
Observer (hooks)
Bridge (DB)
Chain of Responsibility (menu)
(hooks, but a module chooses which one) Modules is drupal’s way of implementing a new functionality and plugging it into existing drupal system.

Modules can :
Access DB, Create tables, delete them, insert, update etc.
Enforce Access Control and plug into existing ACL's
Define how things should look to your users.
Interact with other modules.
File Structure Widely Used Contributed Modules:

Views: This tool is essentially a smart query builder that, given enough information, can build the proper query, execute it, and display the results.   
Content Construction Kit (CCK): allows you to add custom fields to any of the content types using a web interface.
Context/features: allows you to export your configurations to a module Nodes: heart of Drupal's design Example of Hooks Who is using? BestBuy.com -- company intranet, on Drupal, gives every employee a page, blog, and training path (http://www.bestbuymobile.com/) http://www.rafaelnadal.com Sony Music websites The South African Government for Fifa World Cup 2010 Whitehouse.com
Playboy.de Community Features

Bi-annual kick-ass conference (Drupalcon)
Drupalcamps / Drupaljams / Drupaldinners / ...
Planet Drupal
Chat (IRC)
Mailing Lists
Huge amount of national communities around drupal.org offering language-specific support
Over 1 million user accounts and more than 2,000 developer accounts
Offered in 80 languages
Drupal.upc.edu & drupal.cat UI functionality Blocks (core)
fields (cck)
view (views)
rss (core)
multilanguage (i18n)
clean urls (pathauto)
image presets (imagecache)
Fast Prototyping! Software features More than 6000 modules
Never touch the core, everything via add-on modules
Everybody can contribute modules for others to use
Security team security advisories
+18000 unit/functional tests with an continuous integration testbot
Full transcript