bootstrap_region.inc in Panels Bootstrap Layouts 7.3
Same filename and directory in other branches
Definition of the 'list' panel style.
File
plugins/styles/bootstrap_region.incView source
<?php
/**
* @file
* Definition of the 'list' panel style.
*/
// Plugin definition
$plugin = array(
'title' => t('Bootstrap'),
'description' => t('Bootstrap settings.'),
'render region' => 'panels_bootstrap_layouts_style_region_render',
'settings form' => 'panels_bootstrap_layouts_style_region_settings_form',
);
/**
* Render region callback.
*
* @ingroup themeable
*/
function theme_panels_bootstrap_layouts_style_region_render($vars) {
$display = $vars['display'];
$panes = $vars['panes'];
$settings = $vars['settings'];
if ($panes) {
$class = array(
'panel-panel',
$vars['region_id'],
);
if (!empty($settings['css_class'])) {
$class[] = $settings['css_class'];
}
foreach (array(
'xs',
'sm',
'md',
'lg',
) as $size) {
if (isset($settings['column'][$size])) {
if ($settings['column'][$size] === 'hidden') {
$class[] = 'hidden-' . $size;
}
elseif (!empty($settings['column'][$size])) {
$class[] = 'col-' . $size . '-' . $settings['column'][$size];
}
}
if (isset($settings['offset'][$size]) && !empty($settings['offset'][$size])) {
$class[] = 'col-' . $size . '-offset-' . $settings['offset'][$size];
}
if (isset($settings['push'][$size]) && !empty($settings['push'][$size])) {
$class[] = 'col-' . $size . '-push-' . $settings['push'][$size];
}
if (isset($settings['pull'][$size]) && !empty($settings['pull'][$size])) {
$class[] = 'col-' . $size . '-pull-' . $settings['pull'][$size];
}
}
// Compatibility with previous version.
if (empty($class)) {
$class[] = _panels_bootstrap_layouts_legacy_get_col_classes($settings);
}
$element = array(
'#tag' => 'div',
'#value' => implode('', $panes),
'#attributes' => array(
'class' => $class,
),
);
if (!empty($settings['css_id'])) {
$element['#attributes']['id'] = $settings['css_id'];
}
return theme('html_tag', array(
'element' => $element,
));
}
}
/**
* Region settings form callback.
*/
function panels_bootstrap_layouts_style_region_settings_form($style_settings, $display, $pid, $type, $form_state) {
$form = array();
$form['css_id'] = array(
'#type' => 'textfield',
'#title' => t('CSS ID'),
'#default_value' => isset($style_settings['css_id']) ? $style_settings['css_id'] : '',
'#description' => t('CSS ID to apply to this pane. This may be blank.'),
);
$form['css_class'] = array(
'#type' => 'textfield',
'#title' => t('CSS class'),
'#default_value' => isset($style_settings['css_class']) ? $style_settings['css_class'] : '',
'#description' => t('CSS class to apply to this pane. This may be blank.'),
);
$options = range(0, 12);
$options[0] = t('-- None --');
$options['hidden'] = t('-- Hidden --');
$column_sizes = array(
'xs' => t('Extra small devices'),
'sm' => t('Small devices'),
'md' => t('Medium devices'),
'lg' => t('Large devices'),
);
$form['column'] = array(
'#type' => 'fieldset',
'#title' => t('Grid options'),
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);
$form['offset'] = array(
'#type' => 'fieldset',
'#title' => t('Offsetting'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$form['push'] = array(
'#type' => 'fieldset',
'#title' => t('Pushing'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$form['pull'] = array(
'#type' => 'fieldset',
'#title' => t('Pulling'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
foreach ($column_sizes as $size => $description) {
$form['column'][$size] = array(
'#type' => 'select',
'#title' => t('Column size !size', array(
'!size' => strtoupper($size),
)),
'#options' => $options,
'#default_value' => isset($style_settings['column'][$size]) ? $style_settings['column'][$size] : 1,
'#description' => t('Column size for !description (col-!size-*)', array(
'!description' => $description,
'!size' => $size,
)),
);
$form['offset'][$size] = array(
'#type' => 'select',
'#title' => t('Offset size !size', array(
'!size' => strtoupper($size),
)),
'#options' => $options,
'#default_value' => isset($style_settings['offset'][$size]) ? $style_settings['offset'][$size] : 0,
'#description' => t('Offset size for !description (col-!size-offset-*)', array(
'!description' => $description,
'!size' => $size,
)),
);
$form['push'][$size] = array(
'#type' => 'select',
'#title' => t('Push size !size', array(
'!size' => strtoupper($size),
)),
'#options' => $options,
'#default_value' => isset($style_settings['push'][$size]) ? $style_settings['push'][$size] : 0,
'#description' => t('Push size for !description (col-!size-push-*)', array(
'!description' => $description,
'!size' => $size,
)),
);
$form['pull'][$size] = array(
'#type' => 'select',
'#title' => t('Pull size !size', array(
'!size' => strtoupper($size),
)),
'#options' => $options,
'#default_value' => isset($style_settings['pull'][$size]) ? $style_settings['pull'][$size] : 0,
'#description' => t('Pull size for !description (col-!size-pull-*)', array(
'!description' => $description,
'!size' => $size,
)),
);
}
return $form;
}
/**
* Helper to keep compatibility with old versions of the module.
*
* @param $settings
*
* @return string
* Column class.
*
* @deprecated
*/
function _panels_bootstrap_layouts_legacy_get_col_classes($settings) {
$class = array();
if ($settings['column_size']) {
if (empty($settings['column_type'])) {
$settings['column_type'] = 'col-lg';
}
$class[] = $settings['column_type'] . '-' . $settings['column_size'];
}
if ($settings['offset_type'] && $settings['offset_size']) {
$class[] = $settings['offset_type'] . '-' . $settings['offset_size'];
}
return implode(' ', $class);
}
Functions
Name![]() |
Description |
---|---|
panels_bootstrap_layouts_style_region_settings_form | Region settings form callback. |
theme_panels_bootstrap_layouts_style_region_render | Render region callback. |
_panels_bootstrap_layouts_legacy_get_col_classes | Helper to keep compatibility with old versions of the module. |