オーバーレイにコンテンツを表示するにはどうすればよいですか?


18

AJAX呼び出しから返されたコンテンツをオーバーレイまたはポップアップで表示したい。

どうすればできるのかご存知ですか?

回答:


8

Drupal 7を使用している場合は、カスタムモジュールで管理オーバーレイを使用できます。

CUSTOM_MODULE_NAME_HERE.moduleファイルに3つのフックが必要です。

/**
 * Implements hook_menu().
 */
function CUSTOM_MODULE_NAME_HERE_menu() {
  $items = array();
  $items['your/path/to/your/page'] = array(
     'page callback'    => 'CUSTOM_MODULE_NAME_HERE_page',
     'access arguments' => array('access content'),
     'type'             => MENU_NORMAL_ITEM,
  );
  return $items;
}

/**
 * Implements hook_admin_paths_alter().
 */
function CUSTOM_MODULE_NAME_HERE_admin_paths_alter(&$paths) {
    $paths['your/path/to/your/page'] = TRUE;
}

/**
 * page callback
 */
 function CUSTOM_MODULE_NAME_HERE_page(){
    $output = 'your page content';
    return $output;
}


3

最も簡単な方法は、次のことを行う単純なカスタムモジュールを実装することです。

  • hook_menu()を実装し、カスタムページコールバックを定義します
  • ページコールバックで必要なコンテンツを返します
  • お気に入りのjQueryライトボックスプラグインを含める(Drupalモジュール経由または手動で)
  • drupal_add_js()経由でカスタムjavascriptファイルを追加します
  • カスタムjavascriptファイルで、選択したイベントをバインドし、light_boxプラグインがhook_menu()のURLから外部コンテンツをロードするようにします

必要に応じてdrupal_json()を使用してフックメニューから常にJSON形式のコンテンツを返し、外部ファイルを参照する代わりにインラインhtmlとしてライトボックスに追加することができます。


2

ポップアップウィンドウとして表示ノードからこれを行う非常に簡単な方法:この種のものには多くの解決策があります。テーマレイヤーで、本当に軽いものを作成します。これには、さまざまなポップアップモジュールを使用することもできます。これを行う1つの簡単な方法は、Lightbox2モジュールを使用することです。このドキュメントページをチェックアウトしてください:http : //drupal.org/node/252260


2

オーバーレイ(ポップアップ)でページコンテンツ全体を表示するには、overlay_pathモジュールを使用します。

モジュールをインストールし、構成にオーバーレイ(ポップアップ)として表示する必要があるページのURLを含めます。


0

ここで説明したように、簡単なjqueryとcssを使用して、ajaxによって外部ページをロードできます。


ちょっとお友達、返信ありがとうございます。しかし、私はすでにこれを試しました。
サミール

1
これを行う正しい方法は、可能であればコアオーバーレイAPIを利用することです。
シヴァジ

私はバートに完全に同意します。このサイトはjquerytools.org/documentation/overlayに移動した可能性があります。
Sk8erPeter

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.