19 minutes reading time (3704 words)

Insights From: "The Official Joomla! Book" (Part 3)

Insights From: "The Official Joomla! Book" (Part 3)

During Joomla!Day West 2010 Pearson Publishing announced the release of Joomla! Press. The mission of Joomla! Press is to enhance the Joomla! experience by providing useful, well-written, and engaging publications for all segments of the Joomla! Community from beginning users to framework developers. Titles in Joomla! Press are authored by leading experts and contributors in the community.

Click To Purchase!

The Official
Joomla! Book


The Official Joomla! Book is the authoritative, and comprehensive Joomla! reference for every administrator, developer, designer, and content manager. Distilling the extensive experience of two long-time Joomla! contributors, it teaches exactly what you need to know, through practical example sites and crystal-clear explanations. 

If you’re new to Joomla!, you’ll learn how to quickly create usable, effective sites. If you’re an experienced Joomla! user, you’ll learn how to make your sites more flexible, feature-rich, visually attractive, and useful. And whether new or experienced, you’ll learn how Joomla! really works, so you can fully leverage its power whenever you’re ready. You'll also get to know the Joomla! community by hearing from twelve community members through in-depth interviews, and you’ll learn how to participate in the Joomla! project in ways that make sense for you.

Click here to learn how each purchase of this book helps the Joomla project and community!


{tab=The Insights}

Excerpt from Appendix C


A Look at Joomla! 1.6 ACL

The implementation of access control is the most important change in Joomla! 1.6. In this appendix, we will demonstrate how to implement a basic access control system for the school site example shown in Chapter 10. This example assumes you have installed Joomla! 1.6 without the sample data. Some images will differ if you have installed the sample data.

In our school site, we want to achieve the following:

  • Limit the ability to create and edit articles in a department category to members of that department;
  • Give all member of the administration the ability to publish articles;
  • Limit the ability to see certain content to the school administration only.

The first thing to notice is that the first two of the previous list involve limitations on the actions that users can take, specifically the actions of creating and publishing articles. The third item concerns the ability to view certain items.

In planning 1.6 access control, we need to clearly separate the ability to do actions and the ability to see things.

Controlling What People Can Do

In a 1.6 implementation of the school site, the department sections will be replaced with categories, and the news categories that we created within each department’s section will now be subcategories within the main department categories. 

When creating a new category, on the right there is a section called Category Access Rules. This is shown with the default values in Figure C.4. By default, as in Joomla! 1.5, editors have the right to create and edit in all categories, and authors have the right to create in all categories. Neither authors nor editors can edit state, which means to change an article state to published, unpublished, trash, or archive. Only managers, administrators, and super administrators can delete completely.

Because we want each department to have its own separate content, the first step will be to make new user groups for each department. To do that, we go to the User Manager: User Group tab. Initially these groups are set as in Joomla! 1.5.  However, in 1.6, the Super Administrator group is called the Super User group and is in its own branch. This is just a difference of display. All of these groups have the same permissions that they had in Joomla! 1.5.

In the example site, we had most users in the Registered group. We will make the new user groups children of the Registered group. To make a new group,click New, and give the group a name and a parent. Once all the groups are defined, the Group tab will appear.

Now when we create or edit a user, we can assign that person to one of the groups by selecting the appropriate box in the Assigned Groups area of the User Manager. Now the user will appear with the new group in the list of users. Now we want to give users in the Social Studies group access to create and edit articles in the Social Studies category. To do this, return to the Content Category Manager, and click the Set Permission button to go to the Category Permissions area. Open the Social Studies slider. In the Category Permissions area, change Create, Edit, and Edit Own to Allowed, as shown in Figure C.10.

After saving the category, users in this group are now allowed to edit and create articles in this category. Now when Jane Smith logs into the front end of the site, she can edit and create articles in the Social Studies category. This is shown by the edit icon that appears on the articles in the Social Studies category but not for articles in the other categories. 

To give everyone in the Administration group the ability to publish articles, we change the Administration action permission group’s parent to Publisher. Now anyone assigned to the Administration group can create, edit, or publish just as was true for publishers in Joomla! 1.5. One important element of the permissions system is that users in the Super User group (or any group with global administration) cannot ever have permission denied.

Controlling What People Can See

