Language Change NPM Resource Changed PR-6.1-dev Pending

User tests: Successful: Unsuccessful:

avatar ceford
ceford
23 Oct 2025

Pull Request for Issue # .

No issue in the tracker but the problematic list of Help pages has been mentioned in discussions.

Summary of Changes

This PR is for a replacement of the backend list of Help files accessed via Help → Start Here. The current page presents a list of 198 items sorted into alphabet order of the language selected at login. It is very difficult to use! Each time the page is reloaded the displayed item is Start Here. Also, it is generated by a script that fetches all the pages from docs.joomla.org that are categorised as Help5 or Help6 or ... but only in selected languages.

The proposed replacement gives the list of Help pages a similar structure to the Atum side menu. The changes in brief:

  1. The Help page menu source is a handcrafted php array (toc-src.php) in the tmpl folder.
  2. The menu build code has been moved from the Model to the tmpl folder (toc-build.php).
  3. Unused code has been removed from the Model.
  4. Unused code has been removed from the HtmlView.
  5. The unused administrator/help/en-GB/toc.json tree has been deleted.
  6. The now unused build/helpTOC.php has been deleted.
  7. There are additional strings in com_admin.ini
  8. Changes to admin-help.es6.js are significant.
  9. There is styling added in default.php with addInlineStyle() to distinguish the Help menu from the Atum menu.
  10. The last page displayed is recorded in local storage and displayed when the page is reloaded.

There is a potential problem: initialisation of the Help menu requires a delay or it is left inoperative. That needs testing on different platforms.

Testing Instructions

Testing needs a development installation.

Actual result BEFORE applying this Pull Request

The current long alphabetic list of Help pages is difficult to use.

Expected result AFTER applying this Pull Request

The list of help pages is structured with a Metismenu. Screenshot to follow.

Link to documentations

Please select:

  • Documentation link for docs.joomla.org:

  • [ x] No documentation changes for docs.joomla.org needed

  • Pull Request link for manual.joomla.org:

  • [x ] No documentation changes for manual.joomla.org needed

avatar ceford ceford - open - 23 Oct 2025
avatar ceford ceford - change - 23 Oct 2025
Status New Pending
avatar joomla-cms-bot joomla-cms-bot - change - 23 Oct 2025
Category Administration com_admin Language & Strings Repository JavaScript NPM Change
avatar ceford ceford - change - 23 Oct 2025
Labels Added: Language Change NPM Resource Changed PR-6.1-dev
avatar brianteeman
brianteeman - comment - 23 Oct 2025

Looks good

avatar brianteeman
brianteeman - comment - 23 Oct 2025

When the menu item wraps to two lines I find the center alignment visually awkward but that might just be me

image
avatar richard67 richard67 - change - 23 Oct 2025
Title
New backend Joomla! Help page
[6.1] New backend Joomla! Help page
avatar richard67 richard67 - edited - 23 Oct 2025
avatar ceford
ceford - comment - 23 Oct 2025

It works but I am having second thoughts about how I have coded this feature. Perhaps it should be considered a draft for now. I will get on to the points raised by @brianteeman - thank you. Meanwhile, here is a screenshot:

image
avatar ceford
ceford - comment - 23 Oct 2025

@brianteeman Should I make the copyright 2026 on the assumption it will be next year before it appears?

avatar brianteeman
brianteeman - comment - 23 Oct 2025

@brianteeman Should I make the copyright 2026 on the assumption it will be next year before it appears?

no - you wrote it in 2025 and it will hopefully be merged on github in 2025

avatar C-Lodder
C-Lodder - comment - 24 Oct 2025

You could remove the need for the wait() delays if you wanted to.
Will leave this code here incase you want to use it.

document.addEventListener("DOMContentLoaded", function (event) {
  new MetisMenu('#helpmenu', {
    toggle: true
  });

  const helpIndex = document.getElementById('helpmenu');
  if (helpIndex) {
    helpIndex.querySelectorAll('a:not(.has-arrow)').forEach(element => element.addEventListener('click', () => {
      window.scroll(0, 0);
      // Save clicked link data-id
      const id = element.dataset.id;
      if (id) {
        localStorage.setItem('helpIndex.lastClick', id);
      }
    }));
  }

  // Async restore function
  function restoreMenu() {
    let lastClick = localStorage.getItem('helpIndex.lastClick');
    if (!lastClick) {
      lastClick = 'start-here';
    }

    const selectedLink = helpIndex.querySelector(`a[data-id="${lastClick}"]`);
    if (!selectedLink) return;

    // Collect parent list items top-down
    const lists = [];
    let parentLi = selectedLink.closest('li');
    while (parentLi && parentLi !== helpIndex) {
      const parentUl = parentLi.parentElement;
      const parentLiOfUl = parentUl.closest('li');
      if (parentLiOfUl) {
        const li = parentLiOfUl
        if (li) lists.unshift(li);
      }
      parentLi = parentLiOfUl;
    }

    // Trigger clicks in sequence with a delay
    for (const li of lists) {
      li.classList.add('mm-active');
      li.querySelector('ul').classList.add('mm-show');
      li.querySelector('a').setAttribute('aria-expanded', true);
    }

    // Optional: highlight selected link
    selectedLink.classList.add('active');

    // Ensure it's visible and then "click" it
    //selectedLink.scrollIntoView({ behavior: 'smooth', block: 'start' });

    // Give the submenu a moment to fully render before clicking
    selectedLink.click();
  }

  // Run restore after MetisMenu setup delay
  restoreMenu()
});
avatar ceford
ceford - comment - 24 Oct 2025

