Score: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

Score:0
ธง us

ความจำเป็นในการจัดลำดับองค์ประกอบใหม่นั้นสมเหตุสมผล ขณะนี้แอตทริบิวต์ #weight ถูกละเว้นเนื่องจากอาจทำให้เกิดการแสดงผลที่คาดเดาไม่ได้ ฉันไม่คิดว่า Variant สามารถจัดลำดับองค์ประกอบใหม่ได้โดยไม่ต้องแก้ไขโมดูลเว็บฟอร์ม

Score:0
ธง in

แม้จะเป็นการบังคับเดรัจฉาน แต่ในทางทฤษฎี คุณอาจสามารถทำได้ผ่านประเภทปลั๊กอินตัวแปรที่กำหนดเอง

คลาส MyVariant ขยาย WebformVariantBase {
  // ...
  // ...

  /**
   * {@inheritdoc}
   */
  ฟังก์ชั่นสาธารณะ applyVariant () {
    $webform = $this->getWebform();
    $องค์ประกอบ = $webform->getElementsDecoded();

    $element_to_move = $องค์ประกอบ['element_to_move'];
    $new_position = array_search('element_to_insert_after', array_keys($elements), จริง);
    $before = array_slice($องค์ประกอบ, 0, $new_position);
    $หลังจาก = array_slice($องค์ประกอบ, $new_position, นับ($องค์ประกอบ) - $new_position);
    $new_elements = $before + ['element_to_move' => $element_to_move] + $after;
    $webform->setElements($new_elements);

    กลับ TRUE;
  }
}

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา