PacktLib: Learning Joomla! 3 Extension Development-Third Edition

Learning Joomla! 3 Extension Development

Credits

About the Author

Acknowledgement

About the Reviewers

www.PacktPub.com

Preface

Before you Start

Extension types and their uses

Joomla! versions that your extensions should support

Licensing and GPL

What business model should I adopt?

Tools you need to develop the Joomla! extensions

Coding standards

Legacy MVC versus new MVC

Upgrading a Joomla! 2.5 component to make it Joomla! 3 compatible

To fork or not to fork?

Summary

Getting Started with Plugin Development

Plugin types

Plugin event triggers

Where do I start?

Creating the installation XML file

Creating the plugin PHP file

Zip it up and install your plugin

Adding the parameters to our plugin

Adding the language files

Summary

Getting Started with Module Development

Where do I start?

Backend versus frontend modules

Creating the installation XML file

Creating the module PHP file

Creating the view

Connecting to the database

Zip it up and install your module

Backwards compatibility for Joomla! 2.5

Converting to the site module

Translating your module

Adding a help file

Template overrides

Making your module responsive

Summary

Getting Started with Component Development

Where do I start?

Creating the component installation XML file

Creating a simple component

Setting up the database

Creating a form

Creating a view

Installer script

Zip it up and install your component

Summary

Backend Component Development – Part 1

Adding additional fields

Adding columns to your view

Toolbar buttons and component options

View filters and search

Summary

Backend Component Development – Part 2

Pagination

Adding views and submenu items

Access Control List (ACL)

Multi-database support

Summary

Frontend Component Development

Getting started on the frontend

Creating a view

Adding CSS

Adding sample images

Creating another view

Menu item parameters

Translating your component

Updating data from the frontend

Using ReCaptcha in your component

Using our click-to-call plugin with this component

Integrating a third-party comments extension

Summary

Security – Avoiding Common Vulnerabilities

Why you should care about security

Path disclosure

SQL injection

Local File Inclusion

Remote File Inclusion

Cross-site scripting

Cross-site Request Forgery

Some quick advice

Summary

Packing Everything Together

Creating a package

Setting up an update server

Managing database changes

Getting listed on the JED

Summary

Extending your Component with Plugins and Modules

Creating a search plugin

Creating a smart search plugin

Creating a featured portfolio module

Adding tags to our component

Summary

Index