task handler definition: title -- visible title of the task handler. description -- description of the task handler. task type -- The type of the task this handler can service. render -- callback of the function to render the handler. The arguments to this callback are specific to the task type. admin title -- callback to render the admin title as this handler is listed. params: $handler, $task, $subtask_id admin summary -- callback to render what's in the collapsible info as the handler is listed. Optional. params: $handler, $task, $subtask_id default conf -- either an array() of default conf data or a callback that returns an array. params: $handler, $task, $subtask_id save -- callback to call just prior to the task handler being saved so it can adjust its data. params: &$handler, $update (as drupal_write_record would receive) export -- callback to call just prior to the task being exported. It should return text to append to the export if necessary. params: &$handler, $indent forms => array( 'id' => array( 'form' => form callback (receives $form, $form_state) 'submit' => submit callback 'validate' => validate callback 'include' => an optional file to include to get functionality for this form. Must include full path. 'no return' => hide the 'return' button, meaning that the form requires extra steps if submitted 'alternate next' => an alternate next form. Used for hidden edit forms that don't have tabs. 'no blocks' => if TRUE, use Drupal's mechanism to not render blocks for this form. ) ) ), 'add forms' => array( 'form1', => t('form title'), 'form2', => t('form title'), // ...etc.../ ), 'edit forms' => array( 'id' => t('tab name'), 'id2' => t('tab name'), ), If a form name is blank it is a 'hidden' form -- it has no tab but can still be reached. Notes: Because #required validation cannot be skipped when clicking cancel, please don't use it.