Создать новую ревизию автоматически при редактировании

13

Когда узел редактируется, я хочу всегда создавать новую ревизию. Я не хочу, чтобы люди могли это отключить. Как я могу это сделать?

Люси
источник
admin / content / node-type / [node-type] посмотрите на
набор полей

Ответы:

16

Чтобы включить автоматическое создание ревизии, перейдите на страницу типа контента (admin / content / node-type) и выберите изменить для любого типа контента, для которого вы хотите, чтобы ревизия создавалась автоматически.

Под набором полей рабочего процесса будет опция «Создать новую ревизию», убедитесь, что вы отметили это поле и сохранили настройки типа контента.

Теперь под вашими правами (admin / user / permissions) убедитесь, что вы не предоставляете своим пользователям разрешение «администрировать узлы». Это предотвратит перезапись этой опции.

ericduran
источник
Это только для drupal 6?
Sam152
Это работает и для D7. Проверьте также модуль Revisioning , который позволяет контролировать рабочий процесс.
Арам Бояджян
2

Есть несколько различных способов сделать это, но если вы хотите сделать это без отключения administer nodesразрешений для пользователей, возможно, самый простой способ - просто отключить доступ к флажку « Создать новую ревизию », создав специальный модуль, который реализует hook_form_alter():

function sandbox_form_alter(&$form, &$form_state, $form_id) {
  // Node forms have an ID of the form CONTENTTYPE_node_form: only modify those
  if (strstr($form_id, '_node_form') === FALSE) {
    return;
  }

  if (isset($form['revision_information'])) {
    $form['revision_information']['revision']['#access'] = FALSE;
  }
}

Таким образом, пользователи не имеют возможности изменить значение по умолчанию для флажка, который устанавливается на странице настроек для каждого типа контента.


источник