You are here

function _advagg_admin_form_general in Advanced CSS/JS Aggregation 7

1 call to _advagg_admin_form_general()
advagg_advagg_admin_form in includes/admin.inc
Implements hook_advagg_admin_form(). @see: advagg_form_system_performance_settings_alter().

File

includes/admin.inc, line 108
Admin page callbacks for the advanced CSS/JS aggregation module.

Code

function _advagg_admin_form_general(&$form, &$form_state) {
  $file_path = drupal_get_path('module', 'advagg');
  drupal_add_js(array(
    'advagg' => array(
      'key' => md5(drupal_get_private_key()),
    ),
  ), 'setting');
  drupal_add_js($file_path . '/advagg.admin.js');
  $readme = $file_path . '/README.txt';
  $advagg_enabled = isset($form_state['values']['advagg_enabled']) ? (int) $form_state['values']['advagg_enabled'] : (int) variable_get('advagg_enabled', ADVAGG_ENABLED);
  $form['advagg_closure'] = array(
    '#type' => 'checkbox',
    '#title' => t('Aggregate footer JavaScript'),
    '#default_value' => variable_get('advagg_closure', ADVAGG_CLOSURE),
    '#description' => t('If enabled javascript files in the closure region will be aggregated.'),
  );

  // Make sure the advagg_check_missing_handler function is available.
  module_load_install('advagg');
  $ret = advagg_check_missing_handler();
  $form['advagg_async_generation'] = array(
    '#type' => 'checkbox',
    '#title' => t('Generate CSS/JS files on request (async mode)'),
    '#default_value' => variable_get('advagg_async_generation', ADVAGG_ASYNC_GENERATION),
    '#disabled' => $ret['advagg_async_generation']['severity'] == REQUIREMENT_ERROR ? TRUE : FALSE,
    '#description' => t('Current State: !value', array(
      '!value' => filter_xss(' ' . $ret['advagg_async_generation']['value'] . ' ' . (!empty($ret['advagg_async_generation']['description']) ? $ret['advagg_async_generation']['description'] : '') . ' '),
    )),
  );
  $form['advagg_gzip_compression'] = array(
    '#type' => 'checkbox',
    '#title' => t('Gzip CSS/JS files'),
    '#default_value' => variable_get('advagg_gzip_compression', ADVAGG_GZIP_COMPRESSION),
    '#description' => t('This might break CSS/JS handling at the Apache level. If it does, use the rules for your webroot level htaccess file before re-enabling. Directions on what to change are located in the <a href="@readme">readme</a> file. In short, be sure to test this out.', array(
      '@readme' => url($readme),
    )),
  );
  $form['advagg_dir_htaccess'] = array(
    '#type' => 'checkbox',
    '#title' => t('Generate .htaccess files in the advagg_* dirs'),
    '#default_value' => variable_get('advagg_dir_htaccess', ADVAGG_DIR_HTACCESS),
    '#description' => t('Disable if your using the rules from the <a href="@readme">readme</a> file in your webroot level htaccess file.', array(
      '@readme' => url($readme),
    )),
  );
  $form['advagg_rebuild_on_flush'] = array(
    '#type' => 'checkbox',
    '#title' => t('Regenerate flushed bundles in the cache flush request'),
    '#default_value' => variable_get('advagg_rebuild_on_flush', ADVAGG_REBUILD_ON_FLUSH),
    '#description' => t('You can enable if your server will not timeout on a request. This will call advagg_rebuild_bundle() as a <a href="http://php.net/register-shutdown-function">shutdown function</a> for every bundle that has been marked as expired; thus rebuilding that bundle in the same request as the flush.'),
  );
  if (file_default_scheme() !== 'public') {
    $extra = module_exists('boost') ? t('If boost is installed, you can use the cache directory for advagg files.') : '';
    $form['advagg_custom_files_dir'] = array(
      '#type' => 'textfield',
      '#field_prefix' => '<div>' . t('You are using a private file system. You must serve aggregated files via a public folder.') . '</div>',
      '#title' => t('Use a different directory for storing advagg files'),
      '#default_value' => variable_get('advagg_custom_files_dir', ADVAGG_CUSTOM_FILES_DIR),
      '#description' => check_plain(t('You need to create a publicly writable directory (same permissions as Drupals files folder).') . ' ' . $extra . ' ' . t('If you do not need this, you can put a space in this box.')),
      '#required' => TRUE,
    );
  }
  $options = array(
    0 => t('Wait for locks'),
    1 => t('Do not wait for locks'),
    2 => t('Only serve aggregated files if they are already built (only works if async is enabled)'),
  );
  $form['advagg_aggregate_mode'] = array(
    '#type' => 'radios',
    '#title' => t('Aggregation Inclusion Mode'),
    '#default_value' => variable_get('advagg_aggregate_mode', ADVAGG_AGGREGATE_MODE),
    '#options' => $options,
    '#description' => t('Should the page wait for the aggregate to be built before including the file, or should it send out the page with aggregates not included.'),
  );
  $form['advagg_page_cache_mode'] = array(
    '#type' => 'checkbox',
    '#title' => t('Disable page caching if all aggregates are not included on the page.'),
    '#default_value' => variable_get('advagg_page_cache_mode', ADVAGG_PAGE_CACHE_MODE),
  );
  $form['advagg_checksum_mode'] = array(
    '#type' => 'radios',
    '#title' => t('File Checksum Mode'),
    '#default_value' => variable_get('advagg_checksum_mode', ADVAGG_CHECKSUM_MODE),
    '#options' => array(
      'filemtime' => function_exists('filemtime') ? 'filemtime' : 'filemtime (not installed)',
      'md5' => function_exists('md5') ? 'md5' : 'md5 (not installed)',
    ),
    '#description' => t('If Drupal is on multiple servers and the file system is not shared;  using md5 is recommended. The file modification time (filemtime) could be different with this type of setup. WARNING: Changing this value will invalidate all bundles and new ones will have to be built.'),
  );
  $form['advagg_server_addr'] = array(
    '#type' => 'textfield',
    '#title' => t('IP Address to send all asynchronous requests to'),
    '#default_value' => variable_get('advagg_server_addr', FALSE),
    '#description' => t('If left blank it will use the same server as the request. If set to -1 it will use the host name instead of an IP address.'),
  );

  //   $form['advagg_debug'] = array(
  //     '#type'           => 'checkbox',
  //     '#title'          => t('Debug to watchdog.'),
  //     '#default_value'  => variable_get('advagg_debug', ADVAGG_DEBUG),
  //   );
}