Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Arrow up icon
GO TO TOP
Learning Joomla! 3 Extension Development

You're reading from   Learning Joomla! 3 Extension Development If you have ideas for additional Joomla 3! features, this book will allow you to realize them. It's a complete practical guide to building and extending plugins, modules, and components. Ideal for professional developers and enthusiasts.

Arrow left icon
Product type Paperback
Published in Jul 2013
Publisher Packt
ISBN-13 9781782168379
Length 458 pages
Edition 3rd Edition
Languages
Tools
Concepts
Arrow right icon
Author (1):
Arrow left icon
Timothy John Plummer Timothy John Plummer
Author Profile Icon Timothy John Plummer
Timothy John Plummer
Arrow right icon
View More author details
Toc

Table of Contents (18) Chapters Close

Learning Joomla! 3 Extension Development
Credits
About the Author
Acknowledgement
About the Reviewers
www.PacktPub.com
Preface
1. Before you Start 2. Getting Started with Plugin Development FREE CHAPTER 3. Getting Started with Module Development 4. Getting Started with Component Development 5. Backend Component Development – Part 1 6. Backend Component Development – Part 2 7. Frontend Component Development 8. Security – Avoiding Common Vulnerabilities 9. Packing Everything Together 10. Extending your Component with Plugins and Modules Index

Index

A

  • accesslevel field type, JForm
    • about / Accesslevel
  • access levels / Access level
  • ACL
    • about / Access Control List (ACL)
    • global permissions / Global permissions
    • component permissions / Component permissions
    • category permissions / Category permissions
    • article permissions / Article permissions
    • access levels / Access level
  • additional fields, Joomla! backend component
    • adding / Adding additional fields
    • adding, to model / Adding fields to the model
    • category field / Category field
    • state field / State field
    • media field / Media field
    • company field / Company field
    • phone field / Phone field
    • URL field / URL field
    • description field / Description field
    • language strings, for fields / Language strings for new fields
    • adding, to view / Adding fields to the view
    • displaying, in view / Alternative method for displaying fields in the view
    • adding, to database / Adding fields to the database
  • addSubmenu function / The categories view
  • addToolbar function / The view.html.php file, Category permissions
  • Akeeba Release System
    • about / Setting up an update server
  • allowAdd function / Category permissions
  • allowEdit function / Category permissions
  • another view, Joomla! frontend component
    • creating / Creating another view
  • Ant
    • about / Tools you need to develop the Joomla! extensions
  • Apache webserver
    • about / Tools you need to develop the Joomla! extensions
  • article permissions
    • about / Article permissions
  • authentication plugin
    • about / Plugin types

B

  • backend development, Joomla! component
    • additional fields, adding / Adding additional fields
    • columns, adding to view / Adding columns to your view
    • toolbar buttons / Toolbar buttons and component options
    • component options / Component options
    • view filters / View filters and search
  • business models, Joomla! community
    • about / What business model should I adopt?
    • 100 percent free model / What business model should I adopt?
    • freemium model / What business model should I adopt?
    • once-off purchase model / What business model should I adopt?
    • subscription model / What business model should I adopt?

C

  • cachehandler field type, JForm
    • about / Cachehandler
  • calendar field type, JForm
    • about / Calendar
  • captcha field type, JForm
    • about / Captcha
  • CAPTCHA plugin
    • about / Plugin types
  • categories view
    • about / The categories view
  • category field type, JForm
    • about / Category
  • category permissions
    • about / Category permissions
  • checkboxes field type, JForm
    • about / Checkboxes
  • checkbox field type, JForm
    • about / Checkbox
  • Chrome
    • about / Tools you need to develop the Joomla! extensions
  • chromestyle field type, JForm
    • about / Chromestyle
  • click-to-call plugin
    • using, with Joomla! frontend component / Using our click-to-call plugin with this component
    • about / Creating a package
  • color field type, JForm
    • about / Color
  • columns, Joomla! backend component
    • adding, to view / Adding columns to your view
    • simple columns, adding to view / Adding simple columns
    • click to sort by column / Click to sort by column
    • status column / Status column
    • ordering column / Ordering column
  • combo field type, JForm
    • about / Combo
  • component installation XML file
    • creating / Creating the component installation XML file
  • componentlayout field type, JForm
    • about / Componentlayout
  • component options, Joomla! backend component
    • about / Component options
  • component permissions
    • about / Component permissions
  • components
    • about / Components
  • com_categories component
    • about / Adding views and submenu items
  • com_finder component
    • about / Creating a search plugin
  • com_folio component
    • pagination, implementing / Pagination
    • views, adding / Adding views and submenu items
    • submenu items, adding / Adding views and submenu items
    • about / Creating a package
    • tags, adding / Adding tags to our component
  • com_search component
    • about / Creating a search plugin
  • contentlanguage field type, JForm
    • about / Contentlanguage
  • content plugin
    • about / Plugin types
  • contenttype field type, JForm
    • about / Contenttype
  • Cross-site Request Forgery (CSRF) attack
    • about / Cross-site Request Forgery
  • Cross-site scripting (XSS)
    • about / Cross-site scripting
  • Cross Site Request Forgery (CSRF) / The view layout file
  • CSS, Joomla! frontend component
    • adding / Adding CSS

