我需要用 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();
} 

说明:

  1. 阿蓝尼亚的主题是名称
  2. 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);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top