Table of Contents
Preface
Chapter 1: Introduction to Joomla!
Chapter 2: Getting Started
Chapter 3: The Database
Chapter 4: Component Design
Chapter 5: Module Design
Chapter 6: Plugin Design
Chapter 7: Extension Design
Chapter 8: Rendering Output
Chapter 9: Customizing the Page
Chapter 10: APIs and Web Services
Chapter 11: Error Handling and Security
Chapter 12: Utilities and Useful Classes
Appendix
Index
- Chapter 1: Introduction to Joomla!
- Overview
- History
- Requirements
- Extension Types and Their Uses
- Components
- Modules
- Plugins
- Languages
- Templates
- Tools
- Extension Manager
- JED and JoomlaCode.org
- Development Tools
- J!Code
- J!Dump
- Summary
- Chapter 2: Getting Started
- The Application and Document
- Request to Response
- The Process
- URI Structure
- Directory Structure
- Libraries
- A Quick Lesson in Classes
- Inheriting from JObject
- Working with the Request
- The Factory
- The Session
- Predefined Constants
- Multilingual Support
- UTF-8 String Handling
- Coding Standards
- phpDocumentor
- Summary
- Chapter 3: The Database
- The Core Database
- Extending the Database
- Table Prefix
- Schema Conventions
- Common Fields
- Schema Example
- Dealing with Multilingual Requirements
- Querying the Database
- Writing Queries
- Getting Results
- loadResult( ) : string
- loadResultArray( numinarray : int=0 ) : array
- loadAssoc( ) : array
- loadAssocList( key : string='' ) : array
- loadObject( ) : stdClass
- loadObjectList( key : string='' ) : array
- loadRow( ) : array
- loadRowList( key : int ) : array
- Using ADOdb
- JTable
- CRUD
- Manipulating Common Fields
- Publishing
- Hits
- Checking Out
- Ordering
- Parameter Fields
- Date Fields
- Summary
- Chapter 4: Component Design
- Setting up a Sandbox
- The Structure
- The MVC
- Building a Model
- Building a View
- Building a Controller
- Building an MVC Component
- Rendering Other Document Types
- Feed
- Raw
- Dealing with Component Configuration
- Elements and Parameters
- Extending JElement
- Using Custom JElement Classes
- Help Files
- Routing
- Packaging
- XML Manifest File
- SQL Install and Uninstall Files and Queries
- Install and Uninstall Files
- Summary
- Chapter 5: Module Design
- Setting Up a Sandbox
- First Steps
- Standalone Modules
- Modules and Components Working Together
- Frontend and Backend Module Display Positions
- Module Settings (Parameters)
- Helpers
- Layouts (Templates)
- Media
- Translating
- Packaging
- XML Manifest File
- Summary
- Chapter 6: Plugin Design
- Setting Up a Sandbox
- Events
- Listeners
- Registering Listeners
- Handling Events
- Plugin Groups
- Authentication
- Content
- Editors
- Editors-xtd
- Search
- System
- User
- XML-RPC
- Loading Plugins
- Using Plugins as Libraries (in Lieu of Library Extensions)
- Translating Plugins
- Dealing with Plugin Settings (Parameters)
- Packaging
- XML Manifest File
- File Naming Conflicts
- Summary
- Chapter 7: Extension Design
- Supporting Classes
- Helpers
- Using and Building getInstance() Methods
- Using the Registry
- Saving and Loading Registry Values
- The User
- User Parameters
- The Session
- The Browser
- Assets
- Summary
- Chapter 8: Rendering Output
- The joomla.html Library
- Behavior
- Grid
- Image
- List
- Menu
- Select
- Building Component HTML Layouts (Templates)
- Iterative Templates
- Component Backend
- Admin Form
- Toolbar
- Sub-Menu
- Itemized Data
- Pagination
- Ordering
- Filtering and Searching
- Summary
- The joomla.html Library
- Chapter 9: Customizing the Page
- Application Message Queue
- Redirects
- Component XML Metadata Files and Menu Parameters
- Using Menu Item Parameters
- Modifying the Document
- Page Title
- Pathway/Breadcrumb
- JavaScript
- CSS
- Metadata
- Custom Header Tags
- Translating
- Translating Text
- Defining Translations
- Debugging Translations
- Using JavaScript Effects
- JPane
- Tooltips
- Fx.Slide
- Summary
- Chapter 10: APIs and Web Services
- XML
- Parsing
- Editing
- Saving
- AJAX
- Response
- Request
- LDAP
- File Transfer Protocol
- Web Services
- Building a Web Service (XML-RPC Plugin)
- Summary
- XML
- Chapter 11: Error Handling and Security
- Errors, Warnings, and Notices
- Return Values
- Customizing Error Handling
- Dealing with CGI Request Data
- Preprocessing CGI Data
- Escaping and Encoding Data
- Escaping and Quoting Database Data
- Encode XHTML Data
- Regular Expressions
- Patterns
- Matching
- Replacing
- Access Control
- Menu Item Access Control
- Extension Access Control
- Attacks
- How to Avoid Common Attacks
- Using the Session Token
- Code Injection
- XSS (Cross Site Scripting)
- File System Snooping
- Dealing with Attacks
- Log Out and Block
- Attack Logging
- Notify the Site Administrator
- How to Avoid Common Attacks
- Summary
- Errors, Warnings, and Notices
- Chapter 12: Utilities and Useful Classes
- Dates
- File System
- Paths
- Folders
- Files
- Archives
- Arrays
- Trees
- Log Files
- Summary
- Appendix
- Classes
- JObject
- Properties
- Constructors
- Methods
- JUser
- Properties
- Constructors
- Methods
- JModel
- Properties
- Constructors
- Methods
- JView
- Properties
- Constructors
- Methods
- JController
- Properties
- Constructors
- Methods
- JTable
- Properties
- Constructors
- Methods
- JError
- Methods
- JDocument
- Properties
- Constructors
- Methods
- JApplication
- Properties
- Constructors
- Methods
- JURI
- Properties
- Constructors
- Methods
- JLanguage
- Properties
- Constructors
- Methods
- JLanguageHelper
- Methods
- JText
- Methods
- JElement
- Properties
- Constructors
- Methods
- JParameter
- Properties
- Constructors
- Methods
- JCache
- Properties
- Constructors
- Methods
- JMail
- Constructors
- Methods
- JMailHelper
- Methods
- JFactory
- Methods
- JRegistry
- Properties
- Constructors
- Methods
- JSession
- Properties
- Constructors
- Methods
- JRoute
- Methods
- JMenu
- Properties
- Constructors
- Methods
- JPathway
- Properties
- Methods
- JDatabase
- Properties
- Constructors
- Methods
- JObject
- Parameters (Core JElements)
- Configuration
- Classes



