function theme_book_admin_table

Returns HTML for a book administration form.

Parameters

array $variables: An associative array containing:

  • form: A render element representing the form.

See also

book_admin_table()

Related topics

1 theme call to theme_book_admin_table()
_book_admin_table in drupal/core/modules/book/book.admin.inc
Builds the table portion of the form for the book administration page.

File

drupal/core/modules/book/book.admin.inc, line 202
Administration page callbacks for the Book module.

Code

function theme_book_admin_table($variables) {
  $form = $variables['form'];
  drupal_add_tabledrag('book-outline', 'match', 'parent', 'book-plid', 'book-plid', 'book-mlid', TRUE, MENU_MAX_DEPTH - 2);
  drupal_add_tabledrag('book-outline', 'order', 'sibling', 'book-weight');
  $header = array(
    t('Title'),
    t('Weight'),
    t('Parent'),
    t('Operations'),
  );
  $rows = array();
  $destination = drupal_get_destination();
  $access = user_access('administer nodes');
  foreach (element_children($form) as $key) {
    $nid = $form[$key]['nid']['#value'];
    $href = $form[$key]['href']['#value'];

    // Add special classes to be used with tabledrag.js.
    $form[$key]['plid']['#attributes']['class'] = array(
      'book-plid',
    );
    $form[$key]['mlid']['#attributes']['class'] = array(
      'book-mlid',
    );
    $form[$key]['weight']['#attributes']['class'] = array(
      'book-weight',
    );
    $indentation = array(
      '#theme' => 'indentation',
      '#size' => $form[$key]['depth']['#value'] - 2,
    );
    $data = array(
      drupal_render($indentation) . drupal_render($form[$key]['title']),
      drupal_render($form[$key]['weight']),
      drupal_render($form[$key]['plid']) . drupal_render($form[$key]['mlid']),
    );
    $links = array();
    $links['view'] = array(
      'title' => t('View'),
      'href' => $href,
    );
    if ($access) {
      $links['edit'] = array(
        'title' => t('Edit'),
        'href' => "node/{$nid}/edit",
        'query' => $destination,
      );
      $links['delete'] = array(
        'title' => t('Delete'),
        'href' => "node/{$nid}/delete",
        'query' => $destination,
      );
    }
    $data[] = array(
      'data' => array(
        '#type' => 'operations',
        '#links' => $links,
      ),
    );
    $row = array(
      'data' => $data,
    );
    if (isset($form[$key]['#attributes'])) {
      $row = array_merge($row, $form[$key]['#attributes']);
    }
    $row['class'][] = 'draggable';
    $rows[] = $row;
  }
  $table = array(
    '#theme' => 'table',
    '#header' => $header,
    '#rows' => $rows,
    '#attributes' => array(
      'id' => 'book-outline',
    ),
    '#empty' => t('No book content available.'),
  );
  return drupal_render($table);
}