Question

Je suis en train d'accomplir ce qui suit. Je dois utiliser Drupal 6 comme une exigence de projet, mais je veux l'utiliser avec mes propres HTML et CSS pour chaque noeud stylesheets / view / panneau etc.

Le problème est, quel que soit le thème, j'ai toujours trouvé que Drupal applique à mon contenu HTML à la fois mes feuilles de style CSS et le CSS en rapport avec le thème choisi. J'ai aussi essayé, sans succès, à l'aide du module stylestripper (installé dans les sites / all / modules). Peu importe ce que je fais, feuilles de style CSS supplémentaires sont appliqués à mes pages, complètement détruire ma mise en page.

Quelle est la bonne façon d'y parvenir? Pourquoi stylestripper ne fonctionne pas du tout? Y at-il un thème complètement vide disponible? J'ai essayé de base, mothership, zen etc, mais je vois toujours feuilles de style CSS supplémentaires appliquées à mes pages.

Ce me rend fou, Drupal a été choisi par quelqu'un d'autre pour sa flexibilité. Nous vous remercions à l'avance.

Était-ce utile?

La solution

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

En savoir plus drupal.org .

Mise à jour: Le bon endroit pour mettre cette fonction, est dans le fichier template.php de votre thème. En fait, dans votre cas, vous devez fournir un tableau de noms de fichiers CSS que vous voulez exclure.
L'appel à drupal_add_css() sans arguments passés, fournira $css avec un tableau de fichiers CSS qui vont être attachés à votre thème. C'est donc le bon moment pour entrer!

Comme vous le voyez, dans la première boucle de foreach nous cherchons simplement le tableau de $css pour les noms de fichiers qui sont existaient dans le tableau de $exclude passé, pour la suppression de style. Et nous faisons le même travail dans la deuxième boucle pour l'insertion de style. Et à la fin de cela, nous revenons une représentation sur le thème de tous les styles qui doivent être reliés au thème faisant usage de drupal_get_css() fonction . (peut-être rien dans votre cas)

Eh bien, Où appeler cette fonction? Vous pouvez appeler cette fonction d'assistance dans _phptemplate_variables() D5 ou YOUR_THEME_preprocess() D6. Comme on le voit dans cette action pour D6 (non testé) :

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

Je suis sûr que vous savez comment exclure « em all;)

Autres conseils

Si vous définissez CSS et / ou des fichiers JavaScript dans le fichier .info de votre thème en utilisant les noms de fichiers qui correspondent aux fichiers de base, alors vous les remplaciez, et si vos remplacements n'existent pas alors ils ne sont pas inclus.

Voir le fichier pour le thème .info Tao pour un exemple

Je ne travaillerai ce mais je pense simplement supprimer la ligne suivante dans la page.tpl.php de votre thème

 <?php echo $styles ?>

et ne sera pas une drupal de ses propres styles ..
cela peut être le travail pour vous.


Nitz

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top