Документация к компонентам

Документация к компонентам

Компонент, открытый исходный код

Компонент позволяет выводить документацию к сторонним компонентам. Для этого разработчику компонента достаточно создать html страницы с документацией и разместить их в папке компонента. Так как предполагается, что документация нужна только в административной части сайта, то просмотр документации доступен только администраторам сайта на странице your_site.site/ihelps.

Файловая структура документации проста. Создаете папку, например для компонента Капча smCaptcha это будет smcaptcha. Название папки может быть любым, но главное, чтобы не пересекалось с другими компонентами. Поэтому лучше всего использовать для названия папки системное имя компонента. В ней должно быть два обязательных файла: component_options.php и index.tpl.php. Дополнительно сюда можно добавить файл styles.css с дополнительными css классами и папку «images» с картинками используемыми в документации. По умолчанию к странице грузятся стили и яваскрипты bootstrap, поэтому можно максимально использовать его разметку. Например, чтобы сделать картинку кликабельной можно вывести такой код

  1. <div class="col col-sm-6 col-md-4 col-lg-2 mb-3">
  2. <a class="ajax-modal" href="<?= $images_path; ?>image1.jpg">
  3. <img class="img-fluid img-thumbnail" src="<?= $images_path; ?>image1.jpg">
  4. </a>
  5. </div>

где, <?= $images_path; ?> автоматически заменится на полный путь к картинке вашей папки «images».

В component_options.php указывается метод get_options_smcaptcha() который возвращает массив описания документации компонента. Данные этого массива используются на главной странице документации и в «хлебных крошках». В названии метода smcaptcha это название вашей папки. В массиве указываются заголовок (title), описание (description) и название картинки в папке «images», если есть. 

В index.tpl.php можно прописать сразу html-код с документацией к компоненту. Либо простое общее описание, а полное описание разбить на несколько файлов с любыми названиями. К этим страницам можно будет отдельно обращаться по ссылке «Помощь».

Если в начале файла ...tpl.php разместить такой код с комментариями

  1. <?php
  2. /**
  3.  * Template Name: 0. Главная
  4.  * Template Type: index
  5.  */
  6. ?>

то из этих данных будет автоматически создано оглавление с сортировкой по «Template Name». Причем в «Template Type» указывается название этого файла без окончания .tpl.php. Сам файл index.tpl.php в оглавлении не участвует.

В файле шаблона доступны такие переменные:

  1. <?php
  2. /**
  3.  * Доступные переменные:
  4.  * $component - опции с заголовком и описанием компонента
  5.  * $images_path - путь к папке с картинками компонента
  6.  * $name - системное имя компонента (smcaptcha)
  7.  * $slug - запрашиваемая страница документации в выбранном компоненте (index)
  8.  * $files - массив со списком файлов документации данного компонента
  9.  * $config - настройки всего сайта
  10.  */
  11. ?>

Для того, чтобы пользователь смог быстро обратиться к документации, необходимо вывести ссылки любым доступным способом. Например для вывода в хлебных крошках админки можно использовать такой код:

  1. if (cmsCore::isControllerExists('ihelps')){
  2.  
  3. $template->addMenuItem('breadcrumb-menu', [
  4. 'title' => LANG_HELP,
  5. 'url' => href_to('ihelps', 'smcaptcha'),
  6. 'options' => [
  7. 'icon' => 'question-circle',
  8. 'class' => 'ajax-modal'
  9. ]
  10. ]);
  11.  
  12. $template->addMenuItem('breadcrumb-menu', [
  13. 'title' => LANG_IHELPS_DOCUMENTATION,
  14. 'url' => href_to('ihelps', 'smcaptcha'),
  15. 'options' => [
  16. 'target' => '_blank',
  17. 'icon' => 'bookmark'
  18. ]
  19. ]);
  20.  
  21. }
  22.  

Этот код проверит наличие данного компонента и если он есть, то выведет две ссылки. Первая будет открываться в модальном окне, а вторая будет вести на главную страницу документации данного компонента в отдельном окне. Для компонента с капчей этот код прописывается в файле system\controllers\smcaptcha\backend\forms\form_options.php. В данном конкретном случае файл один и поэтому ссылка будет открывать одну и ту же страницу документации. Но первая ссылка может вести на конкретную страницу, например для конструктора форм ссылка на страницу опций поля будет выглядеть так:

  1. href_to('ihelps', 'iforms', ['field_options'])

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

Нет сообщений...
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.