You are here

function _workflow_metadata_workflow_get_properties in Workflow 7.2

Getter callback for Workflow defined in hook_entity_property_info_alter.

5 calls to _workflow_metadata_workflow_get_properties()
WorkflowTransition::setValues in includes/Entity/WorkflowTransition.php
Helper function for __construct. Used for all children of WorkflowTransition (aka WorkflowScheduledTransition)
WorkflowTransitionForm::submitForm in includes/Form/WorkflowTransitionForm.php
workflow_node_previous_state in ./workflow.module
Gets the previous state ID of a given entity.
_workflow_tokens_get_transition in ./workflow.tokens.inc
Helper function to get the Transition.
_workflow_transition_form_validate_buttons in ./workflow.form.inc
Submit callback function for the Workflow Form / DefaultWidget.
1 string reference to '_workflow_metadata_workflow_get_properties'
workflow_entity_property_info_alter in ./workflow.entity.inc
Implements hook_entity_property_info_alter().

File

./workflow.entity.inc, line 344
Integrates workflow with entity API.

Code

function _workflow_metadata_workflow_get_properties($entity, array $options, $name, $entity_type, $property) {
  switch ($name) {

    //    // The workflows of a normal entity.
    //    case 'workflows':
    //      $workflow = _workflow_get_workflow_creation_sid($entity_type, $entity, $field_name);
    //      return $workflow;
    //      return $entity->getWorkflow();
    // The workflows of a Workflow entity.
    case 'workflow':
      return $entity
        ->getWorkflow();
    case 'states':
      return $entity
        ->getStates();
    case 'transitions':

      // @todo: for some reason, getTransitions() gives no result.
      return $entity
        ->getTransitions();
    case 'old_state':
    case 'old-state':
      return $entity
        ->getOldState();
    case 'new_state':
    case 'new-state':
      return $entity
        ->getNewState();
    case 'tab_roles':

      // @todo: for some reason, Tab_roles gives no result.
      // Code copied from 'user' entity.
      return isset($entity->tab_roles) ? array_keys($entity->tab_roles) : array();
    case 'langcode':

      // Gets the language code of a Workflow Field, hence its State, Transitions.
      // '$property' is $field_name.
      $langcode = LANGUAGE_NONE;
      $wrapper = entity_metadata_wrapper($entity_type, $entity);
      if (!$property || !method_exists($wrapper, $property)) {

        // Workflow_node. Translations are not supported.
      }
      else {

        // Get language code for a field or property.
        // getPropertyLanguage() may return NULL if no language is set,
        // or may not exist on properties.
        if (isset($wrapper->{$property}) && method_exists($wrapper->{$property}, 'getPropertyLanguage')) {
          if (!($langcode = $wrapper->{$property}
            ->getPropertyLanguage())) {
            $langcode = LANGUAGE_NONE;
          }
        }
      }
      return $langcode;
    case 'entity':
      $entity_wrapper = entity_metadata_wrapper($entity->entity_type, $entity->nid);
      return $entity_wrapper;

    // The following properties need more love. Also test their tokens!
    case 'options':
      return 'n/a';
  }
}