monster_menus-9.0.x-dev/src/Form/AddGroupUsersForm.php

src/Form/AddGroupUsersForm.php
<?php

namespace Drupal\monster_menus\Form;

use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Template\Attribute;

class AddGroupUsersForm extends FormBase {

  /**
   * {@inheritdoc}
   */
  public function getFormId() {
    return 'mm_ui_large_group_add_users';
  }

  public function buildForm(array $form, FormStateInterface $form_state) {
    [$instance, $link_id, $title, $button_text, $click_func_name, $owner_uid, $owner_name] = $form_state->getBuildInfo()['args'];
    if (!$this->currentUser()->hasPermission('access user profiles')) {
      $form[] = _mm_ui_no_add_user();
      return $form;
    }

    $single = is_null($owner_uid) ? 0 : 1;
    $form['selectuser']["adduser-choose$instance"] = [
      '#type' => 'textfield',
      '#title' => $single ? $this->t('Choose the owner') : $this->t('Add a user'),
      '#autocomplete_route_name' => 'monster_menus.autocomplete',
      '#description' => mm_autocomplete_desc(),
      '#size' => 30,
      '#maxlength' => 40,
      '#attributes' => ['autofocus' => 'autofocus'],
    ];

    $users = [];
    if ($single) {
      $users[$owner_uid] = $owner_name;
    }
    $form['selectuser']["adduser$instance"] = [
      '#type' => 'mm_userlist',
      '#title' => $title,
      '#required' => $single,
      '#default_value' => $users,
      '#mm_list_autocomplete_name' => "adduser-choose$instance",
      '#mm_list_min' => $single,
      '#mm_list_max' => $single,
      '#mm_list_submit_on_add' => $single,
    ];
    $form["adduser$instance-submit"] = [
      '#name' => "adduser$instance-submit",
      '#type' => 'submit',
      '#value' => $button_text,
    ];
    $attr = new Attribute($form['#attributes']);
    $attr['onsubmit'] = "return $click_func_name(jQuery(this).find('.mm-list-hidden'), '$link_id');";
    $form['#attributes'] = $attr->toArray();
    return $form;
  }

  public function submitForm(array &$form, FormStateInterface $form_state) {
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc