Send the link below via email or IMCopy
Present to your audienceStart 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
Drupal Framework presentation
Transcript of Drupal Framework presentation
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
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 / ...
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)
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