web-dev-qa-db-ja.com

編集時に新しいリビジョンを自動的に作成する

ノードを編集するときは、常に新しいリビジョンを作成したいと思います。これをオフにできるようにしたくない。これどうやってするの?

13
Lucy

リビジョンの自動作成を有効にするには、コンテンツタイプページ(admin/content/node-type)に移動し、リビジョンを自動的に作成するコンテンツタイプの編集を選択します。

ワークフローフィールドセットの下に[新しいリビジョンを作成]オプションがあります。このボックスをオンにして、コンテンツタイプの設定を保存してください。

次に、許可(admin/user/permissions)の下で、ユーザーに「ノードの管理」許可を与えないようにしてください。これにより、そのオプションが上書きされなくなります。

16
ericduran

これにはいくつかの方法がありますが、ユーザーの_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;
  }
}
_

このように、ユーザーは、各コンテンツタイプの設定ページで設定されているチェックボックスのデフォルト値を変更することができません。

2
user7