Next we want to create a way to have some content that can only be seen by the Administration group. We will do this by creating a new view permissions access level. In the User Manager, navigate to the View Permissions Level tab. It will show the three view permissions levels that are present in Joomla! 1.5: Public, Registered, and Special. Each level has groups assigned to it. In the case of Public, all groups are automatically able to see what Public users are able to see. This is because all groups by definition have Public as a parent (or grandparent and so on), and they inherit rights from it. In the case of Registered, because all the new groups that we created had Registered as a parent group (or in the case of Administration as a great, great grandparent group), they will all have access to any item that has its access set to Registered. This is because permission to view is inherited from parent groups to children groups. However, the public is not able to see items set to Registered because it does not inherit from the Registered or Manager group. This is exactly as it is in Joomla! 1.5 but with additional groups.

Next, by clicking New, we can create a new viewing access level, as shown in Figure C.18. This group is called Administration, and only the Administration group will have access to it.

As shown in Figure C.19, the new Administration group is now in the list of viewing access levels. Now when an article is created, its access can be set to Administration, as shown in Figure C.20.

This appendix shows a simple implementation of access control. The access control in Joomla! 1.6 is extremely powerful and flexible and can be used in very complex ways. However, for most sites, we think that the examples shown here will be typical use cases. As discussed in Chapter 11, it is important that you think carefully about your access control needs before implementing. Think about your groups of users and what actions they should be able to do on what content. Think separately about what restrictions you really need to place on viewing published content for what groups. Then examine how the two structures relate to each other, and develop your groups and levels accordingly.

Note: The images in this modified appendix from the Official Joomla! Book are based on the user interfaces for access control at the time of its writing. Although the concepts will remain the same, it is possible that the user interfaces (what you as a user will see on your site) will change. Please check  http://officialjoomlabook.com for updated images and explanations of any changes.


{tab=About the Authors}


Jennifer Marriott owns and operates a web development company, Marpo Multimedia, which specializes in Joomla! CMS–powered websites. Her company is located in Northeastern Oklahoma, and although separated by distance, Jennifer stays close to her Canadian roots.

Jennifer joined the Joomla! community during the beginning days in 2005 and began volunteering as a forum moderator shortly after. Over the years she has taken on various roles in the community in addition to moderator, such as Joomla! Bug Squad member, Joomla! Google Summer of Code coadministrator and mentor, and Trademark and Licensing Team Leader. Although Jennifer has stepped down from her official roles in the Joomla! project, she remains an active community member.

In addition to her work in all things technology related, Jennifer is a professional musician. She has two CDs released, and in 2010 she went back into the studio to record her third release.


Elin Waring is a longtime Joomla! user and former president of Open Source Matters, the nonprofit organization that provides legal, financial, and organizational support to the Joomla! project. In that role, she led a number of initiatives ranging from writing the translation policy to obtaining a trademark for the Joomla! brand. She has made more than 5,000 posts on the Joomla! forums and wrote most of the Frequently Asked Questions for Joomla! 1.0. She is an active member of the Joomla! Bug Squad and participates in many Joomla! events.

Elin is a professor of sociology at Lehman College, City University of New York, where she teaches research methods. She has published a number of books, including White Collar Crime and Criminal Careers, Crimes of the Middle Classes: White Collar Offenders in the Federal Courts, and Russian Mafia in America: Crime Immigration and Culture, as well as scholarly articles in the areas of white collar crime, organized crime, and social organization.



  • Paperback: 340 pages
  • Publisher: Addison-Wesley Professional; 1 edition (January 3, 2011)
  • Language: English
  • ISBN-10: 0321704215
  • ISBN-13: 978-0321704214


Chapter One - All About Joomla!
In this chapter, there is a little bit of history, a little bit of future, and a lot about where the Joomla! project is right now, including how it is organized and how to navigate through the Joomlasphere. Over the years since the project started in 2005, there has been tremendous growth both with the code base and with the community that supports, works with, and contributes to the code. As with a number of open source projects, Joomla! is more than just about code; it is about the people and culture that surrounds it.

