class StateFlowNode in State Machine 7.3
Class StateFlowNode.
Handles node entities.
Hierarchy
- class \StateMachine
- class \StateFlowEntity
- class \StateFlowNode
- class \StateFlowEntity
Expanded class hierarchy of StateFlowNode
2 string references to 'StateFlowNode'
- hook_state_flow_entity_plugins in modules/
state_flow_entity/ state_flow_entity.api.php - Implements hook_state_flow_entity_plugins().
- state_flow_state_flow_entity_plugins in modules/
state_flow/ state_flow.module - Implements hook_state_flow_entity_plugins().
File
- modules/
state_flow/ plugins/ state_flow_node.inc, line 12 - State Flow implementation of the State Machine class
View source
class StateFlowNode extends StateFlowEntity {
/**
* Callback for when an entity enters the unpublished state.
*
* Make sure this revision is the one going to the node table.
*/
public function on_enter_published() {
$this->object->published_revision_id = $this->object->{$this
->get_revision_key()};
$this->object->status = 1;
}
/**
* Callback for when a node enters the unpublished state.
*
* Make sure this revision is the one going to the node table.
*/
public function on_enter_unpublished() {
// "published_revision_id" is somewhat of a misnomer here. It's really
// "the revision_id that is in the node table."
$this->object->published_revision_id = $this->object->{$this
->get_revision_key()};
$this->object->revision = FALSE;
$this->object->state_flow_node_on_enter_unpublished = TRUE;
}
public function on_exit_published() {
// If it is a scheduled event the transition has to be handled later because
// we want to keep the current state.
$event = $this
->get_event($this
->get_history_entity()->event);
if ($event
->get_option('target') !== 'schedule') {
$this->object->status = 0;
}
}
/**
* Handle unpublishing / publishing.
*
* Usually StateFlowNode::on_exit_published() handles this - but since
* scheduling shouldn't change the state during scheduling we do it here too.
*
* @see StateFlowNode::on_exit_published()
*/
public function on_exit_scheduled() {
// Fire the previously skipped hook.
$this
->on_exit_published();
parent::on_exit_scheduled();
}
/**
* Provide the current state of this revision or entity.
*
* @return string
* Machine name of a state.
*/
public function load() {
$state = parent::load();
// When State Flow is installed on an existing site there may be nodes
// already published. Those nodes should be considered as "published" by
// State Flow.
if (empty($state) && !empty($this->object->status) && !empty($this->object->nid)) {
return 'published';
}
return $state;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
StateFlowEntity:: |
public | property |
Overrides StateMachine:: |
|
StateFlowEntity:: |
public | property | ||
StateFlowEntity:: |
public | property |
Called from StateMachine::__construct to initialize the states and events. Overrides StateMachine:: |
|
StateFlowEntity:: |
public | property |
Overrides StateMachine:: |
|
StateFlowEntity:: |
public | property | ||
StateFlowEntity:: |
public | function | Removes all non Entity API properties from the history_entity. | |
StateFlowEntity:: |
public | function | ||
StateFlowEntity:: |
public | function | Called by hook_entity_presave(). | |
StateFlowEntity:: |
public | function | Called by hook_entity_insert() / hook_entity_update(). | |
StateFlowEntity:: |
public | function |
Extending fire_event() from state_machine's base.inc. Overrides StateMachine:: |
|
StateFlowEntity:: |
protected | function | Forwards the history and states similar what drafty does for entities. | |
StateFlowEntity:: |
public | function | Get the active revision. | |
StateFlowEntity:: |
public | function | Get available events as an array suitable for FAPI. | |
StateFlowEntity:: |
public | function | Get a default event. | |
StateFlowEntity:: |
public | function | Get the revision key for this entity type. | |
StateFlowEntity:: |
public | function | ||
StateFlowEntity:: |
public | function |
Return an event. Overrides StateMachine:: |
|
StateFlowEntity:: |
public | function | Provide entire state_flow history. | |
StateFlowEntity:: |
public | function | Get the state flow history entity. | |
StateFlowEntity:: |
public | function | Get the label for the current state. | |
StateFlowEntity:: |
public | function | Get the latest revision id. | |
StateFlowEntity:: |
public | function | ||
StateFlowEntity:: |
public | function | Get the revision key for this entity type. | |
StateFlowEntity:: |
public | function | ||
StateFlowEntity:: |
public | function | Validate the filed API from values with state_flow_history_entity values. | |
StateFlowEntity:: |
public | function | Build up a full state flow history entity from form values. | |
StateFlowEntity:: |
public | function |
Called from StateMachine::__construct to initialize the states and events. Overrides StateMachine:: |
|
StateFlowEntity:: |
public | function | Check if the current object is the active published revision. | |
StateFlowEntity:: |
protected | function | Check if the current object is a draft revision. | |
StateFlowEntity:: |
public | function | ||
StateFlowEntity:: |
public | function | ||
StateFlowEntity:: |
public | function | Returns TRUE if the entity is new. | |
StateFlowEntity:: |
public | function | Return the state of the revision | |
StateFlowEntity:: |
public | function | Set the vid from the node table as the "Published" revision. | |
StateFlowEntity:: |
public | function | Provide history with each revision. | |
StateFlowEntity:: |
public | function | Set the state flow history entity. | |
StateFlowEntity:: |
public | function | ||
StateFlowEntity:: |
public | function | Update the current status record for the revision. | |
StateFlowEntity:: |
public | function | Write the transaction to the history table. | |
StateFlowEntity:: |
public | function | Update the current status record for the revision. | |
StateFlowEntity:: |
public | function |
Create instance of StateMachine. Overrides StateMachine:: |
|
StateFlowNode:: |
public | function |
Provide the current state of this revision or entity. Overrides StateFlowEntity:: |
|
StateFlowNode:: |
public | function | Callback for when an entity enters the unpublished state. | |
StateFlowNode:: |
public | function | Callback for when a node enters the unpublished state. | |
StateFlowNode:: |
public | function | ||
StateFlowNode:: |
public | function |
Handle unpublishing / publishing. Overrides StateFlowEntity:: |
|
StateMachine:: |
protected | property | ||
StateMachine:: |
protected | property | ||
StateMachine:: |
protected | function | Create a new event. | |
StateMachine:: |
protected | function | Create a new state. | |
StateMachine:: |
public | function | Get all of the events. | |
StateMachine:: |
public | function | Returns an array of events that are valid for the current state. | |
StateMachine:: |
public | function | Returns the current state. | |
StateMachine:: |
public | function | Return a state instance by key, lazy-loading the instance if necessary. | |
StateMachine:: |
public | function | Whether State Machine to be ignored. | |
StateMachine:: |
protected | function | Method to be called when firing an event fails for any reason. | |
StateMachine:: |
protected | function | Persist the current state to the object storage. | |
StateMachine:: |
protected | function | Set the current state to the state identified by the specified key. | |
StateMachine:: |
protected | function | Set the initial state for this machine. |