Chris@0: dateFormatter = $date_formatter; Chris@0: $this->time = $time; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) { Chris@0: return new static( Chris@0: $configuration, Chris@0: $plugin_id, Chris@0: $plugin_definition, Chris@0: $container->get('date.formatter'), Chris@0: $container->get('datetime.time') Chris@0: ); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function defaultConfiguration() { Chris@0: return ['age' => NULL] + parent::defaultConfiguration(); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function buildConfigurationForm(array $form, FormStateInterface $form_state) { Chris@0: Chris@0: $form['age'] = [ Chris@0: '#title' => $this->t('Node age, sec'), Chris@0: '#type' => 'number', Chris@0: '#min' => 0, Chris@0: '#default_value' => $this->configuration['age'], Chris@0: ]; Chris@0: Chris@0: return parent::buildConfigurationForm($form, $form_state); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function submitConfigurationForm(array &$form, FormStateInterface $form_state) { Chris@0: $this->configuration['age'] = $form_state->getValue('age'); Chris@0: parent::submitConfigurationForm($form, $form_state); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function summary() { Chris@0: return $this->t( Chris@0: 'Node age: @age', Chris@0: ['@age' => $this->dateFormatter->formatInterval($this->configuration['age'])] Chris@0: ); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function evaluate() { Chris@0: if (!$this->configuration['age'] && !$this->isNegated()) { Chris@0: return TRUE; Chris@0: } Chris@0: $age = $this->time->getRequestTime() - $this->getContextValue('node')->getCreatedTime(); Chris@0: return $age < $this->configuration['age']; Chris@0: } Chris@0: Chris@0: }