You are here

class SettingsForm in Advanced CSS/JS Aggregation 8.4

Same name in this branch
  1. 8.4 src/Form/SettingsForm.php \Drupal\advagg\Form\SettingsForm
  2. 8.4 advagg_ext_minify/src/Form/SettingsForm.php \Drupal\advagg_ext_minify\Form\SettingsForm
  3. 8.4 advagg_old_ie_compatibility/src/Form/SettingsForm.php \Drupal\advagg_old_ie_compatibility\Form\SettingsForm
  4. 8.4 advagg_mod/src/Form/SettingsForm.php \Drupal\advagg_mod\Form\SettingsForm
  5. 8.4 advagg_css_minify/src/Form/SettingsForm.php \Drupal\advagg_css_minify\Form\SettingsForm
  6. 8.4 advagg_js_minify/src/Form/SettingsForm.php \Drupal\advagg_js_minify\Form\SettingsForm
  7. 8.4 advagg_cdn/src/Form/SettingsForm.php \Drupal\advagg_cdn\Form\SettingsForm
  8. 8.4 advagg_bundler/src/Form/SettingsForm.php \Drupal\advagg_bundler\Form\SettingsForm
Same name and namespace in other branches
  1. 8.2 advagg_ext_minify/src/Form/SettingsForm.php \Drupal\advagg_ext_minify\Form\SettingsForm
  2. 8.3 advagg_ext_minify/src/Form/SettingsForm.php \Drupal\advagg_ext_minify\Form\SettingsForm

Configure advagg_ext_minify settings for this site.

Hierarchy

Expanded class hierarchy of SettingsForm

1 file declares its use of SettingsForm
SettingsFormTest.php in advagg_ext_minify/tests/src/Kernel/Form/SettingsFormTest.php
1 string reference to 'SettingsForm'
advagg_ext_minify.routing.yml in advagg_ext_minify/advagg_ext_minify.routing.yml
advagg_ext_minify/advagg_ext_minify.routing.yml

File

advagg_ext_minify/src/Form/SettingsForm.php, line 14

Namespace

