function workflow_get_workflow_state_names in Workflow 8
Same name and namespace in other branches
- 7.2 workflow.module \workflow_get_workflow_state_names()
Get an options list for workflow states.
Parameters
mixed $wid: The Workflow ID.
bool $grouped: Indicates if the value must be grouped per workflow. This influences the rendering of the select_list options.
Return value
array An array of $sid => state->label(), grouped per Workflow.
4 calls to workflow_get_workflow_state_names()
- WorkflowState::init in src/Plugin/ views/ filter/ WorkflowState.php 
- Overrides \Drupal\views\Plugin\views\HandlerBase::init().
- WorkflowStateListBuilder::buildForm in src/WorkflowStateListBuilder.php 
- Form constructor.
- WorkflowStateListBuilder::buildRow in src/WorkflowStateListBuilder.php 
- Builds a row for an entity in the entity listing.
- WorkflowTransitionElement::transitionElement in src/Element/ WorkflowTransitionElement.php 
- Generate an element.
File
- ./workflow.module, line 351 
- Support workflows made up of arbitrary states.
Code
function workflow_get_workflow_state_names($wid = '', $grouped = FALSE) {
  $options = [];
  // @todo Implement $add parameter.
  //
  // @todo Follow Options pattern.
  // @see callback_allowed_values_function()
  // @see options_allowed_values()
  // Get the (user-dependent) options.
  // Since this function is only used in UI, it is save to use the global $user.
  $user = workflow_current_user();
  /** @var \Drupal\workflow\Entity\Workflow[] $workflows */
  $workflows = Workflow::loadMultiple($wid ? [
    $wid,
  ] : NULL);
  // Do not group if only 1 Workflow is configured or selected.
  $grouped = count($workflows) == 1 ? FALSE : $grouped;
  foreach ($workflows as $wid => $workflow) {
    /** @var \Drupal\workflow\Entity\WorkflowState $state */
    $state = WorkflowState::create([
      'wid' => $wid,
    ]);
    $workflow_options = $state
      ->getOptions(NULL, '', $user, FALSE);
    if (!$grouped) {
      $options += $workflow_options;
    }
    else {
      // Make a group for each Workflow.
      $options[$workflow
        ->label()] = $workflow_options;
    }
  }
  return $options;
}