การติดตั้ง Drupal มาตรฐานไม่อนุญาตให้คุณสร้างการแก้ไข "รอ" คุณมีสองทางเลือก:
- สร้างการแก้ไขใหม่โดยทางโปรแกรม แต่กลับสู่การแก้ไขดั้งเดิมโดยทางโปรแกรม (ซึ่งสร้างการแก้ไขที่ใหม่กว่า แต่มีเนื้อหาต้นฉบับ)
- (แนะนำ) ใช้ Workbench Moderation, Revisioning หรือ Workflow ซึ่งเป็นทางออกที่ดีสำหรับการควบคุมเวอร์ชันและ / หรือการควบคุมการเข้าถึง
สำหรับตัวเลือกที่ 1: คุณสามารถเพิ่มรหัสนี้เป็นกฎใหม่หรือใช้ในโมดูลใหม่
<?php
// Programatically load the existing revision and save it
// Taken from http://api.drupal.org/api/drupal/modules!node!node.module/function/node_save/7
// Load the revision
$original_revision = node_load($nid);
$original_revision->revision = 1;
$original_revision->log = t('Copy of the revision from %date.', array('%date' => format_date($original_revision->revision_timestamp)));
$new_revision = node_load($nid);
// Make any changes to the new revision here...
$new_revision->revision = 1;
$new_revision->log = t('Summarize your changes here');
// Save the new revision first
node_save($new_revision);
// Save the original one again so that it is still the current revision
node_save($original_revision);
watchdog('content', '@type: reverted %title revision %revision.', array('@type' => $node_revision->type, '%title' => $node_revision->title, '%revision' => $node_revision->vid));
drupal_set_message(t('@type %title was saved with a new revision, but reverting to original revision from %revision-date.', array('@type' => node_type_get_name($node_revision), '%title' => $node_revision->title, '%revision-date' => format_date($node_revision->revision_timestamp))));
drupal_goto('node/' . $node_revision->nid . '/revisions');
?>
สำหรับตัวเลือกที่ 2: ฉันอยากจะแนะนำ Workbench มากกว่า Revision หรือ Workflow แต่แต่ละอันนั้นแตกต่างกันไปตามความต้องการของคุณ Workbench เป็นผู้สืบทอดการแก้ไขและเวิร์กโฟลว์เป็นมากกว่าการควบคุมเวอร์ชันดังนั้นมันอาจจะเหมาะกับความต้องการของคุณหรือไม่ก็ได้
นี่คือรายละเอียดด่วนของความแตกต่างระหว่าง Workbench และ Workflow