Pregunta

Estoy tratando de lograr lo siguiente. Necesito usar Drupal 6 como un requisito del proyecto, pero yo quiero usarlo con mis propios HTML y CSS hojas de estilo para cada nodo / foto / el panel, etc.

El problema es que, sea cual sea el tema, que siempre encontró que Drupal se aplica a mi contenido HTML tanto mis hojas de estilo CSS y el CSS en relación con el tema elegido. También he intentado, sin éxito, utilizando el módulo stylestripper (instalado en sites / all / modules). No importa lo que haga, hojas de estilo CSS adicionales se aplican a mis páginas, destruyendo completamente mi diseño.

¿Cuál es la forma correcta para lograr esto? ¿Por stylestripper no funciona en absoluto? ¿Hay un tema completamente en blanco disponible? He tratado básico, nodriza, Zen, etc, pero siempre veo hojas de estilo CSS adicionales aplicados a mis páginas.

Esto me está volviendo loco, Drupal fue elegido por otra persona por su flexibilidad. Gracias de antemano.

¿Fue útil?

Solución

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

Más en drupal.org .

Actualización:
El lugar adecuado para poner esta función, se encuentra en la href="http://drupal.org/node/11811" rel="nofollow noreferrer"> template.php archivo de su tema. En realidad, en el caso de tener que pasar una matriz de nombres de archivo css que desea excluir.
La llamada a la
drupal_add_css() sin argumentos pasados, proporcionará $css con una serie de archivos CSS que van a ser unido a su tema. Así que este es el momento adecuado para entrar!

Como se puede ver, en el primer bucle foreach simplemente buscan la matriz $css para nombres de archivo que se existían en la matriz $exclude pasado, para su eliminación estilo. Y lo hacemos el mismo trabajo en el segundo bucle para la inserción estilo. Y al final de esto, volvemos una representación temática de todos los estilos que deben adjuntarse al tema haciendo uso de función drupal_get_css() . (tal vez nada en su caso)

Bueno, Dónde llamar a esta función? Usted puede llamar a esta función auxiliar en _phptemplate_variables() para D5 o YOUR_THEME_preprocess() de D6. Como vemos esto en acción para D6 (no probado)

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

Estoy seguro de que sabe cómo excluir a verlas;)

Otros consejos

Si define los archivos JavaScript CSS y / o en su tema es .info archivo con nombres de archivo que coinciden con los archivos principales a continuación que los redefina, y si no existen las sustituciones entonces no estás incluido.

Ver el archivo .info para el tema Tao por ejemplo

Yo no esto va a funcionar, pero creo que basta con retirar la siguiente línea en page.tpl.php de su tema

 <?php echo $styles ?>

y luego Drupal no cualquiera de sus propios estilos ..
esto puede ser un trabajo para usted.


Nitz

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top