1 locale.admin.inc locale_date_format_form($form, &$form_state, $format)

Form callback; Display fields for setting the date format for each language.

File

core/modules/locale/locale.admin.inc, line 324
Administration functions for locale.module.

Code

function locale_date_format_form($form, &$form_state, $format) {
  backdrop_set_title(t('Localize date format %format', array('%format' => $format['label'])), PASS_THROUGH);

  // We use the system_date_time_lookup() function from system.admin.inc.
  form_load_include($form_state, 'inc', 'system', 'system.admin');
  $form_state['format'] = $format;

  $form['#tree'] = TRUE;
  $form['help'] = array(
    '#type' => 'help',
    '#markup' => t('Each language may format dates and times differently. Languages without a specific format will fallback to the default. See the <a href="@url">PHP manual</a> for available options.', array('@url' => 'http://php.net/manual/function.date.php')),
  );

  $form['locales']['default'] = array(
    '#type' => 'item',
    '#title' => t('Default'),
    '#markup' => '<strong>' . check_plain($format['pattern']) . '</strong>',
    '#field_suffix' => '<small>' . t('Displayed as %date_format', array('%date_format' => format_date(REQUEST_TIME, 'custom', $format['pattern']))) . '</small>',
  );

  // Get the enabled languages only.
  $languages = language_list(TRUE);
  foreach ($languages as $langcode => $language) {
    $pattern = isset($format['locales'][$langcode]) ? $format['locales'][$langcode] : '';
    if (!empty($form_state['values']['locales'][$langcode])) {
      $pattern = $form_state['values']['locales'][$langcode];
    }
    $placeholder_pattern = $pattern ? $pattern : $format['pattern'];
    $preview = t('Displayed as %date_format', array('%date_format' => format_date(REQUEST_TIME, 'custom', $placeholder_pattern)));

    $form['locales'][$langcode] = array(
      '#title' => check_plain($language->name),
      '#type' => 'textfield',
      '#maxlength' => 100,
      '#default_value' => $pattern,
      '#field_suffix' => '<small class="pattern-preview">' . $preview . '</small>',
      '#ajax' => array(
        'callback' => 'system_date_time_lookup',
        'event' => 'keyup',
        'progress' => array('type' => 'none', 'message' => NULL),
        'disable' => FALSE,
      ),
      '#placeholder' => $placeholder_pattern,
      '#size' => 30,
      '#wrapper_attributes' => array(
        'id' => 'locale-pattern-' . $langcode,
      ),
    );
  }

  $form['actions'] = array('#type' => 'actions');
  $form['actions']['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Save configuration'),
  );

  return $form;
}