Chapter Two - Before You Install Joomla!
A lot more than installing and configuring Joomla! goes into creating an online presence, and over our years of contributing to Joomla!, there are a number of questions and subjects that have come up repeatedly that aren’t Joomla! specific but are more about the basics of where to begin or how to correct a mistake that may have been made before Joomla! was even installed. This chapter aims to answer those common questions and address some of the issues that may be quite confusing for those very new to running their own website. Experienced users may also be inspired to take a look at their web strategy to see whether it needs an improvement or update.

Chapter Three - Installing and Configuring Joomla!
This chapter will explain how to download and manually install Joomla! and will explain the basic configuration options. The screenshots and instructions will be referencing a common Web hosting control panel called Cpanel. Cpanel is an interface that allows users to have control over the various functionalities of their hosting account. A number of hosts have their own hosting control panel account interfaces that are similar to Cpanel, and your host will have documentation that shows you the equivalent actions and functions that we are describing in this walk-through. The main functions in this walkthrough are creating a database, accessing phpMyAdmin, and using File Manager. If your host does not use Cpanel, please reference the documentation for each of those functionalities that your host has available to familiarize yourself with them before proceeding. Also note that some hosts may limit your ability to create databases or your access to phpMyAdmin. In that case, you will have to contact your host to get the database name, database username, and database password. You should make sure that the database character set is utf8 and the collation is utf8_general_ci. Having the database set to this character set and collation gives the broadest available use of numerals, alphabetical characters, and symbols across many languages.

In Chapter 2, we discussed how to choose a good host for Joomla! and what the minimum requirements are for running Joomla! This chapter requires that those best practices in choosing a host have been followed and that the host offers an optimal environment for running Joomla!

Chapter Four - Working with Content
Now that you have a basic Web site with sample data installed, you are ready to start organizing the structural content of your site using Joomla! In this chapter, we will explain the use of the Joomla! Content component to create articles and organize them into sections and categories. We will use the sample data you installed in Chapter 3 to demonstrate key features and procedures. The patterns you learn in the Content component will apply in other components.

Chapter Five - Customizing Joomla! Templates
Joomla! templates control the look and feel of your site by controlling colors, typography, images, and other elements of design. This chapter will take you through customizing the default template called Beez, and it will provide information on the basic files that make up a very simple Joomla! template. What this chapter will not do is teach PHP, HTML, and CSS because all three are entire book subjects themselves. Also, this chapter will talk about the many available avenues the community has regarding template clubs, custom template providers, and how you can take the look and layout from a standard static HTML Web site and turn that file into a Joomla! template.

Chapter Six - Basics of Joomla! Extensions
A lot of the power behind Joomla! is the ability for developers and users to extend and build on its framework and functionalities. Chapter 1 described what extensions are and defined components, modules, and plugins. Another extension type is installable language packs that translate the text used throughout Joomla! and in components, modules, and plugins into other languages.

Joomla! comes with a number of built-in extensions such as the Web Links component, the Latest News module, and the TinyMCE Editor plugin. You can extend the functionality of your site by installing additional extensions that are produced by independent developers. This chapter will discuss best practices in using the core extensions, choosing additional extensions, using the Joomla! Extension Directory, and installing extensions, as well as give you recommendations for some very useful extensions that every site can benefit from or that are extremely popular in the Joomlasphere.

Chapter Seven - Caring for Your Joomla! Site
Once your Web site is created and online, the work doesn't stop. It is important to note that being the administrator of a Web site takes ongoing work to keep it updated, to keep your content fresh, to advertise and market it, and to keep your visitors engaged. Depending on what type of site you have created, the workload may be more or less, but all Web site administrators need to take a proactive approach and stay on top of taking care of their Web site. This chapter will explain some best practices and simple steps to keep up your Web site and to continue growing your visitor exposure and brand reach.

Chapter Eight - Joomla! for Business
Free and open source software (FOSS) is good for businesses on a number of levels. Initially, the greatness comes out of the price point. Free or low cost can make the difference in the overall bottom line of a business's financial status. The other advantage is in terms of support. Most FOSS software projects have communities of users and developers that can support the user base. Joomla! is an excellent example of how a FOSS software community creates, distributes, and supports a software project. Because Joomla! is open source, at anytime you can view, edit, and add to the source code to suit your own purposes. You also can hire someone to do that for you.

