Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 5 |
CRAP | |
0.00% |
0 / 59 |
| StatisticsPopularBlock | |
0.00% |
0 / 1 |
|
0.00% |
0 / 5 |
110 | |
0.00% |
0 / 59 |
| defaultConfiguration | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 6 |
|||
| blockAccess | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| blockForm | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 25 |
|||
| blockSubmit | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 4 |
|||
| build | |
0.00% |
0 / 1 |
42 | |
0.00% |
0 / 22 |
|||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\statistics\Plugin\Block\StatisticsPopularBlock. | |
| */ | |
| namespace Drupal\statistics\Plugin\Block; | |
| use Drupal\Core\Access\AccessResult; | |
| use Drupal\Core\Block\BlockBase; | |
| use Drupal\Core\Form\FormStateInterface; | |
| use Drupal\Core\Session\AccountInterface; | |
| /** | |
| * Provides a 'Popular content' block. | |
| * | |
| * @Block( | |
| * id = "statistics_popular_block", | |
| * admin_label = @Translation("Popular content") | |
| * ) | |
| */ | |
| class StatisticsPopularBlock extends BlockBase { | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function defaultConfiguration() { | |
| return array( | |
| 'top_day_num' => 0, | |
| 'top_all_num' => 0, | |
| 'top_last_num' => 0 | |
| ); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| protected function blockAccess(AccountInterface $account) { | |
| return AccessResult::allowedIfHasPermission($account, 'access content'); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function blockForm($form, FormStateInterface $form_state) { | |
| // Popular content block settings. | |
| $numbers = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 40); | |
| $numbers = array('0' => $this->t('Disabled')) + array_combine($numbers, $numbers); | |
| $form['statistics_block_top_day_num'] = array( | |
| '#type' => 'select', | |
| '#title' => $this->t("Number of day's top views to display"), | |
| '#default_value' => $this->configuration['top_day_num'], | |
| '#options' => $numbers, | |
| '#description' => $this->t('How many content items to display in "day" list.'), | |
| ); | |
| $form['statistics_block_top_all_num'] = array( | |
| '#type' => 'select', | |
| '#title' => $this->t('Number of all time views to display'), | |
| '#default_value' => $this->configuration['top_all_num'], | |
| '#options' => $numbers, | |
| '#description' => $this->t('How many content items to display in "all time" list.'), | |
| ); | |
| $form['statistics_block_top_last_num'] = array( | |
| '#type' => 'select', | |
| '#title' => $this->t('Number of most recent views to display'), | |
| '#default_value' => $this->configuration['top_last_num'], | |
| '#options' => $numbers, | |
| '#description' => $this->t('How many content items to display in "recently viewed" list.'), | |
| ); | |
| return $form; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function blockSubmit($form, FormStateInterface $form_state) { | |
| $this->configuration['top_day_num'] = $form_state->getValue('statistics_block_top_day_num'); | |
| $this->configuration['top_all_num'] = $form_state->getValue('statistics_block_top_all_num'); | |
| $this->configuration['top_last_num'] = $form_state->getValue('statistics_block_top_last_num'); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function build() { | |
| $content = array(); | |
| if ($this->configuration['top_day_num'] > 0) { | |
| $result = statistics_title_list('daycount', $this->configuration['top_day_num']); | |
| if ($result) { | |
| $content['top_day'] = node_title_list($result, $this->t("Today's:")); | |
| $content['top_day']['#suffix'] = '<br />'; | |
| } | |
| } | |
| if ($this->configuration['top_all_num'] > 0) { | |
| $result = statistics_title_list('totalcount', $this->configuration['top_all_num']); | |
| if ($result) { | |
| $content['top_all'] = node_title_list($result, $this->t('All time:')); | |
| $content['top_all']['#suffix'] = '<br />'; | |
| } | |
| } | |
| if ($this->configuration['top_last_num'] > 0) { | |
| $result = statistics_title_list('timestamp', $this->configuration['top_last_num']); | |
| $content['top_last'] = node_title_list($result, $this->t('Last viewed:')); | |
| $content['top_last']['#suffix'] = '<br />'; | |
| } | |
| return $content; | |
| } | |
| } |