- Fluxul meu de lucru este schițat, publicat și arhivat.
- Traducerile mele sunt „en(default)”, „fr” și „de”.
- Clienții mei creează o mulțime de noduri în stare de schiță pentru lansarea lor.
- Trebuie să lansăm aceste ultime revizuiri în aceste noduri.
- Fiecare nod are un câmp de paragraf.
Încerc următorul cod pe drush eval, dar traducerile „de” sunt modificate ca primă revizuire în câmpul paragaraph.
$langcode = "fr";
$nid = 12345;
// nodul încărcat
$nod = \Drupal\node\Entity\Node::load($nid);
$nod = $nod->getTranslation($langcode);
if($node->hasTranslation($langcode)){
// stocare nod
$storage = \Drupal::entityTypeManager()->getStorage($node->getEntityTypeId());
// ultima versiune a traducerii id
$revision_id = $storage->getLatestTranslationAffectedRevisionId($nid, $langcode);
$revision = $storage->loadRevision($revision_id);
if($revision->hasTranslation($langcode)){
$revision = $revision->getTranslation($langcode);
$stare = $reviziune->stare_moderare->valoare;
$is_draft = $status == „schiță”;
if($is_draft){
$revision->setNewRevision(TRUE);
$revision->setRevisionCreationTime(REQUEST_TIME);
$revision->set('stare_moderare', 'publicat');
$reviziune->salvare();
}
}
}
Cum se publică cea mai recentă versiune a codului lingvistic în mod programatic în fiecare traducere.
Mulțumiri.