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