You are here

function pathauto_patterns_form in Pathauto 6.2

Same name and namespace in other branches
  1. 7 pathauto.admin.inc \pathauto_patterns_form()

Form builder; Configure the URL alias patterns.

See also

system_settings_form()

1 string reference to 'pathauto_patterns_form'
pathauto_menu in ./pathauto.module
Implements hook_menu().

File

./pathauto.admin.inc, line 16
Admin page callbacks for the Pathauto module.

Code

function pathauto_patterns_form($form_state) {
  module_load_include('inc', 'pathauto', 'pathauto.pathauto');

  // Call the hook on all modules - an array of 'settings' objects is returned
  $all_settings = module_invoke_all('pathauto', 'settings');
  foreach ($all_settings as $settings) {
    $module = $settings->module;
    $patterndescr = $settings->patterndescr;
    $patterndefault = $settings->patterndefault;
    $groupheader = $settings->groupheader;
    $form[$module] = array(
      '#type' => 'fieldset',
      '#title' => $groupheader,
      '#collapsible' => TRUE,
      '#collapsed' => FALSE,
    );

    // Prompt for the default pattern for this module
    $variable = 'pathauto_' . $module . '_pattern';
    $form[$module][$variable] = array(
      '#type' => 'textfield',
      '#title' => $patterndescr,
      '#default_value' => variable_get($variable, $patterndefault),
      '#size' => 65,
      '#maxlength' => 1280,
      '#element_validate' => array(
        '_pathauto_validate_pattern_element',
      ),
      '#after_build' => array(
        '_pathauto_validate_pattern_element',
      ),
      '#token_types' => array(
        $settings->token_type,
      ),
      '#min_tokens' => 1,
      '#parents' => array(
        $variable,
      ),
    );

    // If the module supports a set of specialized patterns, set
    // them up here
    if (isset($settings->patternitems)) {
      foreach ($settings->patternitems as $itemname => $itemlabel) {
        $variable = 'pathauto_' . $module . '_' . $itemname . '_pattern';
        $form[$module][$variable] = array(
          '#type' => 'textfield',
          '#title' => $itemlabel,
          '#default_value' => variable_get($variable, ''),
          '#size' => 65,
          '#maxlength' => 1280,
          '#element_validate' => array(
            '_pathauto_validate_pattern_element',
          ),
          '#after_build' => array(
            '_pathauto_validate_pattern_element',
          ),
          '#token_types' => array(
            $settings->token_type,
          ),
          '#min_tokens' => 1,
          '#parents' => array(
            $variable,
          ),
        );
      }
    }

    // Display the user documentation of placeholders supported by
    // this module, as a description on the last pattern
    $form[$module]['token_help'] = array(
      '#title' => t('Replacement patterns'),
      '#type' => 'fieldset',
      '#collapsible' => TRUE,
      '#collapsed' => TRUE,
      '#description' => t('Use -raw replacements for text to avoid problems with HTML entities.'),
    );
    $form[$module]['token_help']['help'] = array(
      '#type' => 'markup',
      '#value' => theme('token_tree', array(
        $settings->token_type,
      )),
    );
  }
  return system_settings_form($form);
}