class QuickUiTabs in Quick Tabs 7.3
Renders the content using the jQuery UI Tabs widget.
Hierarchy
- class \QuickRenderer
- class \QuickUiTabs
Expanded class hierarchy of QuickUiTabs
File
- plugins/
QuickUiTabs.inc, line 6
View source
class QuickUiTabs extends QuickRenderer {
public static function optionsForm($qt) {
$form = array();
$form['history'] = array(
'#type' => 'checkbox',
'#title' => 'History',
'#description' => t('Store tab state in the URL allowing for browser back / forward and bookmarks.'),
'#default_value' => isset($qt->renderer) && $qt->renderer == 'ui_tabs' && isset($qt->options['history']) && $qt->options['history'],
);
return $form;
}
public function render() {
$quickset = $this->quickset;
$active_tab = $quickset
->getActiveTab();
$tabs = $this
->build_tablinks($active_tab);
$qt_name = $quickset
->getName();
$render_array = array(
'#attached' => $this
->add_attached(),
'content' => array(
'#theme' => 'qt_ui_tabs',
'#options' => array(
'attributes' => array(
'id' => 'quicktabs-' . $qt_name,
'class' => 'quicktabs-ui-wrapper',
),
),
'tabs' => array(
'#theme' => 'qt_ui_tabs_tabset',
'#options' => array(
'active' => $active_tab,
),
'tablinks' => $tabs,
),
'divs' => array(),
),
);
foreach ($quickset
->getContents() as $key => $tab) {
if (!empty($tab)) {
$attribs = array(
'id' => 'qt-' . $qt_name . '-ui-tabs' . ($key + 1),
);
$render_array['content']['divs'][] = array(
'#prefix' => '<div ' . drupal_attributes($attribs) . '>',
'#suffix' => '</div>',
'content' => $tab
->render(),
);
}
}
return $render_array;
}
/**
* Build the actual tab links, with appropriate href, title and attributes.
*
* @param $active_tab The index of the active tab.
*/
protected function build_tablinks($active_tab) {
$tabs = array();
$qt_name = $this->quickset
->getName();
foreach ($this->quickset
->getContents() as $i => $tab) {
if (!empty($tab)) {
// If we use l() here or a render array of type 'link', the '#' symbol will
// be escaped. Sad panda is sad.
$href = '#qt-' . $qt_name . '-ui-tabs' . ($i + 1);
$quickset = $this->quickset;
$attributes = array();
$attributes['class'][] = drupal_html_class($tab
->getTitle());
drupal_alter('quicktabs_tablinks_attributes', $attributes, $quickset, $i);
$attributes['href'] = $href;
$tablink = array(
'#markup' => '<a ' . drupal_attributes($attributes) . '>' . check_plain($this->quickset
->translateString($tab
->getTitle(), 'tab', $i)) . '</a>',
);
$tabs[$i] = $tablink;
}
}
return $tabs;
}
/**
* Add any necessary js, css and libraries for the render array.
*/
protected function add_attached() {
$active_tab = $this->quickset
->getActiveTab();
$settings = $this->quickset
->getSettings();
$options = $settings['options'];
$attached = array(
'library' => array(
array(
'system',
'ui.tabs',
),
array(
'system',
'jquery.bbq',
),
),
'js' => array(
array(
'data' => drupal_get_path('module', 'quicktabs') . '/js/qt_ui_tabs.js',
'weight' => JS_DEFAULT + 1,
),
),
);
$javascript = drupal_add_js();
if (isset($javascript['settings']['data'])) {
foreach ($javascript['settings']['data'] as $key => $settings) {
if (key($settings) == 'quicktabs') {
$qtkey = $key;
break;
}
}
}
if ($options['history']) {
$attached['library'][] = array(
'system',
'jquery.bbq',
);
$attached['js'][] = array(
'data' => drupal_get_path('module', 'quicktabs') . '/js/quicktabs_bbq.js',
'weight' => JS_DEFAULT,
);
}
$name = $this->quickset
->getName();
if (!isset($qtkey) || !array_key_exists('qt_' . $name, $javascript['settings']['data'][$qtkey]['quicktabs'])) {
$quicktabs_array = array(
'name' => $name,
'active_tab' => $this->quickset
->getActiveTab(),
'history' => $options['history'],
);
$attached['js'][] = array(
'data' => array(
'quicktabs' => array(
'qt_' . $name => $quicktabs_array,
),
),
'type' => 'setting',
);
}
return $attached;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
QuickRenderer:: |
protected | property | ||
QuickRenderer:: |
public | function | Accessor method for the title. | |
QuickRenderer:: |
public | function | Constructor | |
QuickUiTabs:: |
protected | function | Add any necessary js, css and libraries for the render array. | |
QuickUiTabs:: |
protected | function | Build the actual tab links, with appropriate href, title and attributes. | |
QuickUiTabs:: |
public static | function |
Method for returning the form elements to display for this renderer type on
the admin form. Overrides QuickRenderer:: |
|
QuickUiTabs:: |
public | function |
The only method that renderer plugins must implement. Overrides QuickRenderer:: |