Рейтинг:1

Как я могу применить префикс имени машины по умолчанию?

флаг cn

Мы требуем, чтобы администраторы сайта создавали новые веб-формы с именем машины, начинающимся с сайт_. (Это связано с тем, что игнорирование конфигурации настроено на игнорирование веб-форма.вебформа.сайт_* для пользовательских форм, в то время как другие формы являются частью конфигурации) Как вы проверяете и устанавливаете имя машины веб-формы, чтобы оно начиналось с этого значения префикса?

Рейтинг:1
флаг cn

Добавив этот код в модуль, администраторы могут создавать формы, которые можно будет экспортировать в конфигурацию, в то время как другим пользователям с разрешениями на создание веб-форм автоматически будет присвоено имя машины с сайт_ префикс.

функция mymodule_form_alter(&$form, FormStateInterface $form_state, $form_id) {
  // Добавляет проверку в веб-форму, чтобы проверить имя машины при создании.
  если ($form_id == "webform_add_form") {
    $form['#validate'][] = 'webform_create_validation';
  }
}

функция webform_create_validation(&$form, FormStateInterface $form_state) {
  $current_user = \Drupal::currentUser();
  // Если пользователь, создающий веб-форму, не является администратором.
  if (!in_array('администратор', $current_user->getRoles())) {
    // Получить машинное имя создаваемой веб-формы.
    $ent = $form_state->getFormObject()->getEntity();
    если (установить ($ ent)) {
      $id = $ent->id();
      // Проверяем, начинается ли имя машины веб-формы с «site_».
      // Если нет, добавляем и сохраняем.
      если (substr($id, 0, 5) !== "site_") {
        $new_id = 'сайт_' . $идентификатор;
        $form_state->setValue('id', $new_id);
      }
    }
  }
}

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.