Рейтинг:0

Change order of elements in a Webform Variant

флаг to

I am trying to figure out if it is possible to change the order of elements in a webform variant.

Using a very simple example form with two elements, I created a new variant and then overrode the "Elements" yaml two different ways, neither which changed the order of the elements on the form.

First, I simply switched the order of the elements in the yml, which didn't change anything. Second, I added a #weight attribute to each element with different values - this had no effect as well.

Is it possible to change the order of elements in a variant?

thanks,
-mike

Рейтинг:0
флаг us

Ваша потребность изменить порядок элементов имеет смысл. Атрибут #weight в настоящее время игнорируется, поскольку он может привести к непредсказуемому рендерингу. Я не думаю, что Variant может изменить порядок элементов без исправления модуля веб-формы.

Рейтинг:0
флаг in

Несмотря на грубую силу, теоретически вы можете сделать это с помощью пользовательского типа плагина.

класс MyVariant расширяет WebformVariantBase {
  // ...
  // ...

  /**
   * {@inheritdoc}
   */
  публичная функция applyVariant() {
    $webform = $this->getWebform();
    $elements = $webform->getElementsDecoded();

    $element_to_move = $элементы['element_to_move'];
    $new_position = array_search('element_to_insert_after', array_keys($elements), TRUE);
    $before = array_slice($elements, 0, $new_position);
    $after = array_slice($elements, $new_position, count($elements) - $new_position);
    $new_elements = $before + ['element_to_move' => $element_to_move] + $after;
    $веб-форма->setElements($new_elements);

    вернуть ИСТИНА;
  }
}

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

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