array( 'type' => 'form', 'weight' => 1, 'form_id' => 'my_cool_form', 'args' => array('arg_one', 'numero deux'), ), 'my_cool_step_callback' => array( 'type' => 'callback', 'weight' => 2, 'do_function' => array( 'function' => 'my_cool_execute_function', 'args' => array('arg_one', 'numero deux'), ), 'undo_function' => array( 'function' => 'my_cool_undo_function', 'args' => array('arg_one', 'numero deux'), ), ), ); } /** * Content model specific version of hook_islandora_ingest_steps(). * * XXX: Content models are not selected in a generic manner. Currently, this * gets called for every content model in the "configuration", yet the * configuration never changes. We should determine a consistent way to bind * content models, so as to consistently be able to build steps. * * @see hook_islandora_ingest_steps() */ function hook_CMODEL_PID_islandora_ingest_steps(array $form_state) { } /** * Hookable access hook. * * @param string $op * A string define an operation to check. Should be defined via * hook_permission(). * @param AbstractObject $object * An object to check the operation on. * @param object $user * A loaded user object, as the global $user variable might contain. * * @return bool|NULL * Either boolean TRUE or FALSE to explicitly allow or deny the operation on * the given object, or NULL to indicate that we are making no assertion * about the outcome. */ function hook_islandora_access($op, $object, $user) { switch ($op) { case 'create stuff': return TRUE; case 'break stuff': return FALSE; case 'do a barrel roll!': return NULL; } } /** * Content model specific version of hook_islandora_access(). * * @see hook_islandora_access */ function hook_CMODEL_PID_islandora_access($op, $object, $user) { }