Exploring the Xoops CMS

Basic Frames

© kmit, Fotolia

© kmit, Fotolia

Article from Issue 103/2009

The lean Xoops CMS offers only basic functionality, but it is easy to extend.

Xoops (eXtensible Object-Oriented Portal System) was created more than eight years ago. What started life as a full-fledged Content Management System (CMS) was gradually honed down by its programmers to leave a basic set of functions, such as module management and the comment system. Everything else was swapped out into extensions. This process left a small, lean system that is easily modified to reflect your individual needs.

To install Xoops (say "Soups"), all you need is a run-of-the-mill web server with a MySQL database and PHP5 support. First, unpack the basic package on the server [1]. Then type your Internet site address in the browser and follow the instructions from the wizard this launches. Although you can answer most of the questions by clicking Next step, you will need to enter your database credentials: a username and administrative password. A total of 11 steps gives you a version of Xoops that is almost ready to roll out: The blank start page just shows two lonely fields on the left, asking you to log in (Figure 1).

Figure 1: Spartan homepage: Xoops users need to add external modules for more functionality.

Spicy Xoops

The method to this minimalism is that Xoops simply gives you the basic framework, and any other features you need – and this includes managing simple Internet pages – have to be added as separate modules. The Xoops homepage has a searchable catalog of third-party extensions [2]. To get started, just get an Articles or HTML/Static module, which lets you fill your homepage with text pages. After downloading, unpack the archive in the modules subdirectory below your Xoops installation and assign the write privileges required by the modules.

Now go to your Xoops homepage and log in with the admin account. Xoops does not offer any special pages for controlling the system. When you log in as the administrator, you can make any changes you need in Site administration. Also, you set up the modules here by accessing the menu items you need, clicking the icon to install the module, and confirming that you want to enable it – a fairly convoluted process. Active modules are displayed in the menubar on the left; this means that feature-rich sites soon become cluttered.

User management in Xoops is superior to many other CMS offerings. After the install, Xoops has three user groups: anonymous visitors, logged-in users, and the webmaster. If needed, you can create more groups and specify the details of which modules, functions, and subpages their members are allowed to access. For example, you can hide advertising banners for registered users or prevent certain groups from writing comments. As a bonus, users can add a couple of personal details and avatar images to their profile – forums and blog modules evaluate this material.

With the rudimentary mail system, you can send messages to individual users or whole user groups. For multiple recipients, Xoops expects you to use placeholders, which it replaces with usernames.

While logged in as the administrator, you can search for users on the basis of various criteria and delete offensive remarks.

If your provider supports this, Xoops will support encryption – in contrast to other CMSs – and SSL-based logins, and it will block computers with specific IP addresses. If so desired, the system will replace offensive words or parts of words with asterisks; you can see that Xoops is mainly targeted at communities.

The image management feature is not worthy of that title: Before you can upload a photo, you need to create at least one category that Xoops will use to catalog the image. The category also defines limits for maximum image dimensions, physical size, and access privileges.


Each module distributes its content to blocks. Just like the columns in a daily newspaper, you decide which module appears in which block on your homepage.

Themes and templates define the information layout. Xoops distinguishes between the two concepts: Whereas templates make the module content more attractive, themes define the general appearance of the page. To give your website an individual look, you need to create a number of tiny template files composed of a mix of HTML and PHP commands, but don't look for a graphical wizard.


Because Xoops does not become a full-fledged CMS until you have installed a whole bunch of modules, users can point and click to put together a customized system. Flexibility comes at a price: more or less inconsistent controls – and it's just too bad if two modules refuse to cooperate.

The bottom line is that the system has an incoherent feel. A review process by the developers to evaluate module quality appears to be lacking. Module packages might be the answer; for example, CommercePack includes all the modules you need for a commercial site.


  1. Xoops: http://www.xoops.org/
  2. Xoops module repository: http://www.xoops.org/modules/repository/

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Desktop Tools: Slax

    With its novel package manager, Slax makes it simple to install new software and easy to build your own distributions.

  • Drupal

    The PHP-based Drupal framework makes dynamic websites simple. The modular system is extensible using free modules and the appearance is template-driven. In this article, we will be delving into Drupal’s range of functions and discussing installation and basic configuration.

  • Lightweight CMS Tools

    Would you like a content management system that's actually easy to manage? We take a closer look at some user-friendly CMS solutions, including Pluck, SkyBlueCanvas, and NanoCMS.

  • Admidio

    Admidio manages membership data online no matter what the platform and also manages event dates, times, and participants elegantly.

  • Twisted

    The Twisted framework makes it so easy to create network-aware applications in Python. Twisted speaks all the major Internet protocols, from mail through chat, and it can handle encryption. We’ll show you how to set up a personal web server with Twisted.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More