Рейтинг:1

Как программно опубликовать langcode последней версии в каждом переводе

флаг id
  1. Мой рабочий процесс черновик, публикация и архив.
  2. Мои переводы: «en (по умолчанию)», «fr» и «de».
  3. Мои клиенты создают много узлов в статусе черновика для их выпуска.
  4. Мы должны выпустить эти последние версии в этих узлах.
  5. Каждый узел имеет некоторое поле абзаца.

Я пробую следующий код в drush eval, но переводы «de» меняются как первая версия в поле paragaraph.

$langcode = "fr";
$нид = 12345;
// узел загружен
$node = \Drupal\node\Entity\Node::load($nid);
$node = $node->getTranslation($langcode);
если($node->hasTranslation($langcode)){
    // хранилище узлов
    $storage = \Drupal::entityTypeManager()->getStorage($node->getEntityTypeId());
    // идентификатор последней редакции перевода
    $revision_id = $storage->getLatestTranslationAffectedRevisionId($nid, $langcode);
    $revision = $storage->loadRevision($revision_id);
    если($revision->hasTranslation($langcode)){
      $revision = $revision->getTranslation($langcode);
      $status = $revision->moderation_state->value;
      $is_draft = $status == "черновик";
      если ($ is_draft) {
        $revision->setNewRevision(TRUE);
        $revision->setRevisionCreationTime(REQUEST_TIME);
        $revision->set('moderation_state', 'опубликовано');
        $редакция->сохранить();
      }
    }
}

Как программно опубликовать langcode последней версии в каждом переводе.

Спасибо.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.