私の要件の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モジュールですか?私の経験ではそうではないようです。
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]
_が追加されました。」
これは私にとってはうまくいくようです。
私はあなたがこのサイトのようなものを必要としています http://www.hospitalsreview.com/ はサインアップのために行いました、あなたは私のモジュールを試す必要があります地点。