You are here

function power_menu_configuration_form in Power Menu 7.2

Form definition for Powe Menu configuration.

1 string reference to 'power_menu_configuration_form'
power_menu_menu in ./power_menu.module
Implements hook_menu().

File

./power_menu.admin.inc, line 12
This contains all the admin stuff of the module

Code

function power_menu_configuration_form() {

  // Description for power menu settings page
  // We're re-using classes from the menu module.
  $form['#attached']['css'] = array(
    drupal_get_path('module', 'menu') . '/menu.css',
  );
  $form['handlers'] = array(
    '#type' => 'fieldset',
    '#title' => t('Handler settings'),
    '#collapsible' => TRUE,
    '#collapsed' => FALSE,
  );
  $menus = menu_get_menus();
  $form['handlers']['menus'] = array(
    '#type' => 'checkboxes',
    '#options' => $menus,
    '#title' => t('Availabe Menus'),
    '#default_value' => variable_get('power_menu_handlers_menus', array()),
    '#description' => t('Choose the menus on which the path sould set.'),
  );
  $form['handlers']['breadcrumb'] = array(
    '#type' => 'fieldset',
    '#title' => t('Breadcrumb settings'),
    '#collapsible' => TRUE,
    '#collapsed' => FALSE,
  );
  $form['handlers']['breadcrumb']['set_breadcrumb'] = array(
    '#type' => 'checkbox',
    '#title' => t('Set breadcrumb'),
    '#default_value' => variable_get('power_menu_handlers_breadcrumb', TRUE),
    '#description' => t('Should the power menu also set the breadcrumb. This works only when the system path is used in a menu.'),
  );
  $form['handlers']['breadcrumb']['set_breadcrumb_title'] = array(
    '#type' => 'checkbox',
    '#title' => t('Add title to breadcrumb'),
    '#default_value' => variable_get('power_menu_handlers_breadcrumb_title', TRUE),
    '#description' => t('Display title in breadcrumbs. This works only when the entity has a title attribute ($entity->title).'),
  );
  $settings = variable_get('power_menu_handlers_settings', array());

  // Get the menu_handlers plugins
  $handlers = power_menu_get_menu_handlers();
  $delta = count($handlers);

  // Default message if no handlers.
  if ($delta == 0) {
    $form['handlers']['handlers_order'] = array(
      '#markup' => '<p>' . t('No power menu menu_handlers plugins exists!') . '</p>',
    );
  }
  else {
    $form['handlers']['handlers_order'] = array(
      '#tree' => TRUE,
      '#theme' => 'power_menu_plugins_order',
    );
    foreach ($handlers as $key => $handler) {
      $form['handlers']['handlers_order'][$key] = array(
        'title' => array(
          '#markup' => '<strong>' . check_plain($handler['title']) . '</strong>',
        ),
        'description' => array(
          '#markup' => check_plain($handler['description']),
        ),
        'enabled' => array(
          '#type' => 'checkbox',
          '#default_value' => isset($settings[$key]['enabled']) ? $settings[$key]['enabled'] : FALSE,
        ),
        'weight' => array(
          '#type' => 'weight',
          '#default_value' => isset($settings[$key]['weight']) ? $settings[$key]['weight'] : 0,
          '#delta' => max($delta, 5),
          '#id' => 'edit-handler-' . $key,
        ),
      );

      // Add edit link
      if ($handler['has edit form']) {
        $form['handlers']['handlers_order'][$key]['operations'] = array(
          'edit-link' => array(
            '#type' => 'link',
            '#title' => t('edit'),
            '#href' => 'admin/config/search/power_menu/handler/edit/' . $key,
          ),
        );
      }
      else {
        $form['handlers']['handlers_order'][$key]['operations'] = array(
          'edit-link' => array(
            '#type' => 'markup',
          ),
        );
      }
    }
    $form['submit'] = array(
      '#type' => 'submit',
      '#value' => t('Save'),
    );
  }
  return $form;
}