Инструменты пользователя

Инструменты сайта

  • Показать исходный текст
  • История страницы
  • Ссылки сюда
  • Оставить на чай
  • Экспорт в PDF
  • Наверх

  • wiki:devel:menus

    Меню

    Меню — важная часть шаблона. Они обеспечивают доступ к функциям вики, т.е. действия. Например, они могут предоставить кнопку или ссылку для редактирования текущей страницы, доступа к последним изменениям или предложить экспортировать PDF-файл.

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

    Также доступен вводный пост в блоге.

    Доступные меню

    вид Источник Описание
    site SiteMenu определяет все действия на уровне вики, например действия, не относящиеся к одной странице. Примеры: недавние изменения, карта сайта)
    user UserMenu определяет действия, относящиеся к текущему пользователю. Примеры: Логин, Администратор.
    page PageMenu определяет действие, связанное с текущей страницей. Примеры: «Редактировать», «Показать старые версии».
    detail DetailMenu аналогично меню страницы, но связано с изображением при отображении в подробном представлении
    MobileMenu объединяет все элементы из меню «Сайт», «Пользователь» и «Страница», когда им разрешено отображение в мобильном контексте. Полезно для создания единого гамбургер-меню.

    Плагины могут расширять и изменять вышеуказанные меню, используя событие MENU_ITEMS_ASSEMBLY.

    Пункты меню

    Меню состоят из пунктов меню — объектов, наследуемых от AbstractItem.php. Пункт меню настраивает несколько свойств, которые шаблон может использовать для отображения этого элемента. Сюда входят триггерное действие, метка, значок SVG и многое другое. Пожалуйста, обратитесь к источнику чтобы узнать, какие свойства доступны..

    Плагины могут создавать свои собственные элементы и добавлять их в доступные меню с помощью события MENU_ITEMS_ASSEMBLY.

    Иконки

    Значок, возвращаемый методом getSVG() и заданный в $svg свойстве, должен соответствовать следующим ограничениям:

    • Он должен быть в формате SVG.
    • Размер файла должен быть меньше 2 КБ.
    • Он должен содержать только один объект пути.

    Цвет заливки пути будет установлен CSS шаблона при его использовании.

    Чтобы соответствовать стилю других значков, рекомендуется либо выбрать значок из огромного бесплатного выбора на https://materialdesignicons.com/, либо придерживаться рекомендаций по дизайну материалов при разработке собственного значка..

    Добавление меню в шаблоны

    Меню, упомянутые выше, создают их экземпляры и либо используют один из удобных методов, либо просто вызывают getItems() и перебирают объекты элементов.

    Пример: чтобы интегрировать UserMenu в виде списка ссылок, используйте это:

    echo (new \dokuwiki\Menu\UserMenu())->getListItems();

    Выпадающее меню для мобильных устройств можно добавить следующим образом:

    echo (new \dokuwiki\Menu\MobileMenu())->getDropdown();

    Пожалуйста, обратитесь к источнику, чтобы узнать, что еще доступно.

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

    $items = (new \dokuwiki\Menu\PageMenu())->getItems();
    foreach($items as $item) {
      echo '<li>'
          .'<a href="'.$item->getLink().'" title="'.$item->getTitle().'">'
          .'<span class="icon">'.inlineSVG($item->getSvg()).'</span>'
          . '<span class="a11y">'.$item->getLabel().'</span>'
          . '</a></li>';
    }

    Устаревшая поддержка

    С появлением системы меню следующие функции стали устаревшими. Авторам шаблонов и плагинов следует обязательно заменить их в ближайшее время:

    • tpl_button()
    • tpl_actionlink()
    • tpl_get_action()
    • tpl_actiondropdown()
    • tpl_toolsevent()

    Обсуждение

    Ваш комментарий:

    Внимание! Оставляя комментарий Вы соглашаетесь с пониманием и несете ответственность за свои действия гл.2 ст.18 Федерального закона №38-ФЗ «О рекламе» и ст.3 п.1 Федерального закона №152-ФЗ «О персональных данных»
    166 +0 =
     
    wiki/devel/menus.txt · Последнее изменение: 2023/09/03 05:10 — vladpolskiy