Project:Vertical Tabs
Version:6.x-1.0-beta2
Component:Code
Category:bug report
Priority:normal
Assigned:Unassigned
Status:closed (fixed)

Issue Summary

Currently it seems there is no way to override vertical_tabs css file, except for garland theme.
It is critical for me since I need both RTL and LTR functionality of the module (I put the tab titles in the right side...).
Even if I define css values inside my style.css, it is not working since the vertical_tabs css is loaded after it.

Thanks,
Shushu

Comments

#1

Version:6.x-1.0-beta1» 6.x-1.0-beta2

I can confirm this.
This module is calling its stylesheet after the theme stylesheets.
Module stylesheets should come before theme stylesheets.

Because the module's stylesheet is loaded last themes can not override the module's styles.

<link rel="shortcut icon" href="/sites/all/themes/acquia_slate/favicon.ico" type="image/x-icon" />
<link type="text/css" rel="stylesheet" media="all" href="/modules/book/book.css?o" />
<link type="text/css" rel="stylesheet" media="all" href="/modules/node/node.css?o" />
<link type="text/css" rel="stylesheet" media="all" href="/modules/poll/poll.css?o" />
<link type="text/css" rel="stylesheet" media="all" href="/modules/system/defaults.css?o" />
<link type="text/css" rel="stylesheet" media="all" href="/modules/system/system.css?o" />
<link type="text/css" rel="stylesheet" media="all" href="/modules/system/system-menus.css?o" />
<link type="text/css" rel="stylesheet" media="all" href="/modules/user/user.css?o" />
<link type="text/css" rel="stylesheet" media="all" href="/sites/all/modules/roboconf/roboconf.css?o" />
<link type="text/css" rel="stylesheet" media="all" href="/sites/all/modules/teleport/teleport.css?o" />
<link type="text/css" rel="stylesheet" media="all" href="/modules/forum/forum.css?o" />
<link type="text/css" rel="stylesheet" media="all" href="/sites/all/themes/acquia_slate/style.css?o" />
<link type="text/css" rel="stylesheet" media="all" href="/sites/all/themes/acquia_slate/dblog.css?o" />
<link type="text/css" rel="stylesheet" media="all" href="/sites/all/modules/vertical_tabs/vertical_tabs.css?o" />

#2

Status:active» needs review

Attached is a patch to fix this issue.

<link rel="shortcut icon" href="/sites/all/themes/acquia_slate/favicon.ico" type="image/x-icon" />
<link type="text/css" rel="stylesheet" media="all" href="/modules/book/book.css?o" />
<link type="text/css" rel="stylesheet" media="all" href="/modules/node/node.css?o" />
<link type="text/css" rel="stylesheet" media="all" href="/modules/poll/poll.css?o" />
<link type="text/css" rel="stylesheet" media="all" href="/modules/system/defaults.css?o" />
<link type="text/css" rel="stylesheet" media="all" href="/modules/system/system.css?o" />
<link type="text/css" rel="stylesheet" media="all" href="/modules/system/system-menus.css?o" />
<link type="text/css" rel="stylesheet" media="all" href="/modules/user/user.css?o" />
<link type="text/css" rel="stylesheet" media="all" href="/sites/all/modules/roboconf/roboconf.css?o" />
<link type="text/css" rel="stylesheet" media="all" href="/sites/all/modules/teleport/teleport.css?o" />
<link type="text/css" rel="stylesheet" media="all" href="/modules/forum/forum.css?o" />
<link type="text/css" rel="stylesheet" media="all" href="/sites/all/modules/vertical_tabs/vertical_tabs.css?o" />
<link type="text/css" rel="stylesheet" media="all" href="/sites/all/themes/acquia_slate/style.css?o" />
<link type="text/css" rel="stylesheet" media="all" href="/sites/all/themes/acquia_slate/dblog.css?o" />
AttachmentSize
stylesheet-order-fix.patch 925 bytes

#3

Subscribing.

#4

subscribing!!!!

#5

Status:needs review» needs work

The last two parameters you added are superfluous 'all', TRUE (i.e. they aren't needed). I may test this patch soon.

#6

There doesn't appear to be any reason for the JavaScript and CSS to be loaded via the 'theme' parameter. I've tested the code below with a custom theme as well as Garland. Viewing the CSS in Firebug shows that vertical_tabs has no trouble with CSS specificity, and there is no visual or functional difference as far as I can see.

This loads all the JS and CSS with default parameters:

/**
*
*/
function theme_vertical_tabs_js_css($js, $css, $settings, $form_id) {
  static $js_added = array();
  if (!isset($js_added[$form_id])) {
    drupal_add_js(array('verticalTabs' => $settings), 'setting');
    drupal_add_js(drupal_get_path('module', 'vertical_tabs') .'/vertical_tabs.js');
    drupal_add_css(drupal_get_path('module', 'vertical_tabs') .'/vertical_tabs.css');
    foreach ($js as $path) {
      drupal_add_js($path);
    }
    foreach ($css as $path) {
      drupal_add_css($path);
    }
    $js_added[$form_id] = TRUE;
  }
}

#7

Status:needs work» fixed

Thanks, fixed with attached patch. Vertical tabs sets a weight of 300 in the system table, so that should prevent other modules from loading JavaScript first. The important thing really is just that collapse.js runs before vertical_tabs.js. The use of "theme" was an early hack to prevent other JS from loading after vertical_tabs.js.

AttachmentSize
vertical_tabs_add_js.patch 959 bytes

#8

Oops I missed two more calls that added things at the theme layer, now fixed as well.

http://cvs.drupal.org/viewvc.py/drupal/contributions/modules/vertical_ta...

#9

Status:fixed» closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.