You are here

function markdown_form_alter in Markdown 8.2

Implements hook_form_FORM_ID_alter(). @noinspection PhpUnused @noinspection PhpDocSignatureInspection @noinspection PhpUnusedParameterInspection

File

./markdown.module, line 68
Markdown module.

Code

function markdown_form_alter(&$form, FormStateInterface $form_state, $formId) {

  // Ignore non-filter-format forms.
  if (!in_array($formId, [
    'filter_format_add_form',
    'filter_format_edit_form',
  ], TRUE)) {
    return;
  }
  static $compatibleFilters;
  if (!isset($compatibleFilters)) {

    /** @var \Drupal\filter\FilterPluginManager $filterManager */
    $filterManager = \Drupal::service('plugin.manager.filter');
    $compatibleFilters = array_fill_keys(array_keys($filterManager
      ->getDefinitions()), TRUE);
    \Drupal::moduleHandler()
      ->alter('markdown_compatible_filters', $compatibleFilters);
    $compatibleFilters = array_keys(array_filter($compatibleFilters));
  }
  foreach (Element::children($form['filters']['status']) as $name) {
    if (!in_array($name, $compatibleFilters, TRUE)) {
      $form['filters']['status']['markdown']['#states']['enabled']['[name="filters[' . $name . '][status]"]'] = [
        'checked' => FALSE,
      ];
      $form['filters']['status'][$name]['#states']['enabled']['[name="filters[markdown][status]"]'] = [
        'checked' => FALSE,
      ];
      if (!isset($form['filters']['status'][$name]['#description'])) {
        $form['filters']['status'][$name]['#description'] = '';
      }
      $form['filters']['status'][$name]['#description'] .= t('Note: not compatible with the Markdown filter.');
    }
  }
}