- Введение
- Горячие клавиши по умолчанию в Joomla 4
- Дополнительные горячие клавиши в Joomla 4
- Реализация горячих клавиш в Joomla 4
Введение.
Начиная с версии Joomla 4.2.0 (и проекта GSoC в 2021 году) пользователи могут использовать клавиатуру в админке сайта, чтобы вызвать определенные действия. Например, сохранение текущей страницы, переход на главную панель или открытие настроек. Есть также возможность просмотра всех возможных сочетаний клавиш, которые открываются при последовательном (не одновременном!) нажатии J
и X
. Если в настройках плагина не изменены параметры, нужно успеть нажать клавиши в течение 2 секунд.
Функция включена по умолчанию. Она может быть отключена или настроена в разделе Администратор → Система → Плагины → Система - Горячие клавиши. В настоящее время единственной настройкой является таймаут, как долго система будет ждать следующего нажатия клавиши. По умолчанию она ожидает 2000 миллисекунд (2 секунды).
Горячие клавиши по умолчанию в Joomla 4.
J
+A
— Сохранить текущее содержимое.J
+S
— Сохранить и закрыть.J
+Q
— Закрыть текущую страницу без сохранения.J
+N
— Нажать кнопку "Создать".J
+F
— Устанавливает фокус в поле поиска.J
+O
— Переход к настройкам.J
+H
— Открыть окно справки (может вызвать всплывающее предупреждение браузера).J
+M
— Переключение панели меню.J
+X
— Отображение списка доступных горячих клавиш.J
+D
— Переход непосредственно к главной панели инструментов админки Joomla 4.
Дополнительные горячие клавиши в Joomla 4.
Сторонние разработчики тоже могут добавлять свои горячие клавиши. Плагин Joomla 4 вызывает событие onLoadShortcuts
, которое может быть использовано и другими плагинами. Это событие необходимо добавить в список getSubscribedEvents
внутри плагина. Функция подключения может выглядеть следующим образом:
public function onLoadShortcuts(EventInterface $event): void {
$shortcuts = $event->getArgument('shortcuts');
$exampleShortcuts = array('example' => (object)['shortcut' => 'E', 'title' => 'Great Example', 'selector' => '#menu-collapse']);
$event->setArgument('shortcuts', array_merge($shortcuts, $exampleShortcuts));
}
Обратите пристальное внимание на часть array_merge
. Когда уже существующие горячие клавиши не объединяются с новыми, старые клавиши перезаписываются.
Разработчики могут предоставить массив с объектами горячих клавиш:
{ shortcut: string, selector: string, title: string }
Shortcut
должно быть клавиатурным вводом, разделенным плюсом, например, "Y
" или "ALT + Z + 7
" (в настоящее время фильтрация отсутствует). Имейте в виду, что все комбинации клавиш будут начинаться сJ
.Selector
- это CSS-селекторы или URL-адреса для указания цели. Если это элемент ввода, сочетание клавиш задает фокус, как в случае с полем поиска. В противном случае элемент будет вызван или будет произведен вызов URL.Title
будет отображаться в списке инструментов обзора. Это может быть, например, название цели.
Реализация горячих клавиш в Joomla 4.
Некоторые могут удивиться решению использовать последовательные сочетания клавиш или J
в качестве старта команды горячих клавиш вместо Ctrl
или чего-то другого. Основными причинами являются доступность и отсутствие вмешательства других программ. Например, Ctrl + S
было бы неплохо для сохранения статьи, но оно уже используется браузерами. То же самое может произойти с программами для чтения экрана, менеджерами паролей и т.д. Поэтому более безопасным вариантом было использовать что-то специфическое для Joomla, например, J
в начале.
Другая проблема заключается в том, что не всегда можно нажать несколько клавиш одновременно. В Windows для этого есть режим Sticky Key, но он работает только для клавиш-модификаторов, таких как Shift
, Ctrl
и Alt
. Поэтому плагин использует последовательный ввод с самого начала, что делает его пригодным для использования большим количеством людей даже без помощи режимов операционных систем.
Перевод с английского официальной документации Joomla 4:
https://docs.joomla.org/Keyboard_Shortcuts
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)