Create an account

Very important

  • To access the important data of the forums, you must be active in each forum and especially in the leaks and database leaks section, send data and after sending the data and activity, data and important content will be opened and visible for you.
  • You will only see chat messages from people who are at or below your level.
  • More than 500,000 database leaks and millions of account leaks are waiting for you, so access and view with more activity.
  • Many important data are inactive and inaccessible for you, so open them with activity. (This will be done automatically)


Thread Rating:
  • 546 Vote(s) - 3.43 Average
  • 1
  • 2
  • 3
  • 4
  • 5
drupal_add_css not working

#1
I need to use [drupal_add_css][1] to call stylesheets onto single Drupal 6 pages. I don't want to edit the main theme stylesheet as there will be a set of individual pages which all need completely new styles - the main sheet would be massive if i put it all in there.

My solution was to edit the page in PHP editor mode and do this:

<?php
drupal_add_css("/styles/file1.css", "theme");
?>

<div id="newPageContent">stuff here in html</div>

But when I view source, there is nothing there! Not even a broken CSS link or anything, it's just refusing to add the CSS sheet to the CSS package put into the page head.

Variations don't seem to work either:

drupal_add_css($path = '/styles/file1.css', $type = 'module', $media = 'all', $preprocess = TRUE)

My template header looks like this, I've not changed anything from the default other than adding a custom 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>


Why is this function not working?

[1]:

[To see links please register here]

Reply

#2
It is not quite clear where you are selecting the template that you have in your example. If you are selecting it from a module then you can just use drupal_add_css in the module rather than the template.

If you have your own theme you can use [template_preprocess_page][1] and put logic in there to add the relevant CSS (you can also use it to select the template to use).



[1]:

[To see links please register here]

Reply

#3
This function wont work in templates. The reason is that the variable $styles which will hold all the stylesheet html will already have been generated at this point, so drupal_add_css wont work as it adds to that. if you want to do this in your theme, you would probably have to add the css file manually

<link rel="stylesheet" ... />

The other way would be to use drupal_add_css in a module, but you might have a hard time adding the correct css files on the pages you want.

Reply

#4
Thanks for the link, wyrmmage. That's very useful. I think the rest of the code in the page is unneccessary. You probably just need these since drupal 6 already automatically check for file existence:


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();
Reply

#5
I have noticed something weird and it might fix your problem:

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

The first one will work ebcause the style it in the main them folder
The second line will not work because the style is in a sub folder !

Edit:

i think it did not work because i did not write the path the the style file properly :S so please disregard my answer

drupal_add_css( drupal_get_path('theme','test') . '/pages/subpage/style.css','theme');

is working
Reply

#6
This code inside template.php works for me:

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

explained:

1. alagna is the theme name
2. header_1.css is the css file required.


Reply

#7
drupal_add_css is expecting a path relative to base path whereas drupal_get_path does not return the path relative to base path.

<code>
global $base_path; <br />
drupal_add_css($base_path . drupal_get_path('module / theme','name') . "/styles/file1.css", "module / theme");
</code>

You can choose between module and theme accordingly.
Reply

#8
Try this
[common.inc drupal_get_css($css = NULL)][1]

**Parameters**

**$css: (optional) An array of CSS files.** If no array is provided, the default stylesheets array is used instead.


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


[1]:

[To see links please register here]

Reply

#9
Answer was very much to use the [CSS Injector][1] module - great little addon!

Here is an excerpt from its project page:

> Allows administrators to inject CSS into the page output based on configurable rules. It's useful for adding simple CSS tweaks without modifying a site's official theme. The CSS is added using Drupal's standard drupal_add_css() function and respects page caching, etc. The 2.x brach leverages CTools so CSS can be included with Feature changes (ie. CSS that improves the look of a View can be packaged with the View).

[1]:

[To see links please register here]

Reply

#10
It's possible to use drupal_add_css() inside your template.php file; [this page][1] has a good example of how to do just that.


[1]:

[To see links please register here]

"this page"
Reply



Forum Jump:


Users browsing this thread:
1 Guest(s)

©0Day  2016 - 2023 | All Rights Reserved.  Made with    for the community. Connected through