タグ付けされた質問 「hooks」

コードを編集せずにモジュールの機能を拡張できるメカニズムに使用します。

3
hook_init()はまだ使用されていますか?使用されなくなった場合、hook_init()を実装するコードをどのように変換しますか?
Drupal.orgのAPIに見ると、私はそれに気づいhook_init()が変更レコードを見るとDrupalの8のために文書化されていない、私が見つかりました。ブートストラップは、もはや存在しフックしないためのポイント、すべての「ブートストラップ」のフックを取り除く、ブートストラップフックをであると言われているhook_boot()とhook_exit()、何も言われていませんhook_init()。 Drupal 8のソースでhook_initを検索したところ、次のコードが見つかりました。1つ目はhook_init()、コメントへの参照です。他の2つはhook_init()実装のように見えますが、どちらも私が予期していないパラメーターを受け取ります。 function overlay_enable() { if (strpos(current_path(), 'admin/modules') === 0) { // Flag for a redirect to <front>#overlay=admin/modules on hook_init(). $_SESSION['overlay_enable_redirect'] = 1; } } /** * Implements hook_init(). */ function phptemplate_init($template) { $file = dirname($template->filename) . '/' . $template->name . '.theme'; if (file_exists($file)) { include_once DRUPAL_ROOT . '/' …
10 8  hooks 

3
新しいモジュールを、正常に機能させるために必要なDrupal 7の最小バージョンに依存させるにはどうすればよいですか?
まったく新しいモジュールを開発しています(まだ使用しているサイトはありません)。hook_taxonomy_term_view()Drupalコアバージョン7.17で導入されたフックを使用するため、特定のDrupalバージョンが必要です。 たとえば、Drupal 7.16または以前のバージョンのDrupalコアを使用しているサイトでモジュールが有効にならないようにしたい。Drupalのより高いバージョン(7.17以上)で問題ありません。 私の質問:モジュールを最小にするDrupal 7.17バージョンにモジュールを依存させるにはどうすればよいですか? 注:モジュールが既にインストールされているサイトのソリューションは必要ありません(心配する必要はありません)。したがって、このような7.17より前のDrupalバージョンでは、なんらかの方法で無効にする必要はありません。
10 hooks 

1
相互作用しないフック間でデータを渡すにはどうすればよいですか?
相互に作用しないフック間、またはメニューコールバックとフック間でデータを渡すにはどうすればよいですか? 2つのフックに共通のパラメーターがあり、そのパラメーターが参照によって渡される場合、それは簡単です。フック、またはメニューコールバックとフックが共通のパラメーターを取得しない場合はどうすればよいですか?
10 hooks 

1
テーマフックとモジュールフック
フックを適用しようとするとき、それがモジュールファイル内にあることに気づくために、 テーマのtemplate.phpファイル、またはモジュールのフックに実装できるフックを知る方法はありますか?
10 hooks 

4
JSとCSSをnode / editや他のフォームに追加する正しい方法
私はたくさんのJSを含むサイトを作成していて、JSコードをどこに配置すればよいか疑問に思っています。最適には、テーマレイヤーではなく各モジュールでJSを保持したいと思います。一部のコンテンツはブロックなどとして公開される可能性があります。 しかし、キャッシュに関していくつか問題があります。私の例では、JSとCSSをノード編集フォームに追加する必要があります。hook_block_viewを使用しましたが、キャッシュされています。したがって、ノード編集フォームにエラーがある場合、drupal_add_jsおよびdrupal_add_css関数は呼び出されません。同じことがhook_node_prepareにも当てはまるようです。 JS&CSSレイヤーはどこに入力しますか?そして、ノード編集フォームにエラーがある場合でも呼び出されるフックはありますか?
10 theming  hooks 


2
モジュールをアンインストールするときにすべての変数を削除する最良の方法
私はいくつかの変数(コンテンツタイプごとに3つ、4つの変数など)を書き込むモジュールを作成しています。 hook_uninstallでそれらを削除するには、どの方法を使用すればよいですか? 「mymodule_ *」変数を検索してクエリを実行しても安全ですか? または、コンテンツタイプと検索変数をループする必要があるので、variable_delを何度も呼び出しますか?

1
フックがDrupalによって呼び出されない
モジュールを開発していますが、追加しているフックはDrupalから呼び出されません。複数のフックで発生します。 フックのドキュメントを読みましたが、これが発生する理由を説明するものは何も見つかりません。正しいパラメーターを使用していて、正しい値を返していることを確認しました。 何が悪いのですか?不足しているものはありますか?
9 hooks 

1
hook_node_presaveを使用してフィールドの値を変更する方法
基本的に、名と姓を$ node-> field_par_contact_nameにまとめます しかし、それは私に警告を与えます。(下記参照) function Leadership_node_presave($ node){ if($ node-> type == 'partnership'){ $ first_name = $ node-> field_par_contact_first_name ['und'] [0] ['name']; $ surname = $ node-> field_par_contact_surname ['und'] [0] ['name']; // https://drupal.org/project/field_hidden //非表示の変数 $ node-> field_par_contact_name ['und'] [0] ['value'] = $ first_name。「」。$姓; //保存後の警告:array_flip():STRING値とINTEGER値のみを反転できます!DrupalDefaultEntityController-> load()(... / drupal-7.23 / includes / entity.incの173行目) …
9 hooks 

3
ノード/編集ページのwysiwyg apiプラグインに必要な追加のJavaScriptファイルをどのようにロードしますか?
サポートされているエディターのツールバーにボタンを追加するDrupal 7のWYSIWYG APIモジュールを使用してプラグインを構築しています。 私が使用しているhook_wysiwyg_plugin()エディタのツールバーに新しいボタンを作成するためのフックを私はいくつかの他のJavaScriptファイルをロードする必要があります。このhook_wysiwyg_plugin()フックでは、JSファイルとCSSファイルを1つ指定できるようです。 プラグインJavaScriptに必要な追加のJavaScriptファイルをロードするにはどうすればよいですか? hook_library()ライブラリ、つまりjs / cssファイルを定義するために実装しましたが、それをwysiwyg apiに接続してノード/編集画面にロードする方法がわかりませんか?
9 7  hooks  wysiwyg 

1
本文の終了タグの直前にHTMLを挿入するにはどうすればよいですか?
drupal_add_js()JavaScriptをページの下部に追加する方法と同様に、任意のHTMLコンテンツを本文の終了タグの前に挿入する最良の方法を探しています。 私はWordpressの出身ですが、Wordpressではwp_footer()フックを使用してこれを実現できます。 私はの使用を調査しましたhook_page_alter()が、これがこれを行う正しい方法であるのか、またはこのタスクを達成するためのより良い方法があるのか​​と思っていました。
8 7  hooks 

3
ノードのタイトルにノードのNIDを埋め込むにはどうすればよいですか?
Automatic Nodetitlesモジュールが存在することは知っていますが、これはDrupal 7専用です。 [送信]をクリックしたときにタイトルにNIDを自動的に割り当てる方法はありますか?NIDは、送信ボタンが押されるまで存在しないことを知っています。タイトルにNIDを埋め込むにはどうすればよいですか? どのフックを使用しますか?
8 8  hooks  nodes 

4
presaveフックを使用してフィールド値をノードタイトルとして保存する方法
ノードタイプ「日」にカスタム日付フィールドがあります。ノードを保存(または編集してから保存)するときに、field_date値(公開された日付ではない)を取得して、titleフィールドに保存します。 方法を知りたいのですが、おそらくモジュールを使用して: hook_presave フィールド値を取得 タイトルをフィールド値として設定 ノードを保存
8 nodes  8  hooks  entities 

4
variable_set()イベントにフックすることは可能ですか?
システム変更イベントを追跡して、元に戻せるようにしたいと思います。variable_set()を確認すると、そのイベントにフックが提供されていないことがわかります。これを行う方法はありますか? 設定フォームにフックするように変更できますが、追跡する設定フォームがたくさんあります。variable_set()に直接フックできる場合、コードははるかに単純になります。 また、機能+ strongarmモジュールで変数の変更を追跡することもできますが、Drupal管理者がコードに触れることなく変数の履歴を参照できる方が良いです。
8 7  hooks 

4
hook_init()の代替
hook_init()ユーザーの最終アクセス時間を確認するために使用します。最終アクセス時刻が昨日である場合は、カウンターをインクリメントしていくつかの変数を設定します。 問題は、同じページの読み込みで複数回実行されることがあるためhook_init()(これはを使用して確認できますdsm())、コードが複数回実行され、誤った変数が生成されます。 なぜhook_init()複数回実行されるのですか? 私の問題への最善のアプローチは何でしょうか?別のフックを使用する必要がありますか? 私はこれについてさらに掘り下げました: hook_init()への呼び出しを検索しました(stringを検索しましたが、コアコールmodule_invoke_all('init');のみを見つけました)。これを別の方法で呼び出すことができるかどうかはわかりません。 これは私のhook_init()です function episkeptis_achievements_init(){ dsm('1st execution'); dsm('REQUEST_TIME: '.format_date(REQUEST_TIME, 'custom', 'd/m/Y H:i:s').' ('.REQUEST_TIME.')'); } そしてこれは出力です: 1st execution REQUEST_TIME: 09/07/2012 11:20:32 (1341822032) 次に、dsm()メッセージをに変更してdsm('2nd execution');再度実行すると、これは出力です。 1st execution REQUEST_TIME: 09/07/2012 11:20:34 (1341822034) 2nd execution REQUEST_TIME: 09/07/2012 11:22:28 (1341822148) コードが2回実行されていることがわかります。ただし、1回目はコードの古いコピーを実行し、2回目は更新されたコピーを実行します。2秒の時間差もあります。 これはphp 5.3.10のd7バージョンです
8 7  hooks 

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