it-swarm.it

Come sovrascrivere alcune regole CSS del tema admin?

Esiste un modo per sovrascrivere solo alcune regole CSS utilizzate dal tema admin, senza toccare il tema admin stesso (tramite alcune funzioni del tema o hook del modulo)? Ad esempio, vorrei aggiungere un text-align: right in ogni campo intero nei moduli di amministrazione (e anche nei nodi di modifica).

20
Claudio

L'ho fatto semplicemente usando:

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

È un po 'più leggibile per me.

15
Sebastian

Esistono diversi modi per farlo, ma non tutti gli approcci sono uguali in termini di impatto sulle prestazioni del tuo sito Web. Per esempio:

  1. Se copi il tema admin o crei un sottotema basato sul tema admin (nota, questo non funzionerà con Drupal Commerce, poiché ha già un sottotema basato su Shiny) - e quindi aggiungi un file css tramite una chiamata .info , caricherai il CSS su ogni pagina.
  2. Se copi il tema dell'amministratore o crei un sottotema basato sul tema dell'amministratore, puoi usare l'uncino drupal_add_css () nel tuo file template.php . Ciò ti consentirà di chiamare il foglio di stile in modo condizionale, su determinate pagine solo per esempio o per determinati browser. Funziona bene ma stai già chiamando più file del necessario.
  3. Crea il tuo modulo e chiama drupal_add_css () da esso. Per quanto ne so, questo è il modo "più leggero" per modificare il tema dell'amministratore senza toccare l'originale e funzionerà se il tema dell'amministratore è già un sottotema (ad esempio Drupal Commerce Kickstart Admin il tema è un sottotema di Shiny). Uso questo metodo perché funzionerà in tutte le circostanze. Vedi sotto per un esempio:

Crea una directory chiamata 'mymodule' (usa il nome che vuoi), crea questi file al suo interno e poi inseriscili nella directory siti/all/modules/custom. Ho aggiunto commenti al codice qui sotto in modo da poter vedere cosa sta succedendo.

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

mymodule.info contiene:

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

mymodule.module contiene:

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 avrà quindi i tuoi stili che vengono aggiunti al tema admin. Svuota la cache, abilita questo modulo e parti per le gare! lteriori informazioni su drupal_add_css qui .

11
PWM

Quello che faccio è creare un sotto-tema per qualunque tema di amministrazione che sto usando solo con il .info, un file CSS univoco (in genere denominato overrides.css) e un template.php file se necessario.

9

Che dire di CSS Injector ?

Non so se consente una regola di configurazione dipendente dal tema, ma suppongo che ne consenta una in base al percorso (quindi admin/, nodo/aggiungi/, il nodo/*/modifica dovrebbe fare il trucco).

2
Berdir