Issue #1937968 by ACF: Convert statistics's system_config_form() to SystemConfigFormBase.
parent
232cfc7491
commit
96903932a1
|
@ -0,0 +1,94 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @file
|
||||||
|
* Contains \Drupal\statistics\StatisticsSettingsForm.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Drupal\statistics;
|
||||||
|
|
||||||
|
use Drupal\system\SystemConfigFormBase;
|
||||||
|
use Drupal\Core\Config\ConfigFactory;
|
||||||
|
use Drupal\Core\Extension\ModuleHandler;
|
||||||
|
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configure statistics settings for this site.
|
||||||
|
*/
|
||||||
|
class StatisticsSettingsForm extends SystemConfigFormBase {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The module handler.
|
||||||
|
*
|
||||||
|
* @var \Drupal\Core\Extension\ModuleHandler
|
||||||
|
*/
|
||||||
|
protected $moduleHandler;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs a \Drupal\user\StatisticsSettingsForm object.
|
||||||
|
*
|
||||||
|
* @param \Drupal\Core\Config\ConfigFactory $config_factory
|
||||||
|
* The factory for configuration objects.
|
||||||
|
* @param \Drupal\Core\Extension\ModuleHandler $module_handler
|
||||||
|
* The module handler.
|
||||||
|
*/
|
||||||
|
public function __construct(ConfigFactory $config_factory, ModuleHandler $module_handler) {
|
||||||
|
$this->configFactory = $config_factory;
|
||||||
|
$this->moduleHandler = $module_handler;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Implements \Drupal\Core\ControllerInterface::create().
|
||||||
|
*/
|
||||||
|
public static function create(ContainerInterface $container) {
|
||||||
|
return new static(
|
||||||
|
$container->get('config.factory'),
|
||||||
|
$container->get('module_handler')
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Implements \Drupal\Core\Form\FormInterface::getFormID().
|
||||||
|
*/
|
||||||
|
public function getFormID() {
|
||||||
|
return 'statistics_settings_form';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Implements \Drupal\Core\Form\FormInterface::buildForm().
|
||||||
|
*/
|
||||||
|
public function buildForm(array $form, array &$form_state) {
|
||||||
|
$config = $this->configFactory->get('statistics.settings');
|
||||||
|
|
||||||
|
// Content counter settings.
|
||||||
|
$form['content'] = array(
|
||||||
|
'#type' => 'details',
|
||||||
|
'#title' => t('Content viewing counter settings'),
|
||||||
|
);
|
||||||
|
$form['content']['statistics_count_content_views'] = array(
|
||||||
|
'#type' => 'checkbox',
|
||||||
|
'#title' => t('Count content views'),
|
||||||
|
'#default_value' => $config->get('count_content_views'),
|
||||||
|
'#description' => t('Increment a counter each time content is viewed.'),
|
||||||
|
);
|
||||||
|
|
||||||
|
return parent::buildForm($form, $form_state);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Implements \Drupal\Core\Form\FormInterface::submitForm().
|
||||||
|
*/
|
||||||
|
public function submitForm(array &$form, array &$form_state) {
|
||||||
|
$this->configFactory->get('statistics.settings')
|
||||||
|
->set('count_content_views', $form_state['values']['statistics_count_content_views'])
|
||||||
|
->save();
|
||||||
|
|
||||||
|
// The popular statistics block is dependent on these settings, so clear the
|
||||||
|
// block plugin definitions cache.
|
||||||
|
if ($this->moduleHandler->moduleExists('block')) {
|
||||||
|
drupal_container()->get('plugin.manager.block')->clearCachedDefinitions();
|
||||||
|
}
|
||||||
|
|
||||||
|
parent::submitForm($form, $form_state);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,46 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file
|
|
||||||
* Admin page callbacks for the Statistics module.
|
|
||||||
*/
|
|
||||||
|
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Form constructor for the statistics administration form.
|
|
||||||
*
|
|
||||||
* @ingroup forms
|
|
||||||
* @see statistics_settings_form_submit().
|
|
||||||
*/
|
|
||||||
function statistics_settings_form($form, &$form_state) {
|
|
||||||
$config = config('statistics.settings');
|
|
||||||
|
|
||||||
// Content counter settings.
|
|
||||||
$form['content'] = array(
|
|
||||||
'#type' => 'details',
|
|
||||||
'#title' => t('Content viewing counter settings'),
|
|
||||||
);
|
|
||||||
$form['content']['statistics_count_content_views'] = array(
|
|
||||||
'#type' => 'checkbox',
|
|
||||||
'#title' => t('Count content views'),
|
|
||||||
'#default_value' => $config->get('count_content_views'),
|
|
||||||
'#description' => t('Increment a counter each time content is viewed.'),
|
|
||||||
);
|
|
||||||
|
|
||||||
return system_config_form($form, $form_state);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Form submission handler for statistics_settings_form().
|
|
||||||
*/
|
|
||||||
function statistics_settings_form_submit($form, &$form_state) {
|
|
||||||
config('statistics.settings')
|
|
||||||
->set('count_content_views', $form_state['values']['statistics_count_content_views'])
|
|
||||||
->save();
|
|
||||||
// The popular statistics block is dependent on these settings, so clear the
|
|
||||||
// block plugin definitions cache.
|
|
||||||
if (module_exists('block')) {
|
|
||||||
drupal_container()->get('plugin.manager.block')->clearCachedDefinitions();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -79,10 +79,8 @@ function statistics_menu() {
|
||||||
$items['admin/config/system/statistics'] = array(
|
$items['admin/config/system/statistics'] = array(
|
||||||
'title' => 'Statistics',
|
'title' => 'Statistics',
|
||||||
'description' => 'Control details about what and how your site logs content statistics.',
|
'description' => 'Control details about what and how your site logs content statistics.',
|
||||||
'page callback' => 'drupal_get_form',
|
'route_name' => 'statistics_settings',
|
||||||
'page arguments' => array('statistics_settings_form'),
|
|
||||||
'access arguments' => array('administer statistics'),
|
'access arguments' => array('administer statistics'),
|
||||||
'file' => 'statistics.admin.inc',
|
|
||||||
'weight' => -15,
|
'weight' => -15,
|
||||||
);
|
);
|
||||||
return $items;
|
return $items;
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
statistics_settings:
|
||||||
|
pattern: '/admin/config/system/statistics'
|
||||||
|
defaults:
|
||||||
|
_form: 'Drupal\statistics\StatisticsSettingsForm'
|
||||||
|
requirements:
|
||||||
|
_permission: 'administer statistics'
|
Loading…
Reference in New Issue