web-dev-qa-db-ja.com

サブテーマなしでCSSをテーマに追加することは可能ですか?

寄稿されたテーマを使用しており、CSSを少し追加したいと思います。

テーマは、サブテーマに継承されない多くのもの(設定、色など)を使用しており、必要な少量のCSSのためだけにサブテーマを作成したくありません。

この場合、何を提案しますか?

5
daphshez

もちろん、テーマのCSSを変更することもできますが、ここで行う最もクリーンで最もエレガントなことは、 hook_init() を実装し、 drupal_add_css() を使用するシンプルなカスタムモジュールを作成することですカスタムスタイルシートを追加します。

function mymodule_init() {
  $options = array(
    'group' => CSS_THEME,
    'every_page' => TRUE,
    'weight' => 9999
  );
  drupal_add_css(drupal_get_path('module', 'mymodule') . '/mymodule.css', $options);
}

カスタムモジュールのフォルダーにmymodule.cssを作成し、すべてのcssの微調整をそこに置きます。

4
Alex Weber

私の理解は、可能であれば hook_init を使用しないことです。これは、bootstrapプロセスの初期段階で呼び出されるフックであり、ファンキーな結果を生成する可能性があります。APIドキュメントには、次のように明記されています。

すべてのページに存在する必要があるCSSまたはJSを追加するには、モジュールでこのフックを実装するのではなく、.infoファイルでこれらのファイルを宣言する必要があります。

.infoファイルにstylesheets [all] []エントリを追加することをお勧めします-> スタイルシートの追加

6
DeeZone

Form APIフォームのテーマを設定する場合は、hook_init()の代わりに#attachedの使用を検討してください

参照 http://api.drupal.org/api/drupal/developer--topics--forms_api_reference.html#attached

1
Sivaji

マイナーなcssの変更のみの場合は、テーマフォルダーと.infoファイルに 'custom.css'ファイルを追加して、そこに変更を加えます。

テーマの更新(カスタムCSSの破壊)を回避するために、テーマの.infoファイルからバージョン情報とdrupal.orgが生成したコンテンツ(ある場合)も削除します。

0
mtro

最も簡単な方法は、変更を加えた追加のスタイルシートを作成し、それをテーマの.infoファイルの読み込み順序の一番下に追加することです。すべての変更は、ベーステーマとは別のファイルに保存され、クリーンに保たれます。スタイルシートは、テーマが表示されるはずの場所に読み込まれます。これは、スタイルシートを追加するモジュールを作成するよりもはるかに単純で明確です。スタイルシートのロードをモジュールに入れ、モジュールを有効にしてから、テーマを別のテーマに変更しても、そのモジュールは新しい(異なる)テーマの上に追加のスタイルシートをまだロードしています。

私の.02、それをテーマにしてください。

0
user1012