A Website with Joomla
Overview
Joomla is a PHP framework that stores content and configuration in the backend database MySQL. Joomla's framework is a modular system where much of its functionality is plugged in by packaged extensions. Joomla excels at its flexibility for managing content (aka articles) stored as entries in the database. There is a web administrative interface that provides a graphical text editor to input articles for "contributors" and features for the "administrator" to manage the installation. There is a security interface for accessing the administrative and alternatively the public interface from across the web.
Why did I choose Joomla versus WorkPress or Drupal? At the time, Joomla was the best documented to install, configure and maintain. Even at that, Joomla to the newbie can be onerous to get stood up and make functional. If you venture beyond the stock demo theme, you have to get to know the internals of the theme to know how to configure the web site to display its content correctly. One theme might support 3 columns, another only 2. One theme may use one name to identify an area of the page while another could call it something else. Generally, theme based documentation tend to be scant.
Why have I moved from Joomla a CMS to Hugo/SSG (static site generator)? All my content doesn’t tend to change. I don’t have non-technical contributors who need a user-friendly interface. Should I have the need for ecommerce, I’d likely incorporate that function on a Joomla installation with an ecommerce plugin and referentially point to that server from out of the static content.
Terms and Concepts
It took time to understand the design concept of Joomla. First feat was to learn basic terms used by Joomla.
Components
Content elements or applications that are usually displayed in the center of the main content area of a template. This depends on the template design.
Components are core elements of Joomla’s functionality. These core elements include Content, Banners, Contact, News Feeds, Polls and Web Links. There are third party components which are available through https://extensions.joomla.org.
Plugins
A plugin is a small, task oriented function that intercepts content before it is displayed and manipulates it in some way (e.g. WYSIWYG, authentication).
Modules
A module extends the capabilities of Joomla giving the software new functionality. Modules are small content items that can be displayed anywhere that your template allows it to be displayed by assigning them to positions and pages through the module manager. You can find other modules at https://forge.joomla.org. Here some things to note about modules:
- Modules not enabled will not display.
- Modules can be assigned to unused positions (positions not in the template) if you want to have them published but not displayed in a position (e.g. display a module in content using
{loadposition}
. - Multiple modules may be assigned to the same position. They will be displayed in the order shown for modules in that position in Module Manager.
- If you want to display a module in more that one position, use the Module Manager to create another copy of it.
Positions
Site templates divides the “pages” displayed on a site into a series of “positions”, each with a different name.
You can add/remove positions by modifying the index.php
. You assign a module to a position using the Module Manager. Positions must be defined in templateDetails.xml
.
Sections and Categories
Sections and categories allow you to organize content items/articles. Sections contain one or more category(ies). A page may contain one or more sections. Each article is associated to a named category. Where is appears on your website depends on the matching of a category assigned to a page equaling the category assigned to the article.
Using menus, you can link directly to sections, categories and content items. You can also select numerous options for the display of content associated with each type of link.
Content Items/Articles
Content items/articles are what you think as web pages in the traditional HTML markup sense.
Menu Item Types
Articles
Access to articles you can choose fromo section, category, archive, articles, front page. Within a section, category and archive, you can choose “list or “blog” layouts.
Blog Layout
Blog layout will show a listing of all articles of the selected blog type (section and category) in the main body position of your template.
List Layout
Table layout will simply give you a tabular list of all titles in a particular section or category.
Wrapper
Allows you to place stand alone applications and third party websites inside your site (frame). It is defined using the “mainbody” tag.
Each Component
Each component has its own link
External Link
A link to an external site
Separator
Just a line used for separating items in the menu itself.
Alias
An alias lets you make a link matching an existing menu item.
Front Page
By default is the “home page”.
Favorite Extentions
- Akeeba Backup - Essential tool to have to get a backup of your web content.
- Phoca Photo Gallery - A great plugin to handle your photo in a gallery style. Phoca has other extentions that are really worth while.
- DJ Image Slider - Supplies the automated image slider for a main page.
- J2 Store - I never used this plugin, but considered implementing it. This extension is well designed and actively supported. It’s drawback is no integration for PayPal or Amazon payments.