it-swarm-id.com

Bagaimana cara mengganti beberapa aturan CSS tema admin?

Apakah ada cara untuk menimpa hanya beberapa aturan CSS yang digunakan oleh tema admin, tanpa menyentuh tema admin itu sendiri (melalui beberapa fungsi tema atau pengait modul)? Misalnya, saya ingin menambahkan text-align: right ke setiap bidang integer dalam formulir admin (dan juga dalam mengedit node).

20
Claudio

Saya melakukannya hanya menggunakan:

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));
  }
}

Itu sedikit lebih mudah dibaca bagi saya.

15
Sebastian

Ada sejumlah cara untuk melakukan ini, tetapi tidak semua pendekatan sama dalam hal mempengaruhi kinerja situs web Anda. Sebagai contoh:

  1. Jika Anda menyalin tema admin atau membuat subtitle berdasarkan dari tema admin (perhatikan, ini tidak akan berfungsi dengan Drupal Commerce, karena subtitle ini memiliki subtitle berdasarkan Shiny) - dan lalu tambahkan file css melalui panggilan .info , Anda akan memuat CSS pada setiap halaman.
  2. Jika Anda menyalin tema admin, atau membuat subtitle berdasarkan dari tema admin, Anda dapat menggunakan kait drupal_add_css () di file template.php Anda . Ini akan memungkinkan Anda untuk memanggil stylesheet secara kondisional, pada halaman tertentu saja misalnya, atau untuk browser tertentu. Ini berfungsi dengan baik tetapi Anda sudah memanggil lebih banyak file daripada yang diperlukan.
  3. Buat modul Anda sendiri, dan panggil drupal_add_css () darinya. Sejauh yang saya tahu, ini adalah cara 'paling ringan' untuk mengubah tema admin tanpa menyentuh yang asli dan akan berfungsi jika tema admin Anda sudah menjadi subtema (mis. Drupal Commerce Kickstart Admin tema adalah subtitle dari Shiny) .Saya menggunakan metode ini karena ini akan bekerja dalam semua keadaan. Lihat di bawah untuk contoh:

Buat direktori yang disebut 'mymodule' (gunakan nama apa pun yang Anda inginkan), buat file-file ini di dalamnya, dan kemudian letakkan di dalam direktori situs/semua/modul/kustom Anda. Saya telah menambahkan komentar ke kode di bawah ini sehingga Anda dapat melihat apa yang terjadi.

  • mymodule.info
  • mymodule.module
  • css/mymodule.css

mymodule.info berisi:

name = mymodule
description = Custom alterations for admin pages on my website
core = 7.x

mymodule.module berisi:

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 kemudian akan memiliki gaya Anda yang ditambahkan ke tema admin. Bersihkan cache Anda, aktifkan modul ini dan Anda siap untuk balapan! Pelajari lebih lanjut tentang drupal_add_css di sini .

11
PWM

Apa yang saya lakukan adalah membuat sub-tema untuk tema admin apa pun yang saya gunakan hanya dengan .info, File CSS unik (biasanya bernama overrides.css), Dan template.php file jika perlu.

9

Bagaimana dengan Injector CSS ?

Saya tidak tahu apakah itu mengizinkan aturan konfigurasi yang bergantung pada tema, tapi saya menganggap itu mengizinkan satu berdasarkan pada path (jadi admin/, node/add/, simpul/*/edit harus melakukan trik).

2
Berdir