View source
<?php
function quicktabs_tabstyles_theme() {
return array(
'quicktabs_style_options' => array(
'render element' => 'quicktabs_tabstyle',
),
);
}
function quicktabs_tabstyles_menu() {
$items['admin/structure/quicktabs/styles'] = array(
'title' => 'Styles',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'quicktabs_tabstyles_styles',
),
'access arguments' => array(
'administer quicktabs',
),
'type' => MENU_LOCAL_TASK,
);
return $items;
}
function quicktabs_tabstyles_styles() {
$options = array();
$styles = module_invoke_all('quicktabs_tabstyles');
foreach ($styles as $style) {
$options[$style] = $style;
}
ksort($options);
$form['quicktabs_tabstyle'] = array(
'#type' => 'radios',
'#title' => t('Quicktab styles'),
'#options' => array(
'nostyle' => t('No style'),
) + $options,
'#default_value' => variable_get('quicktabs_tabstyle', 'nostyle'),
'#description' => t('Select the default style for quicktabs.'),
'#attributes' => array(
'class' => array(
'quicktabs-tabstyles',
'clear-block',
),
),
'#theme' => 'quicktabs_style_options',
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Save'),
);
return $form;
}
function quicktabs_tabstyles_styles_submit($form, &$form_state) {
variable_set('quicktabs_tabstyle', $form_state['values']['quicktabs_tabstyle']);
drupal_set_message(t('The default quicktab style has been saved.'));
}
function theme_quicktabs_style_options($variables) {
$style_element = $variables['quicktabs_tabstyle'];
$markup = '';
$tabs = array(
array(
'title' => t('One'),
'contents' => array(
'#markup' => t('First tab'),
),
'weight' => 0,
),
array(
'title' => t('Two'),
'contents' => array(
'#markup' => t('Second tab'),
),
'weight' => 1,
),
array(
'title' => t('Three'),
'contents' => array(
'#markup' => t('Third tab'),
),
'weight' => 2,
),
);
$options = array(
'renderer' => 'quicktabs',
'hide_empty_tabs' => 0,
'ajax' => 0,
);
foreach (element_children($style_element) as $style) {
$element = $style_element[$style];
$options['style'] = $style;
$quicktabs = quicktabs_build_quicktabs(drupal_strtolower($style), $options, $tabs);
$preview = '<div class="quicktabs-preview">' . drupal_render($quicktabs['content']) . '</div>';
$element['#description'] = t('%style preview', array(
'%style' => $element['#title'],
)) . ':<br />' . $preview;
$markup .= drupal_render($element);
}
$build = array(
'style' => array(
'#markup' => $markup,
),
'#attached' => array(
'css' => array(
drupal_get_path('module', 'quicktabs_tabstyles') . '/css/quicktabs-tabstyles-admin.css',
),
),
);
return drupal_render($build);
}
function quicktabs_tabstyles_quicktabs_tabstyles() {
$tabstyles_directory = drupal_get_path('module', 'quicktabs_tabstyles') . '/tabstyles';
$files = file_scan_directory($tabstyles_directory, '/\\.css$/');
$tabstyles = array();
foreach ($files as $file) {
if (!strpos($file->name, '-rtl')) {
$tabstyles[$file->uri] = drupal_ucfirst($file->name);
}
}
return $tabstyles;
}