cover.eps

Joomla!® Bible, Second Edition

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

titlepg.eps

Credits

Senior Acquisitions Editor

Stephanie McComb

Project Editor

Jade L. Williams

Technical Editor

Ed Ventura

Copy Editor

Marylouise Wiack

Editorial Director

Robyn Siesky

Business Manager

Amy Knies

Senior Marketing Manager

Sandy Smith

Vice President and Executive Group Publisher

Richard Swadley

Vice President and Executive Publisher

Barry Pruett

Project Coordinator

Patrick Redmond

Graphics and Production Specialist

Carrie A. Cesavice
Jennifer Mayberry

Quality Control Technician

Lauren Mandelbaum

Proofreading

Lisa Young Stiers

Indexing

BIM Indexing & Proofreading Services

About the Author

Ric Shreves is a partner at water & stone (www.waterandstone.com), a web development agency focused on open source content management systems, or CMS. He has been building websites professionally since 1999 and writing about technology for almost as long. He has published several books on open source content management systems, including titles on Mambo, Joomla!, and Drupal. This is his fifth title with Wiley, having previously released Visual Blueprint titles on Mambo and Ubuntu Linux, as well as Drupal 7 Bible and the first edition of Joomla! Bible.

Ric is an American who has lived in Asia since 1995. He currently resides in Bali, Indonesia. You can learn more about Ric and his most recent work by visiting his website at http://ricshreves.net/.

Acknowledgments

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

cross-ref-icon.png 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).

Part I: Getting Started with Joomla!

In This Part

Chapter 1: Introducing the Joomla! Content Management System

Chapter 2: Obtaining and Installing Joomla!

Chapter 3: Taking a First Look at Joomla!

Chapter 4: Getting the Most from Site Configuration

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.