From c40e2e1034c53865080b86ff044ccfa6d37558dd Mon Sep 17 00:00:00 2001 From: Cliff Ford Date: Thu, 23 Oct 2025 07:44:08 +0100 Subject: [PATCH 01/27] New Joomla! Help page --- .../com_admin/src/Model/HelpModel.php | 138 --------- .../com_admin/src/View/Help/HtmlView.php | 11 - .../com_admin/tmpl/help/default.php | 83 ++++-- .../com_admin/tmpl/help/toc-build.php | 99 +++++++ .../com_admin/tmpl/help/toc-src.php | 277 ++++++++++++++++++ administrator/help/en-GB/toc.json | 1 - administrator/language/en-GB/com_admin.ini | 16 + build/helpTOC.php | 236 --------------- .../com_admin/js/admin-help.es6.js | 69 ++++- 9 files changed, 513 insertions(+), 417 deletions(-) create mode 100644 administrator/components/com_admin/tmpl/help/toc-build.php create mode 100644 administrator/components/com_admin/tmpl/help/toc-src.php delete mode 100644 administrator/help/en-GB/toc.json delete mode 100644 build/helpTOC.php diff --git a/administrator/components/com_admin/src/Model/HelpModel.php b/administrator/components/com_admin/src/Model/HelpModel.php index 2198e6430e801..489b9f2e53680 100644 --- a/administrator/components/com_admin/src/Model/HelpModel.php +++ b/administrator/components/com_admin/src/Model/HelpModel.php @@ -12,10 +12,7 @@ use Joomla\CMS\Factory; use Joomla\CMS\Help\Help; -use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Model\BaseDatabaseModel; -use Joomla\Filesystem\Folder; -use Joomla\String\StringHelper; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -28,14 +25,6 @@ */ class HelpModel extends BaseDatabaseModel { - /** - * The search string - * - * @var string - * @since 1.6 - */ - protected $help_search = null; - /** * The page to be viewed * @@ -44,46 +33,6 @@ class HelpModel extends BaseDatabaseModel */ protected $page = null; - /** - * The ISO language tag - * - * @var string - * @since 1.6 - */ - protected $lang_tag = null; - - /** - * Table of contents - * - * @var array - * @since 1.6 - */ - protected $toc = []; - - /** - * URL for the latest version check - * - * @var string - * @since 1.6 - */ - protected $latest_version_check = null; - - /** - * Method to get the help search string - * - * @return string Help search string - * - * @since 1.6 - */ - public function &getHelpSearch() - { - if (\is_null($this->help_search)) { - $this->help_search = Factory::getApplication()->getInput()->getString('helpsearch'); - } - - return $this->help_search; - } - /** * Method to get the page * @@ -99,91 +48,4 @@ public function &getPage() return $this->page; } - - /** - * Method to get the lang tag - * - * @return string lang iso tag - * - * @since 1.6 - */ - public function getLangTag() - { - if (\is_null($this->lang_tag)) { - $this->lang_tag = Factory::getLanguage()->getTag(); - - if (!is_dir(JPATH_BASE . '/help/' . $this->lang_tag)) { - // Use English as fallback - $this->lang_tag = 'en-GB'; - } - } - - return $this->lang_tag; - } - - /** - * Method to get the table of contents - * - * @return array Table of contents - */ - public function &getToc() - { - if (\count($this->toc)) { - return $this->toc; - } - - // Get vars - $lang_tag = $this->getLangTag(); - $help_search = $this->getHelpSearch(); - - // New style - Check for a TOC \JSON file - if (file_exists(JPATH_BASE . '/help/' . $lang_tag . '/toc.json')) { - $data = json_decode(file_get_contents(JPATH_BASE . '/help/' . $lang_tag . '/toc.json')); - - // Loop through the data array - foreach ($data as $key => $value) { - $this->toc[$key] = Text::_('COM_ADMIN_HELP_' . $value); - } - - // Sort the Table of Contents - asort($this->toc); - - return $this->toc; - } - - // Get Help files - $files = Folder::files(JPATH_BASE . '/help/' . $lang_tag, '\.xml$|\.html$'); - - foreach ($files as $file) { - $buffer = file_get_contents(JPATH_BASE . '/help/' . $lang_tag . '/' . $file); - - if (!preg_match('#(.*?)#', $buffer, $m)) { - continue; - } - - $title = trim($m[1]); - - if (!$title) { - continue; - } - - // Translate the page title - $title = Text::_($title); - - // Strip the extension - $file = preg_replace('#\.xml$|\.html$#', '', $file); - - if ($help_search && StringHelper::strpos(StringHelper::strtolower(strip_tags($buffer)), StringHelper::strtolower($help_search)) === false) { - continue; - } - - // Add an item in the Table of Contents - $this->toc[$file] = $title; - } - - // Sort the Table of Contents - asort($this->toc); - - return $this->toc; - } } diff --git a/administrator/components/com_admin/src/View/Help/HtmlView.php b/administrator/components/com_admin/src/View/Help/HtmlView.php index 9d893b8cd8a70..8bc015bbc49b4 100644 --- a/administrator/components/com_admin/src/View/Help/HtmlView.php +++ b/administrator/components/com_admin/src/View/Help/HtmlView.php @@ -42,14 +42,6 @@ class HtmlView extends BaseHtmlView */ protected $page = null; - /** - * The iso language tag - * - * @var string - * @since 1.6 - */ - protected $languageTag = null; - /** * Table of contents * @@ -73,10 +65,7 @@ public function display($tpl = null): void { /** @var HelpModel $model */ $model = $this->getModel(); - $this->helpSearch = $model->getHelpSearch(); $this->page = $model->getPage(); - $this->toc = $model->getToc(); - $this->languageTag = $model->getLangTag(); $this->addToolbar(); diff --git a/administrator/components/com_admin/tmpl/help/default.php b/administrator/components/com_admin/tmpl/help/default.php index 14e0a81b9833f..0eb48758c6e36 100644 --- a/administrator/components/com_admin/tmpl/help/default.php +++ b/administrator/components/com_admin/tmpl/help/default.php @@ -20,34 +20,63 @@ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ $wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('com_admin.admin-help'); +$wa->addInlineStyle(' + #help-sidebar { + min-width: 18rem; + } + #help-index.main-nav { + inline-size: 18rem; + max-inline-size: 18rem; + } + #help-index ul, #help-index li { + inline-size: 18rem; + max-inline-size: 18rem; + } + #helpmenu .has-arrow .item-title { + margin-inline-end: auto; + } + #helpmenu .has-arrow::after { + display: flex; + } + .closed #helpmenu a:hover { + max-inline-size: 18rem; + } + #help-index.sidebar-wrapper .item-level-2 > a { + padding-inline-start: 1rem; + } + #help-index.sidebar-wrapper .item-level-3 > a { + padding-inline-start: 1.5rem; + } + .help-nav .mm-collapse { + display: none; + } + .help-nav .mm-collapse.mm-show { + display: block; + } +'); + +// Get the HTML for the Table of Contents from a separate file. +require_once 'toc-build.php'; +$tocBuilder = new Toc; +$toc = $tocBuilder->getToc(); ?> -
-
- -
- +
+
+ + +

+
- - +
+ + +
+
diff --git a/administrator/components/com_admin/tmpl/help/toc-build.php b/administrator/components/com_admin/tmpl/help/toc-build.php new file mode 100644 index 0000000000000..88ca0c70afb34 --- /dev/null +++ b/administrator/components/com_admin/tmpl/help/toc-build.php @@ -0,0 +1,99 @@ + + * @license GNU General Public License version 2 or later; see LICENSE.txt + */ + +use Joomla\CMS\Help\Help; +use Joomla\CMS\Language\Text; + +// phpcs:disable PSR1.Files.SideEffects +\defined('_JEXEC') or die; +// phpcs:enable PSR1.Files.SideEffects + +class Toc { + /** + * The id of each ul submenu - incremented for each. + * + * @var int + */ + protected $tocid = 1000; + + /** + * The level of menu / submenu items. + * + * @var int + */ + protected $toclevel = 1; + + /** + * The id of each li that contains a sub menu + * + * @var int + */ + protected $liid = 0; + + /** + * Method to get the table of contents + * + * @return array Table of contents + */ + public function &getToc() + { + require __DIR__ . '/toc-src.php'; + $html = $this->buildMenu($menu, true); + return $html; + } + + protected function buildMenu(array $items, $pass = false): string { + // don't set a ul on the first pass + if ($pass) { + $html = ""; + } else { + $this->tocid += 1; + // Increase the toclevel on entry + $this->toclevel += 1; + if ($this->toclevel > 1) { + $collapse = ' mm-collapse'; + } else { + $collapse = ''; + } + $html = "
    tocid}\" class=\"collapse-level-1{$collapse}\">\n"; + } + foreach ($items as $label => $value) { + $text = Text::_('COM_ADMIN_HELP_' . $label); + $lclabel = strtolower(str_replace('_', '-', $label)); + $this->liid += 1; + // Numeric keys mean leaf items (not headings) + if (is_array($value)) { + $icon = ""; + $wrap_label = "{$text}"; + $html .= "
  • liid}\" class=\"item parent item-level-{$this->toclevel}\">"; + $html .= ""; + $html .= "{$icon}{$wrap_label}\n"; + if (!empty($value)) { + $html .= $this->buildMenu($value); // Recursively build sublist + } + $html .= "
  • \n"; + } else { + $icon = ""; + // The label is help.joomla.org help key. + $url = Help::createUrl($label); + $link = "{$icon}{$text}\n"; + $html .= "
  • toclevel}\">{$link}
  • \n"; + } + } + // don't set a ul on the first pass + if ($pass) { + } else { + $html .= "
\n"; + } + // On return decrease the toclevel + $this->toclevel -= 1; + return $html; + } +} diff --git a/administrator/components/com_admin/tmpl/help/toc-src.php b/administrator/components/com_admin/tmpl/help/toc-src.php new file mode 100644 index 0000000000000..12c42f0eccb45 --- /dev/null +++ b/administrator/components/com_admin/tmpl/help/toc-src.php @@ -0,0 +1,277 @@ + + * @license GNU General Public License version 2 or later; see LICENSE.txt + */ + +// phpcs:disable PSR1.Files.SideEffects +\defined('_JEXEC') or die; +// phpcs:enable PSR1.Files.SideEffects + +$menu = [ + "START_HERE" => [ + "Start_Here" => "START_HERE", + "Glossary" => "GLOSSARY", + "Home_Dashboard" => "HOME_DASHBOARD", + "Site_Global_Configuration" => "SITE_GLOBAL_CONFIGURATION", + ], + "CONTENT" => [ + "ARTICLES" => [ + "Articles" => "ARTICLES", + "Articles:_Edit" => "ARTICLES:_EDIT", + "Articles:_Categories" => "ARTICLES:_CATEGORIES", + "Articles:_Edit_Category" => "ARTICLES:_EDIT_CATEGORY", + "Articles:_Featured" => "ARTICLES:_FEATURED", + "Articles:_Options" => "ARTICLES:_OPTIONS", + ], + "FIELDS" => [ + "Field_Groups" => "FIELD_GROUPS", + "Field_Groups:_Edit" => "FIELD_GROUPS:_EDIT", + "Fields" => "FIELDS", + "Fields:_Edit" => "FIELDS:_EDIT", + ], + "MEDIA" => [ + "Media" => "MEDIA", + "Media:_Options" => "MEDIA:_OPTIONS", + ], + "MODULES" => [ + "Modules" => "MODULES", + "Modules:_Options" => "MODULES:_OPTIONS", + ], + "SITE_MODULES" => [ + "Site_Modules:_Articles" => "SITE_MODULES:_ARTICLES", + "Site_Modules:_Articles_-_Archived" => "SITE_MODULES:_ARTICLES_-_ARCHIVED", + "Site_Modules:_Articles_-_Latest" => "SITE_MODULES:_ARTICLES_-_LATEST", + "Site_Modules:_Articles_-_Most_Read" => "SITE_MODULES:_ARTICLES_-_MOST_READ", + "Site_Modules:_Articles_-_Newsflash" => "SITE_MODULES:_ARTICLES_-_NEWSFLASH", + "Site_Modules:_Articles_-_Related" => "SITE_MODULES:_ARTICLES_-_RELATED", + "Site_Modules:_Banners" => "SITE_MODULES:_BANNERS", + "Site_Modules:_Breadcrumbs" => "SITE_MODULES:_BREADCRUMBS", + "Site_Modules:_Custom" => "SITE_MODULES:_CUSTOM", + "Site_Modules:_Feed_Display" => "SITE_MODULES:_FEED_DISPLAY", + "Site_Modules:_Footer" => "SITE_MODULES:_FOOTER", + "Site_Modules:_Language_Switcher" => "SITE_MODULES:_LANGUAGE_SWITCHER", + "Site_Modules:_Login" => "SITE_MODULES:_LOGIN", + "Site_Modules:_Menu" => "SITE_MODULES:_MENU", + "Site_Modules:_Random_Image" => "SITE_MODULES:_RANDOM_IMAGE", + "Site_Modules:_Smart_Search" => "SITE_MODULES:_SMART_SEARCH", + "Site_Modules:_Statistics" => "SITE_MODULES:_STATISTICS", + "Site_Modules:_Syndication_Feeds" => "SITE_MODULES:_SYNDICATION_FEEDS", + "Site_Modules:_Tags_-_Popular" => "SITE_MODULES:_TAGS_-_POPULAR", + "Site_Modules:_Tags_-_Similar" => "SITE_MODULES:_TAGS_-_SIMILAR", + "Site_Modules:_Wrapper" => "SITE_MODULES:_WRAPPER", + ], + "ADMIN_MODULES" => [ + "Admin_Modules:_Action_Logs_-_Latest" => "ADMIN_MODULES:_ACTION_LOGS_-_LATEST", + "Admin_Modules:_Administrator_Dashboard_Menu" => "ADMIN_MODULES:_ADMINISTRATOR_DASHBOARD_MENU", + "Admin_Modules:_Administrator_Menu" => "ADMIN_MODULES:_ADMINISTRATOR_MENU", + "Admin_Modules:_Articles_-_Latest" => "ADMIN_MODULES:_ARTICLES_-_LATEST", + "Admin_Modules:_Custom" => "ADMIN_MODULES:_CUSTOM", + "Admin_Modules:_Feed_Display" => "ADMIN_MODULES:_FEED_DISPLAY", + "Admin_Modules:_Frontend_Link" => "ADMIN_MODULES:_FRONTEND_LINK", + "Admin_Modules:_Guided_Tours" => "ADMIN_MODULES:_GUIDED_TOURS", + "Admin_Modules:_Joomla_Version_Information" => "ADMIN_MODULES:_JOOMLA_VERSION_INFORMATION", + "Admin_Modules:_Login_Form" => "ADMIN_MODULES:_LOGIN_FORM", + "Admin_Modules:_Login_Support_Information" => "ADMIN_MODULES:_LOGIN_SUPPORT_INFORMATION", + "Admin_Modules:_Messages" => "ADMIN_MODULES:_MESSAGES", + "Admin_Modules:_Multilingual_Status" => "ADMIN_MODULES:_MULTILINGUAL_STATUS", + "Admin_Modules:_Popular_Articles" => "ADMIN_MODULES:_POPULAR_ARTICLES", + "Admin_Modules:_Post_Installation_Messages" => "ADMIN_MODULES:_POST_INSTALLATION_MESSAGES", + "Admin_Modules:_Privacy_Dashboard" => "ADMIN_MODULES:_PRIVACY_DASHBOARD", + "Admin_Modules:_Privacy_Status_Check" => "ADMIN_MODULES:_PRIVACY_STATUS_CHECK", + "Admin_Modules:_Quick_Icons" => "ADMIN_MODULES:_QUICK_ICONS", + "Admin_Modules:_Sample_Data" => "ADMIN_MODULES:_SAMPLE_DATA", + "Admin_Modules:_Title" => "ADMIN_MODULES:_TITLE", + "Admin_Modules:_Toolbar" => "ADMIN_MODULES:_TOOLBAR", + ], + ], + "MENUS" => [ + "MENUS" => [ + "Menus" => "MENUS", + "Menus:_Edit" => "MENUS:_EDIT", + "Menus:_Items" => "MENUS:_ITEMS", + "Menus:_Options" => "MENUS:_OPTIONS", + ], + "MENU_ITEMS" => [ + "Menu_Item:_Alias" => "MENU_ITEM:_ALIAS", + "Menu_Item:_Article_Archived" => "MENU_ITEM:_ARTICLE_ARCHIVED", + "Menu_Item:_Compact_List_of_Tagged_Items" => "MENU_ITEM:_COMPACT_LIST_OF_TAGGED_ITEMS", + "Menu_Item:_Components_Menu_Container" => "MENU_ITEM:_COMPONENTS_MENU_CONTAINER", + "Menu_Item:_Confirm_Request" => "MENU_ITEM:_CONFIRM_REQUEST", + "Menu_Item:_Create_Article" => "MENU_ITEM:_CREATE_ARTICLE", + "Menu_Item:_Create_Contact" => "MENU_ITEM:_CREATE_CONTACT", + "Menu_Item:_Create_Request" => "MENU_ITEM:_CREATE_REQUEST", + "Menu_Item:_Display_Template_Options" => "MENU_ITEM:_DISPLAY_TEMPLATE_OPTIONS", + "Menu_Item:_Extend_Consent" => "MENU_ITEM:_EXTEND_CONSENT", + "Menu_Item:_Featured_Articles" => "MENU_ITEM:_FEATURED_ARTICLES", + "Menu_Item:_Featured_Contacts" => "MENU_ITEM:_FEATURED_CONTACTS", + "Menu_Item:_Heading" => "MENU_ITEM:_HEADING", + "Menu_Item:_Iframe_Wrapper" => "MENU_ITEM:_IFRAME_WRAPPER", + "Menu_Item:_List_All_Tags" => "MENU_ITEM:_LIST_ALL_TAGS", + "Menu_Item:_Login_Form" => "MENU_ITEM:_LOGIN_FORM", + "Menu_Item:_Logout" => "MENU_ITEM:_LOGOUT", + "Menu_Item:_New_Item" => "MENU_ITEM:_NEW_ITEM", + "Menu_Item:_Password_Reset" => "MENU_ITEM:_PASSWORD_RESET", + "Menu_Item:_Registration_Form" => "MENU_ITEM:_REGISTRATION_FORM", + "Menu_Item:_Search" => "MENU_ITEM:_SEARCH", + "Menu_Item:_Separator" => "MENU_ITEM:_SEPARATOR", + "Menu_Item:_Single_Article" => "MENU_ITEM:_SINGLE_ARTICLE", + "Menu_Item:_Single_Contact" => "MENU_ITEM:_SINGLE_CONTACT", + "Menu_Item:_Single_News_Feed" => "MENU_ITEM:_SINGLE_NEWS_FEED", + "Menu_Item:_Site_Configuration_Options" => "MENU_ITEM:_SITE_CONFIGURATION_OPTIONS", + "Menu_Item:_Tagged_Items" => "MENU_ITEM:_TAGGED_ITEMS", + "Menu_Item:_URL" => "MENU_ITEM:_URL", + ], + ], + "COMPONENTS" => [ + "BANNERS" => [ + "Banners" => "BANNERS", + "Banners:_Categories" => "BANNERS:_CATEGORIES", + "Banners:_Clients" => "BANNERS:_CLIENTS", + "Banners:_Edit" => "BANNERS:_EDIT", + "Banners:_New_or_Edit_Category" => "BANNERS:_NEW_OR_EDIT_CATEGORY", + "Banners:_New_or_Edit_Client" => "BANNERS:_NEW_OR_EDIT_CLIENT", + "Banners:_Tracks" => "BANNERS:_TRACKS", + "Banners:_Options" => "BANNERS:_OPTIONS", + ], + "CONTACTS" => [ + "Contacts" => "CONTACTS", + "Contacts:_Categories" => "CONTACTS:_CATEGORIES", + "Contacts:_Edit" => "CONTACTS:_EDIT", + "Contacts:_Edit_Category" => "CONTACTS:_EDIT_CATEGORY", + "Contacts:_Options" => "CONTACTS:_OPTIONS", + ], + "NEWS_FEEDS" => [ + "News_Feeds" => "NEWS_FEEDS", + "News_Feeds:_Categories" => "NEWS_FEEDS:_CATEGORIES", + "News_Feeds:_Edit" => "NEWS_FEEDS:_EDIT", + "News_Feeds:_Edit_Category" => "NEWS_FEEDS:_EDIT_CATEGORY", + "News_Feed:_Options" => "NEWS_FEED:_OPTIONS", + ], + "SMART_SEARCH" => [ + "Smart_Search:_Indexed_Content" => "SMART_SEARCH:_INDEXED_CONTENT", + "Smart_Search:_Content_Maps" => "SMART_SEARCH:_CONTENT_MAPS", + "Smart_Search:_Search_Filters" => "SMART_SEARCH:_SEARCH_FILTERS", + "Smart_Search:_New_or_Edit_Filter" => "SMART_SEARCH:_NEW_OR_EDIT_FILTER", + "Smart_Search:_Search_Term_Analysis" => "SMART_SEARCH:_SEARCH_TERM_ANALYSIS", + "Smart_Search:_Options" => "SMART_SEARCH:_OPTIONS", + ], + "TAGS" => [ + "Tags" => "TAGS", + "Tags:_New_or_Edit" => "TAGS:_NEW_OR_EDIT", + "Tags:_Options" => "TAGS:_OPTIONS", + ], +], + "USERS" => [ + "Users" => "USERS", + "Users:_Edit_Profile" => "USERS:_EDIT_PROFILE", + "Users:_Edit_Viewing_Access_Level" => "USERS:_EDIT_VIEWING_ACCESS_LEVEL", + "Users:_Groups" => "USERS:_GROUPS", + "Users:_New_or_Edit_Group" => "USERS:_NEW_OR_EDIT_GROUP", + "Users:_Options" => "USERS:_OPTIONS", + "Users:_Viewing_Access_Levels" => "USERS:_VIEWING_ACCESS_LEVELS", + "Permissions_for_Group" => "PERMISSIONS_FOR_GROUP", + "Permissions_for_User" => "PERMISSIONS_FOR_USER", + "User_Actions_Log" => "USER_ACTIONS_LOG", + "User_Actions_Log:_Options" => "USER_ACTIONS_LOG:_OPTIONS", + "User_Notes" => "USER_NOTES", + "User_Notes:_New_or_Edit" => "USER_NOTES:_NEW_OR_EDIT", + "Mass_Mail_Users" => "MASS_MAIL_USERS", + "Private_Messages" => "PRIVATE_MESSAGES", + "Private_Messages:_Read" => "PRIVATE_MESSAGES:_READ", + "Private_Messages:_Write" => "PRIVATE_MESSAGES:_WRITE", + "Messages:_Options" => "MESSAGES:_OPTIONS", + ], + "PRIVACY" => [ + "Privacy_Dashboard" => "PRIVACY_DASHBOARD", + "Privacy:_Consents" => "PRIVACY:_CONSENTS", + "Privacy:_Extension_Capabilities" => "PRIVACY:_EXTENSION_CAPABILITIES", + "Privacy:_Information_Requests" => "PRIVACY:_INFORMATION_REQUESTS", + "Privacy:_New_Information_Request" => "PRIVACY:_NEW_INFORMATION_REQUEST", + "Privacy:_Options" => "PRIVACY:_OPTIONS", + "Privacy:_Review_Information_Request" => "PRIVACY:_REVIEW_INFORMATION_REQUEST", + ], + "SYSTEM" => [ + "EXTENSIONS" => [ + "Extensions:_Discover" => "EXTENSIONS:_DISCOVER", + "Extensions:_Install" => "EXTENSIONS:_INSTALL", + "Extensions:_Languages" => "EXTENSIONS:_LANGUAGES", + "Extensions:_Manage" => "EXTENSIONS:_MANAGE", + "Extensions:_Update" => "EXTENSIONS:_UPDATE", + "Extensions:_Update_Sites" => "EXTENSIONS:_UPDATE_SITES", + ], + "TEMPLATES:_TEMPLATES" => [ + "Templates:_Templates" => "TEMPLATES:_TEMPLATES", + "Templates:_Customise" => "TEMPLATES:_CUSTOMISE", + "Templates:_Customise_Source" => "TEMPLATES:_CUSTOMISE_SOURCE", + "Templates:_Styles" => "TEMPLATES:_STYLES", + "Templates:_Edit_Style" => "TEMPLATES:_EDIT_STYLE", + "Template:_Options" => "TEMPLATE:_OPTIONS", + "Mail_Templates" => "MAIL_TEMPLATES", + "Mail_Template:_Edit" => "MAIL_TEMPLATE:_EDIT", + "Mail_Templates:_Options" => "MAIL_TEMPLATES:_OPTIONS", + ], + "MAINTENANCE" => [ + "Information:_Database" => "INFORMATION:_DATABASE", + "Maintenance:_Clear_Cache" => "MAINTENANCE:_CLEAR_CACHE", + "Maintenance:_Global_Check-in" => "MAINTENANCE:_GLOBAL_CHECK-IN", + "Cache:_Options" => "CACHE:_OPTIONS", + "Check-in:_Options" => "CHECK-IN:_OPTIONS", + ], + "LANGUAGES" => [ + "Languages:_Content" => "LANGUAGES:_CONTENT", + "Languages:_Edit_Content_Language" => "LANGUAGES:_EDIT_CONTENT_LANGUAGE", + "Languages:_Edit_Override" => "LANGUAGES:_EDIT_OVERRIDE", + "Languages:_Installed" => "LANGUAGES:_INSTALLED", + "Languages:_Options" => "LANGUAGES:_OPTIONS", + "Languages:_Overrides" => "LANGUAGES:_OVERRIDES", + "Multilingual_Associations" => "MULTILINGUAL_ASSOCIATIONS", + "Multilingual_Associations:_Edit" => "MULTILINGUAL_ASSOCIATIONS:_EDIT", + "Multilingual_Associations:_Options" => "MULTILINGUAL_ASSOCIATIONS:_OPTIONS", + ], + "PLUGINS" => [ + "Plugins" => "PLUGINS", + "Plugins:_Name_of_Plugin" => "PLUGINS:_NAME_OF_PLUGIN", + "Editors" => "EDITORS", + "Plugin:_Options" => "PLUGIN:_OPTIONS", + ], + "REDIRECTS" => [ + "Redirect:_Options" => "REDIRECT:_OPTIONS", + "Redirects:_Links" => "REDIRECTS:_LINKS", + "Redirects:_New_or_Edit" => "REDIRECTS:_NEW_OR_EDIT", + ], + "GUIDED_TOURS" => [ + "Guided_Tours" => "GUIDED_TOURS", + "Guided_Tours:_New_or_Edit_Step" => "GUIDED_TOURS:_NEW_OR_EDIT_STEP", + "Guided_Tours:_New_or_Edit_Tour" => "GUIDED_TOURS:_NEW_OR_EDIT_TOUR", + "Guided_Tours:_Options" => "GUIDED_TOURS:_OPTIONS", + "Guided_Tours:_Steps" => "GUIDED_TOURS:_STEPS", + ], + "SCHEDULED_TASKS" => [ + "Scheduled_Tasks" => "SCHEDULED_TASKS", + "Scheduled_Tasks:_Edit" => "SCHEDULED_TASKS:_EDIT", + "Scheduled_Tasks:_Options" => "SCHEDULED_TASKS:_OPTIONS", + ], + "INFORMATION" => [ + "Information:_Warnings" => "INFORMATION:_WARNINGS", + "Post-installation_Messages_for_Joomla_CMS" => "POST-INSTALLATION_MESSAGES_FOR_JOOMLA_CMS", + "Post-installation_Messages:_Options" => "POST-INSTALLATION_MESSAGES:_OPTIONS", + "Site_System_Information" => "SITE_SYSTEM_INFORMATION", + ], + "JOOMLA_UPDATE" => [ + "Joomla_Update" => "JOOMLA_UPDATE", + "Joomla_Update:_Options" => "JOOMLA_UPDATE:_OPTIONS", + "Edit_Update_Site" => "EDIT_UPDATE_SITE", + "Installer:_Options" => "INSTALLER:_OPTIONS", + ], + "WORKFLOWS" => [ + "Workflows_List" => "WORKFLOWS_LIST", + "Stages_List:_Basic_Workflow" => "STAGES_LIST:_BASIC_WORKFLOW", + "Transitions_List:_Basic_Workflow" => "TRANSITIONS_LIST:_BASIC_WORKFLOW", + ], + ], +]; diff --git a/administrator/help/en-GB/toc.json b/administrator/help/en-GB/toc.json deleted file mode 100644 index 5af8c2abd5c5b..0000000000000 --- a/administrator/help/en-GB/toc.json +++ /dev/null @@ -1 +0,0 @@ -{"Articles":"ARTICLES","Articles:_Categories":"ARTICLES:_CATEGORIES","Articles:_Edit":"ARTICLES:_EDIT","Articles:_Edit_Category":"ARTICLES:_EDIT_CATEGORY","Articles:_Featured":"ARTICLES:_FEATURED","Banners":"BANNERS","Banners:_Categories":"BANNERS:_CATEGORIES","Banners:_Clients":"BANNERS:_CLIENTS","Banners:_Edit":"BANNERS:_EDIT","Banners:_New_or_Edit_Category":"BANNERS:_NEW_OR_EDIT_CATEGORY","Banners:_New_or_Edit_Client":"BANNERS:_NEW_OR_EDIT_CLIENT","Banners:_Tracks":"BANNERS:_TRACKS","Contacts":"CONTACTS","Contacts:_Categories":"CONTACTS:_CATEGORIES","Contacts:_Edit":"CONTACTS:_EDIT","Contacts:_Edit_Category":"CONTACTS:_EDIT_CATEGORY","Admin_Modules:_Action_Logs_-_Latest":"ADMIN_MODULES:_ACTION_LOGS_-_LATEST","Admin_Modules:_Administrator_Dashboard_Menu":"ADMIN_MODULES:_ADMINISTRATOR_DASHBOARD_MENU","Admin_Modules:_Administrator_Menu":"ADMIN_MODULES:_ADMINISTRATOR_MENU","Admin_Modules:_Articles_-_Latest":"ADMIN_MODULES:_ARTICLES_-_LATEST","Admin_Modules:_Custom":"ADMIN_MODULES:_CUSTOM","Admin_Modules:_Feed_Display":"ADMIN_MODULES:_FEED_DISPLAY","Admin_Modules:_Frontend_Link":"ADMIN_MODULES:_FRONTEND_LINK","Admin_Modules:_Guided_Tours":"ADMIN_MODULES:_GUIDED_TOURS","Admin_Modules:_Joomla_Version_Information":"ADMIN_MODULES:_JOOMLA_VERSION_INFORMATION","Admin_Modules:_Login_Form":"ADMIN_MODULES:_LOGIN_FORM","Admin_Modules:_Login_Support_Information":"ADMIN_MODULES:_LOGIN_SUPPORT_INFORMATION","Admin_Modules:_Messages":"ADMIN_MODULES:_MESSAGES","Admin_Modules:_Multilingual_Status":"ADMIN_MODULES:_MULTILINGUAL_STATUS","Admin_Modules:_Popular_Articles":"ADMIN_MODULES:_POPULAR_ARTICLES","Admin_Modules:_Post_Installation_Messages":"ADMIN_MODULES:_POST_INSTALLATION_MESSAGES","Admin_Modules:_Privacy_Dashboard":"ADMIN_MODULES:_PRIVACY_DASHBOARD","Admin_Modules:_Privacy_Status_Check":"ADMIN_MODULES:_PRIVACY_STATUS_CHECK","Admin_Modules:_Quick_Icons":"ADMIN_MODULES:_QUICK_ICONS","Admin_Modules:_Sample_Data":"ADMIN_MODULES:_SAMPLE_DATA","Admin_Modules:_Title":"ADMIN_MODULES:_TITLE","Admin_Modules:_Toolbar":"ADMIN_MODULES:_TOOLBAR","Articles:_Options":"ARTICLES:_OPTIONS","Banners:_Options":"BANNERS:_OPTIONS","Cache:_Options":"CACHE:_OPTIONS","Check-in:_Options":"CHECK-IN:_OPTIONS","Contacts:_Options":"CONTACTS:_OPTIONS","Edit_Update_Site":"EDIT_UPDATE_SITE","Editors":"EDITORS","Extensions:_Discover":"EXTENSIONS:_DISCOVER","Extensions:_Install":"EXTENSIONS:_INSTALL","Extensions:_Languages":"EXTENSIONS:_LANGUAGES","Extensions:_Manage":"EXTENSIONS:_MANAGE","Extensions:_Update":"EXTENSIONS:_UPDATE","Extensions:_Update_Sites":"EXTENSIONS:_UPDATE_SITES","Field_Groups":"FIELD_GROUPS","Field_Groups:_Edit":"FIELD_GROUPS:_EDIT","Fields":"FIELDS","Fields:_Edit":"FIELDS:_EDIT","Guided_Tours":"GUIDED_TOURS","Guided_Tours:_New_or_Edit_Step":"GUIDED_TOURS:_NEW_OR_EDIT_STEP","Guided_Tours:_New_or_Edit_Tour":"GUIDED_TOURS:_NEW_OR_EDIT_TOUR","Guided_Tours:_Options":"GUIDED_TOURS:_OPTIONS","Guided_Tours:_Steps":"GUIDED_TOURS:_STEPS","Home_Dashboard":"HOME_DASHBOARD","Information:_Database":"INFORMATION:_DATABASE","Information:_Warnings":"INFORMATION:_WARNINGS","Installer:_Options":"INSTALLER:_OPTIONS","Joomla_Update":"JOOMLA_UPDATE","Joomla_Update:_Options":"JOOMLA_UPDATE:_OPTIONS","Languages:_Content":"LANGUAGES:_CONTENT","Languages:_Edit_Content_Language":"LANGUAGES:_EDIT_CONTENT_LANGUAGE","Languages:_Edit_Override":"LANGUAGES:_EDIT_OVERRIDE","Languages:_Installed":"LANGUAGES:_INSTALLED","Languages:_Options":"LANGUAGES:_OPTIONS","Languages:_Overrides":"LANGUAGES:_OVERRIDES","Mail_Template:_Edit":"MAIL_TEMPLATE:_EDIT","Mail_Templates":"MAIL_TEMPLATES","Mail_Templates:_Options":"MAIL_TEMPLATES:_OPTIONS","Maintenance:_Clear_Cache":"MAINTENANCE:_CLEAR_CACHE","Maintenance:_Global_Check-in":"MAINTENANCE:_GLOBAL_CHECK-IN","Mass_Mail_Users":"MASS_MAIL_USERS","Media":"MEDIA","Media:_Options":"MEDIA:_OPTIONS","Menu_Item:_Alias":"MENU_ITEM:_ALIAS","Menu_Item:_Article_Archived":"MENU_ITEM:_ARTICLE_ARCHIVED","Menu_Item:_Compact_List_of_Tagged_Items":"MENU_ITEM:_COMPACT_LIST_OF_TAGGED_ITEMS","Menu_Item:_Components_Menu_Container":"MENU_ITEM:_COMPONENTS_MENU_CONTAINER","Menu_Item:_Confirm_Request":"MENU_ITEM:_CONFIRM_REQUEST","Menu_Item:_Create_Article":"MENU_ITEM:_CREATE_ARTICLE","Menu_Item:_Create_Contact":"MENU_ITEM:_CREATE_CONTACT","Menu_Item:_Create_Request":"MENU_ITEM:_CREATE_REQUEST","Menu_Item:_Display_Template_Options":"MENU_ITEM:_DISPLAY_TEMPLATE_OPTIONS","Menu_Item:_Extend_Consent":"MENU_ITEM:_EXTEND_CONSENT","Menu_Item:_Featured_Articles":"MENU_ITEM:_FEATURED_ARTICLES","Menu_Item:_Featured_Contacts":"MENU_ITEM:_FEATURED_CONTACTS","Menu_Item:_Heading":"MENU_ITEM:_HEADING","Menu_Item:_Iframe_Wrapper":"MENU_ITEM:_IFRAME_WRAPPER","Menu_Item:_List_All_Tags":"MENU_ITEM:_LIST_ALL_TAGS","Menu_Item:_Login_Form":"MENU_ITEM:_LOGIN_FORM","Menu_Item:_Logout":"MENU_ITEM:_LOGOUT","Menu_Item:_New_Item":"MENU_ITEM:_NEW_ITEM","Menu_Item:_Password_Reset":"MENU_ITEM:_PASSWORD_RESET","Menu_Item:_Registration_Form":"MENU_ITEM:_REGISTRATION_FORM","Menu_Item:_Search":"MENU_ITEM:_SEARCH","Menu_Item:_Separator":"MENU_ITEM:_SEPARATOR","Menu_Item:_Single_Article":"MENU_ITEM:_SINGLE_ARTICLE","Menu_Item:_Single_Contact":"MENU_ITEM:_SINGLE_CONTACT","Menu_Item:_Single_News_Feed":"MENU_ITEM:_SINGLE_NEWS_FEED","Menu_Item:_Site_Configuration_Options":"MENU_ITEM:_SITE_CONFIGURATION_OPTIONS","Menu_Item:_Tagged_Items":"MENU_ITEM:_TAGGED_ITEMS","Menu_Item:_URL":"MENU_ITEM:_URL","Menus":"MENUS","Menus:_Edit":"MENUS:_EDIT","Menus:_Items":"MENUS:_ITEMS","Menus:_Options":"MENUS:_OPTIONS","Messages:_Options":"MESSAGES:_OPTIONS","Modules":"MODULES","Modules:_Options":"MODULES:_OPTIONS","Multilingual_Associations":"MULTILINGUAL_ASSOCIATIONS","Multilingual_Associations:_Edit":"MULTILINGUAL_ASSOCIATIONS:_EDIT","Multilingual_Associations:_Options":"MULTILINGUAL_ASSOCIATIONS:_OPTIONS","My_Profile":"MY_PROFILE","News_Feed:_Options":"NEWS_FEED:_OPTIONS","News_Feeds":"NEWS_FEEDS","News_Feeds:_Categories":"NEWS_FEEDS:_CATEGORIES","News_Feeds:_Edit":"NEWS_FEEDS:_EDIT","News_Feeds:_Edit_Category":"NEWS_FEEDS:_EDIT_CATEGORY","Permissions_for_Group":"PERMISSIONS_FOR_GROUP","Permissions_for_User":"PERMISSIONS_FOR_USER","Plugin:_Options":"PLUGIN:_OPTIONS","Plugins":"PLUGINS","Plugins:_Name_of_Plugin":"PLUGINS:_NAME_OF_PLUGIN","Post-installation_Messages_for_Joomla_CMS":"POST-INSTALLATION_MESSAGES_FOR_JOOMLA_CMS","Post-installation_Messages:_Options":"POST-INSTALLATION_MESSAGES:_OPTIONS","Privacy_Dashboard":"PRIVACY_DASHBOARD","Privacy:_Consents":"PRIVACY:_CONSENTS","Privacy:_Extension_Capabilities":"PRIVACY:_EXTENSION_CAPABILITIES","Privacy:_Information_Requests":"PRIVACY:_INFORMATION_REQUESTS","Privacy:_New_Information_Request":"PRIVACY:_NEW_INFORMATION_REQUEST","Privacy:_Options":"PRIVACY:_OPTIONS","Privacy:_Review_Information_Request":"PRIVACY:_REVIEW_INFORMATION_REQUEST","Private_Messages":"PRIVATE_MESSAGES","Private_Messages:_Read":"PRIVATE_MESSAGES:_READ","Private_Messages:_Write":"PRIVATE_MESSAGES:_WRITE","Redirect:_Options":"REDIRECT:_OPTIONS","Redirects:_Links":"REDIRECTS:_LINKS","Redirects:_New_or_Edit":"REDIRECTS:_NEW_OR_EDIT","Scheduled_Tasks":"SCHEDULED_TASKS","Scheduled_Tasks:_Edit":"SCHEDULED_TASKS:_EDIT","Scheduled_Tasks:_Options":"SCHEDULED_TASKS:_OPTIONS","Site_Global_Configuration":"SITE_GLOBAL_CONFIGURATION","Site_Modules:_Articles":"SITE_MODULES:_ARTICLES","Site_Modules:_Articles_-_Archived":"SITE_MODULES:_ARTICLES_-_ARCHIVED","Site_Modules:_Articles_-_Latest":"SITE_MODULES:_ARTICLES_-_LATEST","Site_Modules:_Articles_-_Most_Read":"SITE_MODULES:_ARTICLES_-_MOST_READ","Site_Modules:_Articles_-_Newsflash":"SITE_MODULES:_ARTICLES_-_NEWSFLASH","Site_Modules:_Articles_-_Related":"SITE_MODULES:_ARTICLES_-_RELATED","Site_Modules:_Banners":"SITE_MODULES:_BANNERS","Site_Modules:_Breadcrumbs":"SITE_MODULES:_BREADCRUMBS","Site_Modules:_Custom":"SITE_MODULES:_CUSTOM","Site_Modules:_Feed_Display":"SITE_MODULES:_FEED_DISPLAY","Site_Modules:_Footer":"SITE_MODULES:_FOOTER","Site_Modules:_Language_Switcher":"SITE_MODULES:_LANGUAGE_SWITCHER","Site_Modules:_Login":"SITE_MODULES:_LOGIN","Site_Modules:_Menu":"SITE_MODULES:_MENU","Site_Modules:_Random_Image":"SITE_MODULES:_RANDOM_IMAGE","Site_Modules:_Smart_Search":"SITE_MODULES:_SMART_SEARCH","Site_Modules:_Statistics":"SITE_MODULES:_STATISTICS","Site_Modules:_Syndication_Feeds":"SITE_MODULES:_SYNDICATION_FEEDS","Site_Modules:_Tags_-_Popular":"SITE_MODULES:_TAGS_-_POPULAR","Site_Modules:_Tags_-_Similar":"SITE_MODULES:_TAGS_-_SIMILAR","Site_Modules:_Wrapper":"SITE_MODULES:_WRAPPER","Site_System_Information":"SITE_SYSTEM_INFORMATION","Smart_Search:_Content_Maps":"SMART_SEARCH:_CONTENT_MAPS","Smart_Search:_Indexed_Content":"SMART_SEARCH:_INDEXED_CONTENT","Smart_Search:_New_or_Edit_Filter":"SMART_SEARCH:_NEW_OR_EDIT_FILTER","Smart_Search:_Options":"SMART_SEARCH:_OPTIONS","Smart_Search:_Search_Filters":"SMART_SEARCH:_SEARCH_FILTERS","Smart_Search:_Search_Term_Analysis":"SMART_SEARCH:_SEARCH_TERM_ANALYSIS","Stages_List:_Basic_Workflow":"STAGES_LIST:_BASIC_WORKFLOW","Start_Here":"START_HERE","Tags":"TAGS","Tags:_New_or_Edit":"TAGS:_NEW_OR_EDIT","Tags:_Options":"TAGS:_OPTIONS","Template:_Options":"TEMPLATE:_OPTIONS","Templates:_Customise":"TEMPLATES:_CUSTOMISE","Templates:_Customise_Source":"TEMPLATES:_CUSTOMISE_SOURCE","Templates:_Edit_Style":"TEMPLATES:_EDIT_STYLE","Templates:_Styles":"TEMPLATES:_STYLES","Templates:_Templates":"TEMPLATES:_TEMPLATES","Transitions_List:_Basic_Workflow":"TRANSITIONS_LIST:_BASIC_WORKFLOW","User_Actions_Log":"USER_ACTIONS_LOG","User_Actions_Log:_Options":"USER_ACTIONS_LOG:_OPTIONS","User_Notes":"USER_NOTES","User_Notes:_New_or_Edit":"USER_NOTES:_NEW_OR_EDIT","Users":"USERS","Users:_Edit_Profile":"USERS:_EDIT_PROFILE","Users:_Edit_Viewing_Access_Level":"USERS:_EDIT_VIEWING_ACCESS_LEVEL","Users:_Groups":"USERS:_GROUPS","Users:_New_or_Edit_Group":"USERS:_NEW_OR_EDIT_GROUP","Users:_Options":"USERS:_OPTIONS","Users:_Viewing_Access_Levels":"USERS:_VIEWING_ACCESS_LEVELS","Workflows_List":"WORKFLOWS_LIST"} diff --git a/administrator/language/en-GB/com_admin.ini b/administrator/language/en-GB/com_admin.ini index 450ecdeb052ae..c51a442231793 100644 --- a/administrator/language/en-GB/com_admin.ini +++ b/administrator/language/en-GB/com_admin.ini @@ -24,6 +24,7 @@ COM_ADMIN_EXTENSIONS="Extensions" COM_ADMIN_FILE_UPLOADS="File Uploads" COM_ADMIN_GLOSSARY="Glossary" COM_ADMIN_HELP="Joomla! Help" +COM_ADMIN_HELP_ADMIN_MODULES="Administrator Modules" COM_ADMIN_HELP_ADMIN_MODULES:_ACTION_LOGS_-_LATEST="Admin Modules: Action Logs - Latest" COM_ADMIN_HELP_ADMIN_MODULES:_ADMINISTRATOR_DASHBOARD_MENU="Admin Modules: Administrator Dashboard Menu" COM_ADMIN_HELP_ADMIN_MODULES:_ADMINISTRATOR_MENU="Admin Modules: Administrator Menu" @@ -61,13 +62,16 @@ COM_ADMIN_HELP_BANNERS:_TRACKS="Banners: Tracks" COM_ADMIN_HELP_BANNERS="Banners" COM_ADMIN_HELP_CACHE:_OPTIONS="Cache: Options" COM_ADMIN_HELP_CHECK-IN:_OPTIONS="Check-in: Options" +COM_ADMIN_HELP_COMPONENTS="Components" COM_ADMIN_HELP_CONTACTS:_CATEGORIES="Contacts: Categories" COM_ADMIN_HELP_CONTACTS:_EDIT_CATEGORY="Contacts: Categories - New/Edit" COM_ADMIN_HELP_CONTACTS:_EDIT="Contacts: New/Edit" COM_ADMIN_HELP_CONTACTS:_OPTIONS="Contacts: Options" COM_ADMIN_HELP_CONTACTS="Contacts" +COM_ADMIN_HELP_CONTENT="Content" COM_ADMIN_HELP_EDIT_UPDATE_SITE="Edit Update Site" COM_ADMIN_HELP_EDITORS="Editors" +COM_ADMIN_HELP_EXTENSIONS="Extensions" COM_ADMIN_HELP_EXTENSIONS:_DISCOVER="Extensions: Discover" COM_ADMIN_HELP_EXTENSIONS:_INSTALL="Extensions: Install" COM_ADMIN_HELP_EXTENSIONS:_LANGUAGES="Extensions: Install Languages" @@ -85,11 +89,14 @@ COM_ADMIN_HELP_GUIDED_TOURS:_OPTIONS="Guided Tours: Options" COM_ADMIN_HELP_GUIDED_TOURS:_STEPS="Guided Tours: Steps" COM_ADMIN_HELP_GUIDED_TOURS="Guided Tours" COM_ADMIN_HELP_HOME_DASHBOARD="Home Dashboard" +COM_ADMIN_HELP_INDEX="Index of Help Pages" +COM_ADMIN_HELP_INFORMATION="Information" COM_ADMIN_HELP_INFORMATION:_DATABASE="Extensions: Check Database" COM_ADMIN_HELP_INFORMATION:_WARNINGS="Extensions: Warnings" COM_ADMIN_HELP_INSTALLER:_OPTIONS="Installer: Options" COM_ADMIN_HELP_JOOMLA_UPDATE:_OPTIONS="Joomla Update: Options" COM_ADMIN_HELP_JOOMLA_UPDATE="Joomla Update" +COM_ADMIN_HELP_LANGUAGES="Languages" COM_ADMIN_HELP_LANGUAGES:_CONTENT="Languages: Content" COM_ADMIN_HELP_LANGUAGES:_EDIT_CONTENT_LANGUAGE="Languages: New/Edit" COM_ADMIN_HELP_LANGUAGES:_EDIT_OVERRIDE="Languages: Overrides - New/Edit" @@ -99,11 +106,13 @@ COM_ADMIN_HELP_LANGUAGES:_OVERRIDES="Languages: Overrides" COM_ADMIN_HELP_MAIL_TEMPLATE:_EDIT="Mail Templates: Edit" COM_ADMIN_HELP_MAIL_TEMPLATES:_OPTIONS="Mail Templates: Options" COM_ADMIN_HELP_MAIL_TEMPLATES="Mail Templates" +COM_ADMIN_HELP_MAINTENANCE="Maintenance" COM_ADMIN_HELP_MAINTENANCE:_CLEAR_CACHE="Cache: Clear Cache" COM_ADMIN_HELP_MAINTENANCE:_GLOBAL_CHECK-IN="Global Check-in" COM_ADMIN_HELP_MASS_MAIL_USERS="Mass Mail Users" COM_ADMIN_HELP_MEDIA:_OPTIONS="Media: Options" COM_ADMIN_HELP_MEDIA="Media" +COM_ADMIN_HELP_MENU_ITEMS="Menu Items" COM_ADMIN_HELP_MENU_ITEM:_ALIAS="Menu Item: Alias" COM_ADMIN_HELP_MENU_ITEM:_ARTICLE_ARCHIVED="Menu Item: Article Archived" COM_ADMIN_HELP_MENU_ITEM:_COMPACT_LIST_OF_TAGGED_ITEMS="Menu Item: Compact List of Tagged Items" @@ -155,6 +164,7 @@ COM_ADMIN_HELP_PLUGIN:_OPTIONS="Plugin: Options" COM_ADMIN_HELP_PLUGINS="Plugins" COM_ADMIN_HELP_POST-INSTALLATION_MESSAGES:_OPTIONS="Post-installation Messages: Options" COM_ADMIN_HELP_POST-INSTALLATION_MESSAGES_FOR_JOOMLA_CMS="Post-Installation Messages" +COM_ADMIN_HELP_PRIVACY="Privacy" COM_ADMIN_HELP_PRIVACY:_CONSENTS="Privacy: Consents" COM_ADMIN_HELP_PRIVACY:_EXTENSION_CAPABILITIES="Privacy: Extension Capabilities" COM_ADMIN_HELP_PRIVACY:_INFORMATION_REQUESTS="Privacy: Information Requests" @@ -165,6 +175,7 @@ COM_ADMIN_HELP_PRIVACY_DASHBOARD="Privacy: Dashboard" COM_ADMIN_HELP_PRIVATE_MESSAGES:_READ="Private Messages: Read" COM_ADMIN_HELP_PRIVATE_MESSAGES:_WRITE="Private Messages: Write" COM_ADMIN_HELP_PRIVATE_MESSAGES="Private Messages: Inbox" +COM_ADMIN_HELP_REDIRECTS="Redirects" COM_ADMIN_HELP_REDIRECTS:_LINKS="Redirect: Links" COM_ADMIN_HELP_REDIRECTS:_NEW_OR_EDIT="Redirect: Links - New/Edit" COM_ADMIN_HELP_REDIRECT:_OPTIONS="Redirect: Options" @@ -172,6 +183,7 @@ COM_ADMIN_HELP_SCHEDULED_TASKS="Scheduled Tasks" COM_ADMIN_HELP_SCHEDULED_TASKS:_EDIT="Scheduled Tasks: New/Edit" COM_ADMIN_HELP_SCHEDULED_TASKS:_OPTIONS="Scheduled Tasks: Options" COM_ADMIN_HELP_SITE_GLOBAL_CONFIGURATION="Global Configuration" +COM_ADMIN_HELP_SITE_MODULES="Site Modules" COM_ADMIN_HELP_SITE_MODULES:_ARTICLES="Site Modules: Articles" COM_ADMIN_HELP_SITE_MODULES:_ARTICLES_-_ARCHIVED="Site Modules: Articles - Archived" COM_ADMIN_HELP_SITE_MODULES:_ARTICLES_-_LATEST="Site Modules: Articles - Latest" @@ -195,6 +207,7 @@ COM_ADMIN_HELP_SITE_MODULES:_TAGS_-_SIMILAR="Site Modules: Tags - Similar" COM_ADMIN_HELP_SITE_MODULES:_WHO_IS_ONLINE="Site Modules: Who's Online" COM_ADMIN_HELP_SITE_MODULES:_WRAPPER="Site Modules: Wrapper" COM_ADMIN_HELP_SITE_SYSTEM_INFORMATION="System Information" +COM_ADMIN_HELP_SMART_SEARCH="Smart Search" COM_ADMIN_HELP_SMART_SEARCH:_CONTENT_MAPS="Smart Search: Content Maps" COM_ADMIN_HELP_SMART_SEARCH:_INDEXED_CONTENT="Smart Search: Indexed Content" COM_ADMIN_HELP_SMART_SEARCH:_NEW_OR_EDIT_FILTER="Smart Search: Filters - New/Edit" @@ -203,10 +216,12 @@ COM_ADMIN_HELP_SMART_SEARCH:_OPTIONS="Smart Search: Options" COM_ADMIN_HELP_SMART_SEARCH:_SEARCH_TERM_ANALYSIS="Smart Search: Search Term Analysis" COM_ADMIN_HELP_STAGES_LIST:_BASIC_WORKFLOW="Stages List: Basic Workflow" COM_ADMIN_HELP_START_HERE="Start Here" +COM_ADMIN_HELP_SYSTEM="System" COM_ADMIN_HELP_TAGS:_NEW_OR_EDIT="Tags: New/Edit" COM_ADMIN_HELP_TAGS:_OPTIONS="Tags: Options" COM_ADMIN_HELP_TAGS="Tags" COM_ADMIN_HELP_TEMPLATE:_OPTIONS="Template: Options" +COM_ADMIN_HELP_TEMPLATE="Templates" COM_ADMIN_HELP_TEMPLATES:_CUSTOMISE_SOURCE="Templates: Source - Edit" COM_ADMIN_HELP_TEMPLATES:_CUSTOMISE="Templates: Edit" COM_ADMIN_HELP_TEMPLATES:_EDIT_STYLE="Templates: Styles - Edit" @@ -224,6 +239,7 @@ COM_ADMIN_HELP_USERS:_NEW_OR_EDIT_GROUP="Users: Groups - New/Edit" COM_ADMIN_HELP_USERS:_OPTIONS="Users: Options" COM_ADMIN_HELP_USERS:_VIEWING_ACCESS_LEVELS="Users: Access Levels" COM_ADMIN_HELP_USERS="Users" +COM_ADMIN_HELP_WORKFLOWS="Workflows" COM_ADMIN_HELP_WORKFLOWS_LIST="Workflows List" COM_ADMIN_JOOMLA_COMPAT_PLUGIN="Joomla Backward Compatibility Plugin" COM_ADMIN_JOOMLA_VERSION="Joomla! Version" diff --git a/build/helpTOC.php b/build/helpTOC.php deleted file mode 100644 index 8d37b4006a222..0000000000000 --- a/build/helpTOC.php +++ /dev/null @@ -1,236 +0,0 @@ - - * @license GNU General Public License version 2 or later; see LICENSE.txt - */ - -// We are a valid entry point. -const _JEXEC = 1; - -// Import namespaced classes -use Joomla\CMS\Factory; -use Joomla\CMS\Http\HttpFactory; -use Joomla\CMS\Version; -use Joomla\Console\Application; -use Joomla\Console\Command\AbstractCommand; -use Joomla\Mediawiki\Http; -use Joomla\Mediawiki\Mediawiki; -use Joomla\Registry\Registry; -use Symfony\Component\Console\Input\ArrayInput; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Component\Console\Style\SymfonyStyle; - -/** - * Define the application's minimum supported PHP version as a constant so it can be referenced within the application. - */ -const JOOMLA_MINIMUM_PHP = '8.3.0'; - -if (!\defined('_JDEFINES')) { - \define('JPATH_BASE', \dirname(__DIR__)); - require_once JPATH_BASE . '/includes/defines.php'; -} - -// Get the framework. -require_once JPATH_BASE . '/includes/framework.php'; - -$command = new class () extends AbstractCommand { - /** - * The default command name - * - * @var string - */ - protected static $defaultName = 'build-help-toc'; - - /** - * Initialise the command. - * - * @return void - */ - protected function configure(): void - { - $this->setDescription('Generates the help system table of contents file'); - } - - /** - * Internal function to execute the command. - * - * @param InputInterface $input The input to inject into the command. - * @param OutputInterface $output The output to inject into the command. - * - * @return integer The command exit code - */ - protected function doExecute(InputInterface $input, OutputInterface $output): int - { - $io = new SymfonyStyle($input, $output); - - if (!class_exists(Http::class)) { - $io->error( - 'The `joomla/mediawiki` package is not installed. To use this script, you must run `composer install` to install development' - . ' dependencies not tracked in this repo.' - ); - - return 1; - } - - // Set up HTTP driver for MediaWiki - $http = new Http([], HttpFactory::getAvailableDriver()); - - // Set up options for the Mediawiki class - $options = new Registry(); - $options->set('api.url', 'https://docs.joomla.org'); - - $mediawiki = new Mediawiki($options, $http); - - $io->comment('Fetching data from docs wiki'); - - $cleanMembers = []; - - $io->comment(\sprintf('Loop through docs wiki categories since Joomla Version %d.0 - Takes a while ...', Version::MAJOR_VERSION)); - - // Loop through the Versions since 5.0 to get all HelpTocs - Temporary fix - for ($helpScreenMinor=Version::MINOR_VERSION; $helpScreenMinor >= 0; $helpScreenMinor--) { - - // Get the category members (local hack) - $categoryMembers = $mediawiki->categories->getCategoryMembers( - \sprintf('Category:Help_screen_%s.%s', Version::MAJOR_VERSION, $helpScreenMinor), - null, - 'max' - ); - - $members = []; - - // Loop through the result objects to get every document - foreach ($categoryMembers->query->categorymembers as $catmembers) { - foreach ($catmembers as $member) { - $members[] = (string) $member['title']; - } - } - - /* - * Now we start fancy processing so we can get the language key for the titles - */ - - // Strip the namespace prefix off the titles and replace spaces with underscores - $namespace = \sprintf('Help%d.x:', Version::MAJOR_VERSION); - - foreach ($members as $member) { - $cleanMembers[str_replace([$namespace, ' '], ['', '_'], $member)] = trim(str_replace($namespace, ' ', $member)); - } - } - - // Make sure we only have an array of unique values before continuing - - $cleanMembers = array_unique($cleanMembers); - - // Get the language object - $language = Factory::getLanguage(); - - // Load the admin com_admin language file - $language->load('com_admin', JPATH_ADMINISTRATOR); - - $toc = []; - $missing = []; - - // filter for translated Media-Wiki articles - $translationLanguages = ['/de', '/en', '/fr', '/nl', '/pt-br', '/es', '/pt', '/it']; - - foreach ($cleanMembers as $key => $value) { - $string = strtoupper($key); - - // Validate the key exists - $io->comment(\sprintf('Validating key COM_ADMIN_HELP_%s', $string)); - - if ($language->hasKey('COM_ADMIN_HELP_' . $string)) { - $io->comment(\sprintf('Adding %s', $string)); - - $toc[$key] = $string; - } else { - // We check the string for words in singular/plural form and check again - $io->comment(\sprintf('Inflecting %s', $string)); - - $inflected = ''; - - if (strpos($string, '_CATEGORIES') !== false) { - $inflected = str_replace('_CATEGORIES', '_CATEGORY', $string); - } elseif (strpos($string, '_USERS') !== false) { - $inflected = str_replace('_USERS', '_USER', $string); - } elseif (strpos($string, '_CATEGORY') !== false) { - $inflected = str_replace('_CATEGORY', '_CATEGORIES', $string); - } elseif (strpos($string, '_USER') !== false) { - $inflected = str_replace('_USER', '_USERS', $string); - } - - if ($inflected === '' && !\in_array(substr($value, strrpos($value, '/')), $translationLanguages)) { - $missing[$string] = $value; - } - - // Now try to validate the key - if ($inflected !== '') { - $io->comment(\sprintf('Validating key COM_ADMIN_HELP_%s', $inflected)); - - if ($language->hasKey('COM_ADMIN_HELP_' . $inflected)) { - $io->comment(\sprintf('Adding %s', $inflected)); - - $toc[$key] = $inflected; - } - } - } - } - - $io->comment(\sprintf('Number of strings: %d', \count($toc))); - - // JSON encode the file and write it to JPATH_ADMINISTRATOR/help/en-GB/toc.json - file_put_contents(JPATH_ADMINISTRATOR . '/help/en-GB/toc.json', json_encode($toc)); - - if (\count($missing)) { - - $str_missing = ''; - - foreach ($missing as $string => $value) { - $str_missing .= 'COM_ADMIN_HELP_' . $string . '="' . $value . '"'. PHP_EOL; - } - - // write missing strings to JPATH_BASE/tmp/missing-helptoc.txt - file_put_contents(JPATH_BASE . '/tmp/missing-helptoc.txt', $str_missing); - - $io->caution(\sprintf('Number of media-wiki articles without string: %d', \count($missing))); - - $io->note(\sprintf('Missing strings are saved in: %s and should be revised and added to %s', 'tmp/missing-helptoc.txt', 'administrator/language/en-GB/com_admin.ini')); - - $io->caution('TODO: For a complete TOC, please run this script again after adding the missing language strings!'); - - } - - $io->success('Help Screen TOC written'); - - return 0; - } -}; - -$input = new ArrayInput( - [ - 'command' => $command::getDefaultName(), - ] -); - -$app = new class ($input) extends Application { - /** - * Retrieve the application configuration object. - * - * @return Registry - */ - public function getConfig() - { - return $this->config; - } -}; -$app->addCommand($command); - -// Register the application to the factory -Factory::$application = $app; - -$app->execute(); diff --git a/build/media_source/com_admin/js/admin-help.es6.js b/build/media_source/com_admin/js/admin-help.es6.js index dd12ef11a920b..eac2be67a0c6f 100644 --- a/build/media_source/com_admin/js/admin-help.es6.js +++ b/build/media_source/com_admin/js/admin-help.es6.js @@ -3,7 +3,68 @@ * @license GNU General Public License version 2 or later; see LICENSE.txt */ -const helpIndex = document.getElementById('help-index'); -if (helpIndex) { - helpIndex.querySelectorAll('a').forEach((element) => element.addEventListener('click', () => window.scroll(0, 0))); -} +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); + } + })); + } + + // Helper function: wait for given milliseconds + const wait = ms => new Promise(resolve => setTimeout(resolve, ms)); + + // Async restore function + async 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 anchors top-down + const parentAnchors = []; + let parentLi = selectedLink.closest('li'); + while (parentLi && parentLi !== helpIndex) { + const parentUl = parentLi.parentElement; + const parentLiOfUl = parentUl.closest('li'); + if (parentLiOfUl) { + const anchor = parentLiOfUl.querySelector('a.has-arrow'); + if (anchor) parentAnchors.unshift(anchor); + } + parentLi = parentLiOfUl; + } + + // Trigger clicks in sequence with a delay + for (const anchor of parentAnchors) { + anchor.click(); + await wait(400); // adjust delay as needed (150–300ms) + } + + // 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 + await wait(100); + selectedLink.click(); + } + + // Run restore after MetisMenu setup delay + setTimeout(() => { + restoreMenu(); + }, 100); +}); From e900ced3d5e1685c4a205c6b154d694d25e3ca8e Mon Sep 17 00:00:00 2001 From: Cliff Ford Date: Thu, 23 Oct 2025 08:20:52 +0100 Subject: [PATCH 02/27] Fixed code style issues --- .../com_admin/tmpl/help/default.php | 6 +- .../com_admin/tmpl/help/toc-build.php | 8 +- .../com_admin/tmpl/help/toc-src.php | 436 +++++++++--------- 3 files changed, 226 insertions(+), 224 deletions(-) diff --git a/administrator/components/com_admin/tmpl/help/default.php b/administrator/components/com_admin/tmpl/help/default.php index 0eb48758c6e36..96ff7bb82ab6c 100644 --- a/administrator/components/com_admin/tmpl/help/default.php +++ b/administrator/components/com_admin/tmpl/help/default.php @@ -10,10 +10,8 @@ defined('_JEXEC') or die; -use Joomla\CMS\Help\Help; -use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; -use Joomla\CMS\Router\Route; +use Joomla\Component\Admin\Administrator\View\Help\ToC; /** @var \Joomla\Component\Admin\Administrator\View\Help\HtmlView $this */ @@ -57,7 +55,7 @@ // Get the HTML for the Table of Contents from a separate file. require_once 'toc-build.php'; -$tocBuilder = new Toc; +$tocBuilder = new Toc(); $toc = $tocBuilder->getToc(); ?> diff --git a/administrator/components/com_admin/tmpl/help/toc-build.php b/administrator/components/com_admin/tmpl/help/toc-build.php index 88ca0c70afb34..cf747b4b34e93 100644 --- a/administrator/components/com_admin/tmpl/help/toc-build.php +++ b/administrator/components/com_admin/tmpl/help/toc-build.php @@ -8,6 +8,8 @@ * @license GNU General Public License version 2 or later; see LICENSE.txt */ +namespace Joomla\Component\Admin\Administrator\View\Help; + use Joomla\CMS\Help\Help; use Joomla\CMS\Language\Text; @@ -15,7 +17,8 @@ \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects -class Toc { +class Toc +{ /** * The id of each ul submenu - incremented for each. * @@ -49,7 +52,8 @@ public function &getToc() return $html; } - protected function buildMenu(array $items, $pass = false): string { + protected function buildMenu(array $items, $pass = false): string + { // don't set a ul on the first pass if ($pass) { $html = ""; diff --git a/administrator/components/com_admin/tmpl/help/toc-src.php b/administrator/components/com_admin/tmpl/help/toc-src.php index 12c42f0eccb45..8f19559f05a91 100644 --- a/administrator/components/com_admin/tmpl/help/toc-src.php +++ b/administrator/components/com_admin/tmpl/help/toc-src.php @@ -20,152 +20,152 @@ "Site_Global_Configuration" => "SITE_GLOBAL_CONFIGURATION", ], "CONTENT" => [ - "ARTICLES" => [ - "Articles" => "ARTICLES", - "Articles:_Edit" => "ARTICLES:_EDIT", - "Articles:_Categories" => "ARTICLES:_CATEGORIES", - "Articles:_Edit_Category" => "ARTICLES:_EDIT_CATEGORY", - "Articles:_Featured" => "ARTICLES:_FEATURED", - "Articles:_Options" => "ARTICLES:_OPTIONS", - ], - "FIELDS" => [ - "Field_Groups" => "FIELD_GROUPS", - "Field_Groups:_Edit" => "FIELD_GROUPS:_EDIT", - "Fields" => "FIELDS", - "Fields:_Edit" => "FIELDS:_EDIT", - ], - "MEDIA" => [ - "Media" => "MEDIA", - "Media:_Options" => "MEDIA:_OPTIONS", - ], - "MODULES" => [ - "Modules" => "MODULES", - "Modules:_Options" => "MODULES:_OPTIONS", - ], - "SITE_MODULES" => [ - "Site_Modules:_Articles" => "SITE_MODULES:_ARTICLES", - "Site_Modules:_Articles_-_Archived" => "SITE_MODULES:_ARTICLES_-_ARCHIVED", - "Site_Modules:_Articles_-_Latest" => "SITE_MODULES:_ARTICLES_-_LATEST", - "Site_Modules:_Articles_-_Most_Read" => "SITE_MODULES:_ARTICLES_-_MOST_READ", - "Site_Modules:_Articles_-_Newsflash" => "SITE_MODULES:_ARTICLES_-_NEWSFLASH", - "Site_Modules:_Articles_-_Related" => "SITE_MODULES:_ARTICLES_-_RELATED", - "Site_Modules:_Banners" => "SITE_MODULES:_BANNERS", - "Site_Modules:_Breadcrumbs" => "SITE_MODULES:_BREADCRUMBS", - "Site_Modules:_Custom" => "SITE_MODULES:_CUSTOM", - "Site_Modules:_Feed_Display" => "SITE_MODULES:_FEED_DISPLAY", - "Site_Modules:_Footer" => "SITE_MODULES:_FOOTER", - "Site_Modules:_Language_Switcher" => "SITE_MODULES:_LANGUAGE_SWITCHER", - "Site_Modules:_Login" => "SITE_MODULES:_LOGIN", - "Site_Modules:_Menu" => "SITE_MODULES:_MENU", - "Site_Modules:_Random_Image" => "SITE_MODULES:_RANDOM_IMAGE", - "Site_Modules:_Smart_Search" => "SITE_MODULES:_SMART_SEARCH", - "Site_Modules:_Statistics" => "SITE_MODULES:_STATISTICS", - "Site_Modules:_Syndication_Feeds" => "SITE_MODULES:_SYNDICATION_FEEDS", - "Site_Modules:_Tags_-_Popular" => "SITE_MODULES:_TAGS_-_POPULAR", - "Site_Modules:_Tags_-_Similar" => "SITE_MODULES:_TAGS_-_SIMILAR", - "Site_Modules:_Wrapper" => "SITE_MODULES:_WRAPPER", - ], - "ADMIN_MODULES" => [ - "Admin_Modules:_Action_Logs_-_Latest" => "ADMIN_MODULES:_ACTION_LOGS_-_LATEST", - "Admin_Modules:_Administrator_Dashboard_Menu" => "ADMIN_MODULES:_ADMINISTRATOR_DASHBOARD_MENU", - "Admin_Modules:_Administrator_Menu" => "ADMIN_MODULES:_ADMINISTRATOR_MENU", - "Admin_Modules:_Articles_-_Latest" => "ADMIN_MODULES:_ARTICLES_-_LATEST", - "Admin_Modules:_Custom" => "ADMIN_MODULES:_CUSTOM", - "Admin_Modules:_Feed_Display" => "ADMIN_MODULES:_FEED_DISPLAY", - "Admin_Modules:_Frontend_Link" => "ADMIN_MODULES:_FRONTEND_LINK", - "Admin_Modules:_Guided_Tours" => "ADMIN_MODULES:_GUIDED_TOURS", - "Admin_Modules:_Joomla_Version_Information" => "ADMIN_MODULES:_JOOMLA_VERSION_INFORMATION", - "Admin_Modules:_Login_Form" => "ADMIN_MODULES:_LOGIN_FORM", - "Admin_Modules:_Login_Support_Information" => "ADMIN_MODULES:_LOGIN_SUPPORT_INFORMATION", - "Admin_Modules:_Messages" => "ADMIN_MODULES:_MESSAGES", - "Admin_Modules:_Multilingual_Status" => "ADMIN_MODULES:_MULTILINGUAL_STATUS", - "Admin_Modules:_Popular_Articles" => "ADMIN_MODULES:_POPULAR_ARTICLES", - "Admin_Modules:_Post_Installation_Messages" => "ADMIN_MODULES:_POST_INSTALLATION_MESSAGES", - "Admin_Modules:_Privacy_Dashboard" => "ADMIN_MODULES:_PRIVACY_DASHBOARD", - "Admin_Modules:_Privacy_Status_Check" => "ADMIN_MODULES:_PRIVACY_STATUS_CHECK", - "Admin_Modules:_Quick_Icons" => "ADMIN_MODULES:_QUICK_ICONS", - "Admin_Modules:_Sample_Data" => "ADMIN_MODULES:_SAMPLE_DATA", - "Admin_Modules:_Title" => "ADMIN_MODULES:_TITLE", - "Admin_Modules:_Toolbar" => "ADMIN_MODULES:_TOOLBAR", - ], + "ARTICLES" => [ + "Articles" => "ARTICLES", + "Articles:_Edit" => "ARTICLES:_EDIT", + "Articles:_Categories" => "ARTICLES:_CATEGORIES", + "Articles:_Edit_Category" => "ARTICLES:_EDIT_CATEGORY", + "Articles:_Featured" => "ARTICLES:_FEATURED", + "Articles:_Options" => "ARTICLES:_OPTIONS", + ], + "FIELDS" => [ + "Field_Groups" => "FIELD_GROUPS", + "Field_Groups:_Edit" => "FIELD_GROUPS:_EDIT", + "Fields" => "FIELDS", + "Fields:_Edit" => "FIELDS:_EDIT", + ], + "MEDIA" => [ + "Media" => "MEDIA", + "Media:_Options" => "MEDIA:_OPTIONS", + ], + "MODULES" => [ + "Modules" => "MODULES", + "Modules:_Options" => "MODULES:_OPTIONS", + ], + "SITE_MODULES" => [ + "Site_Modules:_Articles" => "SITE_MODULES:_ARTICLES", + "Site_Modules:_Articles_-_Archived" => "SITE_MODULES:_ARTICLES_-_ARCHIVED", + "Site_Modules:_Articles_-_Latest" => "SITE_MODULES:_ARTICLES_-_LATEST", + "Site_Modules:_Articles_-_Most_Read" => "SITE_MODULES:_ARTICLES_-_MOST_READ", + "Site_Modules:_Articles_-_Newsflash" => "SITE_MODULES:_ARTICLES_-_NEWSFLASH", + "Site_Modules:_Articles_-_Related" => "SITE_MODULES:_ARTICLES_-_RELATED", + "Site_Modules:_Banners" => "SITE_MODULES:_BANNERS", + "Site_Modules:_Breadcrumbs" => "SITE_MODULES:_BREADCRUMBS", + "Site_Modules:_Custom" => "SITE_MODULES:_CUSTOM", + "Site_Modules:_Feed_Display" => "SITE_MODULES:_FEED_DISPLAY", + "Site_Modules:_Footer" => "SITE_MODULES:_FOOTER", + "Site_Modules:_Language_Switcher" => "SITE_MODULES:_LANGUAGE_SWITCHER", + "Site_Modules:_Login" => "SITE_MODULES:_LOGIN", + "Site_Modules:_Menu" => "SITE_MODULES:_MENU", + "Site_Modules:_Random_Image" => "SITE_MODULES:_RANDOM_IMAGE", + "Site_Modules:_Smart_Search" => "SITE_MODULES:_SMART_SEARCH", + "Site_Modules:_Statistics" => "SITE_MODULES:_STATISTICS", + "Site_Modules:_Syndication_Feeds" => "SITE_MODULES:_SYNDICATION_FEEDS", + "Site_Modules:_Tags_-_Popular" => "SITE_MODULES:_TAGS_-_POPULAR", + "Site_Modules:_Tags_-_Similar" => "SITE_MODULES:_TAGS_-_SIMILAR", + "Site_Modules:_Wrapper" => "SITE_MODULES:_WRAPPER", + ], + "ADMIN_MODULES" => [ + "Admin_Modules:_Action_Logs_-_Latest" => "ADMIN_MODULES:_ACTION_LOGS_-_LATEST", + "Admin_Modules:_Administrator_Dashboard_Menu" => "ADMIN_MODULES:_ADMINISTRATOR_DASHBOARD_MENU", + "Admin_Modules:_Administrator_Menu" => "ADMIN_MODULES:_ADMINISTRATOR_MENU", + "Admin_Modules:_Articles_-_Latest" => "ADMIN_MODULES:_ARTICLES_-_LATEST", + "Admin_Modules:_Custom" => "ADMIN_MODULES:_CUSTOM", + "Admin_Modules:_Feed_Display" => "ADMIN_MODULES:_FEED_DISPLAY", + "Admin_Modules:_Frontend_Link" => "ADMIN_MODULES:_FRONTEND_LINK", + "Admin_Modules:_Guided_Tours" => "ADMIN_MODULES:_GUIDED_TOURS", + "Admin_Modules:_Joomla_Version_Information" => "ADMIN_MODULES:_JOOMLA_VERSION_INFORMATION", + "Admin_Modules:_Login_Form" => "ADMIN_MODULES:_LOGIN_FORM", + "Admin_Modules:_Login_Support_Information" => "ADMIN_MODULES:_LOGIN_SUPPORT_INFORMATION", + "Admin_Modules:_Messages" => "ADMIN_MODULES:_MESSAGES", + "Admin_Modules:_Multilingual_Status" => "ADMIN_MODULES:_MULTILINGUAL_STATUS", + "Admin_Modules:_Popular_Articles" => "ADMIN_MODULES:_POPULAR_ARTICLES", + "Admin_Modules:_Post_Installation_Messages" => "ADMIN_MODULES:_POST_INSTALLATION_MESSAGES", + "Admin_Modules:_Privacy_Dashboard" => "ADMIN_MODULES:_PRIVACY_DASHBOARD", + "Admin_Modules:_Privacy_Status_Check" => "ADMIN_MODULES:_PRIVACY_STATUS_CHECK", + "Admin_Modules:_Quick_Icons" => "ADMIN_MODULES:_QUICK_ICONS", + "Admin_Modules:_Sample_Data" => "ADMIN_MODULES:_SAMPLE_DATA", + "Admin_Modules:_Title" => "ADMIN_MODULES:_TITLE", + "Admin_Modules:_Toolbar" => "ADMIN_MODULES:_TOOLBAR", + ], ], "MENUS" => [ - "MENUS" => [ - "Menus" => "MENUS", - "Menus:_Edit" => "MENUS:_EDIT", - "Menus:_Items" => "MENUS:_ITEMS", - "Menus:_Options" => "MENUS:_OPTIONS", - ], - "MENU_ITEMS" => [ - "Menu_Item:_Alias" => "MENU_ITEM:_ALIAS", - "Menu_Item:_Article_Archived" => "MENU_ITEM:_ARTICLE_ARCHIVED", - "Menu_Item:_Compact_List_of_Tagged_Items" => "MENU_ITEM:_COMPACT_LIST_OF_TAGGED_ITEMS", - "Menu_Item:_Components_Menu_Container" => "MENU_ITEM:_COMPONENTS_MENU_CONTAINER", - "Menu_Item:_Confirm_Request" => "MENU_ITEM:_CONFIRM_REQUEST", - "Menu_Item:_Create_Article" => "MENU_ITEM:_CREATE_ARTICLE", - "Menu_Item:_Create_Contact" => "MENU_ITEM:_CREATE_CONTACT", - "Menu_Item:_Create_Request" => "MENU_ITEM:_CREATE_REQUEST", - "Menu_Item:_Display_Template_Options" => "MENU_ITEM:_DISPLAY_TEMPLATE_OPTIONS", - "Menu_Item:_Extend_Consent" => "MENU_ITEM:_EXTEND_CONSENT", - "Menu_Item:_Featured_Articles" => "MENU_ITEM:_FEATURED_ARTICLES", - "Menu_Item:_Featured_Contacts" => "MENU_ITEM:_FEATURED_CONTACTS", - "Menu_Item:_Heading" => "MENU_ITEM:_HEADING", - "Menu_Item:_Iframe_Wrapper" => "MENU_ITEM:_IFRAME_WRAPPER", - "Menu_Item:_List_All_Tags" => "MENU_ITEM:_LIST_ALL_TAGS", - "Menu_Item:_Login_Form" => "MENU_ITEM:_LOGIN_FORM", - "Menu_Item:_Logout" => "MENU_ITEM:_LOGOUT", - "Menu_Item:_New_Item" => "MENU_ITEM:_NEW_ITEM", - "Menu_Item:_Password_Reset" => "MENU_ITEM:_PASSWORD_RESET", - "Menu_Item:_Registration_Form" => "MENU_ITEM:_REGISTRATION_FORM", - "Menu_Item:_Search" => "MENU_ITEM:_SEARCH", - "Menu_Item:_Separator" => "MENU_ITEM:_SEPARATOR", - "Menu_Item:_Single_Article" => "MENU_ITEM:_SINGLE_ARTICLE", - "Menu_Item:_Single_Contact" => "MENU_ITEM:_SINGLE_CONTACT", - "Menu_Item:_Single_News_Feed" => "MENU_ITEM:_SINGLE_NEWS_FEED", - "Menu_Item:_Site_Configuration_Options" => "MENU_ITEM:_SITE_CONFIGURATION_OPTIONS", - "Menu_Item:_Tagged_Items" => "MENU_ITEM:_TAGGED_ITEMS", - "Menu_Item:_URL" => "MENU_ITEM:_URL", - ], + "MENUS" => [ + "Menus" => "MENUS", + "Menus:_Edit" => "MENUS:_EDIT", + "Menus:_Items" => "MENUS:_ITEMS", + "Menus:_Options" => "MENUS:_OPTIONS", + ], + "MENU_ITEMS" => [ + "Menu_Item:_Alias" => "MENU_ITEM:_ALIAS", + "Menu_Item:_Article_Archived" => "MENU_ITEM:_ARTICLE_ARCHIVED", + "Menu_Item:_Compact_List_of_Tagged_Items" => "MENU_ITEM:_COMPACT_LIST_OF_TAGGED_ITEMS", + "Menu_Item:_Components_Menu_Container" => "MENU_ITEM:_COMPONENTS_MENU_CONTAINER", + "Menu_Item:_Confirm_Request" => "MENU_ITEM:_CONFIRM_REQUEST", + "Menu_Item:_Create_Article" => "MENU_ITEM:_CREATE_ARTICLE", + "Menu_Item:_Create_Contact" => "MENU_ITEM:_CREATE_CONTACT", + "Menu_Item:_Create_Request" => "MENU_ITEM:_CREATE_REQUEST", + "Menu_Item:_Display_Template_Options" => "MENU_ITEM:_DISPLAY_TEMPLATE_OPTIONS", + "Menu_Item:_Extend_Consent" => "MENU_ITEM:_EXTEND_CONSENT", + "Menu_Item:_Featured_Articles" => "MENU_ITEM:_FEATURED_ARTICLES", + "Menu_Item:_Featured_Contacts" => "MENU_ITEM:_FEATURED_CONTACTS", + "Menu_Item:_Heading" => "MENU_ITEM:_HEADING", + "Menu_Item:_Iframe_Wrapper" => "MENU_ITEM:_IFRAME_WRAPPER", + "Menu_Item:_List_All_Tags" => "MENU_ITEM:_LIST_ALL_TAGS", + "Menu_Item:_Login_Form" => "MENU_ITEM:_LOGIN_FORM", + "Menu_Item:_Logout" => "MENU_ITEM:_LOGOUT", + "Menu_Item:_New_Item" => "MENU_ITEM:_NEW_ITEM", + "Menu_Item:_Password_Reset" => "MENU_ITEM:_PASSWORD_RESET", + "Menu_Item:_Registration_Form" => "MENU_ITEM:_REGISTRATION_FORM", + "Menu_Item:_Search" => "MENU_ITEM:_SEARCH", + "Menu_Item:_Separator" => "MENU_ITEM:_SEPARATOR", + "Menu_Item:_Single_Article" => "MENU_ITEM:_SINGLE_ARTICLE", + "Menu_Item:_Single_Contact" => "MENU_ITEM:_SINGLE_CONTACT", + "Menu_Item:_Single_News_Feed" => "MENU_ITEM:_SINGLE_NEWS_FEED", + "Menu_Item:_Site_Configuration_Options" => "MENU_ITEM:_SITE_CONFIGURATION_OPTIONS", + "Menu_Item:_Tagged_Items" => "MENU_ITEM:_TAGGED_ITEMS", + "Menu_Item:_URL" => "MENU_ITEM:_URL", + ], ], "COMPONENTS" => [ - "BANNERS" => [ - "Banners" => "BANNERS", - "Banners:_Categories" => "BANNERS:_CATEGORIES", - "Banners:_Clients" => "BANNERS:_CLIENTS", - "Banners:_Edit" => "BANNERS:_EDIT", - "Banners:_New_or_Edit_Category" => "BANNERS:_NEW_OR_EDIT_CATEGORY", - "Banners:_New_or_Edit_Client" => "BANNERS:_NEW_OR_EDIT_CLIENT", - "Banners:_Tracks" => "BANNERS:_TRACKS", - "Banners:_Options" => "BANNERS:_OPTIONS", - ], - "CONTACTS" => [ - "Contacts" => "CONTACTS", - "Contacts:_Categories" => "CONTACTS:_CATEGORIES", - "Contacts:_Edit" => "CONTACTS:_EDIT", - "Contacts:_Edit_Category" => "CONTACTS:_EDIT_CATEGORY", - "Contacts:_Options" => "CONTACTS:_OPTIONS", - ], - "NEWS_FEEDS" => [ - "News_Feeds" => "NEWS_FEEDS", - "News_Feeds:_Categories" => "NEWS_FEEDS:_CATEGORIES", - "News_Feeds:_Edit" => "NEWS_FEEDS:_EDIT", - "News_Feeds:_Edit_Category" => "NEWS_FEEDS:_EDIT_CATEGORY", - "News_Feed:_Options" => "NEWS_FEED:_OPTIONS", - ], - "SMART_SEARCH" => [ - "Smart_Search:_Indexed_Content" => "SMART_SEARCH:_INDEXED_CONTENT", - "Smart_Search:_Content_Maps" => "SMART_SEARCH:_CONTENT_MAPS", - "Smart_Search:_Search_Filters" => "SMART_SEARCH:_SEARCH_FILTERS", - "Smart_Search:_New_or_Edit_Filter" => "SMART_SEARCH:_NEW_OR_EDIT_FILTER", - "Smart_Search:_Search_Term_Analysis" => "SMART_SEARCH:_SEARCH_TERM_ANALYSIS", - "Smart_Search:_Options" => "SMART_SEARCH:_OPTIONS", + "BANNERS" => [ + "Banners" => "BANNERS", + "Banners:_Categories" => "BANNERS:_CATEGORIES", + "Banners:_Clients" => "BANNERS:_CLIENTS", + "Banners:_Edit" => "BANNERS:_EDIT", + "Banners:_New_or_Edit_Category" => "BANNERS:_NEW_OR_EDIT_CATEGORY", + "Banners:_New_or_Edit_Client" => "BANNERS:_NEW_OR_EDIT_CLIENT", + "Banners:_Tracks" => "BANNERS:_TRACKS", + "Banners:_Options" => "BANNERS:_OPTIONS", + ], + "CONTACTS" => [ + "Contacts" => "CONTACTS", + "Contacts:_Categories" => "CONTACTS:_CATEGORIES", + "Contacts:_Edit" => "CONTACTS:_EDIT", + "Contacts:_Edit_Category" => "CONTACTS:_EDIT_CATEGORY", + "Contacts:_Options" => "CONTACTS:_OPTIONS", + ], + "NEWS_FEEDS" => [ + "News_Feeds" => "NEWS_FEEDS", + "News_Feeds:_Categories" => "NEWS_FEEDS:_CATEGORIES", + "News_Feeds:_Edit" => "NEWS_FEEDS:_EDIT", + "News_Feeds:_Edit_Category" => "NEWS_FEEDS:_EDIT_CATEGORY", + "News_Feed:_Options" => "NEWS_FEED:_OPTIONS", + ], + "SMART_SEARCH" => [ + "Smart_Search:_Indexed_Content" => "SMART_SEARCH:_INDEXED_CONTENT", + "Smart_Search:_Content_Maps" => "SMART_SEARCH:_CONTENT_MAPS", + "Smart_Search:_Search_Filters" => "SMART_SEARCH:_SEARCH_FILTERS", + "Smart_Search:_New_or_Edit_Filter" => "SMART_SEARCH:_NEW_OR_EDIT_FILTER", + "Smart_Search:_Search_Term_Analysis" => "SMART_SEARCH:_SEARCH_TERM_ANALYSIS", + "Smart_Search:_Options" => "SMART_SEARCH:_OPTIONS", + ], + "TAGS" => [ + "Tags" => "TAGS", + "Tags:_New_or_Edit" => "TAGS:_NEW_OR_EDIT", + "Tags:_Options" => "TAGS:_OPTIONS", + ], ], - "TAGS" => [ - "Tags" => "TAGS", - "Tags:_New_or_Edit" => "TAGS:_NEW_OR_EDIT", - "Tags:_Options" => "TAGS:_OPTIONS", - ], -], "USERS" => [ "Users" => "USERS", "Users:_Edit_Profile" => "USERS:_EDIT_PROFILE", @@ -196,82 +196,82 @@ "Privacy:_Review_Information_Request" => "PRIVACY:_REVIEW_INFORMATION_REQUEST", ], "SYSTEM" => [ - "EXTENSIONS" => [ - "Extensions:_Discover" => "EXTENSIONS:_DISCOVER", - "Extensions:_Install" => "EXTENSIONS:_INSTALL", - "Extensions:_Languages" => "EXTENSIONS:_LANGUAGES", - "Extensions:_Manage" => "EXTENSIONS:_MANAGE", - "Extensions:_Update" => "EXTENSIONS:_UPDATE", - "Extensions:_Update_Sites" => "EXTENSIONS:_UPDATE_SITES", - ], - "TEMPLATES:_TEMPLATES" => [ - "Templates:_Templates" => "TEMPLATES:_TEMPLATES", - "Templates:_Customise" => "TEMPLATES:_CUSTOMISE", - "Templates:_Customise_Source" => "TEMPLATES:_CUSTOMISE_SOURCE", - "Templates:_Styles" => "TEMPLATES:_STYLES", - "Templates:_Edit_Style" => "TEMPLATES:_EDIT_STYLE", - "Template:_Options" => "TEMPLATE:_OPTIONS", - "Mail_Templates" => "MAIL_TEMPLATES", - "Mail_Template:_Edit" => "MAIL_TEMPLATE:_EDIT", - "Mail_Templates:_Options" => "MAIL_TEMPLATES:_OPTIONS", - ], - "MAINTENANCE" => [ - "Information:_Database" => "INFORMATION:_DATABASE", - "Maintenance:_Clear_Cache" => "MAINTENANCE:_CLEAR_CACHE", - "Maintenance:_Global_Check-in" => "MAINTENANCE:_GLOBAL_CHECK-IN", - "Cache:_Options" => "CACHE:_OPTIONS", - "Check-in:_Options" => "CHECK-IN:_OPTIONS", - ], - "LANGUAGES" => [ - "Languages:_Content" => "LANGUAGES:_CONTENT", - "Languages:_Edit_Content_Language" => "LANGUAGES:_EDIT_CONTENT_LANGUAGE", - "Languages:_Edit_Override" => "LANGUAGES:_EDIT_OVERRIDE", - "Languages:_Installed" => "LANGUAGES:_INSTALLED", - "Languages:_Options" => "LANGUAGES:_OPTIONS", - "Languages:_Overrides" => "LANGUAGES:_OVERRIDES", - "Multilingual_Associations" => "MULTILINGUAL_ASSOCIATIONS", - "Multilingual_Associations:_Edit" => "MULTILINGUAL_ASSOCIATIONS:_EDIT", - "Multilingual_Associations:_Options" => "MULTILINGUAL_ASSOCIATIONS:_OPTIONS", - ], - "PLUGINS" => [ - "Plugins" => "PLUGINS", - "Plugins:_Name_of_Plugin" => "PLUGINS:_NAME_OF_PLUGIN", - "Editors" => "EDITORS", - "Plugin:_Options" => "PLUGIN:_OPTIONS", - ], - "REDIRECTS" => [ - "Redirect:_Options" => "REDIRECT:_OPTIONS", - "Redirects:_Links" => "REDIRECTS:_LINKS", - "Redirects:_New_or_Edit" => "REDIRECTS:_NEW_OR_EDIT", - ], - "GUIDED_TOURS" => [ - "Guided_Tours" => "GUIDED_TOURS", - "Guided_Tours:_New_or_Edit_Step" => "GUIDED_TOURS:_NEW_OR_EDIT_STEP", - "Guided_Tours:_New_or_Edit_Tour" => "GUIDED_TOURS:_NEW_OR_EDIT_TOUR", - "Guided_Tours:_Options" => "GUIDED_TOURS:_OPTIONS", - "Guided_Tours:_Steps" => "GUIDED_TOURS:_STEPS", - ], - "SCHEDULED_TASKS" => [ - "Scheduled_Tasks" => "SCHEDULED_TASKS", - "Scheduled_Tasks:_Edit" => "SCHEDULED_TASKS:_EDIT", - "Scheduled_Tasks:_Options" => "SCHEDULED_TASKS:_OPTIONS", - ], - "INFORMATION" => [ - "Information:_Warnings" => "INFORMATION:_WARNINGS", - "Post-installation_Messages_for_Joomla_CMS" => "POST-INSTALLATION_MESSAGES_FOR_JOOMLA_CMS", - "Post-installation_Messages:_Options" => "POST-INSTALLATION_MESSAGES:_OPTIONS", - "Site_System_Information" => "SITE_SYSTEM_INFORMATION", - ], - "JOOMLA_UPDATE" => [ - "Joomla_Update" => "JOOMLA_UPDATE", - "Joomla_Update:_Options" => "JOOMLA_UPDATE:_OPTIONS", - "Edit_Update_Site" => "EDIT_UPDATE_SITE", - "Installer:_Options" => "INSTALLER:_OPTIONS", - ], - "WORKFLOWS" => [ - "Workflows_List" => "WORKFLOWS_LIST", - "Stages_List:_Basic_Workflow" => "STAGES_LIST:_BASIC_WORKFLOW", - "Transitions_List:_Basic_Workflow" => "TRANSITIONS_LIST:_BASIC_WORKFLOW", - ], + "EXTENSIONS" => [ + "Extensions:_Discover" => "EXTENSIONS:_DISCOVER", + "Extensions:_Install" => "EXTENSIONS:_INSTALL", + "Extensions:_Languages" => "EXTENSIONS:_LANGUAGES", + "Extensions:_Manage" => "EXTENSIONS:_MANAGE", + "Extensions:_Update" => "EXTENSIONS:_UPDATE", + "Extensions:_Update_Sites" => "EXTENSIONS:_UPDATE_SITES", + ], + "TEMPLATES:_TEMPLATES" => [ + "Templates:_Templates" => "TEMPLATES:_TEMPLATES", + "Templates:_Customise" => "TEMPLATES:_CUSTOMISE", + "Templates:_Customise_Source" => "TEMPLATES:_CUSTOMISE_SOURCE", + "Templates:_Styles" => "TEMPLATES:_STYLES", + "Templates:_Edit_Style" => "TEMPLATES:_EDIT_STYLE", + "Template:_Options" => "TEMPLATE:_OPTIONS", + "Mail_Templates" => "MAIL_TEMPLATES", + "Mail_Template:_Edit" => "MAIL_TEMPLATE:_EDIT", + "Mail_Templates:_Options" => "MAIL_TEMPLATES:_OPTIONS", + ], + "MAINTENANCE" => [ + "Information:_Database" => "INFORMATION:_DATABASE", + "Maintenance:_Clear_Cache" => "MAINTENANCE:_CLEAR_CACHE", + "Maintenance:_Global_Check-in" => "MAINTENANCE:_GLOBAL_CHECK-IN", + "Cache:_Options" => "CACHE:_OPTIONS", + "Check-in:_Options" => "CHECK-IN:_OPTIONS", + ], + "LANGUAGES" => [ + "Languages:_Content" => "LANGUAGES:_CONTENT", + "Languages:_Edit_Content_Language" => "LANGUAGES:_EDIT_CONTENT_LANGUAGE", + "Languages:_Edit_Override" => "LANGUAGES:_EDIT_OVERRIDE", + "Languages:_Installed" => "LANGUAGES:_INSTALLED", + "Languages:_Options" => "LANGUAGES:_OPTIONS", + "Languages:_Overrides" => "LANGUAGES:_OVERRIDES", + "Multilingual_Associations" => "MULTILINGUAL_ASSOCIATIONS", + "Multilingual_Associations:_Edit" => "MULTILINGUAL_ASSOCIATIONS:_EDIT", + "Multilingual_Associations:_Options" => "MULTILINGUAL_ASSOCIATIONS:_OPTIONS", + ], + "PLUGINS" => [ + "Plugins" => "PLUGINS", + "Plugins:_Name_of_Plugin" => "PLUGINS:_NAME_OF_PLUGIN", + "Editors" => "EDITORS", + "Plugin:_Options" => "PLUGIN:_OPTIONS", + ], + "REDIRECTS" => [ + "Redirect:_Options" => "REDIRECT:_OPTIONS", + "Redirects:_Links" => "REDIRECTS:_LINKS", + "Redirects:_New_or_Edit" => "REDIRECTS:_NEW_OR_EDIT", + ], + "GUIDED_TOURS" => [ + "Guided_Tours" => "GUIDED_TOURS", + "Guided_Tours:_New_or_Edit_Step" => "GUIDED_TOURS:_NEW_OR_EDIT_STEP", + "Guided_Tours:_New_or_Edit_Tour" => "GUIDED_TOURS:_NEW_OR_EDIT_TOUR", + "Guided_Tours:_Options" => "GUIDED_TOURS:_OPTIONS", + "Guided_Tours:_Steps" => "GUIDED_TOURS:_STEPS", + ], + "SCHEDULED_TASKS" => [ + "Scheduled_Tasks" => "SCHEDULED_TASKS", + "Scheduled_Tasks:_Edit" => "SCHEDULED_TASKS:_EDIT", + "Scheduled_Tasks:_Options" => "SCHEDULED_TASKS:_OPTIONS", + ], + "INFORMATION" => [ + "Information:_Warnings" => "INFORMATION:_WARNINGS", + "Post-installation_Messages_for_Joomla_CMS" => "POST-INSTALLATION_MESSAGES_FOR_JOOMLA_CMS", + "Post-installation_Messages:_Options" => "POST-INSTALLATION_MESSAGES:_OPTIONS", + "Site_System_Information" => "SITE_SYSTEM_INFORMATION", + ], + "JOOMLA_UPDATE" => [ + "Joomla_Update" => "JOOMLA_UPDATE", + "Joomla_Update:_Options" => "JOOMLA_UPDATE:_OPTIONS", + "Edit_Update_Site" => "EDIT_UPDATE_SITE", + "Installer:_Options" => "INSTALLER:_OPTIONS", + ], + "WORKFLOWS" => [ + "Workflows_List" => "WORKFLOWS_LIST", + "Stages_List:_Basic_Workflow" => "STAGES_LIST:_BASIC_WORKFLOW", + "Transitions_List:_Basic_Workflow" => "TRANSITIONS_LIST:_BASIC_WORKFLOW", + ], ], ]; From c916c1f7d434888dcdbe7d6309078b90a91fd164 Mon Sep 17 00:00:00 2001 From: Cliff Ford Date: Thu, 23 Oct 2025 10:41:33 +0100 Subject: [PATCH 03/27] Corrected case in use statement --- administrator/components/com_admin/tmpl/help/default.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/administrator/components/com_admin/tmpl/help/default.php b/administrator/components/com_admin/tmpl/help/default.php index 96ff7bb82ab6c..c49df42e35fe6 100644 --- a/administrator/components/com_admin/tmpl/help/default.php +++ b/administrator/components/com_admin/tmpl/help/default.php @@ -11,7 +11,7 @@ defined('_JEXEC') or die; use Joomla\CMS\Language\Text; -use Joomla\Component\Admin\Administrator\View\Help\ToC; +use Joomla\Component\Admin\Administrator\View\Help\Toc; /** @var \Joomla\Component\Admin\Administrator\View\Help\HtmlView $this */ From 4389fed2888f3edba8909b3ceff4ed0020ebad6b Mon Sep 17 00:00:00 2001 From: Cliff Ford Date: Fri, 24 Oct 2025 10:55:53 +0100 Subject: [PATCH 04/27] Added suggested changes and changed menu order. --- .../com_admin/tmpl/help/default.php | 11 ++++-- .../com_admin/tmpl/help/toc-build.php | 11 ++++-- .../com_admin/tmpl/help/toc-src.php | 37 ++++++++++--------- administrator/language/en-GB/com_admin.ini | 6 ++- 4 files changed, 38 insertions(+), 27 deletions(-) diff --git a/administrator/components/com_admin/tmpl/help/default.php b/administrator/components/com_admin/tmpl/help/default.php index c49df42e35fe6..f9d0a0f5ca49f 100644 --- a/administrator/components/com_admin/tmpl/help/default.php +++ b/administrator/components/com_admin/tmpl/help/default.php @@ -39,6 +39,9 @@ .closed #helpmenu a:hover { max-inline-size: 18rem; } + #help-index.sidebar-wrapper .item > a { + align-items: baseline; + } #help-index.sidebar-wrapper .item-level-2 > a { padding-inline-start: 1rem; } @@ -67,14 +70,14 @@

- +
- +
diff --git a/administrator/components/com_admin/tmpl/help/toc-build.php b/administrator/components/com_admin/tmpl/help/toc-build.php index cf747b4b34e93..3a27ceb00af33 100644 --- a/administrator/components/com_admin/tmpl/help/toc-build.php +++ b/administrator/components/com_admin/tmpl/help/toc-build.php @@ -4,7 +4,7 @@ * @package Joomla.Administrator * @subpackage com_admin * - * @copyright (C) 2009 Open Source Matters, Inc. + * @copyright (C) 2025 Open Source Matters, Inc. * @license GNU General Public License version 2 or later; see LICENSE.txt */ @@ -72,20 +72,23 @@ protected function buildMenu(array $items, $pass = false): string $text = Text::_('COM_ADMIN_HELP_' . $label); $lclabel = strtolower(str_replace('_', '-', $label)); $this->liid += 1; - // Numeric keys mean leaf items (not headings) + if (is_array($value)) { + // This is a folder list item $icon = ""; $wrap_label = "{$text}"; $html .= "
  • liid}\" class=\"item parent item-level-{$this->toclevel}\">"; $html .= ""; $html .= "{$icon}{$wrap_label}\n"; if (!empty($value)) { - $html .= $this->buildMenu($value); // Recursively build sublist + // Recursively build sublist. + $html .= $this->buildMenu($value); } $html .= "
  • \n"; } else { + // This is an article list item. $icon = ""; - // The label is help.joomla.org help key. + // The url is help.joomla.org + $label (the help key). $url = Help::createUrl($label); $link = "{$icon}{$text}\n"; $html .= "
  • toclevel}\">{$link}
  • \n"; diff --git a/administrator/components/com_admin/tmpl/help/toc-src.php b/administrator/components/com_admin/tmpl/help/toc-src.php index 8f19559f05a91..5a10e8b5745e7 100644 --- a/administrator/components/com_admin/tmpl/help/toc-src.php +++ b/administrator/components/com_admin/tmpl/help/toc-src.php @@ -4,7 +4,7 @@ * @package Joomla.Administrator * @subpackage com_admin * - * @copyright (C) 2009 Open Source Matters, Inc. + * @copyright (C) 2025 Open Source Matters, Inc. * @license GNU General Public License version 2 or later; see LICENSE.txt */ @@ -15,6 +15,7 @@ $menu = [ "START_HERE" => [ "Start_Here" => "START_HERE", + "License" => "COM_ADMIN_HELP_LICENSE", "Glossary" => "GLOSSARY", "Home_Dashboard" => "HOME_DASHBOARD", "Site_Global_Configuration" => "SITE_GLOBAL_CONFIGURATION", @@ -28,6 +29,11 @@ "Articles:_Featured" => "ARTICLES:_FEATURED", "Articles:_Options" => "ARTICLES:_OPTIONS", ], + "WORKFLOWS" => [ + "Workflows_List" => "WORKFLOWS_LIST", + "Stages_List:_Basic_Workflow" => "STAGES_LIST:_BASIC_WORKFLOW", + "Transitions_List:_Basic_Workflow" => "TRANSITIONS_LIST:_BASIC_WORKFLOW", + ], "FIELDS" => [ "Field_Groups" => "FIELD_GROUPS", "Field_Groups:_Edit" => "FIELD_GROUPS:_EDIT", @@ -130,25 +136,25 @@ "COMPONENTS" => [ "BANNERS" => [ "Banners" => "BANNERS", - "Banners:_Categories" => "BANNERS:_CATEGORIES", - "Banners:_Clients" => "BANNERS:_CLIENTS", "Banners:_Edit" => "BANNERS:_EDIT", + "Banners:_Categories" => "BANNERS:_CATEGORIES", "Banners:_New_or_Edit_Category" => "BANNERS:_NEW_OR_EDIT_CATEGORY", + "Banners:_Clients" => "BANNERS:_CLIENTS", "Banners:_New_or_Edit_Client" => "BANNERS:_NEW_OR_EDIT_CLIENT", "Banners:_Tracks" => "BANNERS:_TRACKS", "Banners:_Options" => "BANNERS:_OPTIONS", ], "CONTACTS" => [ "Contacts" => "CONTACTS", - "Contacts:_Categories" => "CONTACTS:_CATEGORIES", "Contacts:_Edit" => "CONTACTS:_EDIT", + "Contacts:_Categories" => "CONTACTS:_CATEGORIES", "Contacts:_Edit_Category" => "CONTACTS:_EDIT_CATEGORY", "Contacts:_Options" => "CONTACTS:_OPTIONS", ], "NEWS_FEEDS" => [ "News_Feeds" => "NEWS_FEEDS", - "News_Feeds:_Categories" => "NEWS_FEEDS:_CATEGORIES", "News_Feeds:_Edit" => "NEWS_FEEDS:_EDIT", + "News_Feeds:_Categories" => "NEWS_FEEDS:_CATEGORIES", "News_Feeds:_Edit_Category" => "NEWS_FEEDS:_EDIT_CATEGORY", "News_Feed:_Options" => "NEWS_FEED:_OPTIONS", ], @@ -169,13 +175,15 @@ "USERS" => [ "Users" => "USERS", "Users:_Edit_Profile" => "USERS:_EDIT_PROFILE", + "Users:_Viewing_Access_Levels" => "USERS:_VIEWING_ACCESS_LEVELS", "Users:_Edit_Viewing_Access_Level" => "USERS:_EDIT_VIEWING_ACCESS_LEVEL", "Users:_Groups" => "USERS:_GROUPS", "Users:_New_or_Edit_Group" => "USERS:_NEW_OR_EDIT_GROUP", - "Users:_Options" => "USERS:_OPTIONS", - "Users:_Viewing_Access_Levels" => "USERS:_VIEWING_ACCESS_LEVELS", "Permissions_for_Group" => "PERMISSIONS_FOR_GROUP", "Permissions_for_User" => "PERMISSIONS_FOR_USER", + "Users:_Options" => "USERS:_OPTIONS", + ], + "USER_ACTIONS" => [ "User_Actions_Log" => "USER_ACTIONS_LOG", "User_Actions_Log:_Options" => "USER_ACTIONS_LOG:_OPTIONS", "User_Notes" => "USER_NOTES", @@ -192,8 +200,8 @@ "Privacy:_Extension_Capabilities" => "PRIVACY:_EXTENSION_CAPABILITIES", "Privacy:_Information_Requests" => "PRIVACY:_INFORMATION_REQUESTS", "Privacy:_New_Information_Request" => "PRIVACY:_NEW_INFORMATION_REQUEST", - "Privacy:_Options" => "PRIVACY:_OPTIONS", "Privacy:_Review_Information_Request" => "PRIVACY:_REVIEW_INFORMATION_REQUEST", + "Privacy:_Options" => "PRIVACY:_OPTIONS", ], "SYSTEM" => [ "EXTENSIONS" => [ @@ -204,7 +212,7 @@ "Extensions:_Update" => "EXTENSIONS:_UPDATE", "Extensions:_Update_Sites" => "EXTENSIONS:_UPDATE_SITES", ], - "TEMPLATES:_TEMPLATES" => [ + "TEMPLATES" => [ "Templates:_Templates" => "TEMPLATES:_TEMPLATES", "Templates:_Customise" => "TEMPLATES:_CUSTOMISE", "Templates:_Customise_Source" => "TEMPLATES:_CUSTOMISE_SOURCE", @@ -240,16 +248,16 @@ "Plugin:_Options" => "PLUGIN:_OPTIONS", ], "REDIRECTS" => [ - "Redirect:_Options" => "REDIRECT:_OPTIONS", "Redirects:_Links" => "REDIRECTS:_LINKS", "Redirects:_New_or_Edit" => "REDIRECTS:_NEW_OR_EDIT", + "Redirect:_Options" => "REDIRECT:_OPTIONS", ], "GUIDED_TOURS" => [ "Guided_Tours" => "GUIDED_TOURS", - "Guided_Tours:_New_or_Edit_Step" => "GUIDED_TOURS:_NEW_OR_EDIT_STEP", "Guided_Tours:_New_or_Edit_Tour" => "GUIDED_TOURS:_NEW_OR_EDIT_TOUR", - "Guided_Tours:_Options" => "GUIDED_TOURS:_OPTIONS", "Guided_Tours:_Steps" => "GUIDED_TOURS:_STEPS", + "Guided_Tours:_New_or_Edit_Step" => "GUIDED_TOURS:_NEW_OR_EDIT_STEP", + "Guided_Tours:_Options" => "GUIDED_TOURS:_OPTIONS", ], "SCHEDULED_TASKS" => [ "Scheduled_Tasks" => "SCHEDULED_TASKS", @@ -268,10 +276,5 @@ "Edit_Update_Site" => "EDIT_UPDATE_SITE", "Installer:_Options" => "INSTALLER:_OPTIONS", ], - "WORKFLOWS" => [ - "Workflows_List" => "WORKFLOWS_LIST", - "Stages_List:_Basic_Workflow" => "STAGES_LIST:_BASIC_WORKFLOW", - "Transitions_List:_Basic_Workflow" => "TRANSITIONS_LIST:_BASIC_WORKFLOW", - ], ], ]; diff --git a/administrator/language/en-GB/com_admin.ini b/administrator/language/en-GB/com_admin.ini index c51a442231793..a0e22b7945207 100644 --- a/administrator/language/en-GB/com_admin.ini +++ b/administrator/language/en-GB/com_admin.ini @@ -82,6 +82,7 @@ COM_ADMIN_HELP_FIELD_GROUPS:_EDIT="Field Groups: New/Edit" COM_ADMIN_HELP_FIELD_GROUPS="Field Groups" COM_ADMIN_HELP_FIELDS:_EDIT="Fields: New/Edit" COM_ADMIN_HELP_FIELDS="Fields" +COM_ADMIN_HELP_FRAME_TITLE="Frame for Help Pages" COM_ADMIN_HELP_GLOSSARY="Glossary" COM_ADMIN_HELP_GUIDED_TOURS:_NEW_OR_EDIT_STEP="Guided Tours: New/Edit Step" COM_ADMIN_HELP_GUIDED_TOURS:_NEW_OR_EDIT_TOUR="Guided Tours: New/Edit Tour" @@ -103,6 +104,7 @@ COM_ADMIN_HELP_LANGUAGES:_EDIT_OVERRIDE="Languages: Overrides - New/Edit" COM_ADMIN_HELP_LANGUAGES:_INSTALLED="Languages: Installed" COM_ADMIN_HELP_LANGUAGES:_OPTIONS="Languages: Options" COM_ADMIN_HELP_LANGUAGES:_OVERRIDES="Languages: Overrides" +COM_ADMIN_HELP_LICENSE="License" COM_ADMIN_HELP_MAIL_TEMPLATE:_EDIT="Mail Templates: Edit" COM_ADMIN_HELP_MAIL_TEMPLATES:_OPTIONS="Mail Templates: Options" COM_ADMIN_HELP_MAIL_TEMPLATES="Mail Templates" @@ -221,13 +223,14 @@ COM_ADMIN_HELP_TAGS:_NEW_OR_EDIT="Tags: New/Edit" COM_ADMIN_HELP_TAGS:_OPTIONS="Tags: Options" COM_ADMIN_HELP_TAGS="Tags" COM_ADMIN_HELP_TEMPLATE:_OPTIONS="Template: Options" -COM_ADMIN_HELP_TEMPLATE="Templates" +COM_ADMIN_HELP_TEMPLATES="Templates" COM_ADMIN_HELP_TEMPLATES:_CUSTOMISE_SOURCE="Templates: Source - Edit" COM_ADMIN_HELP_TEMPLATES:_CUSTOMISE="Templates: Edit" COM_ADMIN_HELP_TEMPLATES:_EDIT_STYLE="Templates: Styles - Edit" COM_ADMIN_HELP_TEMPLATES:_STYLES="Templates: Styles" COM_ADMIN_HELP_TEMPLATES:_TEMPLATES="Templates" COM_ADMIN_HELP_TRANSITIONS_LIST:_BASIC_WORKFLOW="Transitions List: Basic Workflow" +COM_ADMIN_HELP_USER_ACTIONS="User Actions" COM_ADMIN_HELP_USER_ACTIONS_LOG:_OPTIONS="User Actions Log: Options" COM_ADMIN_HELP_USER_ACTIONS_LOG="Action Logs" COM_ADMIN_HELP_USER_NOTES:_NEW_OR_EDIT="Users: User Notes - New/Edit" @@ -243,7 +246,6 @@ COM_ADMIN_HELP_WORKFLOWS="Workflows" COM_ADMIN_HELP_WORKFLOWS_LIST="Workflows List" COM_ADMIN_JOOMLA_COMPAT_PLUGIN="Joomla Backward Compatibility Plugin" COM_ADMIN_JOOMLA_VERSION="Joomla! Version" -COM_ADMIN_LICENSE="License" COM_ADMIN_LOG_DIRECTORY="(Log folder)" COM_ADMIN_MAX_INPUT_VARS="Maximum Input Variables" COM_ADMIN_MBSTRING_ENABLED="Multibyte String (mbstring) Enabled" From ce6507b4e7b7d266431d89d165fb826066cc7c05 Mon Sep 17 00:00:00 2001 From: Cliff Ford Date: Fri, 24 Oct 2025 11:40:58 +0100 Subject: [PATCH 05/27] Changes admin-hlp.js as suggested --- administrator/components/com_admin/tmpl/help/default.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/administrator/components/com_admin/tmpl/help/default.php b/administrator/components/com_admin/tmpl/help/default.php index f9d0a0f5ca49f..60122eb70e14c 100644 --- a/administrator/components/com_admin/tmpl/help/default.php +++ b/administrator/components/com_admin/tmpl/help/default.php @@ -63,7 +63,7 @@ ?>
    -
    +
    -

    -
    +
    diff --git a/build/media_source/com_admin/js/admin-help.es6.js b/build/media_source/com_admin/js/admin-help.es6.js index eac2be67a0c6f..b3f16ea8b9577 100644 --- a/build/media_source/com_admin/js/admin-help.es6.js +++ b/build/media_source/com_admin/js/admin-help.es6.js @@ -17,14 +17,17 @@ document.addEventListener("DOMContentLoaded", function (event) { if (id) { localStorage.setItem('helpIndex.lastClick', id); } + const btn = document.querySelector('button[data-bs-target="#help-index"]'); + const isVisible = !!(btn && btn.offsetParent !== null); + if (isVisible) { + document.querySelector(`nav#help-index`).classList.add('collapse'); + document.querySelector(`nav#help-index`).classList.remove('show'); + } })); } - // Helper function: wait for given milliseconds - const wait = ms => new Promise(resolve => setTimeout(resolve, ms)); - // Async restore function - async function restoreMenu() { + function restoreMenu() { let lastClick = localStorage.getItem('helpIndex.lastClick'); if (!lastClick) { lastClick = 'start-here'; @@ -33,38 +36,33 @@ document.addEventListener("DOMContentLoaded", function (event) { const selectedLink = helpIndex.querySelector(`a[data-id="${lastClick}"]`); if (!selectedLink) return; - // Collect parent anchors top-down - const parentAnchors = []; + // 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 anchor = parentLiOfUl.querySelector('a.has-arrow'); - if (anchor) parentAnchors.unshift(anchor); + const li = parentLiOfUl + if (li) lists.unshift(li); } parentLi = parentLiOfUl; } // Trigger clicks in sequence with a delay - for (const anchor of parentAnchors) { - anchor.click(); - await wait(400); // adjust delay as needed (150–300ms) + 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 - await wait(100); selectedLink.click(); } // Run restore after MetisMenu setup delay - setTimeout(() => { - restoreMenu(); - }, 100); + restoreMenu() }); From 2949e75c470520efc69cbc40cb856af25e7e4158 Mon Sep 17 00:00:00 2001 From: Cliff Ford Date: Fri, 24 Oct 2025 18:04:41 +0100 Subject: [PATCH 07/27] Moved inline styles to css --- .../com_admin/tmpl/help/default.php | 45 +------------------ administrator/language/en-GB/com_admin.ini | 2 +- .../media_source/com_admin/css/admin-help.css | 41 +++++++++++++++++ .../media_source/com_admin/joomla.asset.json | 5 +++ 4 files changed, 49 insertions(+), 44 deletions(-) create mode 100644 build/media_source/com_admin/css/admin-help.css diff --git a/administrator/components/com_admin/tmpl/help/default.php b/administrator/components/com_admin/tmpl/help/default.php index dc9883a2b404e..35e539bd62613 100644 --- a/administrator/components/com_admin/tmpl/help/default.php +++ b/administrator/components/com_admin/tmpl/help/default.php @@ -17,49 +17,8 @@ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ $wa = $this->getDocument()->getWebAssetManager(); -$wa->useScript('com_admin.admin-help'); -$wa->addInlineStyle(' - #help-sidebar { - min-width: 18rem; - } - #help-index.main-nav { - inline-size: 18rem; - max-inline-size: 18rem; - } - #help-index ul, #help-index li { - inline-size: 18rem; - max-inline-size: 18rem; - } - #helpmenu .has-arrow .item-title { - margin-inline-end: auto; - } - #helpmenu .has-arrow::after { - display: flex; - } - .closed #helpmenu a:hover { - max-inline-size: 18rem; - } - #help-index.sidebar-wrapper .item > a { - align-items: baseline; - } - #help-index.sidebar-wrapper .item-level-2 > a { - padding-inline-start: 1rem; - } - #help-index.sidebar-wrapper .item-level-3 > a { - padding-inline-start: 1.5rem; - } - .help-nav .mm-collapse { - display: none; - } - .help-nav .mm-collapse.mm-show { - display: block; - } - .sidebar-wrapper h2 { - margin: 0.75rem 0 0.25rem 0.75rem; - font-weight: 400; - color: var(--sidebar-item-color); - } -'); +$wa->useScript('com_admin.admin-help') + ->useStyle('com_admin.admin-help'); // Get the HTML for the Table of Contents from a separate file. require_once 'toc-build.php'; diff --git a/administrator/language/en-GB/com_admin.ini b/administrator/language/en-GB/com_admin.ini index a0e22b7945207..93be413659aed 100644 --- a/administrator/language/en-GB/com_admin.ini +++ b/administrator/language/en-GB/com_admin.ini @@ -82,7 +82,7 @@ COM_ADMIN_HELP_FIELD_GROUPS:_EDIT="Field Groups: New/Edit" COM_ADMIN_HELP_FIELD_GROUPS="Field Groups" COM_ADMIN_HELP_FIELDS:_EDIT="Fields: New/Edit" COM_ADMIN_HELP_FIELDS="Fields" -COM_ADMIN_HELP_FRAME_TITLE="Frame for Help Pages" +COM_ADMIN_HELP_FRAME_TITLE="Last selected Help Page" COM_ADMIN_HELP_GLOSSARY="Glossary" COM_ADMIN_HELP_GUIDED_TOURS:_NEW_OR_EDIT_STEP="Guided Tours: New/Edit Step" COM_ADMIN_HELP_GUIDED_TOURS:_NEW_OR_EDIT_TOUR="Guided Tours: New/Edit Tour" diff --git a/build/media_source/com_admin/css/admin-help.css b/build/media_source/com_admin/css/admin-help.css new file mode 100644 index 0000000000000..74d413f2ea475 --- /dev/null +++ b/build/media_source/com_admin/css/admin-help.css @@ -0,0 +1,41 @@ +@charset "UTF-8"; +#help-sidebar { + min-width: 18rem; +} +#help-index.main-nav { + inline-size: 18rem; + max-inline-size: 18rem; +} +#help-index ul, #help-index li { + inline-size: 18rem; + max-inline-size: 18rem; +} +#helpmenu .has-arrow .item-title { + margin-inline-end: auto; +} +#helpmenu .has-arrow::after { + display: flex; +} +.closed #helpmenu a:hover { + max-inline-size: 18rem; +} +#help-index.sidebar-wrapper .item > a { + align-items: baseline; +} +#help-index.sidebar-wrapper .item-level-2 > a { + padding-inline-start: 1rem; +} +#help-index.sidebar-wrapper .item-level-3 > a { + padding-inline-start: 1.5rem; +} +.help-nav .mm-collapse { + display: none; +} +.help-nav .mm-collapse.mm-show { + display: block; +} +.sidebar-wrapper h2 { + margin: 0.75rem 0 0.25rem 0.75rem; + font-weight: 400; + color: var(--sidebar-item-color); +} diff --git a/build/media_source/com_admin/joomla.asset.json b/build/media_source/com_admin/joomla.asset.json index 627ed01b2d73f..4ef83ee4e78d1 100644 --- a/build/media_source/com_admin/joomla.asset.json +++ b/build/media_source/com_admin/joomla.asset.json @@ -15,6 +15,11 @@ "attributes": { "type": "module" } + }, + { + "name": "com_admin.admin-help", + "type": "style", + "uri": "com_admin/admin-help.min.css" } ] } From 34e85b7bed4a5a6877c2d44e424840acf0f02f15 Mon Sep 17 00:00:00 2001 From: Cliff Ford Date: Fri, 24 Oct 2025 19:10:12 +0100 Subject: [PATCH 08/27] Fixed spacing in admin-help.css --- .../media_source/com_admin/css/admin-help.css | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/build/media_source/com_admin/css/admin-help.css b/build/media_source/com_admin/css/admin-help.css index 74d413f2ea475..f4667ce37352c 100644 --- a/build/media_source/com_admin/css/admin-help.css +++ b/build/media_source/com_admin/css/admin-help.css @@ -1,41 +1,41 @@ @charset "UTF-8"; #help-sidebar { - min-width: 18rem; + min-width: 18rem; } #help-index.main-nav { - inline-size: 18rem; - max-inline-size: 18rem; + inline-size: 18rem; + max-inline-size: 18rem; } #help-index ul, #help-index li { - inline-size: 18rem; - max-inline-size: 18rem; + inline-size: 18rem; + max-inline-size: 18rem; } #helpmenu .has-arrow .item-title { - margin-inline-end: auto; + margin-inline-end: auto; } #helpmenu .has-arrow::after { - display: flex; + display: flex; } .closed #helpmenu a:hover { - max-inline-size: 18rem; + max-inline-size: 18rem; } #help-index.sidebar-wrapper .item > a { - align-items: baseline; + align-items: baseline; } #help-index.sidebar-wrapper .item-level-2 > a { - padding-inline-start: 1rem; + padding-inline-start: 1rem; } #help-index.sidebar-wrapper .item-level-3 > a { - padding-inline-start: 1.5rem; + padding-inline-start: 1.5rem; } .help-nav .mm-collapse { - display: none; + display: none; } .help-nav .mm-collapse.mm-show { - display: block; + display: block; } .sidebar-wrapper h2 { - margin: 0.75rem 0 0.25rem 0.75rem; - font-weight: 400; - color: var(--sidebar-item-color); + margin: 0.75rem 0 0.25rem 0.75rem; + font-weight: 400; + color: var(--sidebar-item-color); } From 1f91630d72d04629bfb84233e84ff354a42d61e5 Mon Sep 17 00:00:00 2001 From: Cliff Ford Date: Fri, 24 Oct 2025 19:34:24 +0100 Subject: [PATCH 09/27] Set build helpurl minor version to 0. Fixed css syntax. --- build/media_source/com_admin/css/admin-help.css | 4 ++-- installation/src/Application/InstallationApplication.php | 2 +- installation/src/Console/InstallCommand.php | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/media_source/com_admin/css/admin-help.css b/build/media_source/com_admin/css/admin-help.css index f4667ce37352c..538b9df1304e2 100644 --- a/build/media_source/com_admin/css/admin-help.css +++ b/build/media_source/com_admin/css/admin-help.css @@ -13,7 +13,7 @@ #helpmenu .has-arrow .item-title { margin-inline-end: auto; } -#helpmenu .has-arrow::after { +#helpmenu .has-arrow::after { display: flex; } .closed #helpmenu a:hover { @@ -35,7 +35,7 @@ display: block; } .sidebar-wrapper h2 { - margin: 0.75rem 0 0.25rem 0.75rem; + margin: .75rem 0 .25rem .75rem; font-weight: 400; color: var(--sidebar-item-color); } diff --git a/installation/src/Application/InstallationApplication.php b/installation/src/Application/InstallationApplication.php index f90d3dc411b54..6b514a1a49f43 100644 --- a/installation/src/Application/InstallationApplication.php +++ b/installation/src/Application/InstallationApplication.php @@ -438,7 +438,7 @@ protected function initialiseApp($options = []) } // Set the official helpurl. - $options['helpurl'] = 'https://help.joomla.org/proxy?keyref=Help{major}{minor}:{keyref}&lang={langcode}'; + $options['helpurl'] = 'https://help.joomla.org/proxy?keyref=Help{major}0:{keyref}&lang={langcode}'; // Store helpurl in the session. $this->getSession()->set('setup.helpurl', $options['helpurl']); diff --git a/installation/src/Console/InstallCommand.php b/installation/src/Console/InstallCommand.php index fd800069520f9..2110512f3ed8a 100644 --- a/installation/src/Console/InstallCommand.php +++ b/installation/src/Console/InstallCommand.php @@ -102,7 +102,7 @@ protected function doExecute(InputInterface $input, OutputInterface $output): in $cfg['db_pass_plain'] = $cfg['db_pass']; $cfg['admin_password_plain'] = $cfg['admin_password']; $cfg['language'] = 'en-GB'; - $cfg['helpurl'] = 'https://help.joomla.org/proxy?keyref=Help{major}{minor}:{keyref}&lang={langcode}'; + $cfg['helpurl'] = 'https://help.joomla.org/proxy?keyref=Help{major}0:{keyref}&lang={langcode}'; $this->ioStyle->writeln('OK'); /** @var SetupModel $setupModel */ From 2914721307b06a30fd843da850ed17be08b96e29 Mon Sep 17 00:00:00 2001 From: Cliff Ford Date: Fri, 24 Oct 2025 19:39:55 +0100 Subject: [PATCH 10/27] Revert changes helpurl minor version. --- installation/src/Application/InstallationApplication.php | 2 +- installation/src/Console/InstallCommand.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/installation/src/Application/InstallationApplication.php b/installation/src/Application/InstallationApplication.php index 6b514a1a49f43..f90d3dc411b54 100644 --- a/installation/src/Application/InstallationApplication.php +++ b/installation/src/Application/InstallationApplication.php @@ -438,7 +438,7 @@ protected function initialiseApp($options = []) } // Set the official helpurl. - $options['helpurl'] = 'https://help.joomla.org/proxy?keyref=Help{major}0:{keyref}&lang={langcode}'; + $options['helpurl'] = 'https://help.joomla.org/proxy?keyref=Help{major}{minor}:{keyref}&lang={langcode}'; // Store helpurl in the session. $this->getSession()->set('setup.helpurl', $options['helpurl']); diff --git a/installation/src/Console/InstallCommand.php b/installation/src/Console/InstallCommand.php index 2110512f3ed8a..fd800069520f9 100644 --- a/installation/src/Console/InstallCommand.php +++ b/installation/src/Console/InstallCommand.php @@ -102,7 +102,7 @@ protected function doExecute(InputInterface $input, OutputInterface $output): in $cfg['db_pass_plain'] = $cfg['db_pass']; $cfg['admin_password_plain'] = $cfg['admin_password']; $cfg['language'] = 'en-GB'; - $cfg['helpurl'] = 'https://help.joomla.org/proxy?keyref=Help{major}0:{keyref}&lang={langcode}'; + $cfg['helpurl'] = 'https://help.joomla.org/proxy?keyref=Help{major}{minor}:{keyref}&lang={langcode}'; $this->ioStyle->writeln('OK'); /** @var SetupModel $setupModel */ From c866a7f5cc82c9a60dd3427549b75b1883e75148 Mon Sep 17 00:00:00 2001 From: Cliff Ford Date: Sat, 25 Oct 2025 10:50:24 +0100 Subject: [PATCH 11/27] Updated frame title, created help/en-GB/index.html. --- administrator/help/en-GB/index.html | 1 + administrator/language/en-GB/com_admin.ini | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 administrator/help/en-GB/index.html diff --git a/administrator/help/en-GB/index.html b/administrator/help/en-GB/index.html new file mode 100644 index 0000000000000..2efb97f319a35 --- /dev/null +++ b/administrator/help/en-GB/index.html @@ -0,0 +1 @@ + diff --git a/administrator/language/en-GB/com_admin.ini b/administrator/language/en-GB/com_admin.ini index 93be413659aed..8edaa57fa4f31 100644 --- a/administrator/language/en-GB/com_admin.ini +++ b/administrator/language/en-GB/com_admin.ini @@ -82,7 +82,7 @@ COM_ADMIN_HELP_FIELD_GROUPS:_EDIT="Field Groups: New/Edit" COM_ADMIN_HELP_FIELD_GROUPS="Field Groups" COM_ADMIN_HELP_FIELDS:_EDIT="Fields: New/Edit" COM_ADMIN_HELP_FIELDS="Fields" -COM_ADMIN_HELP_FRAME_TITLE="Last selected Help Page" +COM_ADMIN_HELP_FRAME_TITLE="Selected Help Page" COM_ADMIN_HELP_GLOSSARY="Glossary" COM_ADMIN_HELP_GUIDED_TOURS:_NEW_OR_EDIT_STEP="Guided Tours: New/Edit Step" COM_ADMIN_HELP_GUIDED_TOURS:_NEW_OR_EDIT_TOUR="Guided Tours: New/Edit Tour" From b3e8657023d47ff735fb06e0232f9661c079af98 Mon Sep 17 00:00:00 2001 From: Cliff Ford Date: Sat, 25 Oct 2025 19:26:44 +0100 Subject: [PATCH 12/27] Adjusted padding-inline-end of item links. --- .../media_source/com_admin/css/admin-help.css | 36 +++++++++++++++---- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/build/media_source/com_admin/css/admin-help.css b/build/media_source/com_admin/css/admin-help.css index 538b9df1304e2..ec01d970f0cc3 100644 --- a/build/media_source/com_admin/css/admin-help.css +++ b/build/media_source/com_admin/css/admin-help.css @@ -2,40 +2,62 @@ #help-sidebar { min-width: 18rem; } -#help-index.main-nav { - inline-size: 18rem; - max-inline-size: 18rem; -} -#help-index ul, #help-index li { + +#help-index.main-nav, #help-index ul, #help-index li { inline-size: 18rem; max-inline-size: 18rem; } + #helpmenu .has-arrow .item-title { margin-inline-end: auto; } -#helpmenu .has-arrow::after { + +#helpmenu .has-arrow:after { display: flex; } + .closed #helpmenu a:hover { max-inline-size: 18rem; } + #help-index.sidebar-wrapper .item > a { align-items: baseline; } + +#help-index.sidebar-wrapper .item-level-1 > a { + padding-inline-start: .5rem; +} + +#help-index.sidebar-wrapper .item-level-1 > a:not(.has-arrow) { + padding-inline-end: .5rem; +} + #help-index.sidebar-wrapper .item-level-2 > a { padding-inline-start: 1rem; } + +#help-index.sidebar-wrapper .item-level-2 > a:not(.has-arrow) { + padding-inline-end: .5rem; +} + #help-index.sidebar-wrapper .item-level-3 > a { padding-inline-start: 1.5rem; } + +#help-index.sidebar-wrapper .item-level-3 > a:not(.has-arrow) { + padding-inline-end: .5rem; +} + .help-nav .mm-collapse { display: none; } + .help-nav .mm-collapse.mm-show { display: block; } + .sidebar-wrapper h2 { + color: var(--sidebar-item-color); margin: .75rem 0 .25rem .75rem; font-weight: 400; - color: var(--sidebar-item-color); } From 523c037e70a19f1acc567d03eb319c5bdbde1b15 Mon Sep 17 00:00:00 2001 From: Cliff Ford Date: Sat, 25 Oct 2025 19:36:52 +0100 Subject: [PATCH 13/27] Set css margin before color. --- build/media_source/com_admin/css/admin-help.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/media_source/com_admin/css/admin-help.css b/build/media_source/com_admin/css/admin-help.css index ec01d970f0cc3..5a7ca5cfde236 100644 --- a/build/media_source/com_admin/css/admin-help.css +++ b/build/media_source/com_admin/css/admin-help.css @@ -57,7 +57,7 @@ } .sidebar-wrapper h2 { - color: var(--sidebar-item-color); margin: .75rem 0 .25rem .75rem; + color: var(--sidebar-item-color); font-weight: 400; } From 007b0bba3873e01de4ddab03733cbc27f2dfad21 Mon Sep 17 00:00:00 2001 From: Cliff Ford Date: Sun, 26 Oct 2025 18:46:33 +0000 Subject: [PATCH 14/27] Removed class from toc-build.php, revised js and css. --- .../com_admin/tmpl/help/default.php | 6 +- .../com_admin/tmpl/help/toc-build.php | 130 +++++++----------- .../media_source/com_admin/css/admin-help.css | 20 ++- .../com_admin/js/admin-help.es6.js | 58 +++++--- 4 files changed, 113 insertions(+), 101 deletions(-) diff --git a/administrator/components/com_admin/tmpl/help/default.php b/administrator/components/com_admin/tmpl/help/default.php index 35e539bd62613..39cb0bc598ce8 100644 --- a/administrator/components/com_admin/tmpl/help/default.php +++ b/administrator/components/com_admin/tmpl/help/default.php @@ -21,9 +21,7 @@ ->useStyle('com_admin.admin-help'); // Get the HTML for the Table of Contents from a separate file. -require_once 'toc-build.php'; -$tocBuilder = new Toc(); -$toc = $tocBuilder->getToc(); +include_once 'toc-build.php'; ?>
    @@ -33,7 +31,7 @@ -
    diff --git a/administrator/components/com_admin/tmpl/help/toc-build.php b/administrator/components/com_admin/tmpl/help/toc-build.php index 72a77e849f1b6..5c8b6ba09dc73 100644 --- a/administrator/components/com_admin/tmpl/help/toc-build.php +++ b/administrator/components/com_admin/tmpl/help/toc-build.php @@ -13,18 +13,20 @@ // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; -// Include the $menu as a php array. -include __DIR__ . '/toc-src.php'; // phpcs:enable PSR1.Files.SideEffects -// Initialise variables used the Help men. -$tocid = 1000; -$toclevel = 1; -$liid = 0; -$firstpass = true; +function renderHelpMenu(): string +{ + include __DIR__ . '/toc-src.php'; + + // Initialise variables used the Help men. + $tocid = 1000; + $toclevel = 1; + $liid = 0; + $firstpass = true; -// Compose the menu. -$toc = buildMenu($menu, $tocid, $toclevel, $liid, $firstpass); + return buildMenu($menu, $tocid, $toclevel, $liid, $firstpass); +} function buildMenu(array &$items, int &$tocid, int &$toclevel, int &$liid, bool $firstpass = false): string { From 1c3c84748d1b83993fd9ee3de173479b7be6c808 Mon Sep 17 00:00:00 2001 From: Cliff Ford Date: Tue, 28 Oct 2025 12:20:18 +0000 Subject: [PATCH 18/27] Recoded to avoid function in template. --- .../com_admin/src/View/Help/HtmlView.php | 17 ++++ .../com_admin/tmpl/help/default.php | 11 ++- .../com_admin/tmpl/help/toc-build.php | 85 ++++++------------- 3 files changed, 54 insertions(+), 59 deletions(-) diff --git a/administrator/components/com_admin/src/View/Help/HtmlView.php b/administrator/components/com_admin/src/View/Help/HtmlView.php index 8bc015bbc49b4..f9663e7b29ffb 100644 --- a/administrator/components/com_admin/src/View/Help/HtmlView.php +++ b/administrator/components/com_admin/src/View/Help/HtmlView.php @@ -83,4 +83,21 @@ protected function addToolbar(): void { ToolbarHelper::title(Text::_('COM_ADMIN_HELP'), 'support help_header'); } + + /** + * Method to render a given level of a menu using provided layout file + * + * @param string $layoutFile The layout file to be used to render + * @param array $menu The menu to render the children of + * + * @return void + * + * @since 3.8.0 + */ + public function renderSubmenu($layoutFile, $menu) + { + if (is_file($layoutFile)) { + require $layoutFile; + } + } } diff --git a/administrator/components/com_admin/tmpl/help/default.php b/administrator/components/com_admin/tmpl/help/default.php index 231856a861bb8..07c63d585a8a9 100644 --- a/administrator/components/com_admin/tmpl/help/default.php +++ b/administrator/components/com_admin/tmpl/help/default.php @@ -21,7 +21,10 @@ ->useStyle('com_admin.admin-help'); // Get the HTML for the Table of Contents from a separate file. -include_once 'toc-build.php'; +include_once 'toc-src.php'; + +$this->firstpass = 0; +$this->toclevel = 0; ?>
    @@ -34,7 +37,11 @@
    diff --git a/administrator/components/com_admin/tmpl/help/toc-build.php b/administrator/components/com_admin/tmpl/help/toc-build.php index 5c8b6ba09dc73..503bb5d94c324 100644 --- a/administrator/components/com_admin/tmpl/help/toc-build.php +++ b/administrator/components/com_admin/tmpl/help/toc-build.php @@ -15,66 +15,37 @@ \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects -function renderHelpMenu(): string -{ - include __DIR__ . '/toc-src.php'; - - // Initialise variables used the Help men. - $tocid = 1000; - $toclevel = 1; - $liid = 0; - $firstpass = true; - - return buildMenu($menu, $tocid, $toclevel, $liid, $firstpass); +// Increase the toclevel on entry +$this->toclevel += 1; +if ($this->toclevel > 1) { + $collapse = ' mm-collapse'; + echo "
    \n"; +// On return decrease the toclevel +$this->toclevel -= 1; From c5c47559d0025d56855a2fe1e281bb4bf1edc711 Mon Sep 17 00:00:00 2001 From: Cliff Ford Date: Tue, 28 Oct 2025 12:23:50 +0000 Subject: [PATCH 19/27] Fixed php missing spaces. --- administrator/components/com_admin/tmpl/help/default.php | 2 +- administrator/components/com_admin/tmpl/help/toc-build.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/administrator/components/com_admin/tmpl/help/default.php b/administrator/components/com_admin/tmpl/help/default.php index 07c63d585a8a9..c73b90af0febd 100644 --- a/administrator/components/com_admin/tmpl/help/default.php +++ b/administrator/components/com_admin/tmpl/help/default.php @@ -39,7 +39,7 @@
      renderSubmenu(JPATH_ADMINISTRATOR .'/components/com_admin/tmpl/help/toc-build.php', $menu); + $this->renderSubmenu(JPATH_ADMINISTRATOR . '/components/com_admin/tmpl/help/toc-build.php', $menu); ?>
    diff --git a/administrator/components/com_admin/tmpl/help/toc-build.php b/administrator/components/com_admin/tmpl/help/toc-build.php index 503bb5d94c324..ae5de6bb35a08 100644 --- a/administrator/components/com_admin/tmpl/help/toc-build.php +++ b/administrator/components/com_admin/tmpl/help/toc-build.php @@ -34,7 +34,7 @@ echo "{$icon}{$wrap_label}\n"; if (!empty($value)) { // Recursively build sublist. - $this->renderSubmenu(JPATH_ADMINISTRATOR .'/components/com_admin/tmpl/help/toc-build.php', $value); + $this->renderSubmenu(JPATH_ADMINISTRATOR . '/components/com_admin/tmpl/help/toc-build.php', $value); } echo "\n"; } else { From c6b917e085cb68bc26e4775fd7d0e8c97570a468 Mon Sep 17 00:00:00 2001 From: Cliff Ford Date: Tue, 28 Oct 2025 12:48:43 +0000 Subject: [PATCH 20/27] Fixed problems in HtmlView.php --- .../components/com_admin/src/View/Help/HtmlView.php | 7 +++---- administrator/components/com_admin/tmpl/help/default.php | 4 ---- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/administrator/components/com_admin/src/View/Help/HtmlView.php b/administrator/components/com_admin/src/View/Help/HtmlView.php index f9663e7b29ffb..bbef933a32287 100644 --- a/administrator/components/com_admin/src/View/Help/HtmlView.php +++ b/administrator/components/com_admin/src/View/Help/HtmlView.php @@ -43,12 +43,11 @@ class HtmlView extends BaseHtmlView protected $page = null; /** - * Table of contents + * The level of each submenu * - * @var array - * @since 1.6 + * @var integer */ - protected $toc = []; + protected $toclevel = 0; /** * Execute and display a template script. diff --git a/administrator/components/com_admin/tmpl/help/default.php b/administrator/components/com_admin/tmpl/help/default.php index c73b90af0febd..670a4745ae585 100644 --- a/administrator/components/com_admin/tmpl/help/default.php +++ b/administrator/components/com_admin/tmpl/help/default.php @@ -11,7 +11,6 @@ defined('_JEXEC') or die; use Joomla\CMS\Language\Text; -use Joomla\Component\Admin\Administrator\View\Help\Toc; /** @var \Joomla\Component\Admin\Administrator\View\Help\HtmlView $this */ @@ -23,9 +22,6 @@ // Get the HTML for the Table of Contents from a separate file. include_once 'toc-src.php'; -$this->firstpass = 0; -$this->toclevel = 0; - ?>
    From d73297564560353bf62a75edceb9cfc392468910 Mon Sep 17 00:00:00 2001 From: Cliff Ford Date: Tue, 28 Oct 2025 15:30:54 +0000 Subject: [PATCH 21/27] Fixed JavaScript affecting 'active' removal. --- .../com_admin/js/admin-help.es6.js | 65 +++++++++---------- 1 file changed, 31 insertions(+), 34 deletions(-) diff --git a/build/media_source/com_admin/js/admin-help.es6.js b/build/media_source/com_admin/js/admin-help.es6.js index 5189a41712ad7..4217a70bb2c89 100644 --- a/build/media_source/com_admin/js/admin-help.es6.js +++ b/build/media_source/com_admin/js/admin-help.es6.js @@ -7,46 +7,44 @@ document.addEventListener("DOMContentLoaded", function (event) { new MetisMenu('#helpmenu', { toggle: true }); - const helpIndex = document.getElementById('helpmenu'); if (helpIndex) { - helpIndex.querySelectorAll('a').forEach(element => - element.addEventListener('click', () => { - window.scroll(0, 0); - if (element.classList.contains('has-arrow')) { - // 🔸 Action for a link to a folder, where + helpIndex.querySelectorAll('a').forEach(element => element.addEventListener('click', () => { + window.scroll(0, 0); + if (element.classList.contains('has-arrow')) { + // 🔸 Action for a link to a folder, where + helpIndex.querySelectorAll('a.has-arrow').forEach(a => { + // Remove 'active' from all collapsed folders. if (element.classList.contains('mm-collapsed')) { element.classList.remove('active'); - } else { - element.classList.add('active'); - } - } else { - // Action for a link to an article. - const id = element.dataset.id; - if (id) { - // First, reset all other links to default state - helpIndex.querySelectorAll('a:not(has-arrow)').forEach(a => { - if (a.dataset.id !== id) { - a.classList.remove('active'); - a.removeAttribute('aria-current'); - } else { - element.classList.add('active'); - a.setAttribute('aria-current', 'page'); - } - }); } - localStorage.setItem('helpIndex.lastClick', id); + }); + } else { + // Action for a link to an article. + const id = element.dataset.id; + if (id) { + // First, reset all other links to default state + helpIndex.querySelectorAll('a:not(has-arrow)').forEach(a => { + if (a.dataset.id !== id) { + a.classList.remove('active'); + a.removeAttribute('aria-current'); + } else { + element.classList.add('active'); + a.setAttribute('aria-current', 'page'); + } + }); + } + localStorage.setItem('helpIndex.lastClick', id); - // In narrow screens, close the help menu after selecting an item. - const btn = document.querySelector('button[data-bs-target="#help-index"]'); - const isVisible = !!(btn && btn.offsetParent !== null); - if (isVisible) { - document.querySelector(`nav#help-index`).classList.add('collapse'); - document.querySelector(`nav#help-index`).classList.remove('show'); - } + // In narrow screens, close the help menu after selecting an item. + const btn = document.querySelector('button[data-bs-target="#help-index"]'); + const isVisible = !!(btn && btn.offsetParent !== null); + if (isVisible) { + document.querySelector(`nav#help-index`).classList.add('collapse'); + document.querySelector(`nav#help-index`).classList.remove('show'); } - }) - ); + } + })); } // Async restore function @@ -55,7 +53,6 @@ document.addEventListener("DOMContentLoaded", function (event) { if (!lastClick) { lastClick = 'start-here'; } - const selectedLink = helpIndex.querySelector(`a[data-id="${lastClick}"]`); if (!selectedLink) return; From 7aca11fe10956332a83e659dd95da8b29b64ffa4 Mon Sep 17 00:00:00 2001 From: Cliff Ford Date: Tue, 28 Oct 2025 20:17:05 +0000 Subject: [PATCH 22/27] Fixed layout problems. --- .../components/com_admin/tmpl/help/default.php | 4 ++-- build/media_source/com_admin/css/admin-help.css | 15 ++++++--------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/administrator/components/com_admin/tmpl/help/default.php b/administrator/components/com_admin/tmpl/help/default.php index 670a4745ae585..bed80fa31b04e 100644 --- a/administrator/components/com_admin/tmpl/help/default.php +++ b/administrator/components/com_admin/tmpl/help/default.php @@ -26,13 +26,13 @@
    -