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..bbef933a32287 100644 --- a/administrator/components/com_admin/src/View/Help/HtmlView.php +++ b/administrator/components/com_admin/src/View/Help/HtmlView.php @@ -43,20 +43,11 @@ class HtmlView extends BaseHtmlView protected $page = null; /** - * The iso language tag + * The level of each submenu * - * @var string - * @since 1.6 - */ - protected $languageTag = null; - - /** - * Table of contents - * - * @var array - * @since 1.6 + * @var integer */ - protected $toc = []; + protected $toclevel = 0; /** * Execute and display a template script. @@ -73,10 +64,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(); @@ -94,4 +82,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 14e0a81b9833f..bed80fa31b04e 100644 --- a/administrator/components/com_admin/tmpl/help/default.php +++ b/administrator/components/com_admin/tmpl/help/default.php @@ -10,44 +10,39 @@ defined('_JEXEC') or die; -use Joomla\CMS\Help\Help; -use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; -use Joomla\CMS\Router\Route; /** @var \Joomla\Component\Admin\Administrator\View\Help\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ $wa = $this->getDocument()->getWebAssetManager(); -$wa->useScript('com_admin.admin-help'); +$wa->useScript('com_admin.admin-help') + ->useStyle('com_admin.admin-help'); + +// Get the HTML for the Table of Contents from a separate file. +include_once 'toc-src.php'; ?> -
-
- -
- -
+
+
+ + + +
+
+ +
- - +
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..ae5de6bb35a08 --- /dev/null +++ b/administrator/components/com_admin/tmpl/help/toc-build.php @@ -0,0 +1,51 @@ + + * @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 + +// 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; 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..5a10e8b5745e7 --- /dev/null +++ b/administrator/components/com_admin/tmpl/help/toc-src.php @@ -0,0 +1,280 @@ + + * @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", + "License" => "COM_ADMIN_HELP_LICENSE", + "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", + ], + "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", + "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:_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:_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:_Edit" => "NEWS_FEEDS:_EDIT", + "News_Feeds:_Categories" => "NEWS_FEEDS:_CATEGORIES", + "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:_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", + "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", + "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:_Review_Information_Request" => "PRIVACY:_REVIEW_INFORMATION_REQUEST", + "Privacy:_Options" => "PRIVACY:_OPTIONS", + ], + "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:_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" => [ + "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_Tour" => "GUIDED_TOURS:_NEW_OR_EDIT_TOUR", + "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", + "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", + ], + ], +]; 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/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..8edaa57fa4f31 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" @@ -78,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="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" @@ -85,25 +90,31 @@ 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" 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" +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 +166,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 +177,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 +185,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 +209,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,16 +218,19 @@ 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_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" @@ -224,10 +242,10 @@ 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" -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" 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/css/admin-help.css b/build/media_source/com_admin/css/admin-help.css new file mode 100644 index 0000000000000..e1df8e2960fb3 --- /dev/null +++ b/build/media_source/com_admin/css/admin-help.css @@ -0,0 +1,81 @@ +@charset "UTF-8"; +#help-sidebar { + min-width: 18rem; +} + +#help-index.main-nav, #help-index ul { + padding-left: 0; + background-color: var(--sidebarwrapper-bg); + inline-size: 18rem; + max-inline-size: 18rem; +} + +#help-index ul .mm-show { + background-color: var(--main-nav-mm-active-bg); +} + +#helpmenu .has-arrow .item-title { + margin-inline-end: auto; +} + +#helpmenu .has-arrow:after { + display: flex; +} + +.closed #helpmenu li, .closed #helpmenu a:hover { + max-inline-size: 18rem; +} + +#help-index.sidebar-wrapper .item > a { + align-items: baseline; + padding-top: 8px; + padding-bottom: 2px; +} + +#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-index a.active { + background-color: var(--sidebar-item-bg-hvr); +} + +.helpmenu .mm-collapse { + display: none; +} + +.helpmenu .mm-collapse.mm-show { + display: block; +} + +#help-index .sidebar-wrapper .item a:hover { + color: var(--sidebar-item-color-hvr); + text-decoration: none; + background-color: var(--sidebar-item-bg-hvr); +} + +#help-index h2 { + padding: .75rem 0 .25rem .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" } ] } 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..8eeed3c5ab86f 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,124 @@ * @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').forEach(element => element.addEventListener('click', () => { + 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 { + // 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'); + } + }); + window.scroll(0, 0); + } + 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'); + } + } + })); + } + + // Async restore function + function restoreMenu() { + let lastClick = localStorage.getItem('helpIndex.lastClick'); + if (!lastClick) { + lastClick = 'start-here'; + } + const selectedLink = helpIndex.querySelector(`a[data-id="${lastClick}"]`); + if (!selectedLink) return; + + // Collect parent list items top-down + const lists = []; + let parentLi = selectedLink.closest('li'); + while (parentLi && parentLi !== helpIndex) { + const parentUl = parentLi.parentElement; + const parentLiOfUl = parentUl.closest('li'); + if (parentLiOfUl) { + const li = parentLiOfUl; + if (li) lists.unshift(li); + } + parentLi = parentLiOfUl; + } + + // Trigger clicks in sequence + for (const li of lists) { + li.classList.add('mm-active'); + li.querySelector('ul').classList.add('mm-show'); + li.querySelector('a').classList.add('active'); + li.querySelector('a').setAttribute('aria-expanded', true); + } + + // Optional: highlight selected link + selectedLink.classList.add('active'); + selectedLink.setAttribute('aria-current', 'page'); + + // Give the submenu a moment to fully render before clicking + selectedLink.click(); + } + + // Run restore after MetisMenu setup delay + restoreMenu(); +}); + +// Define Bootstrap breakpoints (in pixels) +const breakpoints = { + //sm: 576, + md: 768, + //lg: 992, + //xl: 1200, + //xxl: 1400 +}; + +// Function to determine the current breakpoint +function getCurrentBreakpoint() { + const width = window.innerWidth; + if (width < breakpoints.sm) return 'xs'; + if (width < breakpoints.md) return 'sm'; + if (width < breakpoints.lg) return 'md'; + if (width < breakpoints.xl) return 'lg'; + if (width < breakpoints.xxl) return 'xl'; + return 'xxl'; } + +let currentBreakpoint = getCurrentBreakpoint(); +let resizeTimeout; + +window.addEventListener('resize', () => { + clearTimeout(resizeTimeout); + + resizeTimeout = setTimeout(() => { + const newBreakpoint = getCurrentBreakpoint(); + + if (newBreakpoint !== currentBreakpoint) { + // Breakpoint changed — reload the page + location.reload(); + } + }, 300); // delay in ms after resizing stops +});