Developing Extensions for Joomla! 5 Extend Your Sites and Build Rich Customizations with Joomla! Plugins, Modules, and Components
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 optimizati...
Otros Autores: | , |
---|---|
Formato: | Libro electrónico |
Idioma: | Inglés |
Publicado: |
Birmingham, England :
Packt Publishing Ltd
[2023]
|
Edición: | First edition |
Materias: | |
Ver en Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009785404406719 |
Tabla de Contenidos:
- 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
- Summary
- Further reading
- Chapter 3: Developing the Frontend of a Basic Joomla! Component
- Technical requirements
- 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
- Summary
- Further reading
- Chapter 4: Creating Forms in Joomla!
- Technical requirements
- 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
- Summary
- Further reading
- Chapter 5: Harnessing the Power of Joomla! in Your Component
- Technical requirements
- 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
- Summary
- Further reading
- 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
- Summary
- Further reading
- Part 2: Developing Modules and Plugins
- Chapter 7: Developing a Module
- Technical requirements
- 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
- Summary
- Further reading
- Chapter 8: Developing a Joomla! Plugin
- Technical requirements
- 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
- Summary
- Further reading
- Chapter 9: Adding a CLI to Your Extension
- Technical requirements
- 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
- Summary
- Further reading
- Part 3: Extending Templates
- Chapter 10: Creating Unique Web Applications with Template Overrides
- Technical requirements
- 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
- Summary
- Further reading
- Chapter 11: Creating a Child Template in Joomla!
- Technical requirements
- 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
- Summary
- Further reading
- Part 4: Distributing Your Extensions
- Chapter 12: Testing Your Extensions
- Technical requirements
- 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
- Summary
- Further reading
- Chapter 13: Security Practices in Joomla!
- Technical requirements
- 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
- Summary
- Further reading
- Chapter 14: Distributing Your Joomla! Extensions
- Technical requirements
- 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
- Summary
- Further reading
- Index
- Other Books You May Enjoy.