Table of Contents

Title Page

Copyright Page

Dedication

About the Authors

Credits

Acknowledgements

Introduction

Who This Book Is For

What This Book Covers

How This Book Is Structured

What You Need to Use This Book

Conventions

Source Code

Errata

p2p.wrox.com

Chapter 1 - Joomla! Jargon: Understanding the Language of Joomla!

Framework

Installation

Extensions

Content

Menus

Users

More Jargon

Summary

Exercises

Chapter 2 - Taking a Look Under the Hood

Core Components

Core Modules

Core Plugins

Core Templates

Summary

Exercises

Chapter 3 - Configuring Joomla!

Global Configuration

Core Component Configuration

Summary

Exercises

Chapter 4 - Managing Content

Understanding Joomla!’s Content Structure

Planning Your Content

Content for the Sample Site

Summary

Exercises

Chapter 5 - Managing Menus

Creating Menus

Creating Menu Items

Displaying Menus

Menus for the Sample Site

Summary

Exercises

Chapter 6 - Extending Joomla!

Extensions! What Are They Good For? Absolutely Everything!

Where Can I Find Extensions?

Popular Extensions

Adding Extensions to Our Sample Site

Summary

Exercises

Chapter 7 - Syndication in Joomla! 1.5

What Can Be Syndicated in Joomla! 1.5?

Changes from Joomla! 1.0

Setting Up Syndication

Syndication for the Sample Site

Summary

Exercises

Chapter 8 - Building a Custom Template

Creating a Comp Design

XHTML/CSS

Template File Structure

Overriding Default Layouts

Creating an Installation Package

Summary

Exercises

Chapter 9 - Troubleshooting Your Site

Common Problems

Trial and Error

Where to Find Help

Summary

Exercises

Chapter 10 - Advanced Tips and Tricks

Changing the HTML Title from the Template

Advanced Module Position Conditions

Building a Split Menu

Organizing Content in Multiple Levels

Loading Components in Different Areas of the Template

Using Different WYSIWYG Editors for Different Users

Using Multiple Templates

Using Page-Specific CSS in a Template

Summary

Exercises

A - Exercise Solutions

B - Installing Joomla!

C - Must-have Extensions

D - Useful Resources

Index

Beginning Joomla!® Web Site Development

Published by
Wiley Publishing, Inc.
10475 Crosspoint Boulevard
Indianapolis, IN 46256
www.wiley.com

Copyright © 2009 by Wiley Publishing, Inc., Indianapolis, Indiana

Published simultaneously in Canada

eISBN : 978-0-470-54934-6

Library of Congress Cataloging-in-Publication Data

Webb, Cory, 1979-Beginning Joomla web site development / Cory Webb. p. cm.

Includes index.

1. Web sites — Authoring programs. 2. Web site development. 3. Joomla! (Computer file) I. Title.

TK5105.8883.W47 2009

006.7’8 — dc22

2009007403

No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the permission Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011, fax (201) 748-6008, or online at www.wiley.com/go/permissions.

Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or warranties with respect to the accuracy or completeness of the contents of this work and specifically disclaim all warranties, including without limitation warranties of fitness for a particular purpose. No warranty may be created or extended by sales or promotional materials. The advice and strategies contained herein may not be suitable for every situation. This work is sold with the understanding that the publisher is not engaged in rendering legal, accounting, or other professional services. If professional assistance is required, the services of a competent professional person should be sought. Neither the publisher nor the author shall be liable for damages arising herefrom. The fact that an organization or Web site is referred to in this work as a citation and/or a potential source of further information does not mean that the author or the publisher endorses the information the organization or Web site may provide or recommendations it may make. Further, readers should be aware that Internet Web sites listed in this work may have changed or disappeared between when this work was written and when it is read.

For general information on our other products and services please contact our Customer Care Department within the United States at (800) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002.

Trademarks: Wiley, the Wiley logo, Wrox, the Wrox logo, Wrox Programmer to Programmer, and related trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries, and may not be used without written permission. Joomla! is a registered trademark of Open Source Matters, Inc. All other trademarks are the property of their respective owners. Wiley Publishing, Inc., is not associated with any product or vendor mentioned in this book.

Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic books.

I would like to dedicate this book to my wife, Carly.
Without her love, support, and patience, none of this would be possible.

