You are here

function popup_breadcrumb_settings in Popup 6.x

1 string reference to 'popup_breadcrumb_settings'
popup_breadcrumb_menu in modules/popup_breadcrumb/popup_breadcrumb.module
Implementation of hook_menu

File

modules/popup_breadcrumb/includes/popup_breadcrumb.admin.inc, line 9

Code

function popup_breadcrumb_settings($form_state) {
  drupal_add_css(drupal_get_path('module', 'popup_ui') . '/popup-ui.css');
  module_load_include('inc', 'popup_ui', 'includes/popup_ui.api');
  module_load_include('inc', 'popup_ui', 'includes/popup_ui.admin');
  $form = array(
    '#tree' => TRUE,
  );
  $settings = _popup_breadcrumb_settings();
  $views = views_get_all_views();
  $views = array_keys(array_filter($views, '_popup_breadcrumb_view_enabled'));
  $view_options = array_combine($views, $views);
  $arguments = range(1, substr_count($settings['argument-template'], '%'));
  $argument_options = array_combine($arguments, $arguments);
  $format_options = array_keys(_popup_ui_formatter_settings());
  array_unshift($format_options, 'Default');
  $display_format_options = array_combine($format_options, $format_options);
  $form['popup-breadcrumb-argument-template'] = array(
    '#default_value' => $settings['argument-template'],
    '#description' => 'Arguments my be represented with % eg. my/path/<strong>%</strong>/string/<strong>%</strong> or node/<strong>%</strong>',
    '#title' => 'Argument path template',
    '#type' => 'textfield',
    '#weight' => -3,
  );
  $form['popup-breadcrumb-argument-alias'] = array(
    '#default_value' => $settings['argument-alias'],
    '#title' => 'Get arguments from the path alias',
    '#type' => 'checkbox',
    '#weight' => -3,
  );
  $form['popup-breadcrumb-append-title'] = array(
    '#default_value' => $settings['append-title'],
    '#title' => 'Append the breadcrumb with the page title',
    '#type' => 'checkbox',
    '#weight' => -3,
  );
  $form['popup-breadcrumb-home-link'] = array(
    '#default_value' => $settings['home-link'],
    '#title' => 'Prefix the breadcrumb with a link to the homepage',
    '#type' => 'checkbox',
    '#weight' => -3,
  );
  $form['popup-breadcrumb-format'] = array(
    '#default_value' => $settings['format'],
    '#title' => 'Display format',
    '#type' => 'select',
    '#options' => $display_format_options,
    '#description' => t('Select the format in which to display popups. You may manage popup formats !here.', array(
      '!here' => l('here', 'admin/settings/popup/formats'),
    )),
    '#weight' => -2,
  );
  $form['rows'] = array();
  if (count($settings['views'])) {
    foreach ($settings['views'] as $name => $view_data) {
      $view = views_get_view($view_data['view']);
      $display_keys = $view ? array_keys($view->display) : array(
        'default',
      );
      $display_options = array_combine($display_keys, $display_keys);
      $form['rows'][$name] = _popup_breadcrumb_row($name, $view_data, array(
        'views' => $view_options,
        'displays' => $display_options,
        'arguments' => $argument_options,
      ));
      $weight = $view_data['weight'] + 1;
    }
  }
  $form['rows']['new'] = _popup_breadcrumb_row('new', array(
    'weight' => $weight,
  ), array(
    'views' => $view_options,
    'displays' => array(),
    'arguments' => $argument_options,
  ));
  $form['buttons'] = array(
    array(
      '#value' => '<div class="form-item form-buttons">',
    ),
    'submit' => array(
      '#type' => 'submit',
      '#value' => t('Save'),
    ),
    array(
      '#value' => popup_ui_confirm('Reset to defaults', 'Are you sure you want to reset to defaults?<br /> This action cannot be undone!', 'admin/settings/popup/breadcrumb/reset', array(
        'origin' => 'top-left',
        'expand' => 'top-right',
      )),
    ),
    array(
      '#value' => '</div>',
    ),
    '#weight' => 2,
  );
  return $form;
}