• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Drupal Module Development - OSI Days 2010
 

Drupal Module Development - OSI Days 2010

on

  • 3,657 views

Giving a overview of Drupal API and building a drupal module from scratch. Also

Giving a overview of Drupal API and building a drupal module from scratch. Also

Statistics

Views

Total Views
3,657
Views on SlideShare
3,632
Embed Views
25

Actions

Likes
1
Downloads
85
Comments
0

3 Embeds 25

http://drupalhyderabad.com 20
http://www.linkedin.com 4
https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Drupal Module Development - OSI Days 2010 Drupal Module Development - OSI Days 2010 Presentation Transcript

    • Module Development Ipsita Mishra Siva Kumar Epari http://melity.com
    • About Us ●Ipsita Mishra ✔4 years of Drupal experience ✔Tech lead ✔Webadmin & Core member of Drupal Hyderabad ●Siva Kumar Epari ✔2 years of Drupal experience ✔Drupal Developer ✔Webadmin & Core member of Drupal Hyderabad
    • Types of Modules Core Modules Contrib Modules Custom Module
    • Core Modules These are the modules that ships with a Standard Drupal Release. There are Core Optional and Core Required modules. For example: Node User Block System Filter
    • Contrib Modules Over 5800 (as of July 20, 2010) free community- contributed modules, known as contrib modules, are available to alter and extend Drupal's core capabilities and add new features or customize Drupal's behavior and appearance.
    • Popular Contrib Modules These statistics are incomplete; only Drupal websites using the Update Status module are included in the data.
    • Custom Module A Custom module is one which is local to your Drupal Project. It's not yet contributed to the contrib repository.
    • Custom Module(When to write) You need to answer few questions before writing a Custom Module 1. What do you want to achieve by this custom module? 2. Did you search the Contrib Repository to see if a module is already available for that feature? 3. Have you enabled all possible Configurations of the Core & Contrib module to check if they offer you the feature you require? If your answer is, “Yes, I have done enough research and am sure I have to write the code now”, then go ahead ....
    • Custom Module(Why to write) I have 2 reasons to write a Custom module 1. I need a new feature which is not yet available in Drupal, and probably can be contributed as a Contrib Module. 2. I don't want to keep adding additional modules to my site for small tweaks, which I can manage in only one custom module for my website. Don't be too much dependent on Contribs.
    • A simple module directory structure modulename.info modulename modulename.module
    • new.info ; $Id$ name = Module name description = “Module description” modulename.info core = Drupal version (e.g.: 5.x, 6.x) package = Package name ; $Id$ name = Text Captcha description = “Text Captcha” new.info core = 6.x package = Osidays
    • new.module <?php // $Id$ function new_form_alter(&$form, &$form_state, $formid){ if(substr($formid, -9) == 'node_form'){ $form['captcha'] = array( '#type' => 'textfield', '#title' => 'Captcha Question : What is 5 + 3?', ); $form['#validate'][] = '_new_validate'; $form['#submit'][] = '_new_submit'; new.module } } function _new_validate($form, &$form_state){ if($form_state['values']['captcha'] != '8'){ form_set_error('captcha', 'Your Captcha answer is wrong! So you are not a human or you don't know counting :D'); } } function _new_submit($form, &$form_state){ drupal_set_message('You are a human!'); }
    • Download examples module from http://drupal.org/project/examples
    • http://drupal.org/project/examples
    • node_example module
    • hook_node_info()
    • hook_access()
    • hook_perm()
    • hook_perm() Output http://localhost/drupal-6.19/admin/user/permissions
    • hook_form()
    • hook_form() Contd...
    • hook_validate()
    • hook_insert()
    • hook_schema()
    • hook_install() hook_uninstall()
    • hook_update() Preventing SQL injection is easy; db_query provides a way to use parametrized queries. Drupal's database functions replace the sprintf-like placeholders with the properly escaped arguments in order of appearance: %d - integers %f - floats %s - strings, enclose in single quotes %b - binary data, do not enclose in single quotes
    • hook_nodeapi()
    • hook_delete()
    • hook_load()
    • hook_view()
    • hook_theme()
    • Theme function
    • Menu System
    • hook_menu()
    • Menu Item Types "type": A bitmask of flags describing properties of the menu item. Many shortcut bitmasks are provided as constants in menu.inc: * MENU_NORMAL_ITEM: Normal menu items show up in the menu tree and can be moved/hidden by the administrator. * MENU_CALLBACK: Callbacks simply register a path so that the correct function is fired when the URL is accessed. * MENU_SUGGESTED_ITEM: Modules may "suggest" menu items that the administrator may enable. * MENU_LOCAL_TASK: Local tasks are rendered as tabs by default. * MENU_DEFAULT_LOCAL_TASK: Every set of local tasks should provide one "default" task, that links to the same path as its parent when clicked. If the "type" key is omitted, MENU_NORMAL_ITEM is assumed.
    • hook_menu_alter()
    • Drupal Blocks
    • hook_block() A Block represents some auxiliary content along with the primary content of the page.
    • The output is themed comment.module
    • Parameters hook_block($op = 'list', $delta = 0, $edit = array())
    • Operation: list
    • Operation: configure
    • Operation: save
    • Operation: view
    • Developer's Tools ● Drush ● Devel and Devel Themer ● Coder ● Admin Menu
    • DRUpal SHell ● drush dl modulename/themename ● drush en modulename/themename ● drush dis modulename/themename ● drush pm-uninstall modulename/themename ● drush cc Resource: http://drupal.org/files/drush-cheat-sheet.pdf
    • Devel ● Devel: Helper functions for Drupal developers. ● Generate content: Accelerate development of your site or module by quickly generating nodes, comments, terms, users, and more. ● Node Access Summary: View the node access entries for the node(s) that are shown on a page.
    • Devel Themer
    • Coder This module helps in Code Review
    • A Sample Analysis by Coder
    • Resources http://api.drupal.org IRC Channel #drupal #drupal-support #drupal-hyderabad
    • Thank You @IpsitaMishra @siva_epari