D

  • databaseconnection field type, JForm
    • about / Databaseconnection
  • database modifications
    • managing / Managing database changes
    • PHP files, updating / Updating the PHP files
  • display function / The view.html.php file
  • dot dot slash attack
    • about / Local File Inclusion

E

  • EasyCreator / To fork or not to fork?
  • EasyPHP
    • about / Tools you need to develop the Joomla! extensions
  • Eclipse
    • about / Tools you need to develop the Joomla! extensions
  • editor field type, JForm
    • about / Editor
  • editors-XTD plugin
    • about / Plugin types
  • editors plugin
    • about / Plugin types
  • edit view, Joomla! compoment
    • about / The edit view
    • creating / The edit view
    • view.html.php file / The view.html.php file
    • view layout file / The view layout file
  • email field type, JForm
    • about / Email
  • extension plugin
    • about / Plugin types
  • extensions
    • listing, on JED / Getting listed on the JED

F

  • featured portfolio module
    • creating / Creating a featured portfolio module
  • file
    • multiple extensions, packaging into / Creating a package
  • file field type, JForm
    • about / File
  • filelist field type, JForm
    • about / Filelist
  • Firebug plugin
    • about / Tools you need to develop the Joomla! extensions
  • Firefox
    • about / Tools you need to develop the Joomla! extensions
  • folderlist field type, JForm
    • about / Folderlist
  • form XML file
    • about / The form XML file
  • freemium model
    • about / What business model should I adopt?
  • frontend development, Joomla! component
    • about / Getting started on the frontend
    • view, creating / Creating a view
    • CSS, adding / Adding CSS
    • sample images, adding / Adding sample images
    • another view, creating / Creating another view
    • menu item parameters / Menu item parameters
    • translating / Translating your component
    • updfolio edit form / Updating data from the frontend
    • ReCaptcha, using / Using ReCaptcha in your component
    • click-to-call plugin, using / Using our click-to-call plugin with this component
    • third-party comments extension, integrating / Integrating a third-party comments extension

G

  • getActions function / The helper file, Category permissions
  • getCatgories function / Integrating a third-party comments extension
  • getComponentIcon function / Integrating a third-party comments extension
  • getComponentName function / Integrating a third-party comments extension
  • getContentIds function / Integrating a third-party comments extension
  • getSortFields function / Filters and search
  • global permissions
    • about / Global permissions
  • GNU GPL licensing
    • about / Licensing and GPL
  • groupedlist field type, JForm
    • about / Groupedlist

H

  • headertag field type, JForm
    • about / Headertag
  • helpsite field type, JForm
    • about / Helpsite
  • hidden field type, JForm
    • about / Hidden

I

  • IE
    • about / Tools you need to develop the Joomla! extensions
  • imagelist field type, JForm
    • about / Imagelist
  • installation XML file, Joomla! plugin
    • creating / Creating the installation XML file
  • installer script file
    • about / Installer script
  • install function / Installer script
  • integer field type, JForm
    • about / Integer
  • Integrated Development Environment (IDE)
    • about / Tools you need to develop the Joomla! extensions

