*/
function theme_vertical_tabs($variables) {
$element = $variables['element'];
- // Even if there are no tabs the element will still have a child element for
- // the active tab. We need to iterate over the tabs to ascertain if any
- // are visible before showing the wrapper and h2.
- $visible_tab = FALSE;
- $output = '';
- foreach (element_children($element['group']) as $tab_index) {
- if (!isset($element['group'][$tab_index]['#access']) ||
- !empty($element['group'][$tab_index]['#access'])) {
- $visible_tab = TRUE;
- break;
- }
- }
- if ($visible_tab) {
- // Add required JavaScript and Stylesheet.
- drupal_add_library('system', 'drupal.vertical-tabs');
+ // Add required JavaScript and Stylesheet.
+ drupal_add_library('system', 'drupal.vertical-tabs');
- $output = '<h2 class="element-invisible">' . t('Vertical Tabs') . '</h2>';
- $output .= '<div class="vertical-tabs-panes">' . $element['#children'] . '</div>';
- }
+ $output = '<h2 class="element-invisible">' . t('Vertical Tabs') . '</h2>';
+ $output .= '<div class="vertical-tabs-panes">' . $element['#children'] . '</div>';
return $output;
}
function setUp() {
parent::setUp('form_test');
-
- $this->admin_user = $this->drupalCreateUser(array('access vertical_tab_test tabs'));
- $this->web_user = $this->drupalCreateUser();
- $this->drupalLogin($this->admin_user);
}
/**
$position2 = strpos($this->content, 'misc/collapse.js');
$this->assertTrue($position1 !== FALSE && $position2 !== FALSE && $position1 < $position2, t('vertical-tabs.js is included before collapse.js'));
}
-
- /**
- * Ensures that vertical tab markup is not shown if user has no tab access.
- */
- function testWrapperNotShownWhenEmpty() {
- // Test admin user can see vertical tabs and wrapper.
- $this->drupalGet('form_test/vertical-tabs');
- $wrapper = $this->xpath("//div[@class='vertical-tabs-panes']");
- $this->assertTrue(isset($wrapper[0]), 'Vertical tab panes found.');
-
- // Test wrapper markup not present for non-privileged web user.
- $this->drupalLogin($this->web_user);
- $this->drupalGet('form_test/vertical-tabs');
- $wrapper = $this->xpath("//div[@class='vertical-tabs-panes']");
- $this->assertFalse(isset($wrapper[0]), 'Vertical tab wrappers are not displayed to unprivileged users.');
- }
}
/**
}
/**
- * Implements hook_permission().
- */
-function form_test_permission() {
- $perms = array(
- 'access vertical_tab_test tabs' => array(
- 'title' => t('Access vertical_tab_test tabs'),
- ),
- );
- return $perms;
-}
-
-/**
* Form submit handler to return form values as JSON.
*/
function _form_test_submit_values_json($form, &$form_state) {
'#title' => t('Tab 1'),
'#collapsible' => TRUE,
'#group' => 'vertical_tabs',
- '#access' => user_access('access vertical_tab_test tabs')
);
$form['tab1']['field1'] = array(
'#title' => t('Field 1'),
'#title' => t('Tab 2'),
'#collapsible' => TRUE,
'#group' => 'vertical_tabs',
- '#access' => user_access('access vertical_tab_test tabs')
);
$form['tab2']['field2'] = array(
'#title' => t('Field 2'),