You are here

function theme_nivo_slider_slide_configuration_form in Nivo Slider 7

Returns HTML for the slide configuration form into a table.

Parameters

$variables: An associative array containing:

  • form: A render element representing the form.

File

themes/nivo_slider.theme.inc, line 17
Theme and preprocess functions for Nivo Slider.

Code

function theme_nivo_slider_slide_configuration_form($variables) {

  // Get the array of form elements from the available variables
  $form = $variables['form'];

  // Add the tableDrag JavaScript behavior
  drupal_add_tabledrag('nivo-slider-slides', 'order', 'sibling', 'slide-weight');

  // Create an array to hold the table rows
  $rows = array();

  // Generate an array of table rows from the available slides
  foreach ($form['images'] as $slide => &$property) {
    if (is_numeric($slide)) {

      // Create an array to hold the table row for the current slide
      $row = array();

      // Add a column containing the slide's title to the current row
      $name = $property['name'];
      $row[] = array(
        'data' => drupal_render($name),
      );
      unset($property['name']);

      // Add a column containing the slide's weight to the current row
      $weight = $property['weight'];
      $row[] = array(
        'data' => drupal_render($weight),
      );
      unset($property['weight']);

      // Add a column containing the slide's weight to the current row
      $published = $property['published'];
      $row[] = array(
        'data' => drupal_render($published),
      );
      unset($property['published']);

      // Add a column containing the slide's weight to the current row
      $delete = $property['delete'];
      $row[] = array(
        'data' => drupal_render($delete),
      );
      unset($property['delete']);

      // Store the individual row
      $rows[] = array(
        'data' => $row,
        'class' => array(
          'draggable',
        ),
      );
    }
  }

  // Build the draggable table if any rows are available
  if (!empty($rows)) {

    // Create an array of table headers
    $headers = array(
      t('Name'),
      t('Weight'),
      t('Published'),
      t('Delete'),
    );

    // Over-write the 'order' form element with the draggable table
    $form['order'] = array(
      '#theme' => 'table',
      '#header' => $headers,
      '#rows' => $rows,
      '#attributes' => array(
        'id' => 'nivo-slider-slides',
      ),
    );
  }
  return drupal_render_children($form);
}