J

  • JavaScript libraries
    • about / What's new in Joomla! 3
  • JED
    • URL / Where do I start?
    • extensions, listing on / Getting listed on the JED
    • about / Getting listed on the JED
  • JEDChecker
    • about / Getting listed on the JED
    • URL / Getting listed on the JED
  • JED listing
    • about / To fork or not to fork?
  • JForm
    • creating / Creating a form
    • form XML file / The form XML file
  • JForm field types
    • about / JForm field types
    • accesslevel / Accesslevel
    • cachehandler / Cachehandler
    • calendar / Calendar
    • captcha / Captcha
    • category / Category
    • checkbox / Checkbox
    • checkboxes / Checkboxes
    • chromestyle / Chromestyle
    • color / Color
    • combo / Combo
    • componentlayout / Componentlayout
    • contentlanguage / Contentlanguage
    • contenttype / Contenttype
    • databaseconnection / Databaseconnection
    • editor / Editor
    • email / Email
    • file / File
    • filelist / Filelist
    • folderlist / Folderlist
    • groupedlist / Groupedlist
    • headertag / Headertag
    • helpsite / Helpsite
    • hidden / Hidden
    • imagelist / Imagelist
    • integer / Integer
    • language / Language
    • list / List
    • media / Media
    • menu / Menu
    • menuitem / Menuitem
    • modulelayout / Modulelayout
    • moduleorder / Moduleorder
    • moduleposition / Moduleposition
    • moduletag / Moduletag
    • password / Password
    • plugins / Plugins
    • radio / Radio
    • rules / Rules
    • sessionhandler / Sessionhandler
    • spacer / Spacer
    • sql / Sql
    • tag / Tag
    • tagnested / Tagnested
    • tel / Tel
    • templatestyle / Templatestyle
    • text / Text
    • textarea / Textarea
    • timezone / Timezone
    • url / Url
    • user / User
    • usergroup / Usergroup
  • JInput
    • URL / Remote File Inclusion
  • Joomla!
    • extension types / Extension types and their uses
    • legacy MVC, versus new MVC / Legacy MVC versus new MVC
  • Joomla! 2.5 compatibility, Joomla! module
    • about / Backwards compatibility for Joomla! 2.5
    • installation XML file, modifying / Making changes to the installation XML file
    • CSS styles, adding / Adding the CSS styles
    • packaging, for distribution / Packaging for distribution
  • Joomla! 2.5 component
    • upgrading, to Joomla! 3 / Upgrading a Joomla! 2.5 component to make it Joomla! 3 compatible
  • Joomla! 3
    • about / Joomla! versions that your extensions should support
    • features / What's new in Joomla! 3
    • Twitter Bootstrap / What's new in Joomla! 3
    • LESS CSS / What's new in Joomla! 3
    • javaScript libraries / What's new in Joomla! 3
    • tagging feature / What's new in Joomla! 3
    • licensing / Licensing and GPL
    • business model / What business model should I adopt?
  • Joomla! 3.1
    • tagging component feature / Adding tags to our component
  • Joomla! CMS roadmap
    • about / Legacy MVC versus new MVC
  • Joomla! coding standards
    • about / Coding standards
  • Joomla! component
    • component installation XML file, creating / Creating the component installation XML file
    • simple component, creating / Creating a simple component
    • database, setting up / Setting up the database
    • form, creating / Creating a form
    • view, creating / Creating a view
    • installer script file / Installer script
    • installing / Zip it up and install your component
  • Joomla! core
    • about / What's new in Joomla! 3
  • Joomla! database
    • setting up / Setting up the database
    • extension, discovering / Discover the extension
    • controllers, creating / Creating the controllers
    • model, creating for list view / Creating the model for the list view
    • model, creating for edit view / Creating the model for the edit view
  • Joomla!Day events
    • about / Tools you need to develop the Joomla! extensions
  • Joomla! development
    • about / Tools you need to develop the Joomla! extensions
    • PHP / Tools you need to develop the Joomla! extensions
    • MySQL / Tools you need to develop the Joomla! extensions
  • Joomla! Extension Directory (JED)
    • about / Licensing and GPL
  • Joomla! extensions
    • about / Extension types and their uses
    • plugins / Plugins
    • modules / Modules
    • components / Components
    • languages / Languages
    • templates / Templates
    • library / Libraries
    • package / Packages
    • development tools / Tools you need to develop the Joomla! extensions
  • Joomla! module
    • about / Where do I start?
    • building / Where do I start?
    • backend modules / Backend versus frontend modules
    • frontend modules / Backend versus frontend modules
    • backend modules installation location / Backend modules' installation location
    • frontend modules installation location / Frontend modules' installation location
    • installation XML file, creating / Creating the installation XML file
    • module PHP file, creating / Creating the module PHP file
    • view, creating / Creating the view
    • database, connecting to / Connecting to the database
    • testing, on Joomla! 3 development website / Zip it up and install your module
    • packaging, for distribution / Packaging your module for distribution
    • installing, on Joomla! 2.5 / Backwards compatibility for Joomla! 2.5
    • converting, to site module / Converting to the site module
    • translating / Translating your module
    • help file, adding / Adding a help file
    • template overrides / Template overrides
    • making, mobile-friendly / Making your module responsive
  • Joomla! plugins
    • about / Plugin types
    • authentication plugin / Plugin types
    • CAPTCHA plugin / Plugin types
    • content plugin / Plugin types
    • editors plugin / Plugin types
    • editors-XTD plugin / Plugin types
    • extension plugin / Plugin types
    • Quick Icons plugin / Plugin types
    • search plugin / Plugin types
    • Smart Search (Finder) plugin / Plugin types
    • user plugin / Plugin types
    • system plugin / Plugin types
  • Joomla! versions
    • Joomla! 3 / Joomla! versions that your extensions should support
    • Joomla! 1.5 / Joomla! versions that your extensions should support
    • Joomla! Extension Directory / Joomla! versions that your extensions should support
    • Joomla! 2.5 / Joomla! versions that your extensions should support
  • Joomla! Vulnerable Extension List
    • about / Why you should care about security
  • jQuery
    • about / What's new in Joomla! 3
  • JToolBar**getInstance / The view.html.php file

