题
我需要用 drupal_add_css 叫的样式表上个推6页。我不想编辑的主要主题,样式,因为会有一套单独的网页,其所有需要的完全新的风格-主片将是巨大的,如果我把它放在那里。
我的解决方案是要编辑页PHP编辑模式,这样做:
<?php
drupal_add_css("/styles/file1.css", "theme");
?>
<div id="newPageContent">stuff here in html</div>
但是当我看源,有什么都没有!甚至不是一个破碎的CSS链或任何东西,只是拒绝加入CSS片的CSS包放入网页的头。
变化似乎并不工作,可以:
drupal_add_css($path = '/styles/file1.css', $type = 'module', $media = 'all', $preprocess = TRUE)
我的模板的头看起来是这样的,我没改变任何东西从默认比其他添加一个自定义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>
这是为什么不工作?
解决方案 5
答案是很多的使用 CSS喷射器 模块伟大的小插!
这里是一个摘录从其项目页:
允许管理员注CSS成页输出基于可配置的规则。这是非常有用简单的添加CSS调整,而无需修改一网站的正式主题。CSS是增加使用推的标准drupal_add_css()function和尊重页面缓存,等等。2.x分支的利用CTools使CSS可以包括与特征的变化(即。CSS,改善了看一看可以打包带的图)。
其他提示
它不是很清楚你在哪里选择的模板,你有你的例子。如果你选择一个模块然后你就可以使用drupal_add_css的模块,而不是的模板。
如果你有自己的主题可以使用 template_preprocess_page 把逻辑在里面添加相关CSS(你也可以用它来选择的模板的使用)。
我注意到什么奇怪的,它可能会解决你的问题:
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 );
第一个将工作ebcause的风格,它在主要它们的文件夹 第二线不会的工作,因为风格是在一个子文件夹!
编辑:
我认为它没有工作,因为我没有写道路的样式文件正确的:所以请无视我的答案
drupal_add_css( drupal_get_path('theme','test') . '/pages/subpage/style.css','theme');
是工作
这一功能的,不会的工作模板。其原因是,该变量$式将举行的所有样式表html已经产生在这一点上,所以drupal_add_css不会的工作,因为它增加了。如果你想要做到这一点,在你的主题,你将可能必须添加css文件手
<link rel="stylesheet" ... />
另一种办法是使用drupal_add_css在一个模块,但你可能有一个困难时期增加正确的css文件的网页上你想要的。
这有可能使用drupal_add_css()内你的template.php 文件; 这页 有一个很好的例子如何做到这一点。
这个代码template.php 对我的作品:
function alagna_preprocess_page(&$vars) {
drupal_add_css(path_to_theme() . '/header_1.css', 'theme');
$vars['css'] = drupal_add_css();
$vars['styles'] = drupal_get_css();
}
说明:
- 阿蓝尼亚的主题是名称
- header_1.css是css文件的需要。
drupal_add_css期待一个路径相对于基本路径而drupal_get_path不返回的路径相对于基础的道路。
global $base_path;
drupal_add_css($base_path . drupal_get_path('module / theme','name') . "/styles/file1.css", "module / theme");
你可以选择模块和主题。
谢谢你的链接,wyrmmage.这是非常有用的。我认为,其余的代码,在页面是不必要的.你可能只需要这些因为推6已经自动检查的文件存在:
drupal_add_css(path_to_theme() . '/css/yourcss.css', 'theme');
// Add the following to regenerate $styles.
// This is needed for template_preprocess_page() since css is already generated at this point.
$variables['styles'] = drupal_get_css();
试试这个 常见的。公司drupal_get_css($css=NULL)
参数
$css:(可选)一系列CSS文件。 如果没有列提供的,默认的样式表阵列是用来代替。
$css = $vars['css'];
// unset the system css files
$unset_css = array
'modules/system/system.css',
'modules/system/system-menus.css',
);
foreach($unset_css as $css_f) {
if(isset($css['all']['module'][$css_f])) {
unset($css['all']['module'][$css_f]);
}
}
// add css
$css['all']['theme'][drupal_get_path('theme', 'openpublish_theme') . '/css/style.css'] = true;
$vars['styles'] = drupal_get_css($css);