The JoomHelpDesk main menu is the primary navigation hub that visitors see on the frontend of your helpdesk. It controls which sections -- such as Knowledge Base, FAQs, Support Tickets, Announcements, and more -- are displayed to your users when they land on the helpdesk page.
Each item in the main menu corresponds to a specific section of JoomHelpDesk. The menu is fully configurable: you can add, remove, reorder, and translate items, assign icons and descriptions, and control visibility based on language, access level, and user permissions.
The main menu is rendered using either a grid or list layout, and automatically adapts to mobile devices with a single-column phone layout.
How the Main Menu Works
When a user visits the helpdesk frontend (the view main), JoomHelpDesk queries the #__joomhelpdesk_main_menu database table and displays all published items that match the current user's language and access level. Items that require specific permissions (such as Administration or ticket views) are automatically hidden from users who lack those permissions.
Managing Main Menu Items
Accessing the Main Menu Manager
- Log in to the Joomla administrator backend.
- Navigate to Components > JoomHelpDesk > Main Menu.
- You will see a list of all main menu items with their title, description, icon, published status, type, and ordering.
List View Columns
| Column | Description |
|---|---|
| Title | The display name of the menu item. Click to edit. |
| Desc | A short description shown below the title on the frontend (if enabled). |
| Icon | The Font Awesome icon class or image file assigned to this item. |
| Published | Whether the item is currently visible on the frontend. |
| Type | The section type this item links to (e.g., Knowledge Base, FAQs, Link). |
| Order | The display order on the frontend. Lower numbers appear first. |
Toolbar Actions
- New -- Create a new main menu item.
- Edit -- Edit the selected menu item.
- Delete -- Remove selected menu items.
- Convert To Language INI -- Converts all custom text values to language string keys. This is useful for multi-language sites (see the Language Integration section below).
Filtering and Sorting
- Use the search box to filter items by title.
- Use the Published dropdown to show only published or unpublished items.
- Click any column header to sort the list by that column.
Creating and Editing Menu Items
To create a new item, click New in the toolbar. To edit an existing item, click its title in the list.
Available Fields
| Field | Description |
|---|---|
| Title | The name displayed on the frontend for this menu item. Supports language string keys (e.g., MENU_KB_TITLE) if you have converted to language INI mode. |
| Description | An HTML-rich description displayed beneath the title on the frontend (when the "Show Description" option is enabled in the Joomla menu item parameters). Supports language string keys. |
| Image | An optional image file selected from the images/joomhelpdesk/menu/ directory. Upload PNG, JPG, or GIF files to that folder to make them available here. |
| Icon | A Font Awesome icon class (e.g., fa-book, fa-question, fa-plus). This is the primary way icons are displayed in both grid and list layouts. |
| Type | The section this menu item points to. See the Type Reference table below. |
| Menu Item | For non-Link types, this dropdown shows matching Joomla menu items. If multiple Joomla menu items point to the same JoomHelpDesk view, you can select which one to use. If only one exists, it is selected automatically. |
| Link | For the Link type, enter a custom URL. For other types, this is auto-populated from the selected Joomla menu item. |
| Target | The HTML target attribute for the link (e.g., _blank to open in a new tab). Only relevant for the Link type. |
| Language | Assigns the item to a specific language. Set to "All" (*) to show on all language versions of your site. Only relevant on multi-language sites. |
| Access | The Joomla access level required to view this item (e.g., Public, Registered, Special). |
Type Reference
Each menu item must have a type that determines which JoomHelpDesk section it links to.
| Type ID | Type Name | Description |
|---|---|---|
| 1 | Knowledge Base | Links to the Knowledge Base article listing. |
| 2 | FAQs | Links to the Frequently Asked Questions listing. |
| 3 | Testimonials | Links to the Testimonials/Reviews listing. |
| 4 | New Support Ticket | Links to the "Open a New Ticket" form. Hidden from users without support permission. |
| 5 | View Support Tickets | Links to the user's submitted ticket listing. Hidden from users without support permission. |
| 6 | Announcements | Links to the Announcements/News listing. |
| 7 | Link | A custom external or internal URL. Does not map to a JoomHelpDesk view. |
| 8 | Glossary | Links to the Glossary of terms. |
| 9 | Administration | Links to the frontend administration panel. Only visible to helpdesk administrators/handlers. |
| 10 | Groups | Links to the group administration panel. Only visible to group administrators. |
Ordering
Items are displayed on the frontend in the order defined by the Order column. Use the up/down arrows in the list view to reorder items, or enter numeric values directly in the order input fields and click the save icon to apply.
Published Status
- Published -- The item appears on the frontend (subject to language, access, and permission checks).
- Unpublished -- The item is hidden from the frontend entirely.
You can toggle the published status directly from the list view by clicking the status icon next to each item.
Section Visibility
Beyond individual menu item publishing, JoomHelpDesk provides global settings that control whether certain administrative sections appear on the main menu page.
Support Tickets Section
When enabled, a Support Tickets summary panel is displayed on the main menu page for helpdesk handlers/administrators. This panel shows a count of open tickets grouped by status, providing a quick overview without navigating to the admin area.
Setting: General Settings > Main Menu Settings > Show "Support Tickets" Section
- Checked (default) -- The support tickets summary panel is shown to authorized handlers.
- Unchecked -- The panel is hidden even for administrators.
This panel is only ever visible to users who have the joomhelpdesk.handler permission on the com_joomhelpdesk.support_admin asset. Regular users and guests never see it regardless of this setting.
Moderate Section
When enabled, a Moderate panel is displayed on the main menu page for users who have moderation permissions. This panel shows pending comment moderation counts.
Setting: General Settings > Main Menu Settings > Show "Moderate" Section
- Checked (default) -- The moderation panel is shown to authorized moderators.
- Unchecked -- The panel is hidden even for moderators.
Support Info Position
The support and moderation panels can be positioned above or below the main menu grid. This is controlled by the Info Position parameter in the Joomla menu item configuration (see the next section).
Joomla Menu Item Integration
For JoomHelpDesk to appear on your site's frontend, you need at least one Joomla menu item that points to the component. This Joomla menu item also provides layout parameters that control the appearance of the main menu.
Creating the Joomla Menu Item
- Go to Menus > [Your Menu] > Add New Menu Item.
- Set the Menu Item Type to JoomHelpDesk > Main Menu (or the appropriate JoomHelpDesk view).
- Set a Title (e.g., "Support" or "Help Center").
- Configure the parameters described below.
- Save the menu item.
Joomla Menu Item Parameters
These parameters are set on the Joomla menu item that points to com_joomhelpdesk with the main view:
| Parameter | Description | Default |
|---|---|---|
| Template | The layout style for the main menu: grid (icon-centered cards) or list (icon + text in a row). |
grid |
| Show Description | Whether to display the description text beneath each menu item title. | Yes |
| Main Width | The width of the main menu table (e.g., 100%). |
100% |
| Main Columns | Number of columns in the menu grid. Items wrap to additional rows automatically. | 3 |
| Hide Icons | Set to Yes to hide all icons from the main menu display. | No |
| Image Width | Width in pixels for image-based icons. | 128 |
| Image Height | Height in pixels for image-based icons. | 128 |
| Border | Show table borders around menu items (0 = bordered, 1 = borderless). | 0 |
| Info Top | Show the support/moderation panels above the main menu (1) or below it (0). | 1 |
| Info Well | Display the support/moderation panels inside a styled card with background and shadow (1) or plain (0). | 1 |
How JoomHelpDesk Menu Items Link to Joomla Menu Items
Each JoomHelpDesk main menu item (the internal ones, not of type "Link") is associated with a Joomla menu item. When a user clicks "Knowledge Base" in the main menu, JoomHelpDesk resolves the correct Joomla menu item to generate a proper SEF URL with the right Itemid.
This association works as follows:
- When you edit a JoomHelpDesk main menu item, the Menu Item dropdown lists all Joomla menu items that point to the matching
com_joomhelpdeskview (e.g., all menu items pointing toview=kbfor a Knowledge Base type). - If only one matching Joomla menu item exists, it is selected automatically.
- If no matching Joomla menu item exists, JoomHelpDesk falls back to generating a non-SEF URL directly.
- On the frontend, JoomHelpDesk validates that the stored Joomla menu item still exists and still points to the correct view. If the Joomla menu item has been deleted or changed, JoomHelpDesk automatically re-resolves the link.
Sticky Menu Items
Sticky Menu Items control how JoomHelpDesk generates internal links (URLs with Itemid) when the user is currently browsing under a specific Joomla menu item. This is an advanced feature found under General Settings > Menu Items Link Generation.
What Sticky Menu Items Do
Normally, when JoomHelpDesk generates a link (e.g., to a ticket or KB article), it finds the best matching Joomla menu item and uses that menu item's Itemid in the URL. However, in some site configurations you may want links to preserve the current Joomla menu item context instead of switching to the "best match."
For example, if a user is browsing under a menu item called "Product A Support" and clicks a link to a ticket, you may want the URL to keep the "Product A Support" menu context rather than switching to a generic "Support Tickets" menu item.
Configuration Options
Setting: General Settings > Menu Items Link Generation > Sticky Menu Items
| Option | Behavior |
|---|---|
| Ignore | Default behavior. JoomHelpDesk always resolves the best matching Joomla menu item for each link. The current menu context is not preserved. |
| Include | When the user is currently browsing under one of the selected Joomla menu items, JoomHelpDesk preserves that menu item's Itemid in all generated links instead of resolving the best match. |
| Exclude | When the user is currently browsing under any Joomla menu item except the selected ones, JoomHelpDesk preserves the current menu item's Itemid. The selected items are excluded from sticky behavior and use normal resolution instead. |
After choosing Include or Exclude, select the specific Joomla menu items from the checklist that appears below the dropdown.
When to Use Sticky Menu Items
- Multiple JoomHelpDesk menu items -- If you have several Joomla menu items pointing to different JoomHelpDesk views (e.g., one per product), sticky menus help maintain navigation context.
- Template-specific menus -- If different Joomla menu items use different templates or modules, sticky menus ensure users stay within the correct template context.
- SEF URL consistency -- If you need URLs to always appear under a specific menu path for SEO purposes.
For most single-language sites with a simple menu structure, leave this set to Ignore.
Language Integration
JoomHelpDesk main menu items fully support Joomla's multi-language system.
Language Assignment
Each menu item has a Language field in its edit form. Set this to:
- All (
*) -- The item appears regardless of the active site language. - A specific language tag (e.g.,
en-GB,es-ES) -- The item only appears when the site is displaying that language.
On the frontend, the main menu query filters items to show only those matching the current language tag or set to "All."
Access Level
Each menu item also has an Access field. This works with Joomla's standard access level system:
- Public -- Visible to all visitors, including guests.
- Registered -- Visible only to logged-in users.
- Special -- Visible only to users in the Special access group.
- Custom access levels are also supported.
Translating Menu Item Text
There are two approaches to translating main menu item text:
Approach 1: Direct Text Entry
Enter the title and description directly in the menu item edit form. For each language, create a separate menu item with the same type but assigned to the appropriate language tag. This is the simplest approach for sites with a small number of menu items.
Approach 2: Language INI Conversion
- In the Main Menu list view, click the Convert To Language INI toolbar button.
- This replaces all custom text values with language string keys (e.g., the title "Knowledge Base" becomes a key like
JOOMHELPDESK_MENU_KB). - The corresponding text is placed into the
en-GB.com_joomhelpdesk.inilanguage file. - You can then create translations of these keys in other language files (e.g.,
es-ES.com_joomhelpdesk.ini). - All menu items can be set to Language "All" since the language system handles the translation automatically.
Important: Converting to language INI mode overwrites any custom text you entered directly. After conversion, editing the title or description fields in the admin form will stop the system from using the language files for that item.
Approach 3: Translation Button
When editing a single menu item, click the Translate toolbar button to open the translation dialog. This allows you to provide translations for the title and description fields that are stored in the item's translation field and resolved at display time based on the active language.
Tips
-
Start with the defaults. JoomHelpDesk ships with pre-configured menu items for all major sections. Review and customize these before creating new ones.
-
Use Font Awesome icons. The icon field accepts Font Awesome 5 class names (without the
fasprefix, which is added automatically). Common examples:fa-book(Knowledge Base),fa-question(FAQs),fa-plus(New Ticket),fa-tasks(View Tickets),fa-volume-up(Announcements),fa-readme(Glossary, uses thefabbrand prefix automatically). -
Upload custom images. If you prefer image icons over Font Awesome, place PNG/JPG/GIF files in
images/joomhelpdesk/menu/and select them from the Image dropdown when editing a menu item. -
Permission-based visibility is automatic. You do not need to manually hide the Administration or Groups menu items from regular users. JoomHelpDesk automatically hides them based on the user's permissions. Similarly, the New Support Ticket and View Support Tickets items are hidden from users who do not have support access.
-
Create matching Joomla menu items. For each JoomHelpDesk section you want in your main menu, ensure a corresponding Joomla menu item exists (pointing to the correct
com_joomhelpdeskview). Without a matching Joomla menu item, the main menu item will generate non-SEF URLs, which may not integrate well with your site's URL structure. -
Test with different user roles. After configuring the main menu, test the frontend as different user types (guest, registered user, support handler, administrator) to verify that items appear and hide correctly.
-
Use the grid layout for visual appeal. The grid layout centers icons above titles and works well when you have 3-6 menu items. The list layout is better when you have many items or want a more compact display.
-
Adjust columns for your design. If your template has a narrow content area, reduce the Main Columns parameter to 2 or even 1. The phone layout automatically switches to a single column for mobile devices.
-
Keep descriptions concise. Descriptions appear beneath menu item titles and support full HTML (processed through Joomla content plugins). Keep them short to avoid cluttering the main menu display.
-
Unpublish instead of deleting. If you want to temporarily hide a section, unpublish the menu item rather than deleting it. This preserves the configuration for easy re-enabling later.