Drupal PostInstall-インストール後に他のモジュールが「調整」できるようにするモジュール

ご存知のように、一部のモジュール(たとえば、Google Analyticsなど)は、少なくとも何らかの形で機能する前に初期設定が必要です。 さらに、モジュールをインストールするときでさえ、ユーザーからの情報を見つける必要がある状況に対処する必要がある場合があります。 もちろん、Drupalでは、フックメカニズムを使用してこれをすべて行うことができます。 ただし、この問題を解決するためのインターフェイスである統一された方法を使用する方が良いと判断しました。 これらの目的のために、PostInstallと呼ばれる小さなサービスモジュールが作成されました。



なに



モジュールの本質は次のとおりです。 これにより、インストール後すぐに他のモジュールの構成ページを表示できます。 このモジュールは、複数のモジュールを一度にインストールするという素晴らしい仕事をし、依存関係に厳密に従って構成ページを表示します(依存モジュールは依存モジュールよりも前に構成されます)。 さらに、構成が必要なモジュールと一緒にインストールされている場合、モジュールも正しく機能します。 何らかのステップで設定後の作業が中断された場合、ユーザーは次にモジュールページ(admin / modules)にアクセスしたときに設定に戻ります。 セットアップは完了から続行されます。



どのように機能しますか?



それは単に不名誉に働く。 モジュールをインストールした後、PostInstallは、インストールされたモジュールのリストに、設定後を必要とするモジュールがあるかどうかを確認します。 存在する場合、インストールが完了した後、ユーザーはセットアップウィザードに移動します。 各モジュールの構成フォームは、ウィザードの個別の段階を表します。 ユーザーは、現在の段階(現在構成されているモジュール)と、合計でいくつの段階で表示されます。 構成が完了すると、ユーザーはadmin / modulesページに戻ります。



実装方法



インストール後にモジュールを構成できるようにするには、以下を行う必要があります。

  1. postinstallモジュールに依存するようにします(modulename.infoファイルに「dependencies [] = postinstall」という行を追加します)。
  2. モジュールに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 (突然更新を忘れるようになります)



All Articles