MrF*_*dge 7 php drupal drupal-6
我需要使用drupal_add_css将样式表调用到单个Drupal 6页面上.我不想编辑主题样式表,因为会有一组单独的页面都需要全新的样式 - 如果我把它全部放在那里,主表将是巨大的.
我的解决方案是在PHP编辑器模式下编辑页面并执行以下操作:
<?php
drupal_add_css("/styles/file1.css", "theme");
?>
<div id="newPageContent">stuff here in html</div>
Run Code Online (Sandbox Code Playgroud)
但是当我查看源代码时,那里什么都没有!甚至没有破坏的CSS链接或任何东西,它只是拒绝将CSS表添加到放入页眉的CSS包中.
变化似乎也不起作用:
drupal_add_css($path = '/styles/file1.css', $type = 'module', $media = 'all', $preprocess = TRUE)
Run Code Online (Sandbox Code Playgroud)
我的模板标题看起来像这样,除了添加自定义JavaScript之外,我没有更改默认设置.
<head>
<?php print $head ?>
<title><?php print $head_title ?></title>
<?php print $styles ?>
<?php print $scripts ?>
<script type="text/javascript" src="<?php print base_path() ?>misc/askme.js"></script>
<!--[if lt IE 7]>
<?php print phptemplate_get_ie_styles(); ?>
<![endif]-->
</head>
Run Code Online (Sandbox Code Playgroud)
为什么这个功能不起作用?
您在选择示例中的模板的位置并不十分清楚.如果从模块中选择它,则可以在模块中使用drupal_add_css而不是模板.
如果您有自己的主题,可以使用template_preprocess_page并在其中放置逻辑以添加相关的CSS(您也可以使用它来选择要使用的模板).
小智 6
我注意到一些奇怪的东西,它可能会解决你的问题:
drupal_add_css( drupal_get_path('theme','themname') . '/working.css','module' ,'all' , false );
drupal_add_css( drupal_get_path('theme','themname') . '/path/to/folder/notworking.css','module' ,'all' , false );
Run Code Online (Sandbox Code Playgroud)
第一个将工作,因为它在主文件夹中的样式第二行将无法工作,因为样式在子文件夹中!
编辑:
我认为它没有用,因为我没有正确地写出样式文件的路径:S所以请忽略我的答案
drupal_add_css( drupal_get_path('theme','test') . '/pages/subpage/style.css','theme');
Run Code Online (Sandbox Code Playgroud)
工作中
答案是非常需要使用CSS Injector模块 - 很棒的小插件!
以下是其项目页面的摘录:
允许管理员根据可配置的规则将 CSS 注入到页面输出中。它对于添加简单的 CSS 调整而不修改网站的官方主题非常有用。CSS 使用 Drupal 的标准 drupal_add_css() 函数添加,并尊重页面缓存等。2.x 分支利用 CTools,因此 CSS 可以包含在功能更改中(即,可以将改善视图外观的 CSS 与视图打包在一起) )。