entityStorage = $entity_storage; } /** * {@inheritdoc} */ public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) { return new static( $container->get('entity.manager')->getStorage('node_type'), $configuration, $plugin_id, $plugin_definition ); } /** * {@inheritdoc} */ public function buildConfigurationForm(array $form, FormStateInterface $form_state) { $options = []; $node_types = $this->entityStorage->loadMultiple(); foreach ($node_types as $type) { $options[$type->id()] = $type->label(); } $form['bundles'] = [ '#title' => $this->t('Node types'), '#type' => 'checkboxes', '#options' => $options, '#default_value' => $this->configuration['bundles'], ]; return parent::buildConfigurationForm($form, $form_state); } /** * {@inheritdoc} */ public function submitConfigurationForm(array &$form, FormStateInterface $form_state) { $this->configuration['bundles'] = array_filter($form_state->getValue('bundles')); parent::submitConfigurationForm($form, $form_state); } /** * {@inheritdoc} */ public function summary() { if (count($this->configuration['bundles']) > 1) { $bundles = $this->configuration['bundles']; $last = array_pop($bundles); $bundles = implode(', ', $bundles); return $this->t('The node bundle is @bundles or @last', ['@bundles' => $bundles, '@last' => $last]); } $bundle = reset($this->configuration['bundles']); return $this->t('The node bundle is @bundle', ['@bundle' => $bundle]); } /** * {@inheritdoc} */ public function evaluate() { if (empty($this->configuration['bundles']) && !$this->isNegated()) { return TRUE; } $node = $this->getContextValue('node'); return !empty($this->configuration['bundles'][$node->getType()]); } /** * {@inheritdoc} */ public function defaultConfiguration() { return ['bundles' => []] + parent::defaultConfiguration(); } }