drupal recipe
DESCRIPTION
Featuring its hightlights, main uses and basic componentsTRANSCRIPT
"
Drupal Community Plumbing !
Lisbon, 27th May 2010 Hernâni Borges de Freitas
Ok, I want a web app !
Common difficulties: From the ground - Hard to build and maintain an app from zero.
From the top - Hard to customize features, look & feel and specially small details.
Reiventing the wheel - Need to rewrite code/UI between all your projects, usually with worst results than using something done before.
Rock solid – But hard to maintain and to change when you or your client needs.
Alone in the dark – when problems occurs hard to understand the problem and correct the problem.
Traditional Receipt
Use a Framework Define your models, actions and
controllers and mix up: RubyOnRails, CakePhp, CodeIgniter,
Symfony, Zend Framework, Django,etc....
Use a CMS Features and UI already defined:
Joomla, WordPress, SharePoint, Ez Publish, etc..
Drupal !
CMF - Content Management Framework
CMS Highlights
Shipped in Drupal core you get: Easy content creation, versioning and categorization
User & Roles Management
Navigation configuration
Look&Feel customization
MultiSite/MultiLanguage
Reporting
Caching
Routing
Framework
Core can be expanded through hooks.
Aspect Oriented Programming.
Hooks are available on main functions Content creation, user register and login,
url routing,
Modules can define its own hooks.
All content should be themable and translable.
Evolution
Started as university project by Dries Buytaert in 2000 in Antwerp.
Actually runs 1% of the web !
Developers 800 contributors to core 5000 modules provide almost any feature. 3000 developers in last drupalcon SF Several distributions, based in drupal.
Rockstars !
Entreprises (Inside/Outside the fw)
Government Entities
Media
Universities
Personal / Comunnities Sites
Freelancers / Web Companies
Governments
Enterprises
Media
Culture
Universities
Even them !!
Represent Information !
Everything is reduced to a node
Node has basically Type
Title
Body
Fields
Revisions
CCK - Model it !
Every node type can be seen as a domain class, having attributes (fields).
Fields can have different types (text, numeric, links, references, media, location coordinates).
Fields edited by different widgets (drop-down, textfields, media browsers, maps..)
Fields can be shared between node types, related with other fields and its display can be customized.
Views – Filter and show it !
Select which entities you want to show.
Select how do you want to show it (table, list, grid, xml/json/rss output ?)
Select which fields you want to show.
Select how do you want to filter entities (type, attributes, terms).
Powerful query builder for all your information.
Blocks & Panels - Organize it !
Modules can define blocks.
Each block can be deployed in different regions, pages and to different users.
Panels allows you to drag and drop content in your page.
Almost any content can be dragged anywhere.
Hooks - Extend it !
Extension available by defining new modules which implement certain hooks.
Modules inside /sites/all/modules or /sites/default/modules
Common hooks hook_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL)
hook_user($op, &$edit, &$account, $category = NULL)
Hook_menu
Hook_block
Hook_perm
Hook_install
Module – Just use it !
Popular Modules CCK and derived (Filefield, Date, Embedded media fields,
Location)
Wysiwyg
Views (Gmap views, Calendar, RSS/XML output).
ImageApi/ImageCache
Notifications
Pathauto
Workflow & Rules
Auth Modules (LDAP, Fb/Twitter Connect)
Solr Search
Languages - Translate it !
Drupal core and modules can be translated to different languages
When showing text from T(‘text’) or l(‘text’) - verify if there is an available translation to
current language.
Content can be translated using different versions for the same content.
Structure can be translated.
Core is translated to 40+ languages.
Themes - Beautify it !
Several template systems available, PHPtemplate most popular.
All content should be outputed through theme () functions.
Theme functions look to templates suggestions in functions or template files.
Themes and modules can override module output by redefining these functions.
Currently around 900 themes available.
HELP ? – Get it !
Drupal.org Check if any module/path/code snippet provides the solution
Don’t be afraid. Really helpfull community!
Drupalmodules.com
Themegarden.org
Books
Drupal em pt http://groups.drupal.org/portugal
http://groups.google.com/group/drupal-portugal/
Questions ?