'table', '#header' => $header, '#attributes' => array('id' => 'language-negotiation-methods-' . $type), '#tabledrag' => array( array( 'action' => 'order', 'relationship' => 'sibling', 'group' => 'language-method-weight-' . $type, ), ), ); foreach ($form[$type]['title'] as $id => $element) { // Do not take form control structures. if (is_array($element) && Element::child($id)) { $table[$id]['#attributes']['class'][] = 'draggable'; $table[$id]['#weight'] = $element['#weight']; $table[$id]['title'] = array( '#prefix' => '', $form[$type]['title'][$id], '#suffix' => '', ); $table[$id]['description'] = $form[$type]['description'][$id]; $table[$id]['enabled'] = $form[$type]['enabled'][$id]; $table[$id]['weight'] = $form[$type]['weight'][$id]; if ($form[$type]['#show_operations']) { $table[$id]['operation'] = $form[$type]['operation'][$id]; } // Unset to prevent rendering along with children. unset($form[$type]['title'][$id]); unset($form[$type]['description'][$id]); unset($form[$type]['enabled'][$id]); unset($form[$type]['weight'][$id]); unset($form[$type]['operation'][$id]); } } // Unset configurable to prevent rendering twice with children. $configurable = isset($form[$type]['configurable']) ? $form[$type]['configurable'] : NULL; unset($form[$type]['configurable']); $variables['language_types'][] = array( 'type' => $type, 'title' => $form[$type]['#title'], 'description' => $form[$type]['#description'], 'configurable' => $configurable, 'table' => $table, 'children' => $form[$type], 'attributes' => new Attribute(), ); // Prevent the type from rendering with the remaining form child elements. unset($form[$type]); } $variables['children'] = $form; } /** * Implements hook_preprocess_HOOK() for theme_language_content_settings_table(). */ function template_preprocess_language_content_settings_table(&$variables) { // Add a render element representing the bundle language settings table. $element = $variables['element']; $header = array( array( 'data' => $element['#bundle_label'], 'class' => array('bundle'), ), array( 'data' => t('Configuration'), 'class' => array('operations'), ), ); $rows = array(); foreach (Element::children($element) as $bundle) { $rows[$bundle] = array( 'data' => array( array( 'data' => array( '#prefix' => '', '#plain_text' => $element[$bundle]['settings']['#label'], ), 'class' => array('bundle'), ), array( 'data' => $element[$bundle]['settings'], 'class' => array('operations'), ), ), 'class' => array('bundle-settings'), ); } $variables['build'] = array( '#title' => $element['#title'], '#header' => $header, '#rows' => $rows, '#type' => 'table', ); } /** * Returns HTML for an administration settings table. * * @param array $variables * An associative array containing: * - build: A render element representing a table of bundle content language * settings for a particular entity type. * * @ingroup themeable */ function theme_language_content_settings_table($variables) { return '

' . theme_render_and_autoescape($variables['build']['#title']) . '

' . theme_render_and_autoescape($variables['build']); }