class StatisticsCounterSubscriber in Statistics Counter 8
Subscribe to KernelEvents::TERMINATE events to recalculate nodes statistics.
Hierarchy
- class \Drupal\statistics_counter\EventSubscriber\StatisticsCounterSubscriber implements \Symfony\Component\EventDispatcher\EventSubscriberInterface
Expanded class hierarchy of StatisticsCounterSubscriber
1 string reference to 'StatisticsCounterSubscriber'
1 service uses StatisticsCounterSubscriber
File
- src/
EventSubscriber/ StatisticsCounterSubscriber.php, line 13
Namespace
Drupal\statistics_counter\EventSubscriberView source
class StatisticsCounterSubscriber implements EventSubscriberInterface {
/**
* {@inheritdoc}
*/
static function getSubscribedEvents() {
$events[KernelEvents::TERMINATE][] = [
'updateStatistics',
];
return $events;
}
/**
* Update statistics.
*
* @param Symfony\Component\EventDispatcher\Event $event
* Event.
*/
static function updateStatistics(Event $event) {
$node = \Drupal::request()->attributes
->get('node');
$views = \Drupal::config('statistics.settings')
->get('count_content_views');
if ($node && $event
->getResponse() instanceof HtmlResponse && $views) {
// Support statistics filter.
if (\Drupal::moduleHandler()
->moduleExists('statistics_filter') && statistics_filter_do_filter()) {
return;
}
// We are counting content views.
// A node has been viewed, so update the node's counters.
db_merge('node_counter')
->key(array(
'nid' => $node
->id(),
))
->fields(array(
'weekcount' => 1,
'monthcount' => 1,
'yearcount' => 1,
))
->expression('weekcount', 'weekcount + 1')
->expression('monthcount', 'monthcount + 1')
->expression('yearcount', 'yearcount + 1')
->execute();
}
}
}
Members
Name![]() |
Modifiers | Type | Description | Overrides |
---|---|---|---|---|
StatisticsCounterSubscriber:: |
static | function | Returns an array of event names this subscriber wants to listen to. | |
StatisticsCounterSubscriber:: |
static | function | Update statistics. |