Да, вы можете просто передать их функции, которая объявляет пакет, и оттуда передать их каждой операции:
function mymodule_myform_submit(&$form, &$form_state) {
$var1 = $form_state['values']['var1'];
$var2 = $form_state['values']['var2'];
batch_set(mymodule_mybatch($var1, $var2));
}
function mymodule_mybatch($var1, $var2) {
$nid = db_result(db_query_range("SELECT nid FROM {node} ORDER BY nid ASC", 0, 1));
$operations = array();
for ($i = 0; $i < 100; $i++) {
$operations[] = array('mymodule_mybatch_op', array($nid, $var1, $var2));
}
$batch = array(
'operations' => $operations,
'finished' => 'mymodule_mybatch_finished',
);
return $batch;
}
function mymodule_mybatch_op($nid, $var1, $var2) {
// Perform the operation
}
function mymodule_mybatch_finished($success, $results, $operations) {
if ($success) {
$message = count($results) . ' processed.';
}
else {
$error_operation = reset($operations);
$message = 'An error occurred while processing ' . $error_operation[0] . ' with arguments :' . print_r($error_operation[0], TRUE);
}
drupal_set_message($message);
}
Очевидно, вам нужно изменить источник данных в mymodule_mybatch
в соответствии с вашими потребностями:)