|
@@ -11,92 +11,14 @@ drupal_add_js('misc/collapse.js');
|
|
|
drupal_add_js(drupal_get_path('module','tripal_panes') . '/theme/js/tripal_panes.js');
|
|
|
|
|
|
|
|
|
-$panes = $variables['element']['#panes'];
|
|
|
-$fields = $variables['element']['#fields'];
|
|
|
$bundle = $variables['element']['#bundle'];
|
|
|
-
|
|
|
$bundle_type = $bundle->name . '-' . $bundle->label;
|
|
|
|
|
|
$content = '';
|
|
|
$toc = '';
|
|
|
$has_base_pane_only = TRUE;
|
|
|
|
|
|
-
|
|
|
-foreach ($panes AS $pane_id => $pane) {
|
|
|
- if ($pane->name != 'te_base') {
|
|
|
- $has_base_pane_only = FALSE;
|
|
|
- }
|
|
|
- $pane_settings = unserialize($pane->settings);
|
|
|
- $table_layout_group = key_exists('table_layout', $pane_settings) ? $pane_settings['table_layout'] : array();
|
|
|
-
|
|
|
-
|
|
|
- $pane_fields = $fields[$pane_id];
|
|
|
-
|
|
|
-
|
|
|
- $weighed_fields = array();
|
|
|
- foreach ($pane_fields as $field) {
|
|
|
- $weighed_fields [$field['#weight'] . $field['#field_name']] = $field;
|
|
|
- }
|
|
|
- ksort($weighed_fields, SORT_NUMERIC);
|
|
|
-
|
|
|
-
|
|
|
- $table_layout = array();
|
|
|
- $no_group = array();
|
|
|
- $output = '';
|
|
|
- $current_layout = '';
|
|
|
- $counter = 0;
|
|
|
- foreach ($weighed_fields AS $field) {
|
|
|
-
|
|
|
- $css_class = $field['#css_class'] ? ' ' . $field['#css_class'] : '';
|
|
|
- $field['#prefix'] = '<div class="tripal_panes-field-wrapper' . $css_class . '">';
|
|
|
- $field['#suffix'] = '</div>';
|
|
|
-
|
|
|
-
|
|
|
- if (in_array($field['#field_name'], $table_layout_group)) {
|
|
|
-
|
|
|
- if ($counter != 0 && $current_layout != 'Table') {
|
|
|
- $output .= tripal_panes_generic_render_fields($no_group);
|
|
|
- $no_group = array();
|
|
|
- }
|
|
|
- $table_layout [$field['#weight'] . $field['#field_name']] = $field;
|
|
|
- $current_layout = 'Table';
|
|
|
- }
|
|
|
-
|
|
|
- else {
|
|
|
- if ($counter != 0 && $current_layout != 'Default') {
|
|
|
- $output .= tripal_panes_generic_render_table($table_layout, $bundle_type);
|
|
|
- $table_layout = array();
|
|
|
- }
|
|
|
- $no_group [$field['#weight'] . $field['#field_name']] = $field;
|
|
|
- $current_layout = 'Default';
|
|
|
- }
|
|
|
- $counter ++;
|
|
|
- }
|
|
|
- if ($current_layout == 'Table') {
|
|
|
- $output .= tripal_panes_generic_render_table($table_layout, $bundle_type);
|
|
|
- }
|
|
|
- else if ($current_layout == 'Default') {
|
|
|
- $output .= tripal_panes_generic_render_fields($no_group);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- if ($pane->name == 'te_base') {
|
|
|
- $content .= '<div class="tripal_pane-base_pane">' . $output . '</div>';
|
|
|
- }
|
|
|
- else {
|
|
|
- $collapsible_item = array('element' => array());
|
|
|
- $collapsible_item['element']['#description'] = $output;
|
|
|
- $collapsible_item['element']['#title'] = $pane->label;
|
|
|
- $collapsible_item['element']['#children'] = '';
|
|
|
- $collapsible_item['element']['#attributes']['id'] = 'tripal_pane-fieldset-' . $pane->name;
|
|
|
- $collapsible_item['element']['#attributes']['class'][] = 'tripal_pane-fieldset';
|
|
|
- $collapsible_item['element']['#attributes']['class'][] = 'collapsible';
|
|
|
- $collapsible_item['element']['#attributes']['class'][] = 'collapsed';
|
|
|
- $toc_item_id = $pane_id;
|
|
|
- $toc .= "<div class=\"tripal-panes-toc-list-item\"><a id=\"" . $pane->name . "\" class=\"tripal_panes-toc-list-item-link\" href=\"?pane=" . $pane->name . "\">" . $pane->label . "</a></div>";
|
|
|
- $content .= theme('fieldset', $collapsible_item);
|
|
|
- }
|
|
|
-}
|
|
|
+get_content($variables, $bundle_type, $content, $toc, $has_base_pane_only);
|
|
|
|
|
|
if ($has_base_pane_only) { ?>
|
|
|
<div id ="tripal-<?php print $bundle_type?>-contents-box"> <?php
|
|
@@ -119,6 +41,100 @@ else { ?>
|
|
|
</table> <?php
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ * Iterates through the panes and generates a conent string in HTML format.
|
|
|
+ *
|
|
|
+ * @param $variables
|
|
|
+ * @param $bundle_type
|
|
|
+ * @param $content
|
|
|
+ * @param $toc
|
|
|
+ * @param $has_base_pane_only
|
|
|
+ */
|
|
|
+function get_content($variables, $bundle_type, &$content, &$toc, &$has_base_pane_only) {
|
|
|
+ $panes = $variables['element']['#panes'];
|
|
|
+ $fields = $variables['element']['#fields'];
|
|
|
+
|
|
|
+
|
|
|
+ foreach ($panes AS $pane_id => $pane) {
|
|
|
+
|
|
|
+
|
|
|
+ if ($pane->name != 'te_base') {
|
|
|
+ $has_base_pane_only = FALSE;
|
|
|
+ }
|
|
|
+ $pane_settings = unserialize($pane->settings);
|
|
|
+ $table_layout_group = key_exists('table_layout', $pane_settings) ? $pane_settings['table_layout'] : array();
|
|
|
+
|
|
|
+
|
|
|
+ $pane_fields = $fields[$pane_id];
|
|
|
+
|
|
|
+
|
|
|
+ $ordered_fields = array();
|
|
|
+ foreach ($pane_fields as $field) {
|
|
|
+ $ordered_fields[$field['#weight'] . $field['#field_name']] = $field;
|
|
|
+ }
|
|
|
+ ksort($ordered_fields, SORT_NUMERIC);
|
|
|
+
|
|
|
+
|
|
|
+ $table_layout = array();
|
|
|
+ $no_group = array();
|
|
|
+ $output = '';
|
|
|
+ $current_layout = '';
|
|
|
+ $counter = 0;
|
|
|
+ foreach ($ordered_fields AS $field) {
|
|
|
+
|
|
|
+ $css_class = $field['#css_class'] ? ' ' . $field['#css_class'] : '';
|
|
|
+ $field['#prefix'] = '<div class="tripal_panes-field-wrapper' . $css_class . '">';
|
|
|
+ $field['#suffix'] = '</div>';
|
|
|
+
|
|
|
+
|
|
|
+ if (in_array($field['#field_name'], $table_layout_group)) {
|
|
|
+
|
|
|
+ if ($counter != 0 && $current_layout != 'Table') {
|
|
|
+ $output .= tripal_panes_generic_render_fields($no_group);
|
|
|
+ $no_group = array();
|
|
|
+ }
|
|
|
+ $table_layout [$field['#weight'] . $field['#field_name']] = $field;
|
|
|
+ $current_layout = 'Table';
|
|
|
+ }
|
|
|
+
|
|
|
+ else {
|
|
|
+ if ($counter != 0 && $current_layout != 'Default') {
|
|
|
+ $output .= tripal_panes_generic_render_table($table_layout, $bundle_type);
|
|
|
+ $table_layout = array();
|
|
|
+ }
|
|
|
+ $no_group [$field['#weight'] . $field['#field_name']] = $field;
|
|
|
+ $current_layout = 'Default';
|
|
|
+ }
|
|
|
+ $counter ++;
|
|
|
+ }
|
|
|
+ if ($current_layout == 'Table') {
|
|
|
+ $output .= tripal_panes_generic_render_table($table_layout, $bundle_type);
|
|
|
+ }
|
|
|
+ else if ($current_layout == 'Default') {
|
|
|
+ $output .= tripal_panes_generic_render_fields($no_group);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if ($pane->name == 'te_base') {
|
|
|
+ $content .= '<div class="tripal_pane-base_pane">' . $output . '</div>';
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ $collapsible_item = array('element' => array());
|
|
|
+ $collapsible_item['element']['#description'] = $output;
|
|
|
+ $collapsible_item['element']['#title'] = $pane->label;
|
|
|
+ $collapsible_item['element']['#children'] = '';
|
|
|
+ $collapsible_item['element']['#attributes']['id'] = 'tripal_pane-fieldset-' . $pane->name;
|
|
|
+ $collapsible_item['element']['#attributes']['class'][] = 'tripal_pane-fieldset';
|
|
|
+ $collapsible_item['element']['#attributes']['class'][] = 'collapsible';
|
|
|
+ $collapsible_item['element']['#attributes']['class'][] = 'collapsed';
|
|
|
+ $toc_item_id = $pane_id;
|
|
|
+ $toc .= "<div class=\"tripal-panes-toc-list-item\"><a id=\"" . $pane->name . "\" class=\"tripal_panes-toc-list-item-link\" href=\"?pane=" . $pane->name . "\">" . $pane->label . "</a></div>";
|
|
|
+ $content .= theme('fieldset', $collapsible_item);
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
|
|
|
* A wrapper function for placing fields inside of a Drupal themed table.
|
|
|
*
|