batch_set

7 form.inc

batch_set($batch_definition)

バッチ処理を生成します。

パラメータ

$batch_definition: バッチを定義する配列です。以下のキーが使用できます。'operations' だけは必須です。batch_init() はデフォルトのメッセージを提供します。

  • 'operations': 実行する関数の配列です。例:
    <?php
      array(
        array('my_function_1', array($arg1)),
        array('my_function_2', array($arg2_1, $arg2_2)),
      )
    ?>
  • 'title': 進捗状況ページのタイトルです。文字列は事前にサニタイズされている必要があります。デフォルトは t('Processing') です。
  • 'init_message': 処理が初期化されたときに表示されるメッセージです。デフォルトは t('Initializing.') です。
  • 'progress_message': バッチ処理が行われている間表示されるメッセージです。使用可能なプレースホルダは @current、@remaining、@total、@percentage、@estimate、@elapsed です。デフォルトは t('Completed @current of @total.') です。
  • 'error_message': バッチ処理の途中でエラーが発生した際に表示されます。デフォルトは t('An error has occurred.') です。
  • 'finished': バッチ処理がすべて完了した際にコールされる関数名です。これはあらゆる結果メッセージを施すのに使われます。それは最終的なリダイレクトページで表示させるため、$_SESSION に保存されます。
  • 'file': メインの .module ファイル以外で 'operations' 関数、 'finished' 関数を定義している場合、それらの関数を定義するファイルが置かれているパスを指定します。base_path() からの相対パスで指定してください。drupal_get_path() を使用すると良いでしょう。
  • 'css': 進捗状況のページで使用されるCSSのパスの配列です。
  • 'url_options': バッチ処理の完了後リダイレクトされるページのURLを構築するため、url() に渡されるオプションです。

これらの操作手順は新しいバッチセットとして追加されます。バッチセットはクリーンなコードの独立性を確保するために使用されます。いくつかのバッチが別のコードの一部から提出されたとしても(コア / コントリビュートモジュール)、互いに干渉することなく、正確に、確実に処理されます。それぞれのバッチセットはそれぞれのメッセージ、それぞれのオペレーションのセットとそれらの結果、それぞれの 'finished' コールバックのトリガを取りに行きます。バッチセットは連続して処理され、それぞれのセットが始まるたびに、進捗状況を示すプログレスバーがリフレッシュして表示されます。

タグ: 
コア: 
Drupal7