web-dev-qa-db-ja.com

インストールプロファイルで「コンテンツの編集または作成時に管理テーマを使用する」をtrueに設定します

インストールプロファイルを作成しています。カスタムテーマを正常にダウンロードして、デフォルトで有効にすることができます。私が遭遇している問題は、フレッシュインストールで[コンテンツを編集または作成するときに管理テーマを使用する]設定が無効になっていて、常に有効にしたいということです。

  1. インストールプロファイルの[コンテンツの編集または作成時に管理テーマを使用する]設定を有効にするにはどうすればよいですか?
  2. 将来このような設定を構成する方法を見つける最も簡単な方法は何ですか?インストールプロファイル documentation はこれに関する情報を提供しておらず、APIには何も見つかりません。

更新: this API記事apiドキュメントが、どのフィールドをターゲットにするかを判断するのに役立つことがわかりました。

1
Nick Tomlin

設定は次のように簡単です:

_variable_set('node_admin_theme', 1);
_

Drupal=)で使用されるほとんど(すべてではない)の構成設定は、基本的に要素の配列キーを取る system_settings_form() を使用して管理されますその形式で使用され、変数として保存されます。

したがって、テーマ設定フォームの要約版は次のようになります

_function some_form($form, &$form_state) {
  $form['node_admin_theme'] = array(
    '#title' => t('Use the administration theme when editing or creating content'),
    '#type' => 'checkbox',
    '#default_value' => variable_get('node_admin_theme', 0),
  );

  return system_settings_form($form);
}
_

Drupalがそのフォームを処理するとき、_node_admin_theme_という変数が適切な値で作成/更新されます。

フォームがsystem_settings_form()を使用していることが確かな場合、関連する変数の名前を見つけるのは、要素自体を調べて 'name'パラメータを調べるのと同じくらい簡単です。

enter image description here

不明な場合は、フォームを定義する関数を検索して確認してください。 system_settings_form()を使用している場合はすばらしいですが、そうでない場合は、フォームが実際にデータを管理する方法についての洞察を得ます。

2
Clive

私はしばらくの間あなたの質問に費やしました1.そして私はこの解決策を見つけました: "node.settings.yml"という名前のファイルを作成し、あなたのプロファイルのconfig> installフォルダーに置きます。これをファイルに書き込むだけです:

use_admin_theme: true

編集:この解決策はdrupal 8.用です。

2
Fabien