Render quicktabs.

3 calls to quicktabs_render()
quicktabs_block_view in ./quicktabs.module
Implements hook_block_view().
theme_quicktabs_style_options in includes/admin.inc
Theme function for quicktabs style radio options.
_quicktabs_build_content_qtabs in ./quicktabs.module

File

./quicktabs.module, line 226

Code

function quicktabs_render($quicktabs) {
    // First convert any Views arguments in our tabs to the necessary format
    $quicktabs->tabs = _quicktabs_prepare_views_args($quicktabs->tabs, $quicktabs->ajax);
    $tab_settings = (array) $quicktabs;
    // Check if any tabs need to be hidden because of empty content.
    if ($quicktabs->hide_empty_tabs && !$quicktabs->ajax) {
        // Remove empty tabpages.
        foreach ($quicktabs->tabs as $key => $tab) {
            $contents = quicktabs_render_tab_content($tab, TRUE);
            if (empty($contents)) {
                unset($quicktabs->tabs[$key]);
            }
            else {
                $quicktabs->tabs[$key]['rendered'] = $contents;
            }
        }
        $quicktabs->tabs = array_merge($quicktabs->tabs);
    }
    $active_tab = _quicktabs_get_active_tab($quicktabs);
    if ($tabs = _quicktabs_build_tablinks($quicktabs, $active_tab)) {
        // Create the quicktabs renderable array and add the necessary css and js to it
        $qt_ra = array(
            '#attached' => array(
                'css' => array(
                    array(
                        'data' => drupal_get_path('module', 'quicktabs') . '/css/quicktabs.css',
                    ),
                    array(
                        'data' => quicktabs_get_css($quicktabs->style),
                    ),
                ),
                'js' => array(
                    array(
                        'data' => drupal_get_path('module', 'quicktabs') . '/js/quicktabs.js',
                    ),
                    array(
                        'data' => 'misc/progress.js',
                        'weight' => JS_LIBRARY,
                    ),
                ),
            ),
            'content' => array(
                '#theme' => 'quicktabs',
                '#options' => array(
                    'attributes' => array(
                        'id' => 'quicktabs-' . $quicktabs->machine_name,
                        'class' => 'quicktabs_wrapper quicktabs-style-' . drupal_strtolower($quicktabs->style),
                    ),
                ),
                'tabs' => array(
                    '#theme' => 'quicktabs_tabs',
                    '#options' => array(
                        'active' => $active_tab,
                        'style' => drupal_strtolower($quicktabs->style),
                    ),
                    'tablinks' => $tabs,
                ),
                // The main content area, each quicktab container needs a unique id.
'container' => array(
                    '#prefix' => '<div id="quicktabs_container_' . $quicktabs->machine_name . '" class="quicktabs_main quicktabs-style-' . drupal_strtolower($quicktabs->style) . '">',
                    '#suffix' => '</div>',
                ),
            ),
        );
        if (!isset($javascript['setting'][1]['quicktabs']) || !array_key_exists('qt_' . $quicktabs['machine_name'], $javascript['setting'][1]['quicktabs'])) {
            $qt_ra['#attached']['js'][] = array(
                'data' => array(
                    'quicktabs' => array(
                        'qt_' . $quicktabs->machine_name => $tab_settings,
                    ),
                ),
                'type' => 'setting',
            );
        }
        if ($quicktabs->ajax) {
            $attribs = array(
                'id' => 'quicktabs_tabpage_' . $quicktabs->machine_name . '_' . $active_tab,
                'class' => array(
                    'quicktabs_tabpage',
                ),
            );
            $qt_ra['content']['container']['active'] = array(
                '#prefix' => '<div ' . drupal_attributes($attribs) . '>',
                '#suffix' => '</div>',
                'content' => quicktabs_render_tab_content($quicktabs->tabs[$active_tab]),
            );
        }
        else {
            // Render all tabpgages.
            $qt_ra['content']['container']['divs'] = array();
            foreach ($quicktabs->tabs as $key => $tab) {
                $attribs = array(
                    'id' => 'quicktabs_tabpage_' . $quicktabs->machine_name . '_' . $key,
                    'class' => array(
                        'quicktabs_tabpage',
                        $active_tab == $key ? '' : 'quicktabs-hide',
                    ),
                );
                $qt_ra['content']['container']['divs'][] = array(
                    '#prefix' => '<div ' . drupal_attributes($attribs) . '>',
                    '#suffix' => '</div>',
                    'content' => $tab_content = isset($tab['rendered']) ? $tab['rendered'] : quicktabs_render_tab_content($tab),
                );
            }
        }
        return $qt_ra;
    }
    return array();
}