Welcome to Joomla 3.x extension development crash course

Learn Joomla 3 extension development from scratch. In this course we are going to build a complete extension from beginning and each step will be explained in full detail, along with proper code. After this tutorial you will be able to create a basic Joomla extension easily and in less time.

The reason that why I am writing this course is, I have come around a lot of Joomla ebooks and online tutorials on how to program in Joomla and how to create an extension in it but through that much time, none of them attracted me. The reason was, most of them are incomplete and does not cover all the major areas of creating a complete extension. There are a lot of junior developers in my area which contact me regarding guidance in Joomla development and on the basis of their common questions I have developed this crash Joomla extension development tutorial, in which I am covering its all points.


Before starting actual Joomla 3 extension development, let me explain you the skills required to go through this tutorial. You must have a valid understanding and practical experience of working in Object Oriented PHP. Joomla is built on MVC design pattern, so if you have worked previously on an MVC based framework, it would be a great plus. Similarly working experience of HTML and CSS is also required. The second most important thing is familiarity with database quires. Not complex ones, but still you should know how they work and are executed. Before starting the course, download and install latest Joomla version and get familiar with its backend and basic functionality. You must not be expert in these things but they are the basis of Joomla extension programming.

What we are going to build:

We are going to create a Dog breed info component in which user can enter new dog breeds and these could be edited / deleted from backend and frontend as well. This component will then be extended through a latest breed small slideshow module and a breeds search plugin. I have tried my best to cover all points in this course session which could enable you to develop complex Joomla extensions. I have adopted a detailed explanation approach in most simple words, but still if you didn’t understand any thing or if any point is confusing , you can contact me through comments and I will be here to reply back to your inquiries.

If my life remained, I will go on creating updates to this whole tutorial according to latest Joomla releases and you will get this programming stuff according to those latest updates and best coding practices.

Tools required to develop a Joomla extension

You must have these below listed software installed to setup a development environment in order to create the extension.

Setting up a Local web server

The first step is to setup a local web server. Apache is most popular among all of the servers, but you can also use IIS if you are in windows.

PHP and MySql

You will need at least PHP 5.3 version in order to run Joomla 3.x, which will be integrated with your selected web server.  The next thing is MySql server for database support. Its version should be 5.0.4 or later or later. There are also bundle packages available such as XAMPP and WAMP for installation on almost all platforms and it makes so much easier for you to install all the required software in one go. I normally use XAMPP as it is lightweight and posses all the required functionality.

Each package comes with builtin database administrator, such as phpMyAdmin and Sequel Pro. The first one is the best and largely used.


You must have all the latest browsers installed, including IE, Safari, Chrome, Opera etc. If you also install mobile simulators to check layout on various devices, it would be a great plus.

About the Author:

My name is Nohman Habib and I am a web developer, with over 12 years of professional experience. I will be your instructor in this course of Joomla 3.x extension development and will teach you how you can develop a complete Joomla extension, from scratch. 8 years have been passed, since I first downloaded and used Joomla and from that day I have fallen love with it and from that time, I am programming in it. I have developed a lot of custom Joomla extensions, including simple to most complex ones.

Course Outline:

This tutorial is divided into basic three parts, i.e, Component / Module and Plugin development, each is then divided into its further sub parts.  The major one is component development, including backend and frontend portion. Along with each tutorial page, I have included the example component source code as a zip file. My intention is, you must be downloading and installing the component along with each step we would be making to create a complete extension.

Joomla extension types and how they are used.

Learn about 4 basic extension types used in Joomla. This article also goes through their basic usage and deployment.

What are design patterns and why we use them

Different Design patterns are being rapidly in use in the Joomla component so it is a best step to go through these in detail before moving forward to actually start developing it.

Going through Joomla core structure

This article explains Joomla core structure in detail. You will learn what happens in background when a basic page is loaded.

Some basic joomla settings before starting to develop extension.

Before actually starting to develop an extension some basic Joomla settings need to be made, like setting debugging, language, session time, configuration etc.

Planning and creating the database table

Learn about how to plan and create a mysql database table for the component that we are going to build as an example in this course.

Developing a Basic Component

This article briefly explains Joomla component structure, so that you can learn how to develop a basic install-able component.

Adding a view to component frontend

The first step in creating a joomla component is creating a view, which is actually the page which joomla loads when a user makes a request. Or you can say the portion of our component which will be view-able by a user.

Jumping into the actual development, starting to use database

This article explains how you can actually use a database with Joomla component so that actions like inserting, deleting or retrieving the data could be performed.

Implementing pagination on the list view

Learn how to create pagination in the list view of a joomla component.

Implementing Grid sort functionality at frontend

Sorting feature is a critical part of a record listing page. This article explains how to achieve it.

Adding search feature to Component Frontend list view

Learn how to query a database table on the basis of user provided string.

Starting to work on backend – Adding a view

Learn how to create the backend interface through which associated database table records can be seen, modified or created.

Creating a list view at backend

Like we created the list view for frontend, this article will show you how to achieve the same for backend.

Implementing Grid sort and pagination at backend

Learn how to perform tabulated grid sorting along with pagination on the backend view of our component.

Implementing item ordering at backend

Ordering is a must have sorting feature for a tabulated grid and through this article you will learn how it can be achieved.

Implementing search feature and filters functionality at backend

Searching and filtering is always a critical and must have part of the backend of a component. In this article you will learn how to implement this with full code example and explanation.

Implementing change state functionality at backend

Whether you want to publish or unpublish a record at frontend. You will learn how to accomplish this in backend.

Creating Toolbar and config options at backend

Setting up duplicate record functionality

Creating a form at backend for making entries to database

Fetching and saving data to database at backend

Setting action tabs at frontend

Creating a form at frontend for making entries to database

Fetching and saving data to database at frontend

Displaying a single record at frontend

Access Control Lists in Joomla

User groups and core permissions in Joomla

Adding access control to our component

Implementing access control on breeds listing page.

Implementing access control on breeds form and single record page.

Creating a router.php file for making sef urls.

Creating a Joomla module


Next –> Joomla extension types and how they are used.

Add a Comment

Your email address will not be published. Required fields are marked *


My name is Nohman Habib and I am a web developer with over 10 years of experience, programming in Joomla, Wordpress, WHMCS, vTiger and Hybrid Apps. My plan to start codingace.com is to share my experience and expertise with others. Here my basic area of focus is to post tutorials primarily on Joomla development, HTML5, CSS3 and PHP.

Nohman Habib

CEO: codingace.com

Request a Quote

PHP Code Snippets Powered By : XYZScripts.com