aboutsummaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2011-10-11 18:48:36 -0300
committerSilvio Rhatto <rhatto@riseup.net>2011-10-11 18:48:36 -0300
commit85cfc842e9d3af84c41ab674abd646c732a1931d (patch)
tree12de03e4c020e4c40b3089f3765baf369e993334 /plugins
parent8464818a77538dc4fa157f4347a50208fd949ac1 (diff)
downloadmuambeiro-85cfc842e9d3af84c41ab674abd646c732a1931d.tar.gz
muambeiro-85cfc842e9d3af84c41ab674abd646c732a1931d.tar.bz2
Adding tabs panels plugin
Diffstat (limited to 'plugins')
-rw-r--r--plugins/styles/tabs.inc86
1 files changed, 86 insertions, 0 deletions
diff --git a/plugins/styles/tabs.inc b/plugins/styles/tabs.inc
new file mode 100644
index 0000000..8076f73
--- /dev/null
+++ b/plugins/styles/tabs.inc
@@ -0,0 +1,86 @@
+<?php
+
+/**
+ * @file
+ * Definition of the 'vertical tabs' panel style.
+ * See https://drupal.org/node/1101536
+ */
+
+// Plugin definition
+$plugin = array(
+ 'title' => t('Tabs'),
+ 'description' => t('Presents the panes in a tabs fieldset.'),
+ 'render region' => 'panels_tabs_style_render_region',
+ 'settings form' => 'panels_tabs_style_settings_form',
+ 'settings validate' => 'panels_tabs_style_settings_validate',
+);
+
+/**
+ * Render callback.
+ *
+ * @ingroup themeable
+ */
+function theme_panels_tabs_style_render_region($vars) {
+ $display = $vars['display'];
+ $region_id = $vars['region_id'];
+ $panes = $vars['panes'];
+ $settings = $vars['settings'];
+
+ //Build items and fieldset
+ $items = array();
+ $owner = $vars['owner_id'];
+
+ $build[$owner] = array(
+ '#type' => 'vertical_tabs',
+ '#weight' => 99,
+ );
+
+ foreach ($panes as $pane_id => $item) {
+
+ // Only getting the "Override Title" for now... needs work to get the pane title
+ $title = $display->content[$pane_id]->configuration['override_title_text'];
+ $pane_class = "pane_" . $pane_id;
+
+ $build[$pane_class] = array(
+ '#type' => 'fieldset',
+ '#title' => $title,
+ '#collapsible' => TRUE,
+ '#collapsed' => TRUE,
+ '#group' => $owner,
+ '#attributes' => array(
+ 'class' => array($pane_class),
+ ),
+ '#tree' => TRUE,
+ '#weight' => -2,
+ );
+
+ $build[$pane_class]['items'] = array(
+ '#markup' => $item,
+ );
+ }
+
+ return theme($settings['tabs_type'], array(
+ 'element' => array(
+ '#children' => render($build),
+ ),
+ ));
+}
+
+/**
+ * Settings form callback.
+ */
+function panels_tabs_style_settings_form($style_settings) {
+ //Vertical tabs are in core
+ $options['vertical_tabs'] = t('Vertical');
+ //field_group.module allows same structure, for horizontal tabs
+ if (module_exists('field_group')) $options['horizontal_tabs'] = t('Horizontal');
+
+ $form['tabs_type'] = array(
+ '#type' => 'select',
+ '#title' => t('Tabs type'),
+ '#options' => $options,
+ '#default_value' => (isset($style_settings['tabs_type'])) ? $style_settings['tabs_type'] : 'vertical_tabs',
+ );
+
+ return $form;
+}