inline_feedback-1.0.x-dev/src/Form/InlineFeedbackModalForm.php
src/Form/InlineFeedbackModalForm.php
<?php
declare(strict_types=1);
namespace Drupal\inline_feedback\Form;
use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;
/**
* Modal form to create inline feedbacks.
*/
class InlineFeedbackModalForm extends FormBase {
/**
* {@inheritdoc}
*/
public function getFormId() {
return 'inline_feedback_modal_form';
}
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state) {
// preload values.
$selector = \Drupal::request()->query->get('selector');
$node_id = \Drupal::request()->query->get('node');
$form['selector'] = [
'#type' => 'hidden',
'#value' => $selector,
];
$form['node_id'] = [
'#type' => 'hidden',
'#value' => $node_id,
];
$form['label'] = [
'#type' => 'textfield',
'#title' => $this->t('Feedback label'),
'#required' => TRUE,
];
$form['description'] = [
'#type' => 'textarea',
'#title' => $this->t('Description'),
'#required' => TRUE,
];
$form['actions']['#type'] = 'actions';
$form['actions']['submit'] = [
'#type' => 'submit',
'#value' => $this->t('Send Feedback'),
'#button_type' => 'primary',
];
return $form;
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
$selector = $form_state->getValue('selector');
$comment = $form_state->getValue('description');
$node_id = $form_state->getValue('node_id');
\Drupal::messenger()->addMessage($this->t('Feedback sent.'));
}
}
