В любом компоненте joomla на панеле инструментов есть кнопки, сохранить, применить и.т.д Создание данных кнопок описано в создании компонента на joomla, но эти кнопки довольно хорошо описаны и их создание можно легко найти на оф сайте. Но как на счёт кнопки справка? Ни на одном русскоязычном сайте я не нашёл её описание, всё что было это лишь вызов этой кнопки, но не её действие.

 

Так вот, как то раз я подумал хорошо что у меня на сайте есть документация по компоненту, но откуда пользователь знает что она тут находится, может он скачал компонент с другого сайта. И я начал искать как сделать справку прям в компоненте. На просторах русского интернета я не нашёл, но мне подсказали как это реализовать.

И вот что нужно сделать:

JToolBarHelper::help( 'JHELP_COMPONENTS_BANNERS_BANNERS' );

Данный код размещается в виде view.html

Таким способом вызывается кнопка справки. Но это для родных компонентов joomla, а для сторонних разработчиков нужно использовать дополнительные действия. Сторонние разработчики имеют множество вариантов, касающихся местонахождения их файлов справки и справочная система предназначена для достаточно гибкой системы управления что бы удовлетворить все потребности пользователей. Первый шаг в добавлении справки вашего Joomla расширения это решить где вы хотите чтобы файлы справки будут находиться. Они будут установлены вместе с вашим расширением или они будут находиться у вас на сайте?

Если справка будет установлена вместе с компонентом то нужно писать вот такой код:

JToolBarHelper::help( 'MY_COMPONENT_HELP_VIEW_TYPE1', true );

Этот вызов будет искать MY_COMPONENT_HELP_VIEW_TYPE1 ключевым языком и использовать найденное значение, если таковые имеются, построить локальный путь к файлу справки. Например, если файл компонента /language/en-GB/en-GB.com_my_component.ini содержит пары ключ-значение

MY_COMPONENT_HELP_VIEW_TYPE1 = "view_type1"

то путь к файлу будет построен

/components/com_my_component/help/en-GB/view_type1.html

Это был способ вызова справки, которая устанавливалась вместе с компонентом. С одной стороны это удобно, но что если у вас расширение постоянно обновляется!? Люди задают вопросы! Пишут комментарии. То в этом случае справку лучше сделать у себя на сайте.

Создание справки на сайте

Если вы разрабатываете Joomla расширения и вы хотите разместить вашу помощь на вашем собственном сервере, можно полностью изменить URL предложенных Joomla, что дает вам полный контроль над расположения файлов справки. Например, предположим, у вас есть своя справка расположенная в http://joomla-umnik.ru/mana которая размещает все ответы. То в таком случае код будет выглядеть вот так:

$help_url  = 'http://www.example.com/{language}/help-server';
JToolBarHelper::help( 'MY_COMPONENT_HELP_VIEW_TYPE1', false, $help_url );

Я немного сделал под себя и у меня в компоненте код выглядит вот так.

$help_url  = 'http://joomla-umnik.ru/manual-priceleaf-pro-c1#sections1';
JToolbarHelper::help('COM_PRICELEAF_VIEW_TYPE1', false, $help_url );

Таким образом можно быстро создать справку по вашему расширению. В качестве справки могут быть использованы любые адреса, социальные сети, wiki, какой либо форум.

Так же если у вас есть несколько компонентов, можно сделать самоопределение какую справку вызвать, впрочем об этом лучше почитать на оф сайте. Я лично использовал второй способ, создал справку у себя на сайте. Всегда свежая информация. Для примера можете установить мой компонент и посмотреть как это работает, или же посмотреть родные компоненты joomla.