drupal 8 の標準機能のダイアログ/ポップアップを表示する方法

カテゴリ コンテンツの管理 コアバージョン 8.9.x 関連モジュール Dialog Modal Canvas

drupal 8 では モーダルダイアログ、非モーダルダイアログ、キャンバス外のダイアログ等、ページ全体をリロードする必要なしに追加情報を表示するための迅速で簡単な方法があります。

  • モーダルダイアログ:
    ページ全体に重なり、モーダルダイアログが表示されている間は他の要素をクリックできません。同時に開くことができるモーダルポップアップは1つだけです。
  • 非モーダルダイアログ:
    ポップアップしてページの上部に表示されますが、ページ上の他の要素をクリックすることもできます。複数のダイアログを同時に表示できます。
  • キャンバス外のダイアログ:
    他のコンテンツと重なるポップアップウィンドウはありませんが、他のコンテンツを横に移動することでページにスライドします。このタイプのダイアログは、ユーザーが下にスクロールする必要のある長い詳細ページなど、コンテンツのより大きな部分を表示する場合に特に役立ちます。また、キャンバス外のダイアログは、モバイルデバイスでも使用できます。

リンクに専用の属性を加えるだけで実装できます。

<a
        class="use-ajax" 
        data-dialog-options='{"width":400, "title":"ダイアログタイトル"}' 
        data-dialog-renderer="off_canvas" 
        data-dialog-type="dialog" 
        href="/node/1/edit">
    編集
</a>

Twig Tweakモジュールが有効なら

{{ drupal_link(
    '編集',
    ['/node/', raw_arguments.nid, '/edit'] | join, {
        attributes: {
            class: ['use-ajax'],
            'data-dialog-options': '{"width":"400", "title": "ダイアログタイトル"}',
            'data-dialog-type': 'dialog',
            'data-dialog-renderer': 'off_canvas'
        }
    },
    check_access=true
) }}
  • data-dialog-type:
    modal または dialog。
  • data-dialog-options:
    Drupal.dialogのオプションのJSONエンコードされた文字列。使用可能なすべてのオプションについては、http://api.jqueryui.com/dialog/ を参照してください。
  • data-dialog-renderer:
    ダイアログリンクで、ダイアログタイプに加えてレンダラーを指定できるようにします。'off_canvas'は キャンバス外のダイアログを表示する場合に必要です。
  • data-ajax-wrapper:
    AJAXを介してフェッチされたコンテンツで置き換えられるHTML要素(#なし)のIDを受け入れます。AJAXシステムはDrupal.Ajaxのラッパーの設定をすでにサポートしており、この動作は変更されていません。これで、AJAXリンクでもこれを使用できます。
  • data-ajax-progress:
    デフォルトでは、AJAXリンクはスロバープログレスインジケーターを使用していました。AJAXリンクは、このデータ属性でデフォルトをオーバーライドできるようになりました(これを「フルスクリーン」に設定するなどして)。
  • data-ajax-focus:
    フォーカスを受け取る要素をターゲットとするjQueryセレクターを受け入れます。デフォルトでは、AJAXリクエストが処理された後、フォーカスはAJAXリンクに返されます。AJAXリンクは、このデータ属性でこのデフォルトをオーバーライドできるようになりました。これは、アクセシビリティを向上させるために追加されました。

OTHER FAQ

Drupal開発・運用の疑問/質問の答えはここに

無料ユーザー登録すると質問できます。

カテゴリ降順で並び替える Core Ver. 関連モジュール タイトル
ユーザ 7.44 Password Policy 無効なユーザーを整理したい
ユーザ 7.44 Quickbar 会員の種別(役割)別にメニューを設けたい
ユーザ 7.34 ip_ranges ログインアタック対策は?
ユーザ 7.23 PHP user_load_multiple()の復帰値
ユーザの管理 7.27 PHP 新規ユーザーの追加ができない
ユーザの管理 7.59 user pass drupal 7 で 管理者(uid=1)パスワードがわからなくなったとき 新しいパスワードを設定する方法
ユーザの管理 7.50 Paypal continued billing drupal7のPaypal継続課金モジュールについて
ユーザの管理 7.15 Devel 簡単に指定ユーザにログインしなおす方法
ユーザの管理 8.9.x user pass drupal 8 で 管理者(uid=1)パスワードがわからなくなったとき 新しいパスワードを設定する方法
リバースプロキシ 8.9.x mod_proxy mod_proxy_http mod_ssl Apache2.4 から httpsサーバーへリバースプロキシする方法
ログイン 8.7.x System ユーザー アカウントロックの範囲設定
拡張機能 8.3x Contribute modules drupal8-寄贈モジュールの動向
排他 7.26 lock Viewsモジュールの設定ページのような排他機能
権限 7.50 Cron Basic認証時のCron(wget)実行方法
権限 7.15 Path_Access Content_Access 特定のページ(パス)をアクセス制限したい
表示 7.34 Views Infinite Scroll Facebookページのようにスクロールするとコンテンツが追加されるようなコントロール
表示 7.26 Views ページ内に2つ目Viewsブロックを設置するときPagerが連動してしまう
見栄え 7.15 js Injector 簡単にJavascriptを追加する方法は?
言語 7.15 Entity Translation nodeのEntity Translation
言語 7.15 Language まだ翻訳されていない英語文、どうにかならない?

ページ