Come sbarazzarsi di Drupal fogli di stile CSS?
-
22-09-2019 - |
Domanda
Sto cercando di realizzare quanto segue. Ho bisogno di usare Drupal 6 come requisito del progetto, ma voglio usare con i miei fogli di stile CSS e HTML per ogni nodo / view / pannello etc.
Il problema è, qualunque sia il tema, ho sempre trovato che Drupal si applica al mio contenuto HTML sia i miei fogli di stile CSS e il CSS relativo al tema scelto. Ho anche provato, senza successo, utilizzando il modulo stylestripper (installato in siti / tutti / moduli). Non importa quello che faccio, altri fogli di stile CSS vengono applicati alle mie pagine, distruggendo completamente il mio layout.
Qual è il modo corretto per raggiungere questo obiettivo? Perché stylestripper non funziona affatto? C'è un tema completamente vuoto a disposizione? Ho cercato di base, madre, zen, ecc, ma ho sempre vedere fogli di stile CSS aggiuntivi applicati alle mie pagine.
Questo mi sta facendo impazzire, Drupal è stato scelto da qualcun altro per la sua flessibilità. Grazie in anticipo.
Soluzione
<?php
/**
* Helper function to allow easy CSS excludes + includes
*/
function _phptemplate_get_css($exclude = array(), $include = array()){
$css = drupal_add_css();
foreach ($css['all']['module'] as $k => $path) {
$file = substr($k, strrpos($k, '/') + 1);
if (in_array($file, $exclude)){
unset($css['all']['module'][$k]);
}
}
foreach ($include as $file){
$css['all']['theme'][path_to_theme() .'/'. $file] = true;
}
return drupal_get_css($css);
?>
Per saperne di più a drupal.org .
Aggiornamento:
Il posto giusto per mettere questa funzione, è nel href="http://drupal.org/node/11811" rel="nofollow noreferrer"> template.php
file di
La chiamata a drupal_add_css()
senza argomenti passati, fornirà $css
con una serie di file CSS che stanno per essere collegata al tema. Quindi questo è il momento giusto per entrare!
Come si vede, nel primo ciclo foreach
abbiamo semplicemente cerchiamo l'array $css
per i nomi di file che sono esistite nella matrice $exclude
passato, per l'eliminazione stile. E lo facciamo lo stesso lavoro nel secondo ciclo per l'inserimento di stile. E alla fine di questo, torniamo una rappresentazione a tema di tutti gli stili che deve essere allegata alla realizzazione tema uso di funzione drupal_get_css()
. (forse niente nel tuo caso)
Bene, Dove chiamare questa funzione? È possibile chiamare questa funzione di supporto nel _phptemplate_variables()
per D5 o YOUR_THEME_preprocess()
per D6. Come si vede in azione per D6 (non testato) :
function YOUR_THEME_preprocess(&$vars, $hook){
// Stylesheet filenames to be excluded.
$css_exclude_list = array(
'lightbox.css',
'lightbox_lite.css',
);
// Making use of previously defined helper function.
$vars['styles'] = _phptemplate_get_css($css_exclude_list);
}
Sono sicuro di sapere come escludere 'em all;)
Altri suggerimenti
Se si definiscono i file CSS e / o JavaScript nel file .info del tema utilizzando nomi di file che corrispondono ai file di base poi di ignorare, e se non esistono le sostituzioni poi sono non incluso.
Non che questo lavoro, ma penso che è sufficiente rimuovere la seguente riga nel page.tpl.php del vostro tema
<?php echo $styles ?>
e poi Drupal non uno qualsiasi dei suoi propri stili ..
questo può essere il lavoro per voi.
Nitz