Learning Joomla! 3 Extension Development
3.4 (71 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
346 students enrolled

Learning Joomla! 3 Extension Development

Create your own custom Joomla! components, plugins, modules, and template extensions
3.4 (71 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
346 students enrolled
Created by Packt Publishing
Last updated 11/2015
English [Auto-generated]
Current price: $58.99 Original price: $84.99 Discount: 31% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 1.5 hours on-demand video
  • 1 downloadable resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • 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
Course content
Expand all 32 lectures 01:38:49
+ Component Development- Part I
5 lectures 15:18

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

Preview 03:26

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

Adding a Database to the Component

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

Displaying Dynamic Data on the Site using the 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.

Adding an Item View

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

Language and Menu Item Type
+ Component Development - Part 2
5 lectures 15:55

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

Adding a Form 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.

Add Save and Close Buttons to the Admin Component

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

Preview 02:53

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

Adding Categories to the Component

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

Adding Categories to the Site Component
+ Component Development - Part 3
5 lectures 15:43

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.

Adding Standard Fields to the Component

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.

Applying the Publishing Options and Metadata

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

Joomla! Router for SEF URLs

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.

Preview 02:46

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.

Adding a Print and Email Option and RSS Feed to the Component
+ Module Development
5 lectures 15:24

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.

Preview 03:07

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.

Standard Form Field Types

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

Output Form Field 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.

Form Fields for Module Layout and SQL

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.

Custom Field Type
+ Plugins and Languages
5 lectures 15:18

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.

Building a Content Plugin

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.

Building An Editor Button

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.

Building a Search Plugin

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.

Building a Smart Search Plugin

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

Process Content Plugins
+ Component Development and Configuration
5 lectures 15:40

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

Component Configuration Options

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.

Preview 02:38

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.

Enabling Joomla!'s Access Control List (ACL)

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

Batch Processing

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.

Frontend Editing
+ Template Development
2 lectures 05:31

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

The Basic 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.

Adding Module Positions
  • 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!

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.

Who this course is for:
  • 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.