(いくつかのテーマ関数またはモジュールフックを介して)管理テーマ自体に触れることなく、管理テーマによって使用される一部のCSSルールのみをオーバーライドする方法はありますか?たとえば、管理フォーム(および編集ノード)のすべての整数フィールドにtext-align: right
を追加したいと思います。
私はそれを使ってそれをやった:
function mymodule_preprocess_html(&$variables) {
global $theme;
if ($theme === variable_get('admin_theme', 'seven')) {
// Reference your custom stylesheet.
drupal_add_css(drupal_get_path('module', 'mymodule') . '/css/mymodule.css', array('weight' => CSS_THEME));
}
}
それは私にはもう少し読みやすいです。
これにはいくつかの方法がありますが、Webサイトのパフォーマンスに影響を与えるという点ですべてのアプローチが同じというわけではありません。例えば:
「mymodule」というディレクトリを作成し(任意の名前を使用します)、その中にこれらのファイルを作成してから、sites/all/modules/customディレクトリに配置します。以下のコードにコメントを追加して、何が起こっているのかを確認できるようにしました。
mymodule.infoには以下が含まれます:
name = mymodule
description = Custom alterations for admin pages on my website
core = 7.x
mymodule.moduleには以下が含まれます:
function mymodule_preprocess_html(&$variables) {
// Add conditional stylesheets for admin pages on admin theme.
if (arg(0) === "admin") {
// Reference your current admin theme.
$theme_path = drupal_get_path('theme', 'commerce_kickstart_admin');
// Reference your own stylesheet.
drupal_add_css(drupal_get_path('module', 'mymodule') . '/css/mymodule.css', array('weight' => CSS_THEME));
}
}
css/mymodule.cssには、管理テーマに追加されたスタイルが含まれます。キャッシュをクリアし、このモジュールを有効にして、レースに出かけましょう! drupal_add_cssの詳細はこちら 。
私がしていることは、.info
、一意のCSSファイル(通常はoverrides.css
という名前)、および必要に応じてtemplate.php
ファイルだけを使用して、使用している管理テーマのサブテーマを作成することです。 。
CSSインジェクター はどうですか?
テーマに依存する構成ルールが許可されているかどうかはわかりませんが、パスに基づいて許可されていると想定しています(そのため、admin /、node/add /、node/*/editがうまくいくはずです)。