You are here

function theme_mb_content_admin in More Buttons 7

Display a central MB Content settings form page.

Return value

The complete HTML formatted administer page.

File

mb_content/mb_content.admin.inc, line 63

Code

function theme_mb_content_admin($variables) {
  _mb_load_css('admin');
  $module = 'mb_content';
  $mappings = array();
  $output = '';
  $extra_info = '';
  $rows = array();
  $form = drupal_get_form($module . '_admin');
  $mappings = $form['#mappings'];
  $output = '<h3>' . t('Content settings') . '</h3>';
  $output .= '<p>' . t('Which %module functions are used by different content type pages.', array(
    '%module' => t('More Buttons Content'),
  )) . '</p>';
  $header = array(
    t('Cancel'),
    t('Save and continue'),
    t('Create new'),
  );
  $i = 1;
  foreach ($mappings as $type => $maps) {

    // It makes no sense to use the MB Content module with the content type panel.
    if ($type == 'panel') {

      // Define an additional information.
      $extra_info .= '<p>' . t('For the content type %type no settings can be made.', array(
        '%type' => t($mappings['panel']['name']),
      )) . '</p>';
      continue;
    }

    // Convert underscores in the machine redeable type names to hyphen for right path building.
    $parsed_type = str_replace('_', '-', $type);

    // Provide own odd/even functionality.
    $evenodd = $i % 2 ? 'odd-mb' : 'even-mb';
    $evenodd = $i & 1 ? 'odd-mb' : 'even-mb';
    $type_link = 'admin/structure/types/manage/' . $parsed_type;
    $link = l($maps['name'], $type_link, array(
      'query' => array(
        'destination' => 'admin/config/mb/buttons/more-buttons-content',
      ),
      'attributes' => array(
        'title' => t('Edit this content type'),
      ),
    ));

    // The content type row; Include an link to directly edit the MB Content settings in the content type.
    $rows[] = array(
      'data' => array(
        $link,
        array(
          'colspan' => 3,
        ),
      ),
      'class' => array(
        $evenodd . ' ' . $evenodd . '-type',
      ),
    );

    // The row contains the form elements.
    $rows[] = array(
      'data' => array(
        drupal_render($form[$module][$type][$module . '_cancel_' . $type]),
        drupal_render($form[$module][$type][$module . '_sac_' . $type]),
        drupal_render($form[$module][$type][$module . '_tabcn_' . $type]),
      ),
      'class' => array(
        $evenodd . ' ' . $evenodd . '-elements',
      ),
    );
    unset($form[$module][$type]);
    ++$i;
  }
  $output .= theme('table', array(
    'header' => $header,
    'rows' => $rows,
    'attributes' => array(
      'class' => array(
        'mb-admin-table',
        $module . '-admin-table',
      ),
    ),
  ));

  // Display additional informations.
  if ($extra_info != '') {
    $output .= $extra_info;
  }
  $output .= drupal_render($output);
  $output .= drupal_render_children($form);
  $output .= '<p style="text-align: right">' . t('Module development by <a href="@development-url">Quiptime Group</a>.', array(
    '@development-url' => url('http://www.quiptime.com'),
  )) . '</p>';
  return $output;
}