K

  • Komento
    • about / Summary, Integrating a third-party comments extension

L

  • language field type, JForm
    • about / Language
  • languages
    • about / Languages
  • legacy MVC, versus new MVC
    • about / Legacy MVC versus new MVC
  • LESS CSS
    • about / What's new in Joomla! 3
  • libraries extension type
    • about / Libraries
  • list field type, JForm
    • about / List
  • list view, Joomla! compoment
    • about / The list view
    • creating / The list view
    • view.html.php file / The view.html.php file
    • helper file / The helper file
    • view layout file / The view layout file
  • load function / Integrating a third-party comments extension
  • Local File Inclusion (LFI)
    • about / Local File Inclusion

M

  • MAMP
    • about / Tools you need to develop the Joomla! extensions
  • media field type, JForm
    • about / Media
  • menu field type, JForm
    • about / Menu
  • menuitem field type, JForm
    • about / Menuitem
  • menu item parameters, Joomla! frontend component
    • about / Menu item parameters
    • category filter, adding on menu / Adding a category filter on our menu
    • component options, using / Using component options
    • width and height parameters / Width and height parameters
  • modulelayout field type, JForm
    • about / Modulelayout
  • moduleorder field type, JForm
    • about / Moduleorder
  • moduleposition field type, JForm
    • about / Moduleposition
  • modules
    • about / Modules
  • moduletag field type, JForm
    • about / Moduletag
  • MooTools
    • about / What's new in Joomla! 3
  • multi-database support
    • about / Multi-database support
  • multiple extensions
    • packaging, into single file / Creating a package
  • MVC design pattern
    • about / Legacy MVC versus new MVC
  • MySQL / Multi-database support
  • MySQL Version 5.1 / Tools you need to develop the Joomla! extensions

N

  • NetBeans
    • about / Tools you need to develop the Joomla! extensions
  • Notepad++
    • about / Tools you need to develop the Joomla! extensions
  • Notepad++ preferences
    • setting up / Tools you need to develop the Joomla! extensions

O

  • onBeforeLoad function / Integrating a third-party comments extension
  • once-off purchase model
    • about / What business model should I adopt?
  • onContentSearchAreas function / Creating a search plugin
  • onContentSearch function / Creating a search plugin
  • one-click updates
    • about / Setting up an update server
  • onExecute function / Integrating a third-party comments extension
  • Open Source Matters (OSM)
    • about / Licensing and GPL

P

  • 100 percent free model
    • about / What business model should I adopt?
  • package
    • creating / Creating a package
  • package extension type
    • about / Packages
  • pagination
    • about / Pagination
    • adding / Pagination
  • password field type, JForm
    • about / Password
  • path disclosure
    • about / Path disclosure
  • PEAR coding standards / Coding standards
  • Phing
    • about / Tools you need to develop the Joomla! extensions
  • PHP files
    • updating / Updating the PHP files
  • phpMyAdmin
    • about / Tools you need to develop the Joomla! extensions
  • PHP Version 5.3.1 / Tools you need to develop the Joomla! extensions
  • plugin
    • installing / Zip it up and install your plugin
    • parameters, adding / Adding the parameters to our plugin
    • language files, adding / Adding the language files
  • plugin development
    • about / Where do I start?
    • installation XML file, creating / Creating the installation XML file
    • plugin PHP file, creating / Creating the plugin PHP file
    • installable file, zipping / Zip it up and install your plugin
    • plugin, installing / Zip it up and install your plugin
  • plugin event triggers
    • about / Plugin event triggers
  • plugin PHP file, Joomla! plugin
    • creating / Creating the plugin PHP file
  • plugins
    • about / Plugins
  • plugins field type, JForm
    • about / Plugins
  • populateState function / Sidebar filters
  • postflight function / Installer script
  • PostgreSQL / Multi-database support
  • preflight function / Installer script
  • preview view
    • about / The preview view

