Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace Drupal\bulk_email\Form;
- use Drupal\Core\Form\FormBase;
- use Drupal\Core\Form\FormStateInterface;
- use Drupal\Component\Utility\UrlHelper;
- class EmailForm extends FormBase {
- public function getFormId() {
- return "bulk_email_form";
- }
- public function buildForm(array $form, FormStateInterface $form_state) {
- $form['#tree'] = TRUE;
- $form['users'] = array(
- '#type' => 'fieldset',
- '#title' => t('Users'),
- '#prefix' => '<div id="users-wrapper">',
- '#suffix' => '</div>',
- );
- $form['temptest'] = array(
- '#type' => 'textBox
- $form['num_users'] = array(
- '#type' => 'textfield',
- '#title' => 'test',
- '#description' => 'enter anything to add a user',
- );
- $num_users = $form_state->getValue('num_users');
- if (!empty($form_state->getValue("temptest"))) {
- $num_users++;
- $form_state->setValue('num_users', $num_users);
- $form_state->setRebuild(TRUE);
- }
- if (empty($num_users)) {
- $num_users = 1;
- }
- for ($i = 0; $i < $num_users; $i++) {
- $form['users'][$i] = array(
- '#type' => 'textfield',
- '#description' => t('Select a user.'),
- );
- }
- $form['users']['users_more'] = array(
- '#type' => 'submit',
- '#value' => t('Add one'),
- '#submit' => array($this, 'bulk_email_addfieldsubmit'),
- '#ajax' => array(
- 'callback' => array($this, 'bulk_email_add_more_callback'),
- 'wrapper' => 'users-wrapper',
- ),
- );
- $form['actions'] = array('#type' => 'actions');
- $form['submit'] = array(
- '#type' => 'submit',
- '#value' => t('Send'),
- );
- return $form;
- }
- public function submitForm(array &$form, FormStateInterface $form_state) {
- foreach ($form_state->getValues() as $key => $value) {
- drupal_set_message($key . ': ' . $value);
- }
- }
- public function bulk_email_addfieldsubmit(array &$form, FormStateInterface $form_state) {
- $num_users = $form_state->getValue('num_users') + 1;
- $form_state->setValue('num_users', $num_users);
- $form_state->setRebuild(TRUE);
- }
- public function bulk_email_add_more_callback(array &$form, FormStateInterface $form_state) {
- return $form['users'];
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement