なに
モジュールの本質は次のとおりです。 これにより、インストール後すぐに他のモジュールの構成ページを表示できます。 このモジュールは、複数のモジュールを一度にインストールするという素晴らしい仕事をし、依存関係に厳密に従って構成ページを表示します(依存モジュールは依存モジュールよりも前に構成されます)。 さらに、構成が必要なモジュールと一緒にインストールされている場合、モジュールも正しく機能します。 何らかのステップで設定後の作業が中断された場合、ユーザーは次にモジュールページ(admin / modules)にアクセスしたときに設定に戻ります。 セットアップは完了から続行されます。
どのように機能しますか?
それは単に不名誉に働く。 モジュールをインストールした後、PostInstallは、インストールされたモジュールのリストに、設定後を必要とするモジュールがあるかどうかを確認します。 存在する場合、インストールが完了した後、ユーザーはセットアップウィザードに移動します。 各モジュールの構成フォームは、ウィザードの個別の段階を表します。 ユーザーは、現在の段階(現在構成されているモジュール)と、合計でいくつの段階で表示されます。 構成が完了すると、ユーザーはadmin / modulesページに戻ります。
実装方法
インストール後にモジュールを構成できるようにするには、以下を行う必要があります。
- postinstallモジュールに依存するようにします(modulename.infoファイルに「dependencies [] = postinstall」という行を追加します)。
- モジュールにhook_postinstall()を実装します。
以下は、russifiedの説明とhook_postinstall()の実装方法の例を含む、postinstall.api.phpファイルのRussifiedバージョンです。
/** * * . * * @param $action * : * - form: drupal_get_form(). * submit. * . * - validate: $values * $error_messages, . * $error_messages - : * - name: ( form_set_error()). * - message: , . * - submit: Submit callback . - $values. * @param $values * ( $action == 'validate') * ( $action == 'submit'). */ function hook_postinstall($action, $values = array()) { switch ($action) { case 'form': $form = array(); $form['test'] = array( '#type' => 'textfield', '#title' => 'Test textfield' ); return $form; break; case 'validate': $error_messages = array(); if (!is_numeric($values['test'])) { $error_messages[] = array( 'name' => 'test', 'message' => t(' ') ); } return $error_messages; break; case 'submit': drupal_set_message($values['test']); break; } }
Drupal.Orgの公式プロジェクトページ: drupal.org/project/postinstall
GitHubリポジトリ: github.com/numesmat/drupal-postinstall (突然更新を忘れるようになります)