theme_field_ui_table
function theme_field_ui_table
theme_field_ui_table($variables)
Returns HTML for Field UI overview tables.
Parameters
$variables: An associative array containing:
- elements: An associative array containing a Form API structure to be rendered as a table.
Related topics
File
- modules/field_ui/field_ui.admin.inc, line 207
- Administrative interface for custom field type creation.
Code
function theme_field_ui_table($variables) { $elements = $variables['elements']; $table = array(); $js_settings = array(); // Add table headers and attributes. foreach (array('header', 'attributes') as $key) { if (isset($elements["#$key"])) { $table[$key] = $elements["#$key"]; } } // Determine the colspan to use for region rows, by checking the number of // columns in the headers. $columns_count = 0; foreach ($table['header'] as $header) { $columns_count += (is_array($header) && isset($header['colspan']) ? $header['colspan'] : 1); } // Render rows, region by region. foreach ($elements['#regions'] as $region_name => $region) { $region_name_class = drupal_html_class($region_name); // Add region rows. if (isset($region['title'])) { $table['rows'][] = array( 'class' => array('region-title', 'region-' . $region_name_class . '-title'), 'no_striping' => TRUE, 'data' => array( array('data' => $region['title'], 'colspan' => $columns_count), ), ); } if (isset($region['message'])) { $class = (empty($region['rows_order']) ? 'region-empty' : 'region-populated'); $table['rows'][] = array( 'class' => array('region-message', 'region-' . $region_name_class . '-message', $class), 'no_striping' => TRUE, 'data' => array( array('data' => $region['message'], 'colspan' => $columns_count), ), ); } // Add form rows, in the order determined at pre-render time. foreach ($region['rows_order'] as $name) { $element = $elements[$name]; $row = array('data' => array()); if (isset($element['#attributes'])) { $row += $element['#attributes']; } // Render children as table cells. foreach (element_children($element) as $cell_key) { $child = &$element[$cell_key]; // Do not render a cell for children of #type 'value'. if (!(isset($child['#type']) && $child['#type'] == 'value')) { $cell = array('data' => drupal_render($child)); if (isset($child['#cell_attributes'])) { $cell += $child['#cell_attributes']; } $row['data'][] = $cell; } } $table['rows'][] = $row; } } return theme('table', $table); }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/modules!field_ui!field_ui.admin.inc/function/theme_field_ui_table/7.x