Search Here:

Happy 20th Anniversary

Happy 20th Anniversary

bilal ayadi k8Lp1IOsZt4 unsplashPhoto by Bilal Ayadi on Unsplash

 

Over two decades, the project has embodied three core values: freedom (open licensing and transparent governance), flexibility (a powerful extension ecosystem and robust templating), and innovation (modern architecture, accessibility, and performance improvements across major releases).

Looking Back

  • 2005: The community launches Joomla, establishing a vibrant new chapter for open-source CMS development.
  • 1.x–2.x: Rapid adoption, a growing extension directory, and a strong developer ecosystem.
  • 3.x: Responsive templates, improved UX, and a mature ACL framework become hallmarks of the platform.
  • 4.x–5.x: Accessibility-first design, performance gains, modern PHP standards, and streamlined workflows for administrators and developers.

The Community

Joomla’s success is powered by people—maintainers, extension developers, designers, translators, documentation teams, event organizers, and users worldwide. Their volunteer spirit and shared purpose have sustained the project’s momentum and quality for two decades.

Why Joomla Still Matters

  • Open and sustainable: Community-driven governance and transparent development.
  • Built-in power: Advanced ACL, multilingual support, and content workflows out of the box.
  • Extensible by design: Thousands of extensions and flexible templating for custom solutions.
  • Secure and performant: Ongoing security reviews, modern PHP standards, and performance enhancements.

Looking Ahead

As we celebrate 20 years, we also look to the future: continued improvements in usability, accessibility, and developer experience; deeper integration with modern tooling; and a renewed focus on performance and sustainability. The roadmap remains guided by real-world needs and the open-source ethos that has defined Joomla from the start.

Thank you to everyone who has contributed time, code, documentation, support, and inspiration. Joomla is more than software—it is a community that builds the web together.

Happy 20th Birthday, Joomla! Here’s to the next chapter.

Learn to override Custom Fields

Icons have a significant visual effect to have on your website. Did you know that using an icon as a Custom Field is possible? - Creating an override for the Field layout is done in minutes.


Since Font Awesome is included in Joomla's Cassiopeia template, we will use a template override for the Field layout.

 How do we create a Joomla override in Joomla 4?

Creating overrides in Joomla 4 is relatively easy. It is easier if you can read code and know HTML. Just follow these steps:

Go to System  Site Templates  [YOUR TEMPLATE NAME] Details and Files

 

Select the "Site Template" to go into the area for creating overrides of Joomla 4. 

Joomla 4 left menuJoomla 4 left menu

Select "System" from the left menu. 

What are the differences between "Site Templates" and "Site Template Styles"?

The difference between Site Templates and Site Template Styles is that the overrides for the Template that is put on the Site Templates place, here you put all your customization of the site. The Styles are set in the separate Site Template Styles, which you only use to change the site's primary colors and add a custom logo and the template's name. 

Joomla 4 select "Site Templates"Joomla 4 select "Site Templates"

This opens the place where you create the overrides. There is a selection called "Create Overrides"; go into it.

Joomla 4 overrides selection topmenu create overrides

You will now come into the selection area where all your Modules, Components, Plugins, and Layout overrides are shown.

All Modules, Components, Plugins, and Layout overrides

 

 Now let's create the override

The override we are looking for is a "Layout"-override, and the field, this is located under Layouts ⇒ com_fields, select "Field".

Joomla overrides layout com fields

Now go into the editor under HTML ⇒ layouts ⇒ com_fields ⇒ field ⇒ render.php. 

REMEMBER TO RENAME THE render.php FILE!

Original code for Custom Field


<?php

/**
 * @package     Joomla.Site
 * @subpackage  com_fields
 *
 * @copyright   (C) 2016 Open Source Matters, Inc. <https://www.joomla.org>
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\CMS\Language\Text;

if (!array_key_exists('field', $displayData)) {
    return;
}

$field = $displayData['field'];
$label = Text::_($field->label);
$value = $field->value;
$showLabel = $field->params->get('showlabel');
$prefix = Text::plural($field->params->get('prefix'), $value);
$suffix = Text::plural($field->params->get('suffix'), $value);
$labelClass = $field->params->get('label_render_class');
$valueClass = $field->params->get('value_render_class');

if ($value == '') {
    return;
}

?>
<?php if ($showLabel == 1) : ?>
    <span class="field-label <?php echo $labelClass; ?>"><?php echo htmlentities($label, ENT_QUOTES | ENT_IGNORE, 'UTF-8'); ?>: </span>
<?php endif; ?>
<?php if ($prefix) : ?>
    <span class="field-prefix"><?php echo htmlentities($prefix, ENT_QUOTES | ENT_IGNORE, 'UTF-8'); ?></span>
<?php endif; ?>
<span class="field-value <?php echo $valueClass; ?>"><?php echo $value; ?></span>
<?php if ($suffix) : ?>
    <span class="field-suffix"><?php echo htmlentities($suffix, ENT_QUOTES | ENT_IGNORE, 'UTF-8'); ?></span>
<?php endif; ?>

Code for Font Awesome Custom Field


<?php

/**
 * @package     Joomla.Site
 * @subpackage  com_fields
 *
 * @copyright   (C) 2016 Open Source Matters, Inc. <https://www.joomla.org>
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\CMS\Language\Text;

if (!array_key_exists('field', $displayData)) {
    return;
}

$field = $displayData['field'];
$label = Text::_($field->label);
$value = $field->value;
$showLabel = $field->params->get('showlabel');
$prefix = Text::plural($field->params->get('prefix'), $value);
$suffix = Text::plural($field->params->get('suffix'), $value);
$labelClass = $field->params->get('label_render_class');
$valueClass = $field->params->get('value_render_class');

if ($value == '') {
    return;
}

?>
<?php if ($showLabel == 1) : ?>
    <span class="field-label <?php echo $labelClass; ?>"><?php echo htmlentities($label, ENT_QUOTES | ENT_IGNORE, 'UTF-8'); ?>: </span>
<?php endif; ?>
<?php if ($prefix) : ?>
    <span class="field-prefix"><?php echo htmlentities($prefix, ENT_QUOTES | ENT_IGNORE, 'UTF-8'); ?></span>
<?php endif; ?>
<span class="field-value <?php echo $valueClass; ?>"><i class="fa fa-<?php echo $value; ?>"></i></span>
<?php if ($suffix) : ?>
    <span class="field-suffix"><?php echo htmlentities($suffix, ENT_QUOTES | ENT_IGNORE, 'UTF-8'); ?></span>
<?php endif; ?>

 Now Create a field

The best field to use is the "radio-button" field. On the options tab - Go to layouts, and select the desired override.

Joomla field override layout

Comments wanted

- LET ME KNOW IF YOU KNOW ANY OTHER WAYS TO DO THIS IN THE COMMENTS BELOW -

No comments

Leave your comment

In reply to Some User

nordvpn