| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | 
							- <?php
 
- /**
 
-  * @file
 
-  * Provide block with Workflow form.
 
-  *
 
-  * Credits to workflow_extensions module.
 
-  */
 
- /**
 
-  * Implements hook_block_info().
 
-  *
 
-  * Re-implements the block from workflow_extensions module.
 
-  */
 
- function workflow_block_info() {
 
-   $blocks['workflow_transition'] = array(
 
-     'info' => t('Workflow transition form'),
 
-     'cache' => DRUPAL_NO_CACHE, // DRUPAL_CACHE_PER_ROLE will be assumed.
 
-   );
 
-   return $blocks;
 
- }
 
- /**
 
-  * Implements hook_block_view().
 
-  */
 
- function workflow_block_view($delta) {
 
-   $block = array();
 
-   $form = array();
 
-   // @todo: how to make this work for non-nodes, like terms?
 
-   $entity = NULL;
 
-   if ((arg(0) == 'node') && (arg(1) !== NULL) ) {
 
-     $entity_type = arg(0);
 
-     $entity_id = arg(1);
 
-     $entity = entity_load_single($entity_type, $entity_id);
 
-   }
 
-   if ($entity) {
 
-     list($entity_id, , $entity_bundle) = entity_extract_ids($entity_type, $entity);
 
-     if (is_null($field_name = workflow_get_field_name($entity, $entity_type, NULL, $entity_id))) {
 
-       return $block;
 
-     }
 
-     // Get the current sid.
 
-     $current_sid = workflow_node_current_state($entity, $entity_type, $field_name);
 
-     $current_state = ($current_sid) ? workflow_state_load_single($current_sid) : NULL;
 
-     $workflow = ($current_state) ? $current_state->getWorkflow() : NULL;
 
-     if (!$workflow) {
 
-       return $block;
 
-     }
 
-     // Show the current state and the Workflow form to allow state changing.
 
-     // N.B. This part is replicated in hook_node_view, workflow_tab_page, workflow_vbo, transition_edit.
 
-     // @todo: support multiple workflows per entity.
 
-     // For workflow_tab_page with multiple workflows, use a separate view. See [#2217291].
 
-     $field = _workflow_info_field($field_name, $workflow);
 
-     $field_id = $field['id'];
 
-     $instance = field_info_instance($entity_type, $field_name, $entity_bundle);
 
-     if (!$field_id) {
 
-       // This is a Workflow Node workflow. Set widget options as in v7.x-1.2
 
-       $field['settings']['widget']['comment'] = isset($workflow->options['comment_log_tab']) ? $workflow->options['comment_log_tab'] : 1; // vs. ['comment_log_node'];
 
-       $field['settings']['widget']['current_status'] = TRUE;
 
-     }
 
-     $form_id = implode('_', array('workflow_transition_form', $entity_type, $entity_id, $field_id));
 
-     $form += drupal_get_form($form_id, $field, $instance, $entity_type, $entity);
 
-     $block['content'] = $form;
 
-     if ($block['content']) {
 
-       $block['subject'] = t('Current state: @state', array('@state' => $current_state->label()));
 
-     }
 
-   }
 
-   return $block;
 
- }
 
 
  |