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 the ground up, 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 I am writing this course is that I have come across a lot of Joomla ebooks and online tutorials on how to programme in Joomla and how to create an extension in it, but through all that time, none of them attracted me. The reason was that most of them are incomplete and do not cover all the major areas of creating a complete extension. There are a lot of junior developers in my area who 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 all its points.


Before starting actual Joomla 3 extension development, let me explain 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 the MVC design pattern, so if you have worked previously on an MVC-based framework, that would be a great plus. Similarly, working experience with HTML and CSS is also required. The second most important thing is familiarity with database queries. They are not complicated, but you should understand how they work and how they are carried out.Before starting the course, download and instal the latest Joomla version and get familiar with its backend and basic functionality. You must not be an 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 users can enter new dog breeds, which could be edited or deleted from the backend and frontend as well. This component will then be supplemented with a breeds search plugin and a small slideshow module featuring the most recent breeds.I have tried my best to cover all points in this course session that could enable you to develop complex Joomla extensions. I’ve tried to explain everything in the simplest way possible, but if you still don’t understand something or something isn’t clear, let me know in the comments, and I’ll be here to answer your questions.

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

Tools required to develop a Joomla extension

To set up a development environment and make the extension, you need to instal the following software.

Setting up a local web server

The first step is to set up a local web server. The most popular server is Apache, but if you are using Windows, you can also use IIS.

PHP and MySql

You will need at least the PHP 5.3 version in order to run Joomla 3.x, which will be integrated with your selected web server. The MySQL server is the next step in database support.Its version must be 5.0.4 or higher.There are also bundle packages available, such as XAMPP and WAMP, for installation on almost all platforms, and it makes it much easier for you to instal all the required software in one go. I typically use XAMPP because it is lightweight and provides all of the functionality I require.

Each package comes with a built-in database administrator, such as phpMyAdmin or Sequel Pro. The first one is the best and is largely used.


You must have all the latest browsers installed, including IE, Safari, Chrome, Opera, etc. If you also instal 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. Eight years have passed since I first downloaded and used Joomla, and I have fallen in love with it ever since, and I have been programming in it ever since. I have developed a lot of custom Joomla extensions, from the most simple to the most complex.

Course Outline:

This tutorial is divided into three basic sections: component, module, and plugin development, each of which is further subdivided.The major one is component development, including the backend and frontend portions. Along with each tutorial page, I have included the example component source code as a zip file. My intention is that 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 the four basic extension types used in Joomla. This article also goes through their basic usage and deployment.

What are design patterns, and why do we use them?

Different design patterns are rapidly being used in the Joomla component, so it is a good idea to go through them in detail before actually starting to develop it.

Going through the Joomla core structure

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

some basic Joomla settings before starting to develop extensions.

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, installable component.

Adding a view to the component frontend

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

Jumping into the actual development and starting to use the database

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

Implementing pagination in the list view

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

Implementing grid sort functionality at the frontend

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

Adding a search feature to the Component Frontend list view

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

Starting to work on the 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 the backend

This article will show you how to create a list view for the backend in the same way we did for the frontend.

Implementing grid sort and pagination at the backend

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

Implementing item ordering at the backend

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

Backend search and filtering functionality implementation

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

Implementing change state functionality at the backend

Whether you want to publish or unpublish a record at the front endYou will learn how to accomplish this on the backend.

Creating toolbars and configuration options at the backend

Setting up the duplicate record functionality

creating a form at the backend for making entries to the database

Backend data retrieval and saving to a database

Setting action tabs at the frontend

creating a form at the frontend for making entries to the database

Fetching and saving data to the database at the front end

Displaying a single record at the frontend

Access Control Lists in Joomla

User groups and core permissions in Joomla

Adding access control to our component

Implementing access control on the breed listing page

Implementing access control on the breed form and single record page

Creating a router.php file to generate 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