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.

È stato utile?

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.

Vedere il file .info per il tema Tao per un esempio

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top