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