Score:1

วิธีเผยแพร่ langcode การแก้ไขล่าสุดโดยทางโปรแกรมในแต่ละการแปล

ธง id
  1. เวิร์กโฟลว์ของฉันเป็นแบบร่าง เผยแพร่ และเก็บถาวร
  2. การแปลของฉันคือ 'en (ค่าเริ่มต้น)', 'fr' และ 'de'
  3. ลูกค้าของฉันสร้างโหนดจำนวนมากในสถานะแบบร่างสำหรับการเผยแพร่
  4. เราต้องเผยแพร่การแก้ไขล่าสุดเหล่านี้ในโหนดเหล่านี้
  5. แต่ละโหนดมีฟิลด์บางย่อหน้า

ฉันลองใช้รหัสต่อไปนี้กับ drush eval แต่การแปล "de" เปลี่ยนไปเมื่อแก้ไขครั้งแรกในฟิลด์ paragaraph

$langcode = "fr";
$nid = 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(จริง);
        $revision->setRevisionCreationTime(REQUEST_TIME);
        $revision->set('moderation_state', 'เผยแพร่แล้ว');
        $revision->save();
      }
    }
}

วิธีเผยแพร่ langcode การแก้ไขล่าสุดโดยทางโปรแกรมในแต่ละการแปล

ขอบคุณ.

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา