You are here

function xbbcode_settings_handlers_format in Extensible BBCode 7

Same name and namespace in other branches
  1. 8 xbbcode.admin.inc \xbbcode_settings_handlers_format()

Modify handler settings (subform).

2 calls to xbbcode_settings_handlers_format()
xbbcode_filter_settings in ./xbbcode.module
Settings callback for the filter settings of xbbcode.
xbbcode_settings_handlers in ./xbbcode.admin.inc
Modify the global handler settings.

File

./xbbcode.admin.inc, line 316
Administrative interface for modifying tags and settings.

Code

function xbbcode_settings_handlers_format($format = XBBCODE_GLOBAL) {
  drupal_add_css(drupal_get_path('module', 'xbbcode') . '/xbbcode.css');
  drupal_add_js(drupal_get_path('module', 'xbbcode') . '/xbbcode.js');
  module_load_include('inc', 'xbbcode');
  $handlers = _xbbcode_build_handlers();
  $defaults = xbbcode_handlers_load($format, TRUE);
  $form = array(
    '#type' => 'fieldset',
    '#theme' => 'xbbcode_settings_handlers_format',
    '#tree' => TRUE,
    '#title' => t('Tag settings'),
    '#collapsible' => TRUE,
    '#collapsed' => FALSE,
  );
  $form['_enabled'] = array(
    '#type' => 'tableselect',
    '#header' => array(
      'tag' => t('BBCode tag'),
      'module' => t('Module'),
    ),
    '#default_value' => array(),
    '#options' => array(),
    '#attributes' => array(
      'id' => 'xbbcode-handlers',
    ),
    '#empty' => t('No tags or handlers are defined. Please <a href="@modules">install a tag module</a> or <a href="@custom">create some custom tags</a>.', array(
      '@modules' => url('admin/modules', array(
        'fragment' => 'edit-modules-xbbcode',
      )),
      '@custom' => url('admin/config/content/xbbcode/tags'),
    )),
  );
  foreach ($handlers as $name => $handler) {
    if (!isset($defaults[$name])) {
      $defaults[$name] = (object) array(
        'module' => key($handler['modules']),
        'enabled' => FALSE,
      );
    }
    $form['_enabled']['#options'][$name] = array(
      'tag' => array(
        'data' => _xbbcode_build_descriptions($name, $handler['info'], $defaults[$name]->module),
        'class' => array(
          'xbbcode-tag-description',
          'xbbcode-tag-td',
        ),
      ),
      'module' => array(
        'data' => 'handler-select',
        'class' => array(
          'xbbcode-tag-td',
        ),
      ),
      '#attributes' => array(
        'class' => $defaults[$name]->enabled ? array(
          'selected',
        ) : array(),
      ),
    );
    $form['_enabled']['#default_value'][$name] = $defaults[$name]->enabled ? 1 : NULL;
    $form[$name]['module'] = array(
      '#type' => 'select',
      '#options' => $handler['modules'],
      '#default_value' => $defaults[$name]->module,
      '#attributes' => array(
        'class' => array(
          'xbbcode-tag-handler',
        ),
      ),
    );
  }
  return $form;
}