NodeRevisionRevertTranslationForm::prepareRevertedRevision

protected NodeRevisionRevertTranslationForm::prepareRevertedRevision(NodeInterface $revision, FormStateInterface $form_state)

Prepares a revision to be reverted.

Parameters

\Drupal\node\NodeInterface $revision: The revision to be reverted.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

Return value

\Drupal\node\NodeInterface The prepared revision ready to be stored.

Overrides NodeRevisionRevertForm::prepareRevertedRevision

File

core/modules/node/src/Form/NodeRevisionRevertTranslationForm.php, line 97

Class

NodeRevisionRevertTranslationForm
Provides a form for reverting a node revision for a single translation.

Namespace

Drupal\node\Form

Code

protected function prepareRevertedRevision(NodeInterface $revision, FormStateInterface $form_state) {
  $revert_untranslated_fields = $form_state->getValue('revert_untranslated_fields');

  /** @var \Drupal\node\NodeInterface $default_revision */
  $latest_revision = $this->nodeStorage->load($revision->id());
  $latest_revision_translation = $latest_revision->getTranslation($this->langcode);

  $revision_translation = $revision->getTranslation($this->langcode);

  foreach ($latest_revision_translation->getFieldDefinitions() as $field_name => $definition) {
    if ($definition->isTranslatable() || $revert_untranslated_fields) {
      $latest_revision_translation->set($field_name, $revision_translation->get($field_name)->getValue());
    }
  }

  $latest_revision_translation->setNewRevision();
  $latest_revision_translation->isDefaultRevision(TRUE);

  return $latest_revision_translation;
}
doc_Drupal
2016-10-29 09:31:13
Comments
Leave a Comment

Please login to continue.