public function WorkflowItem::getCurrentState in Workflow 7
1 call to WorkflowItem::getCurrentState()
- WorkflowItem::getOptions in includes/Field/WorkflowItem.php
- Callback function for the default Options widgets.
File
- includes/Field/WorkflowItem.php, line 301
- Contains workflow\includes\Field\WorkflowItem.
Class
- WorkflowItem
- Plugin implementation of the 'workflow' field type.
Code
public function getCurrentState() {
$field_name = $this->field['field_name'];
$wid = $this->field['settings']['wid'];
$workflow = Workflow::load($wid);
$options = array();
$entity = $this->entity;
$entity_type = $this->entity_type;
$entity_id = _workflow_get_entity_id($entity_type, $entity);
if ($entity_id && $this->entity_type == 'comment') {
$entity_type = 'node';
$referenced_entities = entity_load($entity_type, array(
$entity_id,
));
$entity = $referenced_entities[$entity_id];
$items = field_get_items($entity_type, $entity, $field_name, $langcode = NULL);
$state = WorkflowState::load($sid = _workflow_get_sid_by_items($items), $wid);
if (!$state) {
$state = $workflow
->getCreationState();
}
}
elseif ($entity_id && $this->entity_type != 'comment') {
$items = field_get_items($entity_type, $entity, $field_name, $langcode = NULL);
$state = WorkflowState::load($sid = _workflow_get_sid_by_items($items), $wid);
if (!$state) {
$state = $workflow
->getCreationState();
}
}
elseif (!$entity_id && $entity_type == 'comment') {
$state = NULL;
}
elseif (!$entity_id && $entity_type != 'comment') {
if ($entity) {
$state = $workflow
->getCreationState();
}
else {
$state = NULL;
}
}
return $state;
}