My Account Log in

2 options

Developing Extensions for Joomla! 5 : Extend Your Sites and Build Rich Customizations with Joomla! Plugins, Modules, and Components / Carlos M. Cámara Mora and Brian Teeman.

EBSCOhost Academic eBook Collection (North America) Available online

View online

O'Reilly Online Learning: Academic/Public Library Edition Available online

View online
Format:
Book
Author/Creator:
Mora, Carlos M. Cámara, author.
Teeman, Brian, author.
Language:
English
Subjects (All):
Joomla! (Computer file).
Web sites--Authoring programs.
Web sites.
Web site development.
Physical Description:
1 online resource (323 pages)
Edition:
First edition.
Place of Publication:
Birmingham, England : Packt Publishing Ltd., [2023]
Summary:
Joomla! 5 is a groundbreaking CMS that helps you take a significant leap into the world of content management systems. Joomla! 5 features a variety of impressive new features that align with current web standards and enable you to experience lightning-fast performance for optimal web page optimization, leverage the new code architecture, and tap into the WebService API, among others. This book takes you on a journey of extending Joomla's capabilities by developing your own extensions. The chapters not only explain the key concepts behind Joomla's architecture but also equip you with the latest techniques for crafting components and plugins. You’ll discover how to leverage existing features within Joomla! to empower your extensions and create tailored solutions. The book takes you from the initial stages of planning your extension development to a fully featured finished product. As you advance, you'll learn invaluable techniques for testing your extension, addressing common issues, and preparing it for publication. The concluding chapters of this comprehensive guide teach you how to test your extension for common issues, along with how to publish the extension for everyone to use. By the end of this book, you’ll have the confidence and skills to complete the cycle of extension development.
Contents:
Cover
Copyright
Foreword
Contributors
Table of Contents
Preface
Part 1: Developing Components
Chapter 1: Planning Your Component
Understanding what a Joomla! component is
Translating your problem into an application
Identifying your elements
A real-world example
Defining your component database structure
A quick look at the Joomla! database
Adding database tables for entities
Adding extra information columns to tables
Reflecting relationships in the database
Creating tables in the database
Adding mock data to your database
Defining the content of our mock data
Automating mock data generation
Importing mock data into the database
Summary
Further reading
Chapter 2: Developing the Backend of a Basic Joomla! Component
Technical requirements
Component file architecture
Building a component's backend
Creating our component repository structure
Creating a manifest file
Testing a minimum component on Joomla!
Developing a list view for a component
Adding the view for projects data
Adding a model to the projects view
Showing the list of projects
Developing an edit item view for our component
Creating a Project view
Adding a model to retrieve and save data
Adding a controller to our Project entity
Creating a layout for our edit project view
Changes to our manifest file
Testing the component
Chapter 3: Developing the Frontend of a Basic Joomla! Component
Developing a frontend list view for our component
Coding the list view
Adding CSS and JS to our component
Adding our own styles and JavaScript to our component
Joomla!'s Web Asset Manager
Loading assets with HtmlHelper
Developing a frontend item view for our component.
Adding the model for the frontend item view
Adding the layout for the item detail
Adding a menu item for our views
Adding friendly URLs to our component
Translating parameters into a friendly URL
Translating SEF URLs into variables for our component
Chapter 4: Creating Forms in Joomla!
Defining forms in Joomla!
Adding general options to our extensions
Adding search and filter capabilities to our listings
Editing or adding individual items
Using standard Joomla! Form fields
Using the Editor form field type
Using the accessiblemedia field type
Creating select options from database tables
Defining custom form field types
How to use the subform field type
Validating user input on the client side
Validating user input on the server side
Chapter 5: Harnessing the Power of Joomla! in Your Component
Reviewing what Joomla! features you can use in your component
Adding an ACL to our component
Setting up Joomla! user groups and viewing access levels
Adding the permissions configuration
Honoring the permissions in our extensions
Defining custom actions for our component
Using Joomla! categories in our component
Customizing our component categories
Exploring the benefits and limitations of using Joomla! categories
Using our categories' custom properties
Adding ACL to our component categories
Introduction to Joomla! custom fields
Using custom fields in our component
Showing custom fields in our views
Adding an ACL to the custom fields
Using Joomla!'s multilingual capabilities in our component
Adding complex translations
Chapter 6: Adding a Web Service API to Your Component
Technical requirements.
What is a Web Service API?
How to consume any Web Service API
How can I use the Joomla! Web Service API?
Authorization for the API
Basic authorization
Joomla! token authorization
Web Services API permissions
Adding a Web Service API to your component
Developing the Web Service plugin
Using createCRUDRoutes() to add our Web Service endpoints
Adding custom endpoint requests to our Web Service
Handling the request in our component
Reading data from your Web Service - adding a GET endpoint to your component
Writing data from your Web Service - adding a POST endpoint to your component
Part 2: Developing Modules and Plugins
Chapter 7: Developing a Module
Understanding the module file structure
Creating the provider code
Using module helpers
Adding the layout for the module
Writing the manifest for our module
Using module configuration parameters
Adding an Advanced tab to our module configuration
Caching Joomla! modules
Using saved parameters in your code
Chapter 8: Developing a Joomla! Plugin
What is a plugin in Joomla!?
Calling Joomla! plugins from our component
Understanding Joomla!'s plugin file structure
Creating the manifest file for our plugins
Creating a content plugin
Adding plugins to our component
Creating our customer's plugin
Chapter 9: Adding a CLI to Your Extension
What is a CLI?
What is a Cron Job?
How to use Joomla! CLI
Introducing Joomla! CLI commands
Introducing generic options for Joomla! CLI
Adding a Joomla! CLI command to Joomla!
Exploring SymfonyStyle methods
What Symfony console output tags can we use?
How to internationalize CLI messages.
Adding parameters to your CLI command
Part 3: Extending Templates
Chapter 10: Creating Unique Web Applications with Template Overrides
What is a Joomla! template?
What are template overrides?
Creating a template override for Joomla! views
Creating a template override for a component view
Creating a template override for a module
Creating a template override for a plugin
Creating alternative layouts
Adding an alternative menu item for a component view
Adding an alternative layout for a module
Overriding CSS and JS
Overriding assets with the Web Assets Manager
Adding new assets to our overrides
Disabling assets in our overrides
Chapter 11: Creating a Child Template in Joomla!
Why do we need child templates?
Creating a child template
Creating a child template directly in our repository
Creating a child template using the Joomla! template manager
Overrides in child templates
Adding a new module position to the template
Using different styles for the module
Reusing child templates on different sites
Adding parameters to a child template
Adding language files to our child template
Part 4: Distributing Your Extensions
Chapter 12: Testing Your Extensions
Do I need tests?
Including unit testing in Joomla!
What is TDD?
Installing PHPUnit
How to add system testing in Joomla!
Installing Codeception
Testing accessibility in our extensions
Testing accessibility with your browser
Chapter 13: Security Practices in Joomla!
Fetching data from forms
Filtering input data before saving it to a database.
Preventing cross-site request forgery (CSRF) attacks in forms
Preventing cross-site scripting (XSS) attacks
Preventing SQL injection
Securing your assets for the future
Hardening access to your files
Using the JED Checker extension
Chapter 14: Distributing Your Joomla! Extensions
Creating a package for your extensions
Managing versions in your extension
Packaging all the extensions into one file
How to manage database changes on your extensions
How to change your database structure by updating your extensions
Cleaning the database on uninstall
How to execute advanced tasks on extension install
Setting up an update server
Adding a paywall to your extension download
Index
Other Books You May Enjoy.
Notes:
Description based on print version record.
ISBN:
9781804618905
180461890X
OCLC:
1411851924

The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.

Find

Home Release notes

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Find catalog Using Articles+ Using your account