You are here

function _language_sections_settings in Language Sections 7.2

Same name and namespace in other branches
  1. 5 language_sections.module \_language_sections_settings()
  2. 6.2 language_sections.module \_language_sections_settings()
  3. 6 language_sections.module \_language_sections_settings()
1 string reference to '_language_sections_settings'
language_sections_admin in ./language_sections.module

File

./language_sections.module, line 262

Code

function _language_sections_settings($form, &$form_state) {
  global $language;
  $textsize = 40;

  // Get $mod_name, $mod_id and $mod_prefix;
  extract(_language_sections_get_ids());

  // Get $elements and $specials.
  extract(_language_sections_context());
  $title = sprintf('%s (%s)', t($mod_name), t('global configuration'));
  drupal_set_title($title);

  // Use the whole form (we used to have a fieldset in D6).
  $section =& $form;
  $fieldset =& $section['triggers'];
  $fieldset = array(
    '#type' => 'fieldset',
    '#title' => t('Current language triggers'),
    '#description' => t('Which elements from current language can be used in language-section markers?'),
  );

  // Create a checkbox for each $element.
  $title = '%element';
  $desc = 'Language:%element is currently %value.';
  foreach ($elements as $element) {
    $key = 'trigger_' . $element;
    $tvars = array(
      '%element' => $element,
      '%value' => $language->{$element} ? $language->{$element} : t('<blank>'),
    );
    $fieldset[$mod_prefix . $key] = array(
      '#type' => 'checkbox',
      '#title' => t($title, $tvars),
      '#default_value' => _language_sections_setting($key),
      '#description' => t($desc, $tvars),
    );
  }

  // Create an entry field for special codes ("all" and "other").
  $examples = array(
    'all' => 'all|todos|toutes',
    'other' => 'english|other|otro|autre',
  );
  foreach ($specials as $type => $desc) {
    $key = 'trigger_special_' . $type;
    $tvars = array(
      '%desc' => $desc,
      '%ex' => t($examples[$type]),
    );
    $section[$mod_prefix . $key] = array(
      '#type' => 'textfield',
      '#title' => t('Triggers for %desc sections', $tvars),
      '#size' => $textsize,
      '#default_value' => _language_sections_setting($key),
      '#description' => t('Text that may mark an %desc section. Leave blank to disable, multiple entries allowed, e.g: %ex', $tvars),
    );
  }
  $fieldset =& $section['advanced'];
  $fieldset = array(
    '#type' => 'fieldset',
    '#title' => t('Advanced'),
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
  );
  $key = 'short_help';
  $fieldset[$mod_prefix . $key] = array(
    '#type' => 'textarea',
    '#title' => t('User help'),
    '#rows' => 2,
    '#default_value' => _language_sections_setting($key),
    '#description' => t('Filter-help shown to the user. This text is passed through t().'),
  );
  $key = 'pattern';
  $pattern = _language_sections_setting($key);

  // Use default pattern if pattern has been set blank here.
  if (!$pattern) {
    $pattern = _language_sections_setting($key, TRUE);
  }
  $fieldset[$mod_prefix . $key] = array(
    '#type' => 'textfield',
    '#title' => t('Alternative pattern'),
    '#size' => $textsize,
    '#default_value' => $pattern,
    '#description' => t('This pattern will be used for finding sections in the text.' . ' You should not change the number of parenthesised groups in the expression.' . ' Set blank to reset to default.'),
  );

  // If form is being posted, process new settings.
  if (!empty($_POST)) {
  }

  //return $form;
  $form = system_settings_form($form);
  $form['#submit'][] = 'language_sections_rebuild_triggers';
  return $form;
}