You are previewing Beginning Joomla!® Web Site Development.
O'Reilly logo
Beginning Joomla!® Web Site Development

Book Description

By programmers for programmers-the essential beginner's guide to building websites with Joomla!

Want to build and maintain dynamic websites without having to learn HTML and CSS? Joomla! open-source web content management system and this beginner's guide are all you need. This book walks you step-by-step through the process of building a website with Joomla!, providing detailed instruction in Wrox's practical, programmer-to- programmer style.

The book explores key concepts and shows how each concept relates to the development of an actual real-world web site you can access online.

  • Joomla! is an open-source web content management system used to build and maintain dynamic web sites without using specific web languages like HTML and Cascading Style Sheets (CSS)

  • Walks you step by step through the process of building a website with Jooma! and features plenty of examples of actual websites that illustrate concepts

  • Topics include configuration; managing content, core modules, plugins, menus, and extensions; building custom templates; and performing troubleshooting; also provides advanced tips and tricks, and more

From configuration and management to troubleshooting and advanced tips, this is the book to get you up and running with Joomla!

Table of Contents

  1. Copyright
  2. About the Authors
  3. Credits
  4. Acknowledgments
  5. Introduction
    1. Who This Book Is For
    2. What This Book Covers
    3. How This Book Is Structured
    4. What You Need to Use This Book
    5. Conventions
    6. Source Code
    7. Errata
    8. p2p.wrox.com
  6. 1. Joomla! Jargon: Understanding the Language of Joomla!
    1. 1.1. Framework
    2. 1.2. Installation
    3. 1.3. Extensions
    4. 1.4. Content
    5. 1.5. Menus
    6. 1.6. Users
    7. 1.7. More Jargon
    8. 1.8. Summary
    9. 1.9. Exercises
  7. 2. Taking a Look Under the Hood
    1. 2.1. Core Components
      1. 2.1.1. Content
      2. 2.1.2. Banners
      3. 2.1.3. Contacts
      4. 2.1.4. Media Manager
      5. 2.1.5. News Feeds
      6. 2.1.6. Polls
      7. 2.1.7. Search
      8. 2.1.8. Web Links
    2. 2.2. Core Modules
      1. 2.2.1. Banner
      2. 2.2.2. Breadcrumbs
      3. 2.2.3. Custom HTML
      4. 2.2.4. Latest News
      5. 2.2.5. Login
      6. 2.2.6. Menu
      7. 2.2.7. Most Read Content
      8. 2.2.8. Newsflash
      9. 2.2.9. Poll
      10. 2.2.10. Random Image
      11. 2.2.11. Related Articles
      12. 2.2.12. Search
      13. 2.2.13. Syndicate
      14. 2.2.14. Who's Online
      15. 2.2.15. Wrapper
    3. 2.3. Core Plugins
      1. 2.3.1. Authentication Plugins
        1. 2.3.1.1. Authentication—Joomla!
        2. 2.3.1.2. Authentication—OpenID
      2. 2.3.2. Content Plugins
        1. 2.3.2.1. Content—Rating
        2. 2.3.2.2. Content—E-mail Cloaking
      3. 2.3.3. Editors
        1. 2.3.3.1. Editor—No Editor
        2. 2.3.3.2. Editor—TinyMCE 2.0
      4. 2.3.4. Editors-XTD
        1. 2.3.4.1. Editor Button—Image
        2. 2.3.4.2. Editor Button—Read More
      5. 2.3.5. Search
        1. 2.3.5.1. Search—Content
        2. 2.3.5.2. Search—Contacts
      6. 2.3.6. System
        1. 2.3.6.1. System—SEF
        2. 2.3.6.2. System—Legacy
      7. 2.3.7. User
      8. 2.3.8. XML-RPC
        1. 2.3.8.1. XML-RPC—Blogger API
    4. 2.4. Core Templates
      1. 2.4.1. Rhuk_Milkyway
      2. 2.4.2. Beez
      3. 2.4.3. JA_Purity
    5. 2.5. Summary
    6. 2.6. Exercises
  8. 3. Configuring Joomla!
    1. 3.1. Global Configuration
      1. 3.1.1. Site Settings
        1. 3.1.1.1. Site Settings
        2. 3.1.1.2. Metadata Settings
        3. 3.1.1.3. SEO Settings
      2. 3.1.2. System Settings
        1. 3.1.2.1. System Settings
        2. 3.1.2.2. User Settings
        3. 3.1.2.3. Media Settings
        4. 3.1.2.4. Debug Settings
        5. 3.1.2.5. Cache Settings
      3. 3.1.3. Server Settings
        1. 3.1.3.1. Server Settings
        2. 3.1.3.2. Locale Settings
        3. 3.1.3.3. FTP Settings
        4. 3.1.3.4. Database Settings
        5. 3.1.3.5. Mail Settings
      4. 3.1.4. Saving Your Changes
    2. 3.2. Core Component Configuration
      1. 3.2.1. Content Settings
      2. 3.2.2. Banner Settings
      3. 3.2.3. Contact Settings
      4. 3.2.4. News Feed Settings
      5. 3.2.5. Search Parameters
      6. 3.2.6. Web Links Parameters
    3. 3.3. Summary
    4. 3.4. Exercises
  9. 4. Managing Content
    1. 4.1. Understanding Joomla!'s Content Structure
      1. 4.1.1. Sections
      2. 4.1.2. Categories
      3. 4.1.3. Articles
        1. 4.1.3.1. Uncategorized Articles
    2. 4.2. Planning Your Content
      1. 4.2.1. Why Is Planning Important?
      2. 4.2.2. Planning for Purpose
      3. 4.2.3. How Does Your Plan Fit into Joomla!'s Content Architecture?
    3. 4.3. Content for the Sample Site
    4. 4.4. Summary
    5. 4.5. Exercises
  10. 5. Managing Menus
    1. 5.1. Creating Menus
      1. 5.1.1. How Should I Name My Menus?
    2. 5.2. Creating Menu Items
      1. 5.2.1. Internal Links
      2. 5.2.2. Menu Item Details
      3. 5.2.3. Menu Item Parameters
      4. 5.2.4. Save Your New Menu Item
      5. 5.2.5. The Default Menu Item
      6. 5.2.6. Menu Item IDs—The Life Blood of Your Joomla! Site
    3. 5.3. Displaying Menus
      1. 5.3.1. The Menu Module
    4. 5.4. Menus for the Sample Site
    5. 5.5. Summary
    6. 5.6. Exercises
  11. 6. Extending Joomla!
    1. 6.1. Extensions! What Are They Good For? Absolutely Everything!
      1. 6.1.1. Installing Extensions
        1. 6.1.1.1. Uploading Your Installation Package File
        2. 6.1.1.2. Installing from a Directory
        3. 6.1.1.3. Installing from a URL
      2. 6.1.2. Components
      3. 6.1.3. Modules
        1. 6.1.3.1. Enabling/Disabling Modules
        2. 6.1.3.2. Copying and Deleting Modules
        3. 6.1.3.3. Reordering Modules
        4. 6.1.3.4. Adding and Editing Modules
      4. 6.1.4. Plugins
      5. 6.1.5. Templates
      6. 6.1.6. Languages
    2. 6.2. Where Can I Find Extensions?
    3. 6.3. Popular Extensions
      1. 6.3.1. Community Builder
      2. 6.3.2. FireBoard
      3. 6.3.3. NinjaXplorer
      4. 6.3.4. JomComment
      5. 6.3.5. Mosets Tree
    4. 6.4. Adding Extensions to Our Sample Site
      1. 6.4.1. Community Builder
      2. 6.4.2. FireBoard
      3. 6.4.3. MyBlog and JomComment
      4. 6.4.4. Mosets Tree
    5. 6.5. Summary
    6. 6.6. Exercises
  12. 7. Syndication in Joomla! 1.5
    1. 7.1. What Can Be Syndicated in Joomla! 1.5?
      1. 7.1.1. Content
      2. 7.1.2. Contacts
      3. 7.1.3. Web Links
    2. 7.2. Changes from Joomla! 1.0
      1. 7.2.1. Content Section Syndication
      2. 7.2.2. Content Category Syndication
      3. 7.2.3. Component Syndication
    3. 7.3. Setting Up Syndication
      1. 7.3.1. Feed Links
      2. 7.3.2. The Syndicate Module
      3. 7.3.3. Further Configuration
      4. 7.3.4. Integrating with FeedBurner
        1. 7.3.4.1. Setting Up FeedBurner
        2. 7.3.4.2. Replacing the Joomla! Feed Link with the FeedBurner Link
    4. 7.4. Syndication for the Sample Site
    5. 7.5. Summary
    6. 7.6. Exercises
  13. 8. Building a Custom Template
    1. 8.1. Creating a Comp Design
      1. 8.1.1. Fireworks Versus Photoshop
      2. 8.1.2. Slicing Your Design
    2. 8.2. XHTML/CSS
      1. 8.2.1. XHTML
      2. 8.2.2. CSS
    3. 8.3. Template File Structure
      1. 8.3.1. Files
        1. 8.3.1.1. index.php
        2. 8.3.1.2. templateDetails.xml
        3. 8.3.1.3. component.php
        4. 8.3.1.4. error.php
        5. 8.3.1.5. offline.php
        6. 8.3.1.6. Other Files
      2. 8.3.2. Folders
        1. 8.3.2.1. css
        2. 8.3.2.2. images
        3. 8.3.2.3. html
      3. 8.3.3. Languages
    4. 8.4. Overriding Default Layouts
      1. 8.4.1. Content Article Override
      2. 8.4.2. Module Chrome
    5. 8.5. Creating an Installation Package
    6. 8.6. Summary
    7. 8.7. Exercises
  14. 9. Troubleshooting Your Site
    1. 9.1. Common Problems
      1. 9.1.1. Search Module Without the Component
      2. 9.1.2. SEF URLs Not Working Properly
      3. 9.1.3. JavaScript Not Embedding in an Article
      4. 9.1.4. Can't get "Welcome to the Frontpage" off of the Front Page
    2. 9.2. Trial and Error
    3. 9.3. Where to Find Help
      1. 9.3.1. How to Ask for Help
    4. 9.4. Summary
    5. 9.5. Exercises
  15. 10. Advanced Tips and Tricks
    1. 10.1. Changing the HTML Title from the Template
    2. 10.2. Advanced Module Position Conditions
      1. 10.2.1. Loading a Module Position for Unregistered Users Only
      2. 10.2.2. Loading a Module Position for Only a Specific User
      3. 10.2.3. Loading a Module Position for a Specific User Group
    3. 10.3. Building a Split Menu
    4. 10.4. Organizing Content in Multiple Levels
    5. 10.5. Loading Components in Different Areas of the Template
    6. 10.6. Using Different WYSIWYG Editors for Different Users
    7. 10.7. Using Multiple Templates
    8. 10.8. Using Page-Specific CSS in a Template
    9. 10.9. Summary
    10. 10.10. Exercises
  16. A. Exercise Solutions
    1. A.1. Chapter 1
      1. A.1.1. Exercise 1 Solution
      2. A.1.2. Exercise 2 Solution
      3. A.1.3. Exercise 3 Solution
      4. A.1.4. Exercise 4 Solution
      5. A.1.5. Exercise 5 Solution
    2. A.2. Chapter 2
      1. A.2.1. Exercise 1
      2. A.2.2. Exercise 2
      3. A.2.3. Exercise 3
      4. A.2.4. Exercise 4
    3. A.3. Chapter 3
      1. A.3.1. Exercise 1
      2. A.3.2. Exercise 2
      3. A.3.3. Exercise 3
      4. A.3.4. Exercise 4
    4. A.4. Chapter 4
      1. A.4.1. Exercise 1 Solution
      2. A.4.2. Exercise 2 Solution
      3. A.4.3. Exercise 3 Solution
      4. A.4.4. Exercise 4 Solution
    5. A.5. Chapter 5
      1. A.5.1. Exercise 1
      2. A.5.2. Exercise 2
      3. A.5.3. Exercise 3
      4. A.5.4. Exercise 4
    6. A.6. Chapter 6
      1. A.6.1. Exercise 1
      2. A.6.2. Exercise 2
      3. A.6.3. Exercise 3
      4. A.6.4. Exercise 4
      5. A.6.5. Exercise 5
    7. A.7. Chapter 7
      1. A.7.1. Exercise 1
      2. A.7.2. Exercise 2
      3. A.7.3. Exercise 3
    8. A.8. Chapter 8
      1. A.8.1. Exercise 1
      2. A.8.2. Exercise 2
      3. A.8.3. Exercise 3
      4. A.8.4. Exercise 4
    9. A.9. Chapter 9
      1. A.9.1. Exercise 1
      2. A.9.2. Exercise 2
      3. A.9.3. Exercise 3
    10. A.10. Chapter 10
      1. A.10.1. Exercise 1
      2. A.10.2. Exercise 2
      3. A.10.3. Exercise 3
    11. A.11. Appendix B
      1. A.11.1. Exercise 1
      2. A.11.2. Exercise 2
      3. A.11.3. Exercise 3
      4. A.11.4. Exercise 4
  17. B. Installing Joomla!
    1. B.1. Setting Up a Local Web Server on Your Home or Office Computer
      1. B.1.1. Local Web Servers
        1. B.1.1.1. Downloading XAMPP
        2. B.1.1.2. Installing XAMPP
        3. B.1.1.3. Running and Configuring XAMPP
      2. B.1.2. Installing Joomla! on Your Local Server
        1. B.1.2.1. Unpack and Upload
        2. B.1.2.2. Setting Up the Database
        3. B.1.2.3. Running the Joomla! Installer
    2. B.2. Installing Joomla! in a Shared Hosting Environment
      1. B.2.1. What to Look for in a Web Host
      2. B.2.2. Setting Up Your Database with cPanel
      3. B.2.3. Unpack and Upload
      4. B.2.4. Running the Joomla! Installer
    3. B.3. Moving Your Joomla! Installation from One Server to Another
      1. B.3.1. Why not Create a Fresh Installation?
    4. B.4. Summary
    5. B.5. Exercises
  18. C. Must-have Extensions
    1. C.1. Social Networking
    2. C.2. Blogging
    3. C.3. Forums
    4. C.4. File Management
    5. C.5. Document Management
    6. C.6. Business Directory
    7. C.7. Photo Galleries/Slideshows
    8. C.8. Form Creation and Management
    9. C.9. WYSIWYG Editors
    10. C.10. E-Commerce
    11. C.11. Content Management
    12. C.12. Real Estate
    13. C.13. Events/Calendars
    14. C.14. SEF URLs
    15. C.15. Project Management
    16. C.16. User Management
    17. C.17. Other Utilities
  19. D. Useful Resources
    1. D.1. Help Sites
      1. D.1.1. The Joomla! Discussion Forums
      2. D.1.2. Joomla! Official Documentation
      3. D.1.3. Joomla! Developer Site
      4. D.1.4. Joomla! Community Portal
      5. D.1.5. JoomlaTutorials.com
      6. D.1.6. Compass Designs
      7. D.1.7. Alledia.com
      8. D.1.8. HowToJoomla.net
    2. D.2. Active Third-Party Developers
      1. D.2.1. JoomlaTools
      2. D.2.2. RocketWerx
      3. D.2.3. JXtended
    3. D.3. Popular Commercial Template Developers
      1. D.3.1. JoomlaShack
      2. D.3.2. RocketTheme
      3. D.3.3. JoomlaPraise