@C-Lodder only just seen your suggestion - I will give it a try.

avatar ceford
ceford - comment - 24 Oct 2025

@C-Lodder I implemented you suggestion. Next problem: In narrow screens the Help menu starts open and it takes two clicks to close it. I want it to start with the Help menu closed. Also, in narrow screen mode I want the Help menu to close after selecting an item. I am looking in to how to do this - do you have any suggestions?

avatar ceford
ceford - comment - 24 Oct 2025

I am happy! This PR is ready for testing.

avatar richard67
richard67 - comment - 24 Oct 2025

@ceford What about these 2 unresolved review comments by @brianteeman ?

If they are resolved, please use the button below the comment on GitHub to mark it as resolved.

With the other 2 about the copyright year I've just done that.

Thanks in advance.

avatar ceford
ceford - comment - 24 Oct 2025

@ceford What about these 2 unresolved review comments by @brianteeman ?

* [[6.1] New backend Joomla! Help page #46355 (comment)](https://github.com/joomla/joomla-cms/pull/46355#discussion_r2454333605)

* [[6.1] New backend Joomla! Help page #46355 (comment)](https://github.com/joomla/joomla-cms/pull/46355#discussion_r2454339366)

If they are resolved, please use the button below the comment on GitHub to mark it as resolved.

With the other 2 about the copyright year I've just done that.

Thanks in advance.

Done that! As I am a rare contributor I did not realised that I needed to resolve comments. I also addressed the alignment problem mentioned by Brian

avatar richard67
richard67 - comment - 24 Oct 2025

@ceford Thanks. It is not necessarily the author of a PR who has to resolve review comments, it can also be done by the initial reviewer or by a maintainer. But at the end it is good to have them resolved, otherwise GitHub shows a message about unresolved comments which might discourage testers because they might think there will be more changes coming.

avatar ceford ceford - change - 24 Oct 2025
The description was changed
avatar ceford ceford - edited - 24 Oct 2025
avatar ceford ceford - change - 24 Oct 2025
The description was changed
avatar ceford ceford - edited - 24 Oct 2025
avatar joomla-cms-bot joomla-cms-bot - change - 24 Oct 2025
Category Administration com_admin Language & Strings Repository JavaScript NPM Change Administration com_admin Language & Strings Repository NPM Change JavaScript Installation
avatar joomla-cms-bot joomla-cms-bot - change - 24 Oct 2025
Category Administration com_admin Language & Strings Repository JavaScript NPM Change Installation Administration com_admin Language & Strings Repository NPM Change JavaScript
avatar ceford
ceford - comment - 24 Oct 2025

There is a snag! The rebase to 6.1 has led to the proxy returning 404 not found pages. For test purposes you can edit configuration.php and set the minor version to 0

public $helpurl = 'https://help.joomla.org/proxy?keyref=Help{major}0:{keyref}&lang={langcode}';
avatar brianteeman
brianteeman - comment - 25 Oct 2025

@richard67 as this pr removes the only file in the folder help/en-gb it will result in the packages being created without that folder at all. If the folder is needed for b/c etc then an index.html should be placed in the folder to ensure it is included in packages

avatar richard67
richard67 - comment - 25 Oct 2025

@richard67 as this pr removes the only file in the folder help/en-gb it will result in the packages being created without that folder at all. If the folder is needed for b/c etc then an index.html should be placed in the folder to ensure it is included in packages

@brianteeman I have no idea if that folder is needed for b/c and if so, if it is needed in a new install of the core, too, or only should be kept on updates.

@ceford Do you have an idea if that cold be needed e.g. for 3rd party extensions?

avatar brianteeman
brianteeman - comment - 25 Oct 2025

if it is not needed then entire folder tree can be removed

avatar ceford
ceford - comment - 25 Oct 2025

if it is not needed then entire folder tree can be removed

Looks like it is used in libraries/Src/Help/Help.php (line 71 ff) so I will create administrator/help/en-GB/index.html

avatar brianteeman
brianteeman - comment - 25 Oct 2025

That code is the cod3 you were looking for the other week for how to create a help button and link for your own extension

avatar brianteeman
brianteeman - comment - 25 Oct 2025
image image image
avatar ceford
ceford - comment - 25 Oct 2025

I adjusted the padding. Current rendering:

image

I have asked Harald to adjust the Help proxy server so it delivers pages for J6.1 and I have put in a PR to adjust the delivered page Toc to no more than 50% width, needed for narrow screens. Both pending.

avatar brianteeman
brianteeman - comment - 25 Oct 2025

can you look at the background please

your menu

image

main menu

image
avatar ceford
ceford - comment - 26 Oct 2025

can you look at the background please

I have noticed another background colour problem too. I am working on it.

avatar richard67
richard67 - comment - 26 Oct 2025

@ceford Could you fix the CSS code style issue reported here by the linter? https://github.com/joomla/joomla-cms/actions/runs/18806977533/job/53662595619?pr=46355

build/media_source/com_admin/css/admin-help.css
  62:3  ✖  Expected "font-weight" to come before "color"  order/properties-order

✖ 1 problem (1 error, 0 warnings)
  1 error potentially fixable with the "--fix" option.

Add a Comment

Login with GitHub to post a comment