Back to description
If you’re reading this book, you likely already know that Joomla is becoming one of the most widely adopted new Web technologies... more
If you’re reading this book, you likely already know that Joomla is becoming one of the most widely adopted new Web technologies. The Joomla Content Management System (CMS) provides an easy-to-use graphical user interface for Web site construction and maintenance. A novice Web user can quickly master the rudiments of Joomla and create a beautiful full-featured site, as shown in Figure 1-1, without knowing any Hypertext Markup Language (HTML). This book assumes that you are beyond the basics of site setup and want to master the Joomla system to make your Web site (or sites) world classand you’ll learn all that between these covers.
The method you use to master Joomla will depend on your needs and your role in the deployment of a Joomla Web site. This chapter explains how various Joomla users (Web masters, Web designers, and Web developers) will use this book to focus on learning the skills and technology that suits their needs and desires.
In all of the examples that will be presented in this book, I’ve tried to present the information as clearly and unambiguously as possible. I know you are here to master Joomlanot necessarily the other technologies (such as MySQL, CSS, PHP, and so on) that Joomla rests atop. There are other excellent books from Wiley that will help you do just that. The goal of this book is to help you complete any Joomla projects that you intend to create and deploy.
Therefore, I’ve tried to present a solid basic explanation of everything that is being done so that, even if you’re not a master of Cascading Style Sheets (CSS), for example, you’ll be able to follow the examples easily enough to reach your goal.
... less
Four different server technologies must work in concert for Joomla to function properly. If Apache can’t execute PHP, or... more
Four different server technologies must work in concert for Joomla to function properly. If Apache can’t execute PHP, or PHP can’t connect to MySQL, or Joomla can’t write into the MySQL database, the system fails. This chapter will help you configure each interlocking server system to work properly in unison. Each server is controlled by a list of directives or configuration settings, and making sure those settings are optimal will ensure that the system functions properly.
Additionally, various techniques describing the fine-tuning of each aspect of the system will help your server respond to Web requests most efficiently to create the best user experience. By customizing these settings to suit the needs of your Joomla system, you will be able to squeeze a great deal more performance out of the same hardware.
Joomla’s ability to use templates is one of the key reasons for its widespread adoption. A site that appears mediocre can... more
Joomla’s ability to use templates is one of the key reasons for its widespread adoption. A site that appears mediocre can be transformed into a fantastic Web presence with the five-minute installation of a professional template. In fact, a flourishing segment of the Joomla market is the commercial template market. There are literally dozens of companies offering templates for sale. Many of the sites use a monthly subscription model, where a subscriber may download any template available there. This model ensures that new templates are always needed to keep the subscribers interested.
In this chapter, you’ll learn to create a template from scratch and use stylesheets to provide comprehensive layout features. Most free templates include only a single page that’s used throughout the site. For a more professional presentation, you’ll learn how to create a template family where multiple stylesheets are used together to provide a cohesive image or brand for a Web site.
Before you begin creating templates, it may be useful to review the structure of one. Since the general structure varies little from template to template, a thorough understanding of template organization can make designing your own templates, or editing existing ones, substantially easier.
Joomla’s extensibility begins with templates (the simplest form) and ends with plug-ins (the most advanced). Between the... more
Joomla’s extensibility begins with templates (the simplest form) and ends with plug-ins (the most advanced). Between the two extremes are modules and components. Whereas templates modify the presentation of the Joomla site and plug-ins sit at the core level to control the functioning of the Joomla system, components and modules are the more familiar type of extension that adds a specific functionality (such as polls, forums, or a menu display). All three types of extensions (modules, components, and plug-ins) can add a tremendous amount of extra functionality to a Joomla system.
There are so many extensions available for Joomla that it’s sometimes difficult to choose which one to use. For example, there are six different photo gallery plug-inseach with its own strengths and weaknesses. Some have great customer support, while others have a broader range of features. Sometimes choosing the right extension in a feature category boils down to testing them all.
This chapter examines some of the most robust and popular extensions available in the following areas:
Site features
Organization and e-commerce
Site content
Site interaction
This survey of extensions will demonstrate the breadth and depth of available expansion potential for Joomla. Before the actual extensions are examined, it is useful to look at the central repository for add-ons located on the main Joomla site.
While the huge library of existing Joomla extensions can fill most needs, many sites will eventually need some custom programming... more
While the huge library of existing Joomla extensions can fill most needs, many sites will eventually need some custom programming. This often means using a custom extension to display information in a specific fashion. Modules are the simplest form of extensions in Joomla, and they are generally either display-only or accept only minimal user input.
Modules are used in Joomla for most of the basic front page display, including the menus, the banners, the search inputs, and polls. Often, a module will provide the presentation aspects of an associated component. For example, the search module displays the text fields for input that is passed to the search component that actually runs the query. Since modules are primarily display-only, they are usually very easy to implement and deploy.
This chapter shows you how to create three modules:
The first module displays a simple Hello World greeting and provides a good foundation atop which you can build nearly any type of module.
The second module uses a custom table in the database to display holiday greetings. If the current day matches one of the holiday dates stored in the database, the linked greeting appears inside the module.
The third module uses the infrastructure provided by the Contacts component to retrieve and display a list of custom contact information.
As you progress through the construction of these components, you will learn how to use the Joomla Administrator interface to configure a module. You will also see how a module executes within the Joomla framework. Since modules are quick and simple to construct, you can solve many of your custom development problems by generating individualized modules with the specific functionality that you need.
In Chapter 5, you developed a few simple extensions to grasp the basic aspects of Joomla’s extensibility. You were instructed... more
In Chapter 5, you developed a few simple extensions to grasp the basic aspects of Joomla’s extensibility. You were instructed to construct the various modules with a simple text editor, since the code was rudimentary and already debugged. Professional development, however, requires far greater control of the project. For example, to develop a multi-module and component-based shopping cart application, a developer would need to coordinate multiple development files, and may need to work in conjunction with other programmers.
This chapter outlines the work process of creating an advanced Joomla extension. You will be using a professional development system (Eclipse), source code control (through Subversion), and generating project documentation (through phpDocumentor). By following this development process from beginning to end, you will have a better idea of how professional Joomla applications can be created in an enterprise situation.
Ajax (which stands for Asynchronous JavaScript and XML) combines a powerful set of technologies for Web 2.0 sites. Using... more
Ajax (which stands for Asynchronous JavaScript and XML) combines a powerful set of technologies for Web 2.0 sites. Using Ajax technology, you can make the user experience far more interactive than previous Web site implementations. In the past, changes to parameters or the selection of buttons on a Web page required the changes be sent back to the Web server for an update. The browser would have to wait for the entire modified page to be returned to display the revisions. Using that process, user interaction with a Web application was fairly clunky.
In a Web application designed with Ajax, near-immediate interaction is possible. User-interface requests such as changing the sort order of a table by clicking on the column headings can be handled on the client with little delay. If the interaction involves requesting additional information (such as help text on a line item), rather than requesting an update of the entire page, Ajax technology allows small amounts of data to be exchanged with the server. Updates can happen dynamically, so the entire Web page doesn’t need to be reloaded.
Joomla has incorporated functionality that promotes Ajax technology. A Joomla site can support Ajax background information exchange for a more dynamic and responsive user experience.
Joomla is an object-oriented application. The Joomla framework has been developed as a series of classes that work together... more
Joomla is an object-oriented application. The Joomla framework has been developed as a series of classes that work together to provide the content management system (CMS) functionality. Developing for Joomla effectively requires that certain object-oriented concepts be understood and adopted. One of these concepts is the use of design patterns for development. Design patterns are essentially conceptual models that direct the way new object-oriented programming is approached.
Design patterns are models that have been refined over many projects so that, if properly matched to the problem that you are trying to solve, can supply a proven effective methodology to solving that problem. Adoption of effective design patterns means that development schedules are easier to keep, maintenance of the system is cheaper, communication about the evolving system is clearer, and new developers will have an easier time programming the system. By following a design pattern, a developer essential avoids reinventing the wheel every time a new project is started.
Since Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides pioneered work in this field in the early 1990s, there have been many comprehensive explanations written. The original (and perhaps most important) book on the subject, Design Patterns: Elements of Reusable Object-Oriented Software (Boston: Addison-Wesley, 1995), laid the foundations for many of the patterns that are used up to the present dayincluding those you see in Joomla.
This chapter introduces the basic concepts of design patterns and, since the Joomla team has adopted them in the CMS design, describes how some of them apply to Joomla. When you understand the design philosophy behind Joomla, you will not only be able to build more effective Joomla extensions, you will also better recognize how the framework itself can be addressed, examined, and used.
You have already created modules and components, so now it’s time to tackle the final Joomla programming extension: the plug-in... more
You have already created modules and components, so now it’s time to tackle the final Joomla programming extension: the plug-in. While a module is primarily for presentation and a component is chiefly for user interaction, plug-ins sit at the lowest level of the system and can modify core Joomla functionality. In this chapter, you will create a simple Hello World plug-in, and then proceed to a far more complex plug-in that intercepts article content after Joomla has rendered it and make modifications to the page before it is sent to the visitor’s browser.
After you’ve created and tested this pair of plug-ins, together with your previous comprehension of module and component programming, you will definitely be considered an advanced Joomla extension developer. The overview of the Joomla programming framework will complete your education. The framework is the actual skeleton of the Joomla CMS; it is made up of all classes that, once you understand them, you can leverage in direct use.
In the world of Web 2.0, interactivity and community are the watchwords. Organizations have learned that establishing a... more
In the world of Web 2.0, interactivity and community are the watchwords. Organizations have learned that establishing a virtual community (that is, an online community), while difficult, is essential to thriving in the new marketplace. By adding community technology to a Web site, visitors are encouraged to add their voices to the interaction between the site content and other visitors. Communication occurs through a variety of site features, including chat rooms, forums, personal pages, guestbooks, polls, commenting systems, social networking, event calendars, and wiki systems.
Whether the virtual community is a loose gathering of participants (such as consumers entering product reviews on the target Web site) or the intensive daily use of MySpace, the rewards are significant in terms of traffic and site ranking. The development of Joomla itself is a success story in terms of creating a sustained online community that has fostered a thriving forum (forum.joomla.org) , an active user-contribution directory with visitor commenting (extensions.joomla.org), and a high-volume, user-submitted site directory (www.joomla.org/content/blogcategory/35/69). Joomla wouldn’t be thriving without the embrace of the community technologies by the system user.
forum.joomla.org
extensions.joomla.org
www.joomla.org/content/blogcategory/35/69
Fostering an online community or social network takes careful deployment and the coordination of many different pieces of technology. Unlike a traditional static Web site, a virtual community accepts input rather than simply outputting stored pages. This means a whole new set of challenges from configuring data sources to accepting and storing submitted data to the extra administration (both automated and manual) required to control the flow and efficacy of new content.
Fortunately, Joomla not only has the technology to create a thriving community, but it also minimizes the difficulties of implementing this functionality. In this chapter, you will learn an approach to planning a virtual community all the way through implementation using existing free Joomla extensions.
Note
As of this writing, some of the extensions described in this chapter have not yet been upgraded to work with Joomla 1.5. I hope by the time you read this, all of the add-ons will be available in their version 1.5 incarnations. If the extension you want to use is not yet upgraded, look in the Joomla extensions directory (extensions.joomla.org) and it is very likely you will find a substitute extension that will perform the same functions.
Because virtual communities require a large amount of maintenance time, it is useful to take a conservative approach to deployment. The extensible nature of the Joomla system is perfect for such an incremental deployment. In most cases, you can add an extension that provides a specific community capability in less than 10 minutes. If the feature is not popular on the site, or if you're not satisfied with the options it provides, you can use the Extension Manager to uninstall or unpublish it in seconds. Without Joomla, most Web sites would require a great deal of custom programming to integrate these considerable features into a system.
Some of the extensions used in creating an online community have already been introduced in Chapter 4, so they will only be briefly reviewed here to describe their place in the community setup. A variety of other extensions will be presented to offer a representative sample of the types of features that can be added to the Joomla system. All of the extensions covered in this chapter are available for free. When there is a particularly well-known commercial extension to provide a specific functionality, that product will be cited.
For each extension demonstrated, a URL is provided where it can be found as of this writing. However, projects tend to change and move around. All of the cited extensions are included in the directory that you will find in the Joomla extensions directory. So, if the Web address denoted in this book is no longer valid, you should be able to locate the current download location in the directory.
Basic Joomla installation will get a site up and running quickly and easily, but a professional deployment may require a... more
Basic Joomla installation will get a site up and running quickly and easily, but a professional deployment may require a good deal more effort in the areas of management and administration. Although Joomla accommodates beginning users, expert users will find substantial administrative capabilities that make professional deployment possible. Additionally, the servers that the system relies on for Web serving and execution have a variety of management tools and settings.
Since an “untuned” system will never provide the performance of a tuned and refined system, spending the time to adjust all of the systems will provide great benefits. By customizing these settings to the needs of your Joomla system, you will be able to squeeze a great deal more performance out of the same hardware.
The techniques examined in this chapter can be divided into broad areas such as separating your development server from your deployment server, Joomla administration, Joomla maintenance, and fine-tuning the final deployment. Of course, these areas overlap quite a bit because they all deal with management and configuration of the Joomla server.
No Web site should be an island. Joomla makes it easy for a site to interface with outside content for everything from downloading... more
No Web site should be an island. Joomla makes it easy for a site to interface with outside content for everything from downloading Web feed articles to using Electronic Data Interchange (EDI) for commerce transactions to querying a database for XML data. There are literally dozens of extensions that support numerous types of system interaction. When you can’t locate an extension that has the necessary communication capabilities, or you need a custom protocol, Joomla’s developer-friendly framework makes it easy to develop your own extensions.
In this chapter, you’ll learn how to configure your Joomla site to subscribe to external content and to publish your own on a Web feed. You’ll also have a chance to see some of the affiliate programs that can be used effectively with Joomla through extensions created specifically to add the affiliate features to a Joomla site. Finally, you will use the development skills you have already gained to build custom extensions to wrap a Web API (to implement Google Maps), interface with a query server that returns a result set in XML (the U.S. Postal Service ZIP code finder), and develop a simple screen scraper to obtain data from another HTML site.
There is generally little point in having a Web site if interested users cannot find it. Making your site conspicuous in... more
There is generally little point in having a Web site if interested users cannot find it. Making your site conspicuous in the search engines used on the Internet is one of the most important aspects of modern Web deployment. Search Engine Optimization (SEO) techniques will maximize your ranking in the search engines and minimize practices that keep your site with only an average placement.
This chapter examines SEO that relates most directly to a Joomla site. Joomla includes a number of features that make a site more Search Engine Friendly (SEF). The built-in settings help guide the search engines to more accurately represent the content of your site. There are also a number of general techniques that, if followed consistently, will aid in maximizing your site placement on every relevant search.
This chapter also takes a brief look at Search Engine Marketing (SEM), where paid advertising can help drive traffic to your Web site. SEM encapsulates SEO techniques, but large commercial organizations often hire an SEM firm (such as The Search Agency) to handle both sides of the search engine business. In contrast, small sites and noncommercial sites will emphasize SEO because of the low (or no) cost of implementation. Since a majority of Joomla sites are medium sized or small, this chapter will focus on SEO.
Keep in mind that the world of SEO is changing constantly. What may have a tremendous effect on search placement today may become much less important tomorrow. That said, none of the techniques described here should hurt your placement. If, in the future, the techniques described here lose some of their potency, they will likely always be useful for ranking improvement.
Because Joomla is easy to install and configure, many Web masters are lax when it comes to implementing proper security.... more
Because Joomla is easy to install and configure, many Web masters are lax when it comes to implementing proper security. Although the Joomla system does everything it can to prevent hacker breaches, it is important for any Web administrator to understand the basics of security and for you to understand the particulars of ensuring that your Joomla system can withstand an attack.
Because Joomla uses four interlocking server technologies (Apache, PHP, MySQL, and Joomla), you must maintain security protection at each link of the chain. For example, poorly handled PHP security can leave Joomla wide open to penetration even if Joomla, MySQL, and Apache are secure. This chapter examines each of the servers and how maximum security can be put into place to minimize the danger from the “Wild Wild West” environment of the Internet.
To minimize security problems you should perform a regular update of all your server software, including Joomla. New security problems are found all the time, and the developers of each software package patch the applications to close loopholes. By keeping your versions updated, you will be less vulnerable to attacks.
As you know by now, Joomla is a phenomenal Content Management System (CMS). On the CMS Matrix Web site... more
As you know by now, Joomla is a phenomenal Content Management System (CMS). On the CMS Matrix Web site (www.cmsmatrix.org), which tracks features of all of the major CMS applications, Joomla has 124 out of 140 features listed for comparison. The tremendous feature list makes Joomla comparable to systems that sell for hundreds of thousands of dollars. However, there are areas where Joomla lacks the sophistication or advanced implementation that would make another CMS application a better choice for certain types of deployment.
www.cmsmatrix.org
This chapter provides a snapshot of some of Joomla’s shortcomings as of this writing. Joomla development continues, and many of these features are slated for addition to Joomla in the coming years. However, other CMS vendors will not be idle either, so this chapter will portray Joomla accurately as it can be compared with other products in the near future. When Joomla adds a first version of a given feature, the products that already include the feature will likely be releasing version 2.0 capabilities. Therefore, this chapter should continue to provide an effective way of judging Joomla’s deficiencies in relation to other products of the CMS category.
Some Joomla proponents would argue that many of Joomla’s shortcomings can be overcome by adding available extensions. In the cases where a widely adopted extension integrates a particular feature in a seamless way (the way Virtuemart adds e-commerce capabilities), I have not included the non-native item as a Joomla limitation. When available extensions add only the most primitive or poorly supported implementation of the functionality (such as version control), I have cited Joomla’s weakness in that area.
The Joomla CMS has been successful in supporting topic areas as diverse as property management to children’s television.... more
The Joomla CMS has been successful in supporting topic areas as diverse as property management to children’s television. Because the Joomla community is so varied, it is sometimes difficult to know where to begin when studying peer sites to better your own. This chapter provides a window into many successful Joomla sites. Visiting these sites will help generate new ideas for layout and functionality.
Each site spotlighted in this chapter is evaluated in terms of its use of Joomla technology, including the extensions used on the site, the Internet service provider (ISP) that is hosting the site, the template used by the site, the virtual community and e-commerce features, and more. I have also tried to ensure that each site has been around for at least two years because that makes it more likely the site will continue to exist.
Web sites include in the survey that had the following characteristics:
Significant presence among the community to which the site caters The site must feature a decent amount of content that has been updated at least semi-recently, so “ghost sites” were avoided. As a rough guide, I tried to pick sites with a Google page ranking of 5 or above.
Clean use of the Joomla interface and professional design With the widespread availability of both free and commercial templates, a Joomla site has little reason to look shabby.
Adoption of one or more Joomla extensions to supplement site functionality Visiting these sites allows a developer to see some of the Joomla add-on technology in action.
Selecting sites by these criteria stopped me from including those that, while popular, were poorly designed, and other sites that had amazing presentations, but had little or no content. As the constellation of Joomla sites has grown on the Internet, selecting a few sites among the masses is difficult. However, the sites spotlighted in this chapter show the versatility of the Joomla CMS and the pervasive adoption of Joomla by every type of Web master.
I have only included English sites in this list. Unfortunately, I only speak two languages (and the second poorly), so I felt that I couldn’t effectively evaluate and summarize non-English Web sites. However, there are obviously many, many excellent international Web sites (such as www.iearn.cat), and I urge you to check out the Joomla Powered Sites section (www.joomla.org/content/blogcategory/35/69) of the main Joomla site for excellent sites in every language.
www.iearn.cat
Purchase Before purchasing this product, please be sure you have met all software and system requirements, and that you understand any limits placed upon its use.
Return Policy Wrox Chapters on Demand are non-returnable and non-refundable.
Reader Software Wrox Chapters on Demand are offered as PDFs, and they must be viewed using the Adobe Reader. If you do not have the Reader installed, it can be downloaded for free at Adobe.com.
Test Download As Wrox Chapters on Demand purchases are non-returnable, it is advisable that you test your system and software configurations with a free sample download before you place an order.
Usage Rights for a Wrox Chapter on Demand File Any Wrox Chapter on Demand product you purchase from this site will come with certain restrictions that allow Wiley to protect the copyrights of its products. After you purchase and download this title, you:
If you have any questions about these restrictions, you may contact Customer Care at (877) 762-2974 (8 a.m. - 5 p.m. EST, Monday - Friday). If you have any issues related to Technical Support, please contact us at 800-762-2974 (United States only) or 317-572-3994 (International) 8 a.m. - 8 p.m. EST, Monday - Friday).
Related Books