The other advantage to business that Joomla! offers is the number of extensions that are available that extend Joomla! from full-blown e-commerce to client/customer management or data gathering and tracking. This chapter will look at a few practical applications for business and examples of extensions that they would use.

Chapter Nine - Joomla! for NGO/NPO and Groups
As mentioned in the previous chapter about business applications, Joomla! is an excellent choice because it is free in cost and the code is open source. This makes it a very attractive choice for nongovernmental organizations (NGOs), nonprofit organizations (NPOs), groups, clubs, and organizations. One of the benefits of Joomla! specifically for this application is the collaborative environments that can be set up using Joomla! that help organizations not only connect and organize within their group but also reach out to the greater public and promote their platform or message, gain financial support, and connect like-minded people to achieve a common idea or goal.

Chapter Ten - Joomla! for Education
School Web sites present challenges that are often more complex than those for other kinds of organizations. Unlike a small business or nonprofit with a new Web site, a school starts with a ready-made target audience and, most likely, is not focused on expanding much beyond that audience. Schools have many different constituencies and a variety of communication needs. By following the same basic principles of planning for all Web sites, an educational institution can create an effective communication portal that fits their needs.

Chapter Eleven - A Look at Joomla! 1.6
This book focuses on the use of Joomla! 1.5 for making Web sites, but just like all software, Joomla! will have new releases that add major new features and make other changes. These are different from the maintenance releases for 1.5 that are regularly distributed that fix bugs and deal with any security issues. Although you should always keep your 1.5 site up-to-date with the current release of Joomla! 1.5, whether you should move your site to Joomla! 1.6 or a newer release is a more complicated issue.

Eventually, you will want your site to be on the most up-to-date version of Joomla!, but for many 1.5 users who are happy with the functionality of their sites, there is no reason to rush to move your site to Joomla! 1.6. Although each new release includes new features and improvements, if your site doesn't need those features and you don't want to move it, there is no reason for you to hurry to do so. Joomla! 1.5 will be supported for one year after the release of Joomla! 1.6, so you have lots of time to make the transition to a new version and may even decide to wait until the release of 1.7 or 1.8 to actually move your site.

On the other hand, if you think you need the new features or are adding new extensions, you may decide to move to the new release since many extension developers will be turning their main attention to Joomla! 1.6. Inexperienced users should not create a site with any new Joomla! release until it is labeled General Availability or Stable. Many users will want to wait until after the first maintenance release, which will be Joomla! 1.6.1. That release will resolve any issues that emerge soon after the initial release.

This chapter will review some of the key changes between Joomla! 1.5 and 1.6 in order to help you make the decision about moving an existing site to Joomla! 1.6. For those developing a new site, the decision of whether to develop it with Joomla! 1.5 or 1.6 will also be discussed.

Chapter Twelve - Interviews with Joomla! Experts
The Joomla! project is filled with people with expertise in all kinds of areas. Both we and Joomla! have benefited greatly from their knowledge and experiences. Getting to know them and working with them on various tasks has enriched our knowledge and understanding of many of the issues touched in this book. We can't introduce you personally, but we have brought together participants in the Joomlasphere to talk personally about the project, their involvement, and their experiences working with Joomla!

Appendix A - Common Problems and Solutions
If you follow the instructions in this book, you will avoid most common problems. However, sometimes things go wrong. Here are the most common issues we see and how to solve them.

Appendix C - A Look at Joomla! 1.6 ACL
The implementation of access control is the most important change in Joomla! 1.6. In this appendix, we will demonstrate how to implement a basic access control system for the school site example shown in Chapter 10. This example assumes that you have installed Joomla! 1.6 without the sample data. Some images will differ if you have installed the sample data.  As 1.6 is still in Beta form, this information may change and adapt as 1.6 moves its way to Stable and beyond.

Appendix B - Resources
There are many resources for helping you make and improve your site. We have gathered a few of them that we have found useful here, but as you gain experience as a Web site administrator, you will find many more. The Joomla! community is always sharing links, advice, and information about various sites in the social networking sphere. Join Joomla! on Facebook, Twitter, and on the People Site.

Copyright 2010 Pearson Education, Inc.  Excerpts republished with permission.



Already Registered? Login Here
No comments made yet. Be the first to submit a comment

By accepting you will be accessing a service provided by a third-party external to https://magazine.joomla.org/