About the Authors

Cory Webb is a web designer and developer and the owner of Cory Webb Media, LLC, where he specializes in building web sites with the premier content management system (CMS), Joomla!. He is perhaps best known for his instructional site, HowToJoomla.net, where he shares his insights and experiences through tips and tricks for beginning Joomla! users. Since the inception of HowToJoomla.net, he has written dozens of articles that have been well received by the Joomla! community. He has received numerous accolades such as “Sweet Jesus, thank you! I spent a day and a half looking for this bit of code! You’ve saved my sanity!” and “Thank You! I REALLY needed this solution!” He began working with Joomla!’s predecessor, Mambo, in 2003 when he was given the task of building a web site for his employer. After an exhaustive search for the right CMS, he found Mambo and never looked back. In May 2006, Cory started working part-time as a freelance developer for JoomlaShack.com. In February 2008, he parlayed that freelance work into a full-time career as the founder of Cory Webb Media, LLC.

Credits

Acquisitions Editor
Jennifer Watson

Development Editor
Sydney Jones

Technical Editor
Shane Sevo

Production Editor
Kathleen Wisor

Copy Editor
Kim Cofer

Editorial Manager
Mary Beth Wakefield

Production Manager
Tim Tate

Vice President and Executive Group Publisher
Richard Swadley

Vice President and Executive Publisher
Joseph B. Wikert

Associate Publisher
Jim Minatel

Project Coordinator, Cover
Lynsey Stanford

Proofreader
Jen Larsen, Word One

Indexer
Robert Swanson

Acknowledgments

The Joomla! project was founded on the principle that open source matters, and that a truly successful open source project is only successful with a thriving community. I would like to thank the Joomla! core team, working group members, contributors, and countless other volunteers who have worked together to build one of the best open source projects in the world.

I would also like to thank the kind people at Wrox for giving me the opportunity to share my thoughts, insights, and experience with the Joomla! community. This has been a truly humbling and rewarding experience, and I am grateful for every minute of it. Special thanks to Jenny Watson for approaching me about the possibility of writing a book about my favorite CMS. Thank you also to the development editor, Sydney Jones, whose patience and encouragement have helped me get through this process more than she’ll ever know. I also want to thank Shane Sevo, the technical editor. His insights and suggestions have been tremendously helpful in making this book the best it can be. Thank you also to the rest of the Wrox team who have worked to bring this book to the Joomla! community.

Finally, and most importantly, I want to thank my wife Carly for supporting me throughout this whole process. She put up with many weeks of long hours, late nights, and a cranky, sleep-deprived husband. From the bottom of my heart, I could not have done this without her.

Introduction

Content management systems have been around in one form or another for as long as there has been content. The efficient and effective management and presentation of content is one of the most important tasks facing web designers, web developers, and web site administrators. Some systems of managing and presenting content are more efficient and effective than others.

Ten years ago (and perhaps for some of you, ten minutes ago) web content was managed and presented in a terribly inefficient manner. The system consisted of web directories full of HTML (HyperText Markup Language) files, images, and other media files, and was organized in a directory tree structure much like your computer operating system is organized. Each page of content in a web site represented a single, stand-alone HTML file. Making any sort of changes to your content required a working knowledge of HTML, and the patience to dig through all of the files to find the correct file to change. Changing the overall look and feel of the site was an even more arduous task, because it required changing the HTML of each and every file in the system. What a nightmare!

It didn’t take long for many to transition from this system to a slightly more efficient system of server side includes (SSI). This was a method of building one HTML file to serve as the framework for the look and feel of the site, and “including” content from other text files within that HTML file. This was one way to separate the presentation of the content from the actual content itself. You could more easily make a change to the look and feel of the site by changing the main HTML file, but making changes to content still required a working knowledge of HTML.

As server-side scripting languages like PHP (Hypertext Preprocessor), ASP (Active Server Pages), and Macromedia’s Cold Fusion, and open source database systems like MySQL and PostgreSQL began to gain traction, newer and more efficient means of managing and presenting content began to emerge. Content could now be easily stored in a database system and retrieved for presentation in a web browser by a server-side language. To the end user, nothing was different because content was still consumed as HTML in a web browser. The major difference was that web administrators could now more easily manage the content that was being displayed.

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!