Q

  • Quick Icons plugin
    • about / Plugin types

R

  • radio field type, JForm
    • about / Radio
  • ReCaptcha
    • using, in Joomla! frontend component / Using ReCaptcha in your component
    • using without JForm, in Joomla! frontend component / ReCaptcha without JForm
  • Remote File Inclusion (RFI)
    • about / Remote File Inclusion
  • rules field type, JForm
    • about / Rules

S

  • Safari
    • about / Tools you need to develop the Joomla! extensions
  • sample images, Joomla! frontend component
    • adding / Adding sample images
  • Search in title filter / Filters and search
  • search plugin
    • about / Plugin types
    • creating / Creating a search plugin
    • sharing, requisites / Creating a search plugin
  • security
    • about / Why you should care about security
  • security vulnerabilities
    • about / Why you should care about security
    • path disclosure / Path disclosure
    • SQL injection / SQL injection
    • Local File Inclusion (LFI) / Local File Inclusion
    • Remote File Inclusion (RFI) / Remote File Inclusion
    • Cross-site scripting (XSS) / Cross-site scripting
    • Cross-site Request Forgery (CSRF) / Cross-site Request Forgery
  • sessionhandler field type, JForm
    • about / Sessionhandler
  • simple component
    • creating / Creating a simple component
    • entry point, creating / Creating the entry point
    • access XML file, creating / Creating the access XML file
    • config XML file, creating / Creating the config XML file
  • Smart Search (Finder) plugin
    • about / Plugin types
  • smart search plugin
    • about / Creating a smart search plugin
    • creating / Creating a smart search plugin
  • spacer field type, JForm
    • about / Spacer
  • sql field type, JForm
    • about / Sql
  • SQL injection
    • about / SQL injection
  • ssh / Creating a smart search plugin
  • Stackideas
    • about / Integrating a third-party comments extension
  • submenu items
    • adding / Adding views and submenu items
  • submenus
    • adding / Submenus
  • subscription model
    • about / What business model should I adopt?
  • system plugins
    • about / Plugin types

T

  • tag field type, JForm
    • about / Tag
  • tagging component feature, Joomla! 3.1 / Adding tags to our component
  • tagnested field type, JForm
    • about / Tagnested
  • tags
    • about / Adding tags to our component
    • adding, to component / Adding tags to our component
  • tel field type, JForm
    • about / Tel
  • template overrides
    • about / Template overrides
    • creating / Template overrides
    • updating / Watch out when updating
    • layout, creating / Alternative layouts
  • templates
    • about / Templates
  • templatestyle field type, JForm
    • about / Templatestyle
  • textarea field type, JForm
    • about / Textarea
  • Textedit
    • about / Tools you need to develop the Joomla! extensions
  • text field type, JForm
    • about / Text
  • third-party comments extension
    • integrating, with Joomla! frontend component / Integrating a third-party comments extension
  • timezone field type, JForm
    • about / Timezone
  • toolbar buttons, Joomla! backend component
    • about / Toolbar buttons and component options
  • Twitter Bootstrap
    • about / What's new in Joomla! 3

U

  • Unified Content Model (UCM)
    • about / Legacy MVC versus new MVC
  • uninstall function / Installer script
  • update function / Installer script
  • update server
    • setting up / Setting up an update server
  • updfolio edit form, Joomla! frontend component
    • creating / Creating the edit form
  • updfolios list view, Joomla! frontend component
    • creating / Creating the list view
    • view.html.php, creating / Creating the list view
  • url field type, JForm
    • about / Url
  • user field type, JForm
    • about / User
  • usergroup field type, JForm
    • about / Usergroup
  • user plugins
    • about / Plugin types

V

  • view, Joomla! compoment
    • creating / Creating a view
    • list view / The list view
    • edit view / The edit view
  • view, Joomla! frontend component
    • creating / Creating a view
  • view filters, Joomla! backend component
    • about / View filters and search
    • sidebar filters / Sidebar filters
    • delete, changing to trash / Changing delete to trash
    • search in title filter / Filters and search
    • Title and Ascending filters / Filters and search
    • search in title filter, testing / Filters and search
  • views
    • adding / Adding views and submenu items
    • categories view / The categories view
    • preview view / The preview view

W

  • WAMP
    • about / Tools you need to develop the Joomla! extensions
  • Webmatrix
    • about / Tools you need to develop the Joomla! extensions

X

  • XAMPP
    • about / Tools you need to develop the Joomla! extensions
  • XDebug
    • about / Tools you need to develop the Joomla! extensions
lock icon The rest of the chapter is locked
arrow left Previous Section
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime