Стандартная установка Drupal не позволяет вам создать «ожидающую» ревизию. У вас есть два варианта:
- Программно создайте новую ревизию, но программно вернитесь к исходной ревизии (которая создает еще более новую ревизию, но имеет исходное содержимое)
- (Рекомендуется) Используйте модерацию, ревизию или рабочий процесс Workbench, которые являются хорошо продуманными решениями для контроля версий и / или контроля доступа.
Для варианта 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 over Revisioning или Workflow, но каждый из них отличается в зависимости от ваших потребностей. Workbench является своего рода преемником Revisioning, а Workflow - это намного больше, чем просто контроль версий, поэтому он может подходить или не соответствовать вашим потребностям.
Вот краткий обзор различий между Workbench и Workflow.