Table of Contents
Part I: Getting Started with Joomla!
Chapter 1: Introducing the Joomla! Content Management System
Discovering Open Source Content Management
Deciding to use a CMS
Deciding to use open source
Determining whether open source is right for you
Discovering Joomla!
Deciding to use Joomla!
Complying with the Joomla! open source license
Understanding the Joomla! Architecture
Working with the Joomla! CMS
Working with the Joomla! Platform
Appreciating the underlying technologies
Making sense of the Joomla! release schedules
Engaging with the Joomla! Community
Understanding the structure of the community
Becoming a part of the community
Summary
Chapter 2: Obtaining and Installing Joomla!
Getting the Installation Files
Exploring the JoomlaCode site
Determining which files you need
Meeting the Technical Requirements
Understanding the server requirements
Providing access for site visitors and administrators
Installing Joomla!
Creating a local development site
Installing on a web-hosting service
Running the Joomla! installer
Summary
Chapter 3: Taking a First Look at Joomla!
Exploring the Front End
Understanding the content organizational structure
Understanding the menu structures
Exposing the role of modules
Exploring the Back End
Understanding the various admin interfaces
Touring the main admin navigation menu
Summary
Chapter 4: Getting the Most from Site Configuration
Exploring the Global Configuration Manager
Navigating the Global Configuration Manager
Configuring components
Using the Global Configuration Manager Workspaces
Working with the Site tab
Configuring the System tab options
Modifying the Server tab options
Summary
Part II: Working with Content and Users
Chapter 5: Managing Content
Creating Articles
Introducing the Article Manager
Exploring the Add New Article workspace
Controlling introductory text
Creating multipage articles
Managing Existing Articles
Publishing and unpublishing articles
Featuring articles
Modifying articles
Copying and moving articles
Archiving articles
Deleting articles
Understanding Content Hierarchies in Joomla!
Using Categories to Create Content Hierarchies
Introducing the Category Manager
Adding a new category to your site
Copying and moving categories
Editing categories
Archiving and unarchiving categories
Deleting categories
Creating common content structures
Working with the Global Article Manager
Configuring default article formatting
Modifying the layout of the article editing page
Configuring category options
Tailoring the blog and list layouts
Managing integration and permissions
Summary
Chapter 6: Working with Editors and Media
Working with the Editor Options in Joomla!
Using the TinyMCE editor
Creating content without a WYSIWYG editor
Introducing the Joomla! Media Manager
Working with Media Files
Uploading files
Organizing files
Viewing file information
Displaying media on your site
Summary
Chapter 7: Employing Advanced Content Management Techniques
Using Content Display Modules
Creating custom content in modules
Displaying the most recent content
Displaying the most popular content
Giving visitors access to related content
Displaying random images
Placing modules inside articles
Bringing External Content into Your Site
Using iframe wrappers
Displaying syndicated content
Managing Content from the Front End
Understanding the advantages and the limitations
Enabling user-created content
Summary
Chapter 8: Working with the Menu System
Introducing the Menu Manager
Creating and Managing Menus
Adding a new menu to your site
Editing and deleting menus
Working with the Menu Item Manager
Creating and Managing Menu Items
Adding new menu items to a menu
Understanding the various menu item types
Creating multi-tier menus
Editing and deleting menu items
Controlling Access to Menus and Menu Items
Summary
Chapter 9: Managing the Home Page of Your Site
Creating the Home Page of Your Site
Working with the default content layout options
Using a distinct template for the home page
Publishing Articles on the Home Page
Displaying featured articles
Building a page without featured articles
Publishing Component Output on the Home Page
Publishing Modules on the Home Page
Summary
Chapter 10: Managing Your Site's Users
Introducing the User Manager
Understanding the Default User Hierarchy
Classifying front-end users
Classifying back-end users
Adding Users to the System
Creating a new user
Working with the New User workspace
Managing Existing Users
Editing user accounts
Deleting users
Blocking users
Adding and Editing User Groups
Enabling Front-End User Registration
Configuring user registration
Using the Login module
Creating a login page
Redirecting users after login or logout
Creating a user registration page
Enabling the Username Reminder function
Enabling the Password Reset function
Working with the User Profile Page
Controlling Access to Content and Functionalities
Deciding what users can see
Controlling what users can do
Summary
Chapter 11: Creating a Multilingual Website
Introducing the Language Manager
Installing New Language Packs
Modifying a Language Pack
Enabling Multilingual Content
Configuring the site to support a fully multilingual presentation
Creating the content structures to support multiple languages
Enabling the supporting plug-ins
Summary
Part III: Working with Components, Modules, and Plug-Ins
Chapter 12: Using the Banner Manager
Introducing the Banner Manager
Configuring the Banner Component
Managing Clients
Exploring the Banner Client Manager
Creating clients
Editing clients
Archiving clients
Deleting clients
Managing Categories
Exploring the Banner Categories Manager
Creating categories
Editing categories
Archiving categories
Deleting categories
Managing Banners
Creating banners
Editing banners
Archiving banners
Deleting banners
Tracking banner performance
Using the Banner Module
Creating a new Banner module
Enabling context-sensitive banner display
Summary
Chapter 13: Working with the Contacts Component
Introducing the Contact Manager
Configuring the Contacts Component
Managing Contacts
Adding a new contact
Editing contacts
Archiving contacts
Deleting contacts
Managing Categories
Creating a new category
Editing categories
Archiving categories
Deleting categories
Creating Contact Forms
Summary
Chapter 14: Using the Newsfeed Component
Introducing the Newsfeed Manager
Configuring the Newsfeed Component
Managing Your Newsfeeds
Adding a newsfeed
Editing a newsfeed
Archiving a newsfeed
Deleting a newsfeed
Managing Newsfeed Categories
Creating a new category
Editing categories
Archiving categories
Deleting categories
Summary
Chapter 15: Using the Site Search Components
Creating an Effective Site Search
Working with Joomla! basic search
Enhancing site search with Smart Search
Providing visitors with the right search interface
Configuring the Site Search Components
Managing Indexed Content
Tracking Site Search Activity
Summary
Chapter 16: Using the Weblinks Component
Introducing the Weblinks Manager
Configuring the Weblinks Component
Managing Weblinks
Adding a new link
Editing a weblink
Archiving a weblink
Deleting a weblink
Managing Weblinks Categories
Creating a new category
Editing categories
Archiving categories
Deleting categories
Summary
Chapter 17: Working with the Site Modules
Introducing the Site Module Manager
Creating new modules
Creating duplicate modules
Editing modules
Deleting modules
Reviewing the Site Modules
Publishing your archives with the Archived Articles module
Drawing attention with the Articles - Newsflash module
Connecting related content with the Articles - Related Articles module
Displaying your categories with the Articles Categories module
Publishing the Articles Category module
Managing advertising with the Banner module
Enhancing navigation with the Breadcrumbs module
Creating content with the Custom HTML module
Adding external content with the Feed Display module
Adding the Footer module
Language Switcher module
Highlighting the most recent content with the Latest News module
Publishing the Latest Users module
Displaying the Login module
Creating navigation with the Menu module
Featuring popular content with the Most Read Content module
Displaying images with the Random Image module
Providing site search with the Search module
Enhancing searches with the Smart Search module
Showing site information with the Statistics module
Adding RSS with the Syndicate Feeds module
Publishing links via the Weblinks module
Showing activity with the Who's Online module
Displaying external content with the Wrapper module
Summary
Chapter 18: Working with the Administrator Modules
Introducing the Administrator Modules Manager
Creating new modules
Creating duplicate modules
Editing modules
Deleting modules
Reviewing the Administrator Modules
Publishing the Admin Sub-menu module
Configuring the Administrator Menu module
Creating custom output with the Custom HTML module
Displaying external content with the Feed Display module
Publishing the Joomla! Version Information module
Displaying the latest articles with the Latest News module
Logged-in Users module
Using the Login Form module
Multilanguage Status utility module
Displaying popular content with the Popular Articles module
Using the administrator's Quick Icons module
Viewing site stats with the Statistics module
Using the Title module
Enabling the Toolbar module
Configuring the User Status module
Summary
Chapter 19: Working with Plug-Ins
Introducing the Plug-in Manager
Modifying plug-ins
Reviewing the Default Plug-ins
Using Authentication plug-ins
Captcha plug-ins
Content plug-ins
Editors plug-ins
Editors XTD plug-ins
Extension plug-ins
Finder plug-ins
Quickicon plug-ins
Search plug-ins
System plug-ins
Enabling User plug-ins
Summary
Part IV: Customizing and Extending the System
Chapter 20: Customizing the Appearance of Joomla!
Exploring the Default Templates
Reviewing the site templates
Reviewing the administrator templates
Understanding How Templates Work
Locating the template directories
Reviewing the key files
Using the Joomla! Template Manager
Viewing templates and styles
Setting the default style
Assigning styles
Customizing Template Styles
Working with Templates
Modifying an existing template
Creating a New Template
Overriding Module and Component Output
Customizing view templates
Creating Module Chrome
Summary
Chapter 21: Customizing Joomla! Functionality
Understanding the Basic Principles
Finding the Right Tools
Assembling your tool kit
Adding extensions that aid customization
Customizing Components
Introducing Component Architecture
Understanding the anatomy of a typical component
Creating a new component
Customizing Modules
Understanding the elements of a typical module
Creating a new module
Working with Plug-ins
Understanding plug-in architecture
Creating a new plug-in
Packaging a plug-in
Summary
Chapter 22: Extending Your Site
Finding Extensions
Working with the Extension Manager
Introducing the Extension Installer
Uninstalling extensions
Finding the Right Extension for the Job
Improving content management
Improving site administration
Enhancing search functionality
Enhancing menus and navigation
Building complex forms
Adding a gallery
Adding a forum
Enhancing SEO
Adding Web 2.0 functionality
Improving Ad Management
Summary
Part V: Overseeing Website Maintenance and Management
Chapter 23: Keeping Your Site Secure and Up to Date
Implementing Security Best Practices
Securing the Joomla! core
Securing third-party extensions
Keeping Up With Security Notices
Managing Site Maintenance
Taking a site offline
Backing up your site
Restoring from a backup
Regaining access to your administration system
Upgrading the core with Joomla! Update
Updating your site extensions
Summary
Chapter 24: Managing Performance and Accessibility
Employing Effective Cache Management
Setting the site cache
Enabling page caching
Caching module output
Clearing the cache
Purging the expired cache
Improving Content Performance
Avoiding large files
Saving images in the right format
Optimizing images
Keeping your code clean
Avoiding tables
Using image rotators
Using wrappers
Limiting use of animation
Restricting use of Flash
Limiting streaming
Tuning Joomla! Performance
Enabling server-side compression
Disabling unnecessary features
Minifying your CSS and JavaScript
Implementing Google Analytics
Optimizing your template
Being selective about extensions
Skipping live stat reporting
Disabling SEF URLs
Optimizing your database
Maintaining Accessibility
Accessing the accessibility of Joomla!
Improving template accessibility
Creating accessible content
Summary
Chapter 25: Making a Site Search–Engine Friendly
Creating Search Engine–Friendly URLs
Creating Custom Error Pages
Working with Metadata and Page Titles
Setting the metadata
Setting the page titles
Summary
Part VI: Appendixes
Appendix A: Choosing a Sample
Data Set
Appendix B: Locating Key Files
Appendix C: Installing XAMPP
Appendix D: Installing MAMP
Appendix E: Implementing e-Commerce with VirtueMart
I would like to thank Wiley for asking me to return as the author of the second edition of Joomla! Bible. We worked together to produce the first edition three years ago. In the intervening years, much has changed with both the web CMS landscape in general and with Joomla! in particular. Much of my excitement for this revision text stems from the fact that the newest version of Joomla! is a major step for the project — one that I hope receives the broad audience that it deserves. Having the chance to dig into Joomla! 3 in depth while researching and writing this title has been a brilliant learning experience and has left me with a very positive view of the newest version of Joomla! — something that I hope I have communicated adequately in the pages of this book.
This project ran on an incredible schedule, largely due to the measured guidance of my project editor Jade Williams. We had a very aggressive deadline to meet and without Jade's experience and ability to prioritize, I never would have made it. I also want to say thank you to Stephanie McComb, a Senior Acquisitions Editor at Wiley. She's the person responsible for pushing through both the Joomla! and Drupal Bible titles at Wiley, and has been a steady champion for these projects internally.
Introduction
Welcome to Joomla! Bible. As with all books in the Bible series, you can expect to find both hands-on tutorials and real-world applications, as well as references and background information that provide a context for what you are learning. This book is a comprehensive resource on the Joomla! open source content management system. After you have read Joomla! Bible, you will be well prepared to build and maintain a Joomla!-based website.
Joomla! is in the forefront of one of the most dynamic trends in open source software: the rise of open source content management systems. Historically, a web CMS was a very expensive investment. Open source has changed all that. There are now a number of options that allow website developers and website owners to tap into the power of CMS-based websites.
Of all the web CMS options that exist in the market today, perhaps none is more popular than Joomla! — certainly none is growing more quickly. The Joomla! system powers millions of websites and is one of the dominant forces shaping the way people interact with information online. It has empowered developers and website owners around the world to build the websites that allow them to express themselves, to sell their products, to publicize their news, and to build communities. With the arrival of Joomla! 3, the system moves into new ground with expanded functionality and support for mobile devices.
If you are a designer looking to build functional websites for your clients, Joomla! is an excellent tool. If you are a developer looking for a framework upon which to develop custom functionality, Joomla! can meet your needs. And if you are simply a website owner wanting to take control of your website, then you need look no further than Joomla!. Whatever your goals, welcome to Joomla! Bible.
In keeping with the comprehensive theme of the Bible series, this book seeks to provide a range of information suitable to a wide variety of potential readers. While I have strived to present information that is relevant to the largest possible group of users, certain sections of this book are logically more relevant to certain categories of users.
If you are looking to take your first steps with an open source content management system, the book progresses logically from the first section of introductory materials through the final sections on customization and website maintenance.
If you are already familiar with Joomla!, the opening sections will probably add little to your understanding of the system, but the sections that follow will help you unlock its full potential. Joomla! is a complex system, and the middle sections of this book explore in depth how to get the most out of it.
If you are a designer or developer, the middle and final sections will be your focus, as they take you through creating and configuring a Joomla! website and cover the basics of customizing the appearance and functionality of the system.
Finally, if you are a website owner or administrator, this book should serve as a reference, providing you with an easy-to-use guide to the ongoing ownership of a Joomla! website.
Is This Book for You?
This second edition of Joomla! Bible has been extensively updated to focus on coverage of the Joomla! 3 series of releases. With the arrival of Joomla! 3, the system has seen a complete change in the administration interface, new functionality, and numerous changes in the work process.
This book provides new users with all the information they need to install and configure a Joomla! website. Thereafter, the book stands as a reference for the various content management and component functionalities, all of which are documented and explained in detail. New users will also find the sections on maintaining and securing the system particularly helpful.
If you are familiar with Joomla! but ready to move up to the new Joomla! 3, this book provides all the information you need to get up to speed with the new interfaces quickly. If you are familiar with the first edition of this book, you will find the organizational schema to be very similar, but the contents have been almost completely refreshed and in many cases, expanded.
How This Book Is Organized
This book is divided into six parts, including an Appendix with useful resources.
Part I: Getting Started with Joomla!
Part I covers the basics of getting started with Joomla!. It assumes you do not know anything about the system. I introduce you to Joomla! and open source and content management systems and then walk through obtaining and installing Joomla!. The third chapter takes you on a guided tour of the front end and back end of the default Joomla! installation. The final chapter in this section covers getting the most out of Joomla's many configuration options.
Part II: Working with Content and Users
In Part II, you learn how to work with content and users, the heart of the Joomla! CMS. I cover creating, editing, and managing content items in great detail. I include a separate discussion on advanced content management techniques, including managing content from the front end of your Joomla! website. Chapter 8 is dedicated to Joomla's menu system, with a comprehensive review of all the menu item types included in the default installation. Chapter 9 looks at various techniques for creating an effective home page and managing the content on your home page. Managing users is the subject of Chapter 10, with an extended look at user groups, and how you can manage user permissions and privileges in Joomla! The final chapter in this sessions deals with creating a multilingual website and a look at all the language management tools in Joomla! 3.
Part III: Working with Components, Modules, and Plug-Ins
Part III focuses on the functionality that is included in the default system. I've included separate chapters for the default components in order to take an in-depth look at how to use and configure each component. The various Joomla! modules are also detailed in two chapters, one focused on the Site Modules, the other on the Administrator Modules. The modules chapters not only detail the purpose of each of the modules, but they also include examples of uses and complete coverage of the configuration options available for the modules. The final chapter covers the default Joomla! Plug-ins and the options they give website owners.
Part IV: Customizing and Extending the System
Part IV moves into how to customize the appearance and functionality of the system. The first chapter in this section takes an in-depth look at Joomla! templates. I explain how the templates work, how to customize their appearance, and even how to create your own templates from scratch. There is also discussion of template frameworks and examples of using Twitter Bootstrap in Joomla! 3. The next chapter looks at the core components, modules, and plug-ins, with an eye towards explaining the underlying MVC architecture, and how the elements work. Customization of the components and modules is also covered. The final chapter in this section looks at extending your Joomla! website. In that chapter, I also look at a set of extensions you can add to Joomla! 3 to address common website issues.
Part V: Overseeing Website Maintenance and Management
Part V covers the ongoing maintenance of a Joomla! website. This final section of the book is focused more on website ownership issues and will be of more interest to webmasters and website owners. The first chapter in the section looks at implementing a security regimine and at the related topic of patch management. The second chapter looks at how you can enhance the performance of your website and how to improve accessibility of your content. The final chapter in this section looks at techniques for enhancing the search engine friendliness of your Joomla! website.
Part VI: Appendixes
Part VI contains the Appendixes, which provide supplemental information, including a look at all the sample data installation options, and a guide to finding all the key files in your Joomla! installation. I also cover how to install the XAMPP and MAMP server packages on your computer, thereby allowing you to create a local development installation. In the final appendix, I look at using the VirtueMart extension to add e-commerce functionality to your website.
How to Use This Book
To get the most out of this book, you need access to an installation of the Joomla! CMS. Typically, this requires a server running a combination of the Apache web server, the MySQL database, and PHP. Website management is handled through a browser with a connection to the server. Full technical requirements and recommendations for optimal versions are discussed in Chapter 2.
In Part IV, where the topics focus on working with the Joomla! code, you want to have access to your favorite code editor. In this part and elsewhere in the book, having access to an FTP client is also useful.
Note
This book focuses on version 3.x of the Joomla! CMS. These releases are significantly different from the previous series.
About the Icons
Many different organizational and typographical features appearing throughout this book are designed to help you get the most from the information.
Whenever I want to bring something important to your attention, the information appears in a Tip, Note, Caution, or Cross-Reference.
Caution
The Caution icon means that you should pay special attention to the information or instructions so that you do not experience a problem.
Cross-Reference
The Cross-Reference arrow refers you to a related topic elsewhere in the book. Because you may not read this book straight through from cover to cover, you can use the cross-references to find the information you need quickly.
Note
A Note icon alerts you to some important point that requires special attention, or additional information that may be helpful.
Tip
A Tip shows you a way to accomplish a task more efficiently or quickly.
Where to Go from Here
It is my hope that you will take away from this book an increased awareness of the capabilities of the Joomla! system and a higher comfort level when working with websites based on Joomla!.
If you spend some time around open source software, you will quickly discover that the rate of change in these systems can be impressive (sometimes even a bit daunting). Joomla! is a community–driven, open source system. The community behind it is large, dynamic, and ever changing. New features are developed at a rapid pace, and new extensions, tips, tricks, and tools arise even more quickly.
If you want to get the most out of Joomla!, I strongly suggest you make an effort to keep up with the project. In Chapter 1, I list the official Joomla! project websites. You should bookmark those websites and visit them regularly. The Joomla! Forum is a great place to visit and learn what is new and of interest. Several of the official websites also provide RSS feeds and other easy ways to stay up to date with project developments.
If you want to send me feedback on this book, you can reach me directly by visiting my personal website, http://ricshreves.net/
; there is a contact form on that website that is sent directly to me. You can also provide feedback by visiting the official John Wiley & Sons website (www.wiley.com
).