class DownloadCountSettingsForm in Download Count 8
Configure download count settings.
Hierarchy
- class \Drupal\Core\Form\FormBase implements ContainerInjectionInterface, FormInterface uses DependencySerializationTrait, LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\Core\Form\ConfigFormBase uses ConfigFormBaseTrait
- class \Drupal\download_count\Form\DownloadCountSettingsForm
- class \Drupal\Core\Form\ConfigFormBase uses ConfigFormBaseTrait
Expanded class hierarchy of DownloadCountSettingsForm
1 string reference to 'DownloadCountSettingsForm'
File
- src/
Form/ DownloadCountSettingsForm.php, line 12
Namespace
Drupal\download_count\FormView source
class DownloadCountSettingsForm extends ConfigFormBase {
/**
* {@inheritdoc}
*/
public function getFormId() {
return 'download_count_admin_settings_form';
}
/**
* {@inheritdoc}
*/
protected function getEditableConfigNames() {
return [
'download_count.settings',
];
}
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state) {
$config = $this
->config('download_count.settings');
$form['excluded file extensions'] = [
'#type' => 'details',
'#title' => $this
->t('Excluded file extensions'),
'#open' => TRUE,
];
$form['excluded file extensions']['download_count_excluded_file_extensions'] = [
'#type' => 'textfield',
'#title' => $this
->t('Excluded file extensions'),
'#default_value' => $config
->get('download_count_excluded_file_extensions'),
'#maxlength' => 255,
'#description' => $this
->t("To exclude files of certain types, enter the extensions to exclude separated by spaces. This is useful if you have private image fields and don't wish to include them in download counts."),
];
$form['download count page'] = [
'#type' => 'details',
'#title' => $this
->t('Report page options'),
'#description' => $this
->t('Settings for <a href="@page">this</a> page.', [
'@page' => Url::fromRoute('download_count.clear'),
]),
'#open' => FALSE,
];
$form['download count page']['download_count_view_page_title'] = [
'#type' => 'textfield',
'#title' => $this
->t('Title'),
'#default_value' => $config
->get('download_count_view_page_title'),
];
$form['download count page']['download_count_view_page_limit'] = [
'#type' => 'textfield',
'#title' => $this
->t('Total number of items to display'),
'#size' => 10,
'#default_value' => $config
->get('download_count_view_page_limit'),
'#description' => $this
->t('Set to 0 for no limit.'),
];
$form['download count page']['download_count_view_page_items'] = [
'#type' => 'textfield',
'#title' => $this
->t('Number of items per page'),
'#size' => 10,
'#default_value' => $config
->get('download_count_view_page_items'),
'#description' => $this
->t('Set to 0 for no pager.'),
];
$header = $config
->get('download_count_view_page_header');
$form['download count page']['download_count_view_page_header'] = [
'#type' => 'text_format',
'#title' => $this
->t('Header'),
'#format' => isset($header['format']) ? $header['format'] : NULL,
'#default_value' => isset($header['value']) ? $header['value'] : NULL,
'#description' => $this
->t('Text to appear between the title of the page and the download count table.'),
];
$footer = $config
->get('download_count_view_page_footer');
$form['download count page']['download_count_view_page_footer'] = [
'#type' => 'text_format',
'#title' => $this
->t('Footer'),
'#format' => isset($footer['format']) ? $footer['format'] : NULL,
'#default_value' => isset($footer['value']) ? $footer['value'] : NULL,
'#description' => $this
->t('Text to appear underneath the download count table.'),
];
$form['details'] = [
'#type' => 'details',
'#title' => $this
->t('Details Page Options'),
'#open' => FALSE,
];
$form['details']['download_count_details_daily_limit'] = [
'#type' => 'textfield',
'#title' => $this
->t('Number of days to display on the details page.'),
'#size' => 10,
'#default_value' => $config
->get('download_count_details_daily_limit'),
];
$form['details']['download_count_details_weekly_limit'] = [
'#type' => 'textfield',
'#title' => $this
->t('Number of weeks to display on the details page.'),
'#size' => 10,
'#default_value' => $config
->get('download_count_details_weekly_limit'),
];
$form['details']['download_count_details_monthly_limit'] = [
'#type' => 'textfield',
'#title' => $this
->t('Number of months to display on the details page.'),
'#size' => 10,
'#default_value' => $config
->get('download_count_details_monthly_limit'),
];
$form['details']['download_count_details_yearly_limit'] = [
'#type' => 'textfield',
'#title' => $this
->t('Number of years to display on the details page.'),
'#size' => 10,
'#default_value' => $config
->get('download_count_details_yearly_limit'),
];
$plugin = DRUPAL_ROOT . '/libraries/sparkline/jquery.sparkline.min.js';
if (file_exists($plugin)) {
$form['details']['sparklines'] = [
'#type' => 'details',
'#title' => $this
->t('Sparkline Options'),
'#description' => '<p>' . $this
->t('The jquery sparkline plugin is available at: @plugin', [
'@plugin' => $plugin,
]) . '</p>',
'#open' => FALSE,
];
$form['details']['sparklines']['download_count_sparklines'] = [
'#type' => 'select',
'#title' => $this
->t('Sparklines'),
'#default_value' => $config
->get('download_count_sparklines'),
'#options' => [
'none' => $this
->t('None'),
'line' => $this
->t('Line'),
'bar' => $this
->t('Bar'),
],
'#disabled' => !$plugin,
'#description' => $this
->t('Enable sparklines and select type.'),
];
$form['details']['sparklines']['download_count_sparkline_min'] = [
'#type' => 'textfield',
'#title' => $this
->t('Chart Minimum Value'),
'#size' => 8,
'#default_value' => $config
->get('download_count_sparkline_min'),
'#disabled' => !$plugin,
'#description' => $this
->t('Specify the minimum value to use for the range of the chart (starting point).'),
];
$form['details']['sparklines']['download_count_sparkline_height'] = [
'#type' => 'textfield',
'#title' => $this
->t('Chart Height'),
'#size' => 8,
'#default_value' => $config
->get('download_count_sparkline_height'),
'#disabled' => !$plugin,
'#description' => $this
->t('The height of the sparkline graph. May be any valid css height (ie 1.5em,20px, etc). Must include units.'),
];
$form['details']['sparklines']['download_count_sparkline_width'] = [
'#type' => 'textfield',
'#title' => $this
->t('Chart Width'),
'#size' => 8,
'#default_value' => $config
->get('download_count_sparkline_width'),
'#disabled' => !$plugin,
'#description' => $this
->t('The width of the sparkline graph. May be any valid css width (ie 1.5em, 20px, etc). Must include units.'),
];
}
$form['download_count_flood_control'] = [
'#type' => 'fieldset',
'#title' => $this
->t('Flood Control Settings'),
'#open' => FALSE,
];
$form['download_count_flood_control']['download_count_flood_limit'] = [
'#type' => 'textfield',
'#title' => $this
->t('Flood control limit'),
'#size' => 10,
'#default_value' => $config
->get('download_count_flood_limit'),
'#description' => $this
->t('Maximum number of times to count the file download per time window. Enter 0 for no flood control limits.'),
];
$form['download_count_flood_control']['download_count_flood_window'] = [
'#type' => 'textfield',
'#title' => $this
->t('Flood control window'),
'#size' => 10,
'#default_value' => $config
->get('download_count_flood_window'),
'#description' => $this
->t('Number of seconds in the time window for counting a file download.'),
];
$form['download_count_cache_clear'] = [
'#type' => 'details',
'#title' => $this
->t('Clear Download Count Cache'),
'#description' => '<p>' . $this
->t('This will delete the cached download count data from the database. It
will be rebuilt during drupal cron runs.') . '<br /><strong>' . $this
->t('Note:') . '</strong>' . $this
->t('This will affect the details page until the data has been rebuilt.') . '</p>',
'#open' => FALSE,
];
$form['download_count_cache_clear']['submit'] = [
'#type' => 'submit',
'#value' => $this
->t('Clear Cache'),
'#submit' => [
'::downloadCountClearSubmit',
],
];
return parent::buildForm($form, $form_state);
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
$config = $this
->config('download_count.settings');
$config
->set('download_count_flood_window', $form_state
->getValue('download_count_flood_window'))
->set('download_count_flood_limit', $form_state
->getValue('download_count_flood_limit'))
->set('download_count_sparkline_width', $form_state
->getValue('download_count_sparkline_width'))
->set('download_count_sparkline_height', $form_state
->getValue('download_count_sparkline_height'))
->set('download_count_sparkline_min', $form_state
->getValue('download_count_sparkline_min'))
->set('download_count_sparklines', $form_state
->getValue('download_count_sparklines'))
->set('download_count_details_yearly_limit', $form_state
->getValue('download_count_details_yearly_limit'))
->set('download_count_details_monthly_limit', $form_state
->getValue('download_count_details_monthly_limit'))
->set('download_count_details_weekly_limit', $form_state
->getValue('download_count_details_weekly_limit'))
->set('download_count_details_daily_limit', $form_state
->getValue('download_count_details_daily_limit'))
->set('download_count_view_page_items', $form_state
->getValue('download_count_view_page_items'))
->set('download_count_view_page_limit', $form_state
->getValue('download_count_view_page_limit'))
->set('download_count_view_page_title', $form_state
->getValue('download_count_view_page_title'))
->set('download_count_excluded_file_extensions', $form_state
->getValue('download_count_excluded_file_extensions'))
->save();
parent::submitForm($form, $form_state);
}
/**
* Implements submit callback for download count clear.
*/
public function downloadCountClearSubmit(array &$form, FormStateInterface $form_state) {
$form_state
->setRedirect('download_count.clear');
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ConfigFormBase:: |
public static | function |
Instantiates a new instance of this class. Overrides FormBase:: |
13 |
ConfigFormBase:: |
public | function | Constructs a \Drupal\system\ConfigFormBase object. | 11 |
ConfigFormBaseTrait:: |
protected | function | Retrieves a configuration object. | |
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
DownloadCountSettingsForm:: |
public | function |
Form constructor. Overrides ConfigFormBase:: |
|
DownloadCountSettingsForm:: |
public | function | Implements submit callback for download count clear. | |
DownloadCountSettingsForm:: |
protected | function |
Gets the configuration names that will be editable. Overrides ConfigFormBaseTrait:: |
|
DownloadCountSettingsForm:: |
public | function |
Returns a unique string identifying the form. Overrides FormInterface:: |
|
DownloadCountSettingsForm:: |
public | function |
Form submission handler. Overrides ConfigFormBase:: |
|
FormBase:: |
protected | property | The config factory. | 1 |
FormBase:: |
protected | property | The request stack. | 1 |
FormBase:: |
protected | property | The route match. | |
FormBase:: |
protected | function | Gets the config factory for this form. | 1 |
FormBase:: |
private | function | Returns the service container. | |
FormBase:: |
protected | function | Gets the current user. | |
FormBase:: |
protected | function | Gets the request object. | |
FormBase:: |
protected | function | Gets the route match. | |
FormBase:: |
protected | function | Gets the logger for a specific channel. | |
FormBase:: |
protected | function |
Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait:: |
|
FormBase:: |
public | function | Resets the configuration factory. | |
FormBase:: |
public | function | Sets the config factory for this form. | |
FormBase:: |
public | function | Sets the request stack object to use. | |
FormBase:: |
public | function |
Form validation handler. Overrides FormInterface:: |
62 |
LinkGeneratorTrait:: |
protected | property | The link generator. | 1 |
LinkGeneratorTrait:: |
protected | function | Returns the link generator. | |
LinkGeneratorTrait:: |
protected | function | Renders a link to a route given a route name and its parameters. | |
LinkGeneratorTrait:: |
public | function | Sets the link generator service. | |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
UrlGeneratorTrait:: |
protected | property | The url generator. | |
UrlGeneratorTrait:: |
protected | function | Returns the URL generator service. | |
UrlGeneratorTrait:: |
public | function | Sets the URL generator service. | |
UrlGeneratorTrait:: |
protected | function | Generates a URL or path for a specific route based on the given parameters. |