3 namespace Drupal\condition_test;
5 use Drupal\Core\Form\FormInterface;
6 use Drupal\Core\Condition\ConditionManager;
7 use Drupal\Core\Form\FormStateInterface;
8 use Drupal\node\Entity\Node;
11 * Routing controller class for condition_test testing of condition forms.
13 class FormController implements FormInterface {
16 * The condition plugin we will be working with.
18 * @var \Drupal\Core\Condition\ConditionInterface
25 public function getFormId() {
26 return 'condition_node_type_test_form';
30 * Constructs a \Drupal\condition_test\FormController object.
32 public function __construct() {
33 $manager = new ConditionManager(\Drupal::service('container.namespaces'), \Drupal::cache('discovery'), \Drupal::moduleHandler());
34 $this->condition = $manager->createInstance('node_type');
40 public function buildForm(array $form, FormStateInterface $form_state) {
41 $form = $this->condition->buildConfigurationForm($form, $form_state);
42 $form['actions']['submit'] = [
44 '#value' => t('Submit'),
50 * Implements \Drupal\Core\Form\FormInterface::validateForm().
52 public function validateForm(array &$form, FormStateInterface $form_state) {
53 $this->condition->validateConfigurationForm($form, $form_state);
59 public function submitForm(array &$form, FormStateInterface $form_state) {
60 $this->condition->submitConfigurationForm($form, $form_state);
61 $config = $this->condition->getConfig();
62 foreach ($config['bundles'] as $bundle) {
63 drupal_set_message('Bundle: ' . $bundle);
66 $article = Node::load(1);
67 $this->condition->setContextValue('node', $article);
68 if ($this->condition->execute()) {
69 drupal_set_message(t('Executed successfully.'));