You are here

function geshifilter_per_language_settings in GeSHi Filter for syntax highlighting 6

Same name and namespace in other branches
  1. 5.2 geshifilter.admin.inc \geshifilter_per_language_settings()
  2. 7 geshifilter.admin.inc \geshifilter_per_language_settings()

function for generating a form table for per language settings

2 calls to geshifilter_per_language_settings()
geshifilter_admin_per_language_settings in ./geshifilter.admin.inc
Menu callback for per language settings
_geshifilter_filter_settings in ./geshifilter.admin.inc
Form (items) for filter settings.

File

./geshifilter.admin.inc, line 416

Code

function geshifilter_per_language_settings($format, $view, $add_checkbox, $add_tag_option) {
  $form = array(
    '#theme' => 'geshifilter_per_language_settings',
  );

  // table header
  $form['header'] = array(
    '#type' => 'value',
    '#value' => array(),
  );
  $form['header']['#value'][] = t('Language');
  $form['header']['#value'][] = t('GeSHi language code');
  if ($add_tag_option) {
    $form['header']['#value'][] = t('Tag/language attribute value');
  }

  // table body
  $form['languages'] = array();
  $languages = _geshifilter_get_available_languages();
  foreach ($languages as $language => $language_data) {
    $enabled = variable_get("geshifilter_language_enabled_{$language}", FALSE);

    // skip items to hide
    if ($view == 'enabled' && !$enabled || $view == 'disabled' && $enabled) {
      continue;
    }

    // build language row
    $form['languages'][$language] = array();

    // add enable/disable checkbox
    if ($add_checkbox) {
      $form['languages'][$language]["geshifilter_language_enabled_{$language}"] = array(
        '#type' => 'checkbox',
        '#default_value' => $enabled,
        '#title' => $language_data['fullname'],
      );
    }
    else {
      $form['languages'][$language]['fullname'] = array(
        '#type' => 'markup',
        '#value' => $language_data['fullname'],
      );
    }

    // language code
    $form['languages'][$language]['name'] = array(
      '#type' => 'markup',
      '#value' => $language,
    );

    // add a textfield for tags
    if ($add_tag_option) {
      $f = $format === NULL ? '' : "_{$format}";
      $form['languages'][$language]["geshifilter_language_tags_{$language}{$f}"] = array(
        '#type' => 'textfield',
        '#default_value' => geshifilter_language_tags($language, $format),
        '#size' => 20,
      );
    }
  }
  return $form;
}