Creating an Extension: Outline

This is intended to be a cheatsheet, of the steps to follow when making an extension (component, module, or plug-in) for Joomla.

it is following the LeBlanc book, making a component for restaurant reviews. So the naming scheme is using the word "reviews". In your own extension, of course replace with your component name.

It is a summary of the process explained in Chapter 12 of Learning Joomla Extension Development, by Joseph LeBlanc, Packt Publishing, 2007.
With some information added from Mastering Joomla 1.5 Extension and Framework Development, James Kennard, Packt Publishing, 2007.

The outline

Start it: Getting Started with Component Development Chapter 2, page ?

Making the structure: Before you begin with coding, there are a few files and folders that have to be created, and also a query that has to be run. Then you create a menu item and admin toolbars to access your component – At this point, your component won't actually do anything yet!

  1. Create component folders:
  2. Create component base files (empty for now):
  3. Executing the Component (pp 12-14)
    Add code to the two php files:
  4. Register Component in the Database (pp. 14-16)
  5. Now that component is registered, you can create a menu link: (pp. 16-18)
  6. Creating Toolbars (pp. 18-21)

The Back-end Back-End Development Chapter 3, page 22

The Front-end: Front-End Development Chapter 4, page xx

The Module code: Module Development Chapter 5, page xx

Expanding it Expanding the Project Chapter 6, page xx

Plug-in Behind the Scenes: Plug-Ins Chapter 7, page xx

Configuring Configuration Settings Chapter 8, page xx

Packing it up Packing Everything Together Chapter 9, page xx

Useful tools for writing Joomla code

Details of component development From Mastering Joomla 1.5 Extensions

How it works
How the Joomla app works; PHP in Joomla; multi-language support; unicode handling; good coding practice; how to document your code;
Mastering Joomla 1.5 Extensions, Chapter 2.
Using database in Joomla extension
Table structure, Joomla functions to access database, joins etc.
Mastering Joomla 1.5 Extensions, Chapter 3.
Designing a component
Concepts, Model-View-Controller (MVC), coding your component, configuration for the component, router for SEO urls, packaging, installing.
Use Joomla Web Links component as an example.
Mastering Joomla 1.5 Extensions, Chapter 4.
Designing a Module
Setting up a sandbox, settings, helpers, layouts, translating, packaging.
Mastering Joomla 1.5 Extensions, Chapter 5.
Designing a Plugin
Setting up a sandbox, events, listeners, groups, loading, as libraries, translating, settings, packaging, file naming.
Mastering Joomla 1.5 Extensions, Chapter 6.
General Extension Design
Classes, helpers, instances, JRegistry, user, session, browser, assets.
Mastering Joomla 1.5 Extensions, Chapter 7.
Rendering Output
Using joomla.html library, building templates, making component back-end,
Mastering Joomla 1.5 Extensions, Chapter 8.
Customizing the page
Custom messages, redirects, customizing the back end, modifying "the document" (title, breadcrumbs, stylesheet and javascript calls, translating, tooltips, etc.),
Mastering Joomla 1.5 Extensions, Chapter 9.
APIs and Web Services
XML, AJAX, LDAP, Email, FTP, using web services APIs.
Mastering Joomla 1.5 Extensions, Chapter 10.
Error-handling and Security
errors/warnings/notices, cgi requests, access control, handling attacks.
Mastering Joomla 1.5 Extensions, Chapter 11.
Utilities and Useful Classes
JArchive, JArrayHelper, JDate, JFile, JFolder, JLog, JMail, JNode, JPath, JTree
Mastering Joomla 1.5 Extensions, Chapter 12.
Joomla Classes, Parameters, and Configuration reference
Mastering Joomla 1.5 Extensions, Appendix

Know more

The sources
These two books are excellent. From them, you will learn not only how to make extensions for Joomla, but lots about programming in general.
Learning Joomla Extension Development, by Joseph LeBlanc, Packt Publishing, 2007.
jlleblanc.com
Mastering Joomla 1.5 Extension and Framework Development, James Kennard, Packt Publishing, 2007.
webamoeba.co.uk
These are for sale as paper books and as PDF at PacktPub.com, or contact James.
General info:
www.tibetangeeks.com/technologies/web_development/cms/
General info and howtos for Wordpress, Joomla, and Drupal.