In this article you will learn how to include the ability to create a menu item for the frontend view of your component. So it is not necessary that you know the exact URL. Later a modification to search engine friendly (SEF) URLs[^docs.joomla.org/enabling_search_engine_friendly_(sef)_urls/] is possible. As a note, please do not enable this feature yet. This sample extension does not support SEF yet. We will add the Joomla conform routing later.
For impatient people: View the changed program code in the Diff View[^codeberg.org/astrid/j4examplecode/compare/t2...t3] and copy these changes into your development version.
Step by step
The menu item in the frontend works differently than the one in the administration area. We create a separate XML file. Later we will use parameters. But for now we keep it straightforward. We add some language strings for text. Later on, we will see how to translate them.
Create the file
components/com_foos/tmpl/foo and add the following code:
<!-- https://codeberg.org/astrid/j4examplecode/raw/branch/t3/src/components/com_foos/tmpl/foo/default.xml --> <?xml version="1.0" encoding="utf-8"?> <metadata> <layout title="COM_FOOS_FOO_VIEW_DEFAULT_TITLE"> <message> <![CDATA[COM_FOOS_FOO_VIEW_DEFAULT_DESC]]> </message> </layout> </metadata>
I already mentioned it in the chapter on the update server: The term CDATA[^en.wikipedia.org/wiki/cdata] is used in the XML markup language for various purposes. It indicates that a given part of the document is general characters rather than program code with a more specific, limited structure. The CDATA section may contain markup characters (
&). These are not interpreted further by the parser. The use of entities such as
&is not necessary.
title attribute in the
layout tag here is used when we create a new menu item for this component in the administration area.
The text in the
message tag is displayed as a description. The language string does not stay as it is. It will be translated into different languages. We will work on this later. Here we prepare everything.
Test your Joomla component
install your component in Joomla version 4 to test it: Copy the files in the
componentsfolder to the
componentsfolder of your Joomla 4 installation. A new installation is not necessary. Continue using the ones from the previous part.
open the menu manager to create a menu item. To do this, click on
Menuin the left sidebar and then on
All Menu Items.
Then click on the
New button and fill in all the necessary fields.
- find the appropriate
Menu Item Typewith the
save the menu item.
switch to the frontend and make sure that the menu item is created correctly and works.