xandeadx.ru Блог музицирующего веб-девелопера

Drupal → Открыть страницу или форму в диалоговом окне

Опубликовано в

В восьмёрке стало значительно проще открыть любую страницу сайта или даже форму в диалоговом окне. Для этого достаточно приатачить либу core/drupal.ajax и создать ссылку с классом use-ajax и атрибутом data-dialog-type="modal":

В THEMENAME.theme:

/**
 * Preprocess function for page.twig.html.
 */
function THEMENAME_preprocess_page(&$vars) {
  $vars['#attached']['library'][] = 'core/drupal.ajax';
}

Где-то в html коде:

<a href="/node/2" class="use-ajax" data-dialog-type="modal">Open dialog</a>

Результат:

Нода в диалоговом окне
Форма добавления ноды в диалоговом окне

Настройки диалога можно прописать в атрибуте data-dialog-options в формате json:

<a ... data-dialog-options='{"width":700}'>...</a>

Способ показа контента в диалоге для Drupal 7

Написанное актуально для Drupal 8
Похожие записи

Комментарии RSS

Вопрос по data-dialog-options, с width все ясно, а как диалогу задать конкретный id или класс чтоб можно было темизировать какой-либо конкретный диалог?

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании