Learning Joomla! 3 Extension Development

Create your own custom Joomla! components, plugins, modules, and template extensions
2.2 (5 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
98 students enrolled
82% off
Take This Course
  • Lectures 32
  • Length 1.5 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 12/2014 English

Course Description

This video course provides you with a step-by-step tutorial for building a basic component with frontend editing. You will also learn how to build both content and search plugins for your component, how to build a module to display data from your component, and finally how to build a template using Bootstrap CSS.

The course starts by teaching you how to build a basic, bare bones component for inserting and displaying recipes using the minimum amount of code that is needed for a component. No component is complete without search and content plugins. You will start off by building standard search and smart search plugins, a content plugin for inserting our component’s data into a content item, and adding code to insert other plugins’ data into our display page. The plugins will make our recipes searchable on the site and will enable the insertion of recipes into content articles.

You will then move on to build a basic module, add standard field types, and finally add a custom field type when standard fields are not enough. The module will display select recipes from our collection. Finally, you will also learn how to build a template that uses Twitter Bootstrap’s CSS.

Learning Joomla! 3 Extension Development makes it fast and easy to develop your own custom Joomla! components, plugins, modules, and templates.

About the Author

Donna Vincent has been developing websites since 2004, and she has been using the Joomla! platform since 2006. In 2009, she began developing custom Joomla! extensions for her clients. She is also an EDI and barcode programmer. Donna lives and works in the New York City area and enjoys food photography when not building websites.

What are the requirements?

  • A working knowledge of Joomla! 3 administration, PHP, and MySQL is a requirement to follow along with this course, but prior knowledge of using extensions is not expected.
  • Learning Joomla! 3 Extension Development contains step-by-step instructions on how to utilize Joomla! extensions to achieve optimal performance on your website. It shows you how to perform specific tasks in Joomla! using the popular extensions available in the Joomla! extensions directory. It will also help you to choose the right extension for performing a specific task in Joomla!

What am I going to get from this course?

  • Build a component to save, retrieve, and display custom data
  • Add dynamic data with the model-view-controller to display the page and language file
  • Add finishing touches to the component which include a router file, print view, and RSS feed
  • Implement ACL in a component and add parameters to a menu item
  • Add category functionality to a component
  • Create a frontend editing form and add it to a component
  • Build a basic module and add standard field types to a module
  • Create search and content plugins for a custom component
  • Build a template that uses Bootstrap CSS

Who is the target audience?

  • If you want to build a basic Joomla! website and are looking for information on the use of Joomla! extensions and their customization, then this course is for you.

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Component Development- Part I

Learn how to set up a basic, bare bones component upon which we will build on in subsequent exercises.


In order for the component to store and retrieve its own data, a database table needs to be included in the installation package.


Data needs to be retrieved from the database and displayed on the website. Display dynamic data using Joomla!'s Model-View-Controller.


The list of data needs to be clickable so that the user can click through to the full text page. This is where adding an Item View comes into action.


Understand how to add a Language File and a Menu Item Type XML File to the component.

Section 2: Component Development - Part 2

Entries in the database need to be editable. Jooma!'s JForm is the solution for this, once it is added to the admin component.


You will need to save changes that are input through the edit view. Learn how to add buttons to perform the save and close functions on the edit view.


As you need to create new entries and delete existing entries, learn how to add buttons for these functions.


Data needs to be organized into categories. Here you’ll understand how to link entries to Joomla!'s categories table.


The site component needs to display the data's category organization. Here you’ll learn how to add category views to the site component.

Section 3: Component Development - Part 3

It is typical for Joomla! components to use the fields alias, meta description, meta keywords, publish up, and publish down dates. Here you’ll learn how to add fields to the component that are common to most Joomla! Components.


Publishing options and metadata has been set for items using the admin component. They now need to be used when displaying items on the site. Learn how to apply the publishing options and metadata settings to the site component.


The component needs to handle SEF URLs. Here you’ll learn how to use the Router file to handle the SEF URLs in Joomla!


The admin needs to be able to change the state of an item to published or unpublished. Here you’ll learn how to add a field for publishing and unpublishing items.


You need a way to get a printable view of the page, send an email with a link to the page, and get an RSS feed of the category list. In this video, you’ll learn how to add a print and email option and RSS feed to the component.

Section 4: Module Development

We need to build a module for a Joomla! site. We will start with the simplest format, which we can use to build upon later, and publish it to the site.


We need the module to display user-entered data instead of hardcoded text. We will add three different types of form fields for entering text.


Data saved in the database needs to be retrieved and displayed on the site. We will use Joomla!'s Parameter object to get data.


Alternate layout options are needed, as well as custom dynamic select lists. We will use the modulelayout and SQL form fields to accomplish this.


We need a field type for our form that is not one of the standard Joomla! field types. We will build a custom field type.

Section 5: Plugins and Languages

We want the ability to insert a recipe into a content article or any other extension that processes content plugins. We will do this by creating a content plugin that will render the specified recipe.


We want a button on the WYSIWYG editor to help us insert the recipe plugin by displaying a popup list of recipes to choose from. We will create an extended editor plugin to accomplish this.


We want our component's content to be included in Joomla!'s site search function. We will create a search plugin that includes our component's title and recipe fields in Joomla!'s search.


We want our component's content to be included in Joomla!'s site smart search function. We will build a plugin that will include our component's title and recipe in the Joomla!'s finder component.


We want to insert and process other extensions’ content plugins in our component. We will add plugin triggers to our component.

Section 6: Component Development and Configuration

Our component does not have settings for optional ways to display data. In this exercise we will add configuration options for the component.


We have configuration settings for the component but we don't have a way to override them on the menu item level. In this exercise we will add menu item options which will override the component configuration options.


We need a way to control access to the component on the site and the administrator area. We will implement Joomla!'s ACL in our component.


We want the ability to alter the state of multiple recipes at once. We will enable batch processing in our component.


We need to be able to add and edit recipes on the site's frontend. We will create a new view in the site component for submitting and editing recipes.

Section 7: Template Development

We need a template with a different layout than the default Joomla! Template. In this exercise we will begin building a custom template.


Our template needs module positions in order to publish modules in the template. In this exercise we will add module positions, module chrome, create acustom chrome, and a collapsible module position.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Packt Publishing, Tech Knowledge in Motion

Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.

With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.

From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.

Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.

Ready to start learning?
Take This Course