/** * Compose a URL query parameter array to append to table sorting requests. * * @return * A URL query parameter array that consists of all components of the current * page request except for those pertaining to table sorting. * * @see tablesort_get_query_parameters() */ protected function getQueryParameters() { return tablesort_get_query_parameters(); }
/** * Implements template_preprocess_views_view_table(). */ function favrskovtheme_preprocess_views_view_table(&$vars) { $view = $vars['view']; // We need the raw data for this grouping, which is passed in as $vars['rows']. // However, the template also needs to use for the rendered fields. We // therefore swap the raw data out to a new variable and reset $vars['rows'] // so that it can get rebuilt. // Store rows so that they may be used by further preprocess functions. $result = $vars['result'] = $vars['rows']; $vars['rows'] = array(); $vars['field_classes'] = array(); $vars['header'] = array(); $options = $view->style_plugin->options; $handler = $view->style_plugin; $default_row_class = isset($options['default_row_class']) ? $options['default_row_class'] : TRUE; $row_class_special = isset($options['row_class_special']) ? $options['row_class_special'] : TRUE; $fields =& $view->field; $columns = $handler->sanitize_columns($options['columns'], $fields); $active = !empty($handler->active) ? $handler->active : ''; $order = !empty($handler->order) ? $handler->order : 'asc'; $query = tablesort_get_query_parameters(); if (isset($view->exposed_raw_input)) { $query += $view->exposed_raw_input; } // Fields must be rendered in order as of Views 2.3, so we will pre-render // everything. $renders = $handler->render_fields($result); foreach ($columns as $field => $column) { // Create a second variable so we can easily find what fields we have and what the // CSS classes should be. $vars['fields'][$field] = drupal_clean_css_identifier($field); if ($active == $field) { $vars['fields'][$field] .= ' active'; } // render the header labels if ($field == $column && empty($fields[$field]->options['exclude'])) { $label = check_plain(!empty($fields[$field]) ? $fields[$field]->label() : ''); if (empty($options['info'][$field]['sortable']) || !$fields[$field]->click_sortable()) { $vars['header'][$field] = $label; } else { $initial = !empty($options['info'][$field]['default_sort_order']) ? $options['info'][$field]['default_sort_order'] : 'asc'; if ($active == $field) { $initial = $order == 'asc' ? 'desc' : 'asc'; } $title = t('sort by @s', array('@s' => $label)); if ($active == $field) { $label .= theme('tablesort_indicator', array('style' => $initial)); } $query['order'] = $field; $query['sort'] = $initial; $link_options = array('html' => TRUE, 'attributes' => array('title' => $title), 'query' => $query); $vars['header'][$field] = l($label, $_GET['q'], $link_options); } $vars['header_classes'][$field] = ''; // Set up the header label class. if ($fields[$field]->options['element_default_classes']) { $vars['header_classes'][$field] .= "views-field views-field-" . $vars['fields'][$field]; } $class = $fields[$field]->element_label_classes(0); if ($class) { if ($vars['header_classes'][$field]) { $vars['header_classes'][$field] .= ' '; } $vars['header_classes'][$field] .= $class; } // Add a CSS align class to each field if one was set if (!empty($options['info'][$field]['align'])) { $vars['header_classes'][$field] .= ' ' . drupal_clean_css_identifier($options['info'][$field]['align']); } // Add a header label wrapper if one was selected. if ($vars['header'][$field]) { $element_label_type = $fields[$field]->element_label_type(TRUE, TRUE); if ($element_label_type) { $vars['header'][$field] = '<' . $element_label_type . '>' . $vars['header'][$field] . '</' . $element_label_type . '>'; } } } // Add a CSS align class to each field if one was set if (!empty($options['info'][$field]['align'])) { $vars['fields'][$field] .= ' ' . drupal_clean_css_identifier($options['info'][$field]['align']); } // Render each field into its appropriate column. foreach ($result as $num => $row) { // Add field classes $vars['field_classes'][$field][$num] = ''; if ($fields[$field]->options['element_default_classes']) { $vars['field_classes'][$field][$num] = "views-field views-field-" . $vars['fields'][$field]; } if ($classes = $fields[$field]->element_classes($num)) { if ($vars['field_classes'][$field][$num]) { $vars['field_classes'][$field][$num] .= ' '; } $vars['field_classes'][$field][$num] .= $classes; } $vars['field_attributes'][$field][$num] = array(); if (!empty($fields[$field]) && empty($fields[$field]->options['exclude'])) { $field_output = $renders[$num][$field]; $element_type = $fields[$field]->element_type(TRUE, TRUE); // Custom render settings for newsletter tables $field_prefix = ''; $field_suffix = ''; $element_style = ''; if ($view->name == 'view_newsletter' && $view->current_display == 'related_news_list') { switch ($field) { case 'title': $element_type = 'h3'; $element_style = 'style="width:255px; margin:0; font-size:22px; font-weight:bold; font-family:Trebuchet MS, Arial, Helvetica, sans-serif; line-height:120%;"'; $field_output = substr_replace($field_output, 'style="color:#586464; text-decoration:none;" ', 3, 0); break; case 'field_teaser': $element_type = 'p'; $element_style = 'style="color:#666; font-size:16px; line-height:145%;"'; break; } } elseif ($view->name == 'view_newsletter' && $view->current_display == 'related_events_list') { switch ($field) { case 'field_kultunaut_event_start_date': $element_type = 'h3'; $element_style = 'style="float:left; display: block; width:50px; padding:8px 0 12px; background:#a00a14; margin:0; color:#fff; text-align:center; text-transform:uppercase; font-size:16px; font-weight:bold; font-family:Trebuchet MS, Arial, Helvetica, sans-serif; line-height:18px;"'; $field_output = substr_replace($field_output, 'style="display: block;" ', 49, 0); $field_output = substr_replace($field_output, 'style="display: block;" ', 76, 0); break; case 'field_kultunaut_event_category': $element_type = 'h3'; $element_style = 'style="border-top:8px solid #ccc; margin:24px 0 0 62px; text-align:right; font-size:14px; font-weight:normal; color:#999; padding-top:5px;"'; $field_suffix = '</h3>'; break; case 'title': $element_type = 'h4'; $element_style = 'style="margin:0 0 13px; padding:20px 25px 0; font-size:24px; font-weight:bold; font-family:Trebuchet MS, Arial, Helvetica, sans-serif; color:#666;"'; $field_output = substr_replace($field_output, 'style="text-decoration:none; color:#666;" ', 3, 0); break; case 'body': $field_prefix = '<p style="margin:0; padding:0 25px; line-height:140%; font-size:16px; color:#666;">'; $element_type = ''; $element_style = ''; $field_suffix = '<br/><br/>'; break; case 'field_kultunaut_event_date': $field_prefix = '<strong>'; $element_type = ''; $element_style = ''; $field_suffix = ', '; break; case 'field_kultunaut_event_time': $element_type = ''; $element_style = ''; $field_suffix = '<br/>'; break; case 'field_kultunaut_event_location': $element_type = ''; $element_style = ''; $field_suffix = '</strong></p>'; break; } } elseif ($view->name == 'view_newsletter' && $view->current_display == 'related_links_list') { if (!empty($renders[$num]['field_related_links_content'])) { $renders[$num]['field_related_links_link'] = ''; } if (!empty($field_output)) { $element_type = 'li'; $element_style = 'style="font-size:16px; line-height:210%;"'; $field_output = substr_replace($field_output, 'style="color:#a00a14; font-weight:bold; text-decoration:none;"" ', 3, 0); $field_output = '<img src="https://gallery.mailchimp.com/a1a119610f0500f5d6b47c1ec/images/arrow.1.png" width="9" height="14" style="vertical-align:middle; padding-right:8px;" alt="Arrow">' . $field_output; } } if ($element_type) { if ($element_style) { $field_output = '<' . $element_type . ' ' . $element_style . '>' . $field_output . '</' . $element_type . '>'; } else { $field_output = '<' . $element_type . '>' . $field_output . '</' . $element_type . '>'; } } if ($field_prefix) { $field_output = $field_prefix . $field_output; } if ($field_suffix) { $field_output = $field_output . $field_suffix; } // Don't bother with separators and stuff if the field does not show up. if (empty($field_output) && !empty($vars['rows'][$num][$column])) { continue; } // Place the field into the column, along with an optional separator. if (!empty($vars['rows'][$num][$column])) { if (!empty($options['info'][$column]['separator'])) { $vars['rows'][$num][$column] .= filter_xss_admin($options['info'][$column]['separator']); } } else { $vars['rows'][$num][$column] = ''; } $vars['rows'][$num][$column] .= $field_output; } } // Remove columns if the option is hide empty column is checked and the field is not empty. if (!empty($options['info'][$field]['empty_column'])) { $empty = TRUE; foreach ($vars['rows'] as $num => $columns) { $empty &= empty($columns[$column]); } if ($empty) { foreach ($vars['rows'] as $num => &$column_items) { unset($column_items[$column]); unset($vars['header'][$column]); } } } } // Hide table header if all labels are empty. if (!array_filter($vars['header'])) { $vars['header'] = array(); } $count = 0; foreach ($vars['rows'] as $num => $row) { $vars['row_classes'][$num] = array(); if ($row_class_special) { $vars['row_classes'][$num][] = $count++ % 2 == 0 ? 'odd' : 'even'; } if ($row_class = $handler->get_row_class($num)) { $vars['row_classes'][$num][] = $row_class; } } if ($row_class_special) { $vars['row_classes'][0][] = 'views-row-first'; $vars['row_classes'][count($vars['row_classes']) - 1][] = 'views-row-last'; } $vars['classes_array'] = array('views-table'); if (empty($vars['rows']) && !empty($options['empty_table'])) { $vars['rows'][0][0] = $view->display_handler->render_area('empty'); // Calculate the amounts of rows with output. $vars['field_attributes'][0][0]['colspan'] = count($vars['header']); $vars['field_classes'][0][0] = 'views-empty'; } if (!empty($options['sticky'])) { drupal_add_js('misc/tableheader.js'); $vars['classes_array'][] = "sticky-enabled"; } $vars['classes_array'][] = 'cols-' . count($vars['header']); // Add the summary to the list if set. if (!empty($handler->options['summary'])) { $vars['attributes_array'] = array('summary' => filter_xss_admin($handler->options['summary'])); } // Add the caption to the list if set. if (!empty($handler->options['caption'])) { $vars['caption'] = filter_xss_admin($handler->options['caption']); } else { $vars['caption'] = ''; } }
function list_render(&$form_state) { views_include('admin'); views_ui_add_admin_css(); if (empty($_REQUEST['js'])) { views_ui_check_advanced_help(); } drupal_add_library('system', 'jquery.bbq'); views_add_js('views-list'); $this->active = $form_state['values']['order']; $this->order = $form_state['values']['sort']; $query = tablesort_get_query_parameters(); $header = array($this->tablesort_link(t('View name'), 'name', 'views-ui-name'), array('data' => t('Description'), 'class' => array('views-ui-description')), $this->tablesort_link(t('Tag'), 'tag', 'views-ui-tag'), $this->tablesort_link(t('Path'), 'path', 'views-ui-path'), array('data' => t('Operations'), 'class' => array('views-ui-operations'))); $table = array('header' => $header, 'rows' => $this->rows, 'empty' => t('No views match the search criteria.'), 'attributes' => array('id' => 'ctools-export-ui-list-items')); return theme('table', $table); }
/** * Implements template_preprocess_views_view_table(). */ function ringstedtheme_preprocess_views_view_table(&$vars) { $view = $vars['view']; // We need the raw data for this grouping, which is passed in as $vars['rows']. // However, the template also needs to use for the rendered fields. We // therefore swap the raw data out to a new variable and reset $vars['rows'] // so that it can get rebuilt. // Store rows so that they may be used by further preprocess functions. $result = $vars['result'] = $vars['rows']; $vars['rows'] = array(); $vars['field_classes'] = array(); $vars['header'] = array(); $options = $view->style_plugin->options; $handler = $view->style_plugin; $default_row_class = isset($options['default_row_class']) ? $options['default_row_class'] : TRUE; $row_class_special = isset($options['row_class_special']) ? $options['row_class_special'] : TRUE; $fields =& $view->field; $columns = $handler->sanitize_columns($options['columns'], $fields); $active = !empty($handler->active) ? $handler->active : ''; $order = !empty($handler->order) ? $handler->order : 'asc'; $query = tablesort_get_query_parameters(); if (isset($view->exposed_raw_input)) { $query += $view->exposed_raw_input; } // Fields must be rendered in order as of Views 2.3, so we will pre-render // everything. $renders = $handler->render_fields($result); // Save start date values of Events $start_date_strings = array(); foreach ($columns as $field => $column) { // Create a second variable so we can easily find what fields we have and what the // CSS classes should be. $vars['fields'][$field] = drupal_clean_css_identifier($field); if ($active == $field) { $vars['fields'][$field] .= ' active'; } // render the header labels if ($field == $column && empty($fields[$field]->options['exclude'])) { $label = check_plain(!empty($fields[$field]) ? $fields[$field]->label() : ''); if (empty($options['info'][$field]['sortable']) || !$fields[$field]->click_sortable()) { $vars['header'][$field] = $label; } else { $initial = !empty($options['info'][$field]['default_sort_order']) ? $options['info'][$field]['default_sort_order'] : 'asc'; if ($active == $field) { $initial = $order == 'asc' ? 'desc' : 'asc'; } $title = t('sort by @s', array('@s' => $label)); if ($active == $field) { $label .= theme('tablesort_indicator', array('style' => $initial)); } $query['order'] = $field; $query['sort'] = $initial; $link_options = array('html' => TRUE, 'attributes' => array('title' => $title), 'query' => $query); $vars['header'][$field] = l($label, $_GET['q'], $link_options); } $vars['header_classes'][$field] = ''; // Set up the header label class. if ($fields[$field]->options['element_default_classes']) { $vars['header_classes'][$field] .= "views-field views-field-" . $vars['fields'][$field]; } $class = $fields[$field]->element_label_classes(0); if ($class) { if ($vars['header_classes'][$field]) { $vars['header_classes'][$field] .= ' '; } $vars['header_classes'][$field] .= $class; } // Add a CSS align class to each field if one was set if (!empty($options['info'][$field]['align'])) { $vars['header_classes'][$field] .= ' ' . drupal_clean_css_identifier($options['info'][$field]['align']); } // Add a header label wrapper if one was selected. if ($vars['header'][$field]) { $element_label_type = $fields[$field]->element_label_type(TRUE, TRUE); if ($element_label_type) { $vars['header'][$field] = '<' . $element_label_type . '>' . $vars['header'][$field] . '</' . $element_label_type . '>'; } } } // Add a CSS align class to each field if one was set if (!empty($options['info'][$field]['align'])) { $vars['fields'][$field] .= ' ' . drupal_clean_css_identifier($options['info'][$field]['align']); } // Render each field into its appropriate column. foreach ($result as $num => $row) { // Add field classes $vars['field_classes'][$field][$num] = ''; if ($fields[$field]->options['element_default_classes']) { $vars['field_classes'][$field][$num] = "views-field views-field-" . $vars['fields'][$field]; } if ($classes = $fields[$field]->element_classes($num)) { if ($vars['field_classes'][$field][$num]) { $vars['field_classes'][$field][$num] .= ' '; } $vars['field_classes'][$field][$num] .= $classes; } $vars['field_attributes'][$field][$num] = array(); if (!empty($fields[$field]) && empty($fields[$field]->options['exclude'])) { $field_output = $renders[$num][$field]; $element_type = $fields[$field]->element_type(TRUE, TRUE); // Custom render settings for newsletter tables $field_prefix = ''; $field_suffix = ''; $element_style = ''; if ($view->name == 'view_newsletter' && $view->current_display == 'related_news_list') { switch ($field) { case 'title': $element_type = 'h3'; $element_style = 'style="width:255px; margin:0; font-size:22px; font-weight:bold; font-family: Arial, sans-serif; line-height:120%;"'; $field_output = preg_replace('/(^<a href="\\S*")(>.*<\\/a>)/', '$1 style="color:#333; text-decoration:none;"$2', $field_output); break; case 'field_date': $element_type = 'p'; $element_style = 'style="color:#6c6c6c; text-transform:lowercase; font-size:16px; line-height:145%;"'; break; case 'field_teaser': $element_type = 'p'; $element_style = 'style="color:#333; font-size:16px; line-height:145%; font-family: Arial, sans-serif;"'; break; } } elseif ($view->name == 'view_newsletter' && $view->current_display == 'related_events_list') { switch ($field) { case 'field_kultunaut_event_start_date': $start_date_strings[$num] = $field_output; $field_output = ''; break; case 'field_kultunaut_event_end_date': if (isset($start_date_strings[$num])) { $event_start_timestamp = strtotime($start_date_strings[$num]); $event_end_timestamp = strtotime($field_output); $event_start_month = format_date($event_start_timestamp, 'custom', 'M'); $event_end_month = format_date($event_end_timestamp, 'custom', 'M'); $event_start_day = date('d', $event_start_timestamp); $event_end_day = date('d', $event_end_timestamp); if ($event_start_month === $event_end_month) { if ($event_start_day === $event_end_day) { $date = "<span class='day'>{$event_start_day}</span> " . "<span class='month'>{$event_start_month}</span>"; } else { $date = "<span class='day'>{$event_start_day}-{$event_end_day}</span> " . "<span class='month'>{$event_start_month}</span>"; } } else { $date = "<span class='day-month'>{$event_start_day} {$event_start_month}</span>-" . "<span class='day-month'>{$event_end_day} {$event_end_month}</span>"; } $field_output = $date; } $field_prefix = '<!-- this table fix bug in Outlook. --> <table style="width: 100%; border:0; border-collapse:collapse;"> <tr> <td style="font-size: 0;line-height: 0;vertical-align: top;width:50px;"> <!-- fix padding in Outlook--> <p style="margin: 0;padding: 0;font-size: 8px;line-height: 8px;background:#d2000f;"> </p>'; $element_type = 'h3'; $element_style = 'style="width:50px; padding:0; background:#d2000f; margin:0; color:#fff; text-align:center; font-size:15px; font-weight:bold; font-family: Arial, sans-serif; line-height:18px;"'; $field_suffix = '<!-- fix padding in Outlook--> <p style="margin: 0;padding: 0;font-size: 12px;line-height: 12px;background:#d2000f;"> </p> </td>'; break; case 'title': $field_prefix = '<td style="font-size: 0;line-height: 0;vertical-align: top;width:10px;"> </td> <td style="font-size: 0;line-height: 0;vertical-align: middle;">'; $element_type = 'h4'; $element_style = 'style="margin: 0; padding: 0;font-size:24px;line-height: 24px;font-weight:bold;font-family: Arial, sans-serif; color:#333;"'; $field_output = preg_replace('/(^<a href="\\S*")(>.*<\\/a>)/', '$1 style="color:#333; text-decoration:none;"$2', $field_output); $field_suffix = '</td> </tr> </table>'; break; case 'body': $field_prefix = '<!-- fix padding in Outlook--> <p style="margin: 0;padding: 0;font-size: 25px;line-height: 25px;"> </p>'; $element_type = 'p'; $element_style = 'style="margin:0; padding: 0 25px 0 0; line-height:140%; font-size:16px; color:#333; font-family: Arial, sans-serif;"'; break; } } elseif ($view->name == 'view_newsletter' && $view->current_display == 'related_links_list') { if (!empty($renders[$num]['field_related_links_content'])) { $renders[$num]['field_related_links_link'] = ''; } if (!empty($field_output)) { $element_type = 'li'; $element_style = 'style="font-size:16px; line-height:210%;"'; $field_output = preg_replace('/(^<a href="\\S*")(>.*<\\/a>)/', '$1 style="color:#333; text-decoration:none;"$2', $field_output); $field_output = '<img src="https://gallery.mailchimp.com/9d2a465548ae81441a4c760fd/images/arrow.png" width="9" height="14" style="vertical-align:middle; padding-right:8px;" alt="Arrow">' . $field_output; } } elseif ($view->name == 'page_subscription' && $view->current_display == 'jobs_pane') { switch ($field) { case 'title': $element_type = 'h3'; $element_style = 'style="width:255px; margin:0; font-size:22px; font-weight:bold; font-family: Arial, sans-serif; line-height:120%;"'; $field_output = preg_replace('/(^<a href="\\S*")(>.*<\\/a>)/', '$1 style="color:#333; text-decoration:none;"$2', $field_output); break; case 'body': $element_type = 'p'; $element_style = 'style="color:#333; font-size:16px; line-height:145%; font-family: Arial, sans-serif;"'; break; } } elseif ($view->name == 'page_subscription' && $view->current_display == 'meetings_pane') { switch ($field) { case 'title': $element_type = 'h3'; $element_style = 'style="width:255px; margin:0; font-size:22px; font-weight:bold; font-family: Arial, sans-serif; line-height:120%;"'; $field_output = preg_replace('/(^<a href="\\S*")(>.*<\\/a>)/', '$1 style="color:#333; text-decoration:none;"$2', $field_output); break; case 'field_os2web_meetings_type': $field_prefix = '<span style="color:#333; font-size:16px; line-height:145%; font-family: Arial, sans-serif;">' . t('Type') . ': </span>'; $element_type = 'span'; $element_style = 'style="color:#333; font-size:16px; line-height:145%; font-family: Arial, sans-serif;"'; break; } } elseif ($view->name == 'page_subscription' && $view->current_display == 'articles_pane') { switch ($field) { case 'title': $element_type = 'h3'; $element_style = 'style="width:255px; margin:0; font-size:22px; font-weight:bold; font-family: Arial, sans-serif; line-height:120%;"'; $field_output = preg_replace('/(^<a href="\\S*")(>.*<\\/a>)/', '$1 style="color:#333; text-decoration:none;"$2', $field_output); break; case 'views_ifempty': $element_type = 'p'; $element_style = 'style="color:#333; font-size:16px; line-height:145%; font-family: Arial, sans-serif;"'; break; } } elseif ($view->name == 'page_subscription' && $view->current_display == 'hearings_pane') { switch ($field) { case 'title': $element_type = 'h3'; $element_style = 'style="width:255px; margin:0; font-size:22px; font-weight:bold; font-family: Arial, sans-serif; line-height:120%;"'; $field_output = preg_replace('/(^<a href="\\S*")(>.*<\\/a>)/', '$1 style="color:#333; text-decoration:none;"$2', $field_output); break; case 'field_teaser': $element_type = 'p'; $element_style = 'style="color:#333; font-size:16px; line-height:145%; font-family: Arial, sans-serif;"'; break; } } if ($element_type) { if ($element_style) { $field_output = '<' . $element_type . ' ' . $element_style . '>' . $field_output . '</' . $element_type . '>'; } else { $field_output = '<' . $element_type . '>' . $field_output . '</' . $element_type . '>'; } } if ($field_prefix) { $field_output = $field_prefix . $field_output; } if ($field_suffix) { $field_output = $field_output . $field_suffix; } // Don't bother with separators and stuff if the field does not show up. if (empty($field_output) && !empty($vars['rows'][$num][$column])) { continue; } // Place the field into the column, along with an optional separator. if (!empty($vars['rows'][$num][$column])) { if (!empty($options['info'][$column]['separator'])) { $vars['rows'][$num][$column] .= filter_xss_admin($options['info'][$column]['separator']); } } else { $vars['rows'][$num][$column] = ''; } $vars['rows'][$num][$column] .= $field_output; } } // Remove columns if the option is hide empty column is checked and the field is not empty. if (!empty($options['info'][$field]['empty_column'])) { $empty = TRUE; foreach ($vars['rows'] as $num => $columns) { $empty &= empty($columns[$column]); } if ($empty) { foreach ($vars['rows'] as $num => &$column_items) { unset($column_items[$column]); unset($vars['header'][$column]); } } } } // Hide table header if all labels are empty. if (!array_filter($vars['header'])) { $vars['header'] = array(); } $count = 0; foreach ($vars['rows'] as $num => $row) { $vars['row_classes'][$num] = array(); if ($row_class_special) { $vars['row_classes'][$num][] = $count++ % 2 == 0 ? 'odd' : 'even'; } if ($row_class = $handler->get_row_class($num)) { $vars['row_classes'][$num][] = $row_class; } } if ($row_class_special) { $vars['row_classes'][0][] = 'views-row-first'; $vars['row_classes'][count($vars['row_classes']) - 1][] = 'views-row-last'; } $vars['classes_array'] = array('views-table'); if (empty($vars['rows']) && !empty($options['empty_table'])) { $vars['rows'][0][0] = $view->display_handler->render_area('empty'); // Calculate the amounts of rows with output. $vars['field_attributes'][0][0]['colspan'] = count($vars['header']); $vars['field_classes'][0][0] = 'views-empty'; } if (!empty($options['sticky'])) { drupal_add_js('misc/tableheader.js'); $vars['classes_array'][] = "sticky-enabled"; } $vars['classes_array'][] = 'cols-' . count($vars['header']); // Add the summary to the list if set. if (!empty($handler->options['summary'])) { $vars['attributes_array'] = array('summary' => filter_xss_admin($handler->options['summary'])); } // Add the caption to the list if set. if (!empty($handler->options['caption'])) { $vars['caption'] = filter_xss_admin($handler->options['caption']); } else { $vars['caption'] = ''; } // Check whether this table view has draggableview field. if (!isset($vars['view']->field['draggableviews'])) { return; } // Check permissions. if (!user_access('access draggableviews')) { return; } // Add table class. $vars['classes_array'][] = 'draggable'; // Add row class. foreach ($vars['row_classes'] as &$row_classes) { $row_classes[] = 'draggable'; } $vars['attributes_array']['id'] = 'draggableviews-table-' . $vars['view']->name . '-' . $vars['view']->current_display; // Add javascript. drupal_add_tabledrag($vars['attributes_array']['id'], 'order', 'sibling', 'draggableviews-weight'); }