You are here

protected function RulesState::saveNow in Rules 7.2

Saves the wrapper for the given selector.

2 calls to RulesState::saveNow()
RulesState::cleanUp in includes/rules.state.inc
Runs post-evaluation tasks, such as saving variables.
RulesState::save in includes/rules.state.inc
Remembers to save the wrapper on cleanup or does it now.

File

includes/rules.state.inc, line 225
Contains the state and data related stuff.

Class

RulesState
The rules evaluation state.

Code

protected function saveNow($selector) {

  // Add the set of blocked elements for the recursion prevention.
  $previously_blocked = self::$blocked;
  self::$blocked += $this->save[$selector][1];

  // Actually save!
  $wrapper = $this->save[$selector][0];
  $entity = $wrapper
    ->value();

  // When operating in hook_entity_insert() $entity->is_new might be still
  // set. In that case remove the flag to avoid causing another insert instead
  // of an update.
  if (!empty($entity->is_new) && $wrapper
    ->getIdentifier()) {
    $entity->is_new = FALSE;
  }
  rules_log('Saved %selector of type %type.', array(
    '%selector' => $selector,
    '%type' => $wrapper
      ->type(),
  ));
  $wrapper
    ->save();

  // Restore the state's set of blocked elements.
  self::$blocked = $previously_blocked;
  unset($this->save[$selector]);
}