Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
100.00% |
30 / 30 |
|
100.00% |
4 / 4 |
CRAP | |
100.00% |
1 / 1 |
Referer | |
100.00% |
30 / 30 |
|
100.00% |
4 / 4 |
5 | |
100.00% |
1 / 1 |
getFormId | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
1 | |||
buildForm | |
100.00% |
25 / 25 |
|
100.00% |
1 / 1 |
1 | |||
submitForm | |
100.00% |
2 / 2 |
|
100.00% |
1 / 1 |
1 | |||
setSessionRefererType | |
100.00% |
2 / 2 |
|
100.00% |
1 / 1 |
2 |
1 | <?php |
2 | |
3 | namespace Drupal\visitors\Form; |
4 | |
5 | use Drupal\Core\Form\FormStateInterface; |
6 | use Drupal\visitors\VisitorsReportInterface; |
7 | |
8 | /** |
9 | * Referer type filter form. |
10 | */ |
11 | class Referer extends DateFilter { |
12 | |
13 | /** |
14 | * {@inheritdoc} |
15 | */ |
16 | public function getFormId() { |
17 | return 'visitors_referer_form'; |
18 | } |
19 | |
20 | /** |
21 | * {@inheritdoc} |
22 | */ |
23 | public function buildForm(array $form, FormStateInterface $form_state) { |
24 | $this->setSessionRefererType(); |
25 | $form = parent::buildForm($form, $form_state); |
26 | |
27 | unset($form['submit']); |
28 | |
29 | $form['visitors_referer'] = [ |
30 | '#type' => 'fieldset', |
31 | '#title' => $this->t('Referer type filter'), |
32 | '#collapsible' => FALSE, |
33 | '#collapsed' => FALSE, |
34 | '#description' => $this->t('Choose referer type'), |
35 | ]; |
36 | |
37 | $form['visitors_referer']['referer_type'] = [ |
38 | '#type' => 'select', |
39 | '#title' => 'Referer type', |
40 | '#default_value' => $_SESSION['referer_type'], |
41 | '#options' => [ |
42 | $this->t('Internal pages'), |
43 | $this->t('External pages'), |
44 | $this->t('All pages'), |
45 | ], |
46 | ]; |
47 | |
48 | $form['submit'] = [ |
49 | '#type' => 'submit', |
50 | '#value' => $this->t('Save'), |
51 | ]; |
52 | |
53 | return $form; |
54 | } |
55 | |
56 | /** |
57 | * {@inheritdoc} |
58 | */ |
59 | public function submitForm(array &$form, FormStateInterface $form_state) { |
60 | parent::submitForm($form, $form_state); |
61 | |
62 | $_SESSION['referer_type'] = $form_state->getValues()['referer_type']; |
63 | } |
64 | |
65 | /** |
66 | * Set to session info default values for visitors referer type. |
67 | */ |
68 | protected function setSessionRefererType() { |
69 | if (!isset($_SESSION['referer_type'])) { |
70 | $_SESSION['referer_type'] = VisitorsReportInterface::REFERER_TYPE_EXTERNAL_PAGES; |
71 | } |
72 | } |
73 | |
74 | } |