function RulesState::saveNow

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 229

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]);
}