You are here

function xbbcode_enable in Extensible BBCode 7

Implements hook_enable().

File

./xbbcode.install, line 92
Installation actions and database schema.

Code

function xbbcode_enable() {

  // Check if a format with a different internal name is already called BBCode.
  $bbcode_exists = db_query_range('SELECT 1 FROM {filter_format} WHERE name = :name AND format != :format', 0, 1, array(
    ':name' => 'BBCode',
    ':format' => 'xbbcode',
  ))
    ->fetchField();
  $format = (object) array(
    'format' => 'xbbcode',
    'name' => $bbcode_exists ? 'Extensible BBCode' : 'BBCode',
    'weight' => -10,
    'filters' => array(
      'filter_html_escape' => array(
        'weight' => 0,
        'status' => 1,
      ),
      'xbbcode' => array(
        'weight' => 1,
        'status' => 1,
      ),
      'filter_autop' => array(
        'weight' => 2,
        'status' => 1,
      ),
    ),
  );
  filter_format_save($format);
  $permission = filter_permission_name($format);
  user_role_grant_permissions(DRUPAL_ANONYMOUS_RID, array(
    $permission,
  ));
  user_role_grant_permissions(DRUPAL_AUTHENTICATED_RID, array(
    $permission,
  ));
  drupal_set_message(t('A <a href="@url">BBCode</a> text format has been created. All users have access to it.', array(
    '@url' => url('admin/config/content/formats/' . $format->format),
  )));
}