Drupal\advagg_ext_minify\Form
View source
class SettingsForm extends ConfigFormBase {
  use AdvaggSettersTrait;

  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container) {

    /**
     * @var \Drupal\advagg_ext_minify\Form\SettingsForm
     */
    $instance = parent::create($container);
    $instance
      ->setCache($container
      ->get('cache.advagg'));
    return $instance;
  }

  /**
   * {@inheritdoc}
   */
  public function getFormId() {
    return 'advagg_ext_minify_settings';
  }

  /**
   * {@inheritdoc}
   */
  protected function getEditableConfigNames() {
    return [
      'advagg_ext_minify.settings',
    ];
  }

  /**
   * {@inheritdoc}
   */
  public function buildForm(array $form, FormStateInterface $form_state) {
    $form = [];

    // CSS command line.
    $this
      ->generateForm($form, [
      'css',
      $this
        ->t('CSS'),
    ]);

    // JS command line.
    $this
      ->generateForm($form, [
      'js',
      $this
        ->t('JavaScript'),
    ]);
    return parent::buildForm($form, $form_state);
  }

  /**
   * Generate a form for css or js depending on the input.
   *
   * @param array $form
   *   The form array to add to.
   * @param array $params
   *   An array where:
   *     key 0 is the machine name.
   *     key 1 is the title.
   */
  private function generateForm(array &$form, array $params) {
    $form[$params[0]] = [
      '#type' => 'fieldset',
      '#title' => $params[1],
    ];
    $form[$params[0]]['cmd'] = [
      '#type' => 'fieldset',
      '#title' => $this
        ->t('Command Line'),
    ];
    $description = $this
      ->t('{%CWD%} = \\Drupal::root(). <br /> {%IN%} = input file. <br /> {%IN_URL_ENC%} = url pointing to the input file that has been url encoded. <br /> {%OUT%} = output file. <br /><br />');
    if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
      $description .= ' ' . $this
        ->t('Example using the <a href="@link1">Microsoft Ajax Minifier</a>. <p><code>@code1</code></p>', [
        '@link1' => 'http://ajaxmin.codeplex.com/',
        '@code1' => 'AjaxMinifier {%IN%} -o {%OUT%}',
      ]);
    }
    if ($params[0] === 'js') {
      $description .= ' ' . $this
        ->t('Example using the <a href="@link1">Google Closure Compiler</a>. <p><code>@code1</code></p>', [
        '@link1' => 'https://developers.google.com/closure/compiler/docs/gettingstarted_app',
        '@code1' => 'java -jar compiler.jar --js {%CWD%}/{%IN%} --js_output_file {%OUT%}',
      ]);
      $description .= ' ' . $this
        ->t('Example using curl to minify via the <a href="@link1">Online Google Closure Compiler</a>. <p><code>@code1</code></p>', [
        '@link1' => 'https://developers.google.com/closure/compiler/docs/api-ref',
        '@code1' => 'curl -o {%OUT%} -d output_info=compiled_code -d code_url={%IN_URL_ENC%} http://closure-compiler.appspot.com/compile',
      ]);
    }
    if ($params[0] === 'css') {
      $description .= ' ' . $this
        ->t('Example using the <a href="@link1">YUI Compressor</a>. <p><code>@code1</code></p>', [
        '@link1' => 'http://yui.github.io/yuicompressor/',
        '@code1' => 'java -jar yuicompressor-x.y.z.jar --type css --line-break 4096 {%CWD%}/{%IN%} -o {%OUT%}',
      ]);
      $description .= ' ' . $this
        ->t('Example using curl to minify via an online <a href="@link1">CSS Minifier</a>. <p><code>@code1</code></p>', [
        '@link1' => 'http://cnvyr.io/',
        '@code1' => 'curl -o {%OUT%} -F \'files0=@{%IN%}\' http://srv.cnvyr.io/v1?min=css',
      ]);
    }
    $form[$params[0]]['cmd'][$params[0] . '_cmd'] = [
      '#type' => 'textfield',
      '#title' => $this
        ->t('Command to run'),
      '#default_value' => $this
        ->config('advagg_ext_minify.settings')
        ->get($params[0] . '_cmd'),
      '#description' => $description,
    ];
    $form[$params[0]]['cmd'][$params[0] . '_enabled'] = [
      '#type' => 'checkbox',
      '#title' => $this
        ->t('Enable external @type minification', [
        '@type' => $params[1],
      ]),
      '#default_value' => $this
        ->config('advagg_ext_minify.settings')
        ->get($params[0] . '_cmd'),
    ];
  }

  /**
   * {@inheritdoc}
   */
  public function submitForm(array &$form, FormStateInterface $form_state) {
    $this
      ->config('advagg_ext_minify.settings')
      ->set('js_cmd', $form_state
      ->getValue('js_cmd'))
      ->set('js_enabled', $form_state
      ->getValue('js_enabled'))
      ->set('css_cmd', $form_state
      ->getValue('css_cmd'))
      ->set('css_enabled', $form_state
      ->getValue('css_enabled'))
      ->save();
    parent::submitForm($form, $form_state);

    // Clear relevant caches.
    Cache::invalidateTags([
      'library_info',
    ]);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
AdvaggSettersTrait::$cache protected property The AdvAgg cache. 3
AdvaggSettersTrait::$cssCollectionOptimizer protected property The CSS asset collection optimizer service.
AdvaggSettersTrait::$dateFormatter protected property The date formatter service. 1
AdvaggSettersTrait::$fileSystem protected property The File System service.
AdvaggSettersTrait::$httpClient protected property The Guzzle HTTP Client. 1
AdvaggSettersTrait::$jsCollectionOptimizer protected property The JavaScript asset collection optimizer service.
AdvaggSettersTrait::$languageManager protected property The core language manager service. 1
AdvaggSettersTrait::$moduleHandler protected property The module handler service. 1
AdvaggSettersTrait::$privateKey protected property The private key service.
AdvaggSettersTrait::$renderer protected property The Drupal renderer. 1
AdvaggSettersTrait::$state protected property The state service.
AdvaggSettersTrait::$themeRegistry protected property The theme registry service. 1
AdvaggSettersTrait::$time protected property Obtaining system time.
AdvaggSettersTrait::setCache public function The set cache backend.
AdvaggSettersTrait::setCssCollectionOptimizer public function Set CSS asset collection optimizer service.
AdvaggSettersTrait::setDateFomatter public function Set date formatter service.
AdvaggSettersTrait::setFileSystem public function Set File System service.
AdvaggSettersTrait::setHttpClient public function Set http client.
AdvaggSettersTrait::setJsCollectionOptimizer public function Set JavaScript asset collection optimizer service.
AdvaggSettersTrait::setLanguageManager public function Set language manager service.
AdvaggSettersTrait::setModuleHandler public function Set module handler.
AdvaggSettersTrait::setPrivateKey public function Set private key service.
AdvaggSettersTrait::setRenderer public function Set renderer.
AdvaggSettersTrait::setState public function Set state service.
AdvaggSettersTrait::setThemeRegistry public function The theme registry service.
AdvaggSettersTrait::setTime public function Obtaining system time.
ConfigFormBase::__construct public function Constructs a \Drupal\system\ConfigFormBase object. 11
ConfigFormBaseTrait::config protected function Retrieves a configuration object.
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
FormBase::$configFactory protected property The config factory. 1
FormBase::$requestStack protected property The request stack. 1
FormBase::$routeMatch protected property The route match.
FormBase::configFactory protected function Gets the config factory for this form. 1
FormBase::container private function Returns the service container.
FormBase::currentUser protected function Gets the current user.
FormBase::getRequest protected function Gets the request object.
FormBase::getRouteMatch protected function Gets the route match.
FormBase::logger protected function Gets the logger for a specific channel.
FormBase::redirect protected function Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait::redirect
FormBase::resetConfigFactory public function Resets the configuration factory.
FormBase::setConfigFactory public function Sets the config factory for this form.
FormBase::setRequestStack public function Sets the request stack object to use.
FormBase::validateForm public function Form validation handler. Overrides FormInterface::validateForm 62
LinkGeneratorTrait::$linkGenerator protected property The link generator. 1
LinkGeneratorTrait::getLinkGenerator Deprecated protected function Returns the link generator.
LinkGeneratorTrait::l Deprecated protected function Renders a link to a route given a route name and its parameters.
LinkGeneratorTrait::setLinkGenerator Deprecated public function Sets the link generator service.
LoggerChannelTrait::$loggerFactory protected property The logger channel factory service.
LoggerChannelTrait::getLogger protected function Gets the logger for a specific channel.
LoggerChannelTrait::setLoggerFactory public function Injects the logger channel factory.
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
RedirectDestinationTrait::$redirectDestination protected property The redirect destination service. 1
RedirectDestinationTrait::getDestinationArray protected function Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url.
RedirectDestinationTrait::getRedirectDestination protected function Returns the redirect destination service.
RedirectDestinationTrait::setRedirectDestination public function Sets the redirect destination service.
SettingsForm::buildForm public function Form constructor. Overrides ConfigFormBase::buildForm
SettingsForm::create public static function Instantiates a new instance of this class. Overrides ConfigFormBase::create
SettingsForm::generateForm private function Generate a form for css or js depending on the input.
SettingsForm::getEditableConfigNames protected function Gets the configuration names that will be editable. Overrides ConfigFormBaseTrait::getEditableConfigNames
SettingsForm::getFormId public function Returns a unique string identifying the form. Overrides FormInterface::getFormId
SettingsForm::submitForm public function Form submission handler. Overrides ConfigFormBase::submitForm
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.
UrlGeneratorTrait::$urlGenerator protected property The url generator.
UrlGeneratorTrait::getUrlGenerator Deprecated protected function Returns the URL generator service.
UrlGeneratorTrait::setUrlGenerator Deprecated public function Sets the URL generator service.
UrlGeneratorTrait::url Deprecated protected function Generates a URL or path for a specific route based on the given parameters.