web-dev-qa-db-ja.com

Drupalページ読み込み時にオーバーレイされる7ユーザー登録フォーム

私の要件の1つは、ユーザー登録フォームをオーバーレイのようなインターフェースで表示することです。

サンプルモジュールの問題キューから、コメント#14 http://drupal.org/node/930058 モジュールを見つけ、hook_admin_paths()とhook_admin_paths_alter()を学習しました。そのモジュールを私のローカルテストサイトにインストールしました。 _"user/register"_パスをhook_admin_paths()の_$paths_に追加し、オーバーレイを使用する権限を付与しました。これはクリックイベントで期待どおりに機能しますが、私の要件はonpageloadイベントのオーバーレイをトリガーすることです。

_scripts[] = myoverlay.js_の設定により、hook_overlay_parent_initialize()およびモジュールの情報ファイルからクリックイベントをトリガーするjsスクリプトを呼び出してみました。

Jsスクリプトは次のようになります。

_(function ($) {

Drupal.behaviors.loginLoad = {
  attach: function (context, settings) {
    alert("trigger client event"); // works 
    $(".menu-589 a").attr("title", "click"); // works
    $(".menu-589 a").trigger("click"); 
    // This one didn't work. Tried triggerHandler() and click() as well.
  }
};

})(jQuery);
_

私のjQueryの専門知識は非常に限られています。 onclickイベントでオーバーレイがどのように起動するかを理解しようとしています。

私が学んだことから、オーバーレイで開くパスは_Drupal.settings.overlay.paths.admin_で定義されています。そしてoverlay-parent.jsとjQuery BBQは、いくつかのトリックを実行して、モーダルウィンドウに表示します。

これを理解するための助けがあれば高く評価されます。

補足:Drupal 6プロジェクトの場合、onclickイベントでモーダルフレームAPIモジュールを頻繁に使用しました。このモジュールはDrupal 7とコアのオーバーレイのために非推奨になりますオーバーレイはAPIモジュールですか?私の経験ではそうではないようです。

5
Sivaji

Flocknote の場合、特定のページにログインしていないユーザーのために読み込まれるオーバーレイ内に登録フォーム/ページを配置する必要がありました。次に例を示します。 http://www.flocknote.com/community

匿名ユーザーとしてそのページにアクセスすると、いくつかのURLパラメーター、つまり_?reg=true#overlay=register/overlay/246_が追加されていることがわかります。 「#overlay = path/to/node」を追加すると、オーバーレイでページが開くはずです。 (「reg」変数を使用して他に何をしていたのか思い出せません。)

基本的に、カスタムモジュールのhook_init()実装内で、「ユーザーが匿名で、これがネットワークノードのホームページである場合、drupal_goto()と同じURLですが、フラグメント_overlay=register/overlay/[nid]_が追加されました。」

これは私にとってはうまくいくようです。

1
geerlingguy

私はあなたがこのサイトのようなものを必要としています http://www.hospitalsreview.com/ はサインアップのために行いました、あなたは私のモジュールを試す必要があります地点。

サインアップモジュール

1