web-dev-qa-db-fra.com

Créer une nouvelle révision automatiquement lors de l'édition

Lorsqu'un nœud est modifié, je veux toujours créer une nouvelle révision. Je ne veux pas que les gens puissent désactiver cela. Comment puis-je faire ceci?

13
Lucy

Pour activer la création automatique de révision, accédez à la page de type de contenu (admin/content/type de nœud) et sélectionnez modifier pour le type de contenu que vous souhaitez que la révision soit créée automatiquement.

Sous le champ de workflow, il y aura une option "Créer une nouvelle révision" assurez-vous de cocher cette case et d'enregistrer vos paramètres de type de contenu.

Maintenant, sous vos autorisations (admin/utilisateur/autorisations), assurez-vous de ne pas donner à vos utilisateurs l'autorisation "administrer les nœuds". Cela les empêchera d'écraser cette option.

16
ericduran

Il existe plusieurs façons de le faire, mais en supposant que vous souhaitiez le faire sans désactiver les autorisations administer nodes Pour les utilisateurs, le moyen le plus simple est probablement de simplement désactiver l'accès à Créer une nouvelle révision = case à cocher en créant un module personnalisé qui implémente 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;
  }
}

De cette façon, les utilisateurs n'ont pas la possibilité de modifier la valeur par défaut de la case à cocher, qui est définie sur la page des paramètres pour chaque type de contenu.

2
user7