Score:0

มุมมองตาราง เขตข้อมูลรวม แยกการเรียงลำดับ

ธง us

ฉันกำลังมองหาความช่วยเหลือในการตั้งค่ามุมมองตารางเพื่อให้สามารถจัดเรียงคอลัมน์ที่ผสานแยกจากกัน ในระดับสูงฉันมีตารางมุมมองต่อไปนี้:

ชื่อจริง นามสกุล อายุ/น้ำหนัก^
เคน เดวิดสัน อายุ: 42
น้ำหนัก: 200

ฉันมีทั้งสามคอลัมน์ที่สามารถจัดเรียงได้ ยกเว้นคอลัมน์ที่สามเท่านั้นที่เรียงลำดับตาม อายุแม้ว่าจะมีตัวเลือกการจัดเรียงที่เป็นไปได้สองตัวเลือก การคลิก อายุ/น้ำหนัก จะจัดเรียงตามอายุเท่านั้น ไม่มีทางที่ฉันจะเห็นว่าจัดเรียงตามอายุหรือน้ำหนัก

ฉันพบลิงก์สองสามลิงก์ที่นี่ ซึ่งดูเหมือนจะไม่ได้เป็นการมองโลกในแง่ดีเกินไป แต่ฉันหวังว่าสิ่งต่างๆ จะเปลี่ยนไป:

แก้ไข

ยิ่งฉันตรวจสอบสิ่งนี้มากเท่าไหร่ ฉันก็ยิ่งเริ่มคิดว่าวิธีเดียวที่จะทำเช่นนี้ได้คือการจัดหาเทมเพลตที่กำหนดเอง views-view-table--custom-view-name.html.twig และจะต้องเขียนทับส่วนหนึ่ง:

      <tr>
        {% for key, column in header %}
          {% if column.default_classes %}
            {%
              set column_classes = [
                'views-field',
                'views-field-' ~ fields[key],
              ]
            %}
          {% endif %}
          <th{{ column.attributes.addClass(column_classes).setAttribute('scope', 'col') }}>
            <div class="th-wrap">
              {%- if column.wrapper_element -%}
                <{{ column.wrapper_element }}>
                  {% if column.title == 'sort by Age/Weight' %}
                    <!-- Add two links hardcoding the URL appropriately -->
                  {% else %}
                    {%- if column.url -%}
                    <a href="{{ column.url }}" title="{{ column.title }}">{{ column.content }}{{ column.sort_indicator }}</a>
                  {%- else -%}
                    {{ column.content }}{{ column.sort_indicator }}
                  {%- endif -%}
                </{{ column.wrapper_element }}>                    
                  {% endif %}                  
              {%- else -%}
                {%- if column.url -%}
                  <a href="{{ column.url }}" title="{{ column.title }}">{{ column.content }}{{ column.sort_indicator }}</a>
                {%- else -%}
                  {{- column.content }}{{ column.sort_indicator }}
                {%- endif -%}
              {%- endif -%}
            </div>
          </th>
        {% endfor %}
      </tr>

ก่อนที่ฉันจะเดินตามเส้นทางนี้ ดูเหมือนจะเป็นทางออกที่ดีที่สุดหรือไม่? ปัญหาที่นี่คือฉันจะสูญเสียความสามารถในการแสดงตัวบ่งชี้การเรียงลำดับ เนื่องจากคอลัมน์ยังคงเกี่ยวข้องโดยตรงกับ อายุ/น้ำหนัก (ซึ่งเป็นเพียงอายุ) แทนแต่ละคอลัมน์

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

Score:0
ธง us

ฉันสามารถทำงานนี้ได้ - ด้วยวิธีปฏิบัติที่ดีที่สุดของ Drupal เท่าที่ฉันจะนึกออก หากวิธีนี้เป็นวิธีที่ผิด ฉันต้องการคำแนะนำเกี่ยวกับวิธีการดำเนินการอย่างถูกต้อง แต่สำหรับผู้ที่มองหาสิ่งเดียวกัน:

ฉันเพิ่มตัวประมวลผลล่วงหน้าของธีมเพื่ออัปเดตตาราง $ตัวแปร ด้วยการเรียงลำดับ/ลำดับที่ระดับสูงสุด:

ฟังก์ชัน sc_preprocess_views_view_table(&$ตัวแปร) {  
  $view = $ตัวแปร['ดู'];
  $handler = $view->style_plugin;
  $ตัวแปร['การเรียงลำดับ'] = อาร์เรย์(
    'แอคทีฟ' => $handler->แอคทีฟ, 
    'คำสั่ง' => $handler->คำสั่ง
  );
}

ไฟล์ twig ได้รับการอัปเดตด้วย:

// views-view-table--custom-view--page.html.twig
{% if column.title == 'จัดเรียงตามอายุ/น้ำหนัก' %}
  <a href="{{ sc_column_sort_url('field_hfs_age', sorting) }}" title="จัดเรียงตามอายุ">อายุ</a>
  {% ถ้าเรียงลำดับ['ใช้งานอยู่'] == 'field_hfs_age' %}
    {{ sc_column_sort_indicator(การเรียงลำดับ['ลำดับ']) }}
  {% เอนดิฟ %} /
  
  <a href="{{ sc_column_sort_url('field_hfs_weight', sorting) }}" title="จัดเรียงตามน้ำหนัก">น้ำหนัก</a>
  {% ถ้าเรียงลำดับ['ใช้งานอยู่'] == 'field_hfs_weight' %}
    {{ sc_column_sort_indicator(การเรียงลำดับ['ลำดับ']) }}
  {% เอนดิฟ %}
{% อื่น %}
  // รหัสเดิม
{% เอนดิฟ %}

และสร้าง Twig Functions แบบกำหนดเองสองรายการ

  /**
   * มีฟังก์ชันทั่วไปสำหรับการสร้าง URL การจัดเรียงคอลัมน์แบบกำหนดเองที่จำเป็น
   * @param $name ชื่อของฟิลด์ปัจจุบัน
   * @param $การเรียงลำดับอาร์เรย์ที่เกี่ยวข้องของการเรียงลำดับปัจจุบัน
   */
  ฟังก์ชั่นสาธารณะ scTableSortUrl ($ ชื่อ, $ การเรียงลำดับ) {
    $nextSort = ($sorting['active'] == $name && $sorting['order'] == 'asc' ? 'desc' : 'asc');
    กลับ "?order={$name}&sort={$nextSort}";
  }

  /**
   * แสดงตัวบ่งชี้การจัดเรียงตารางของตารางที่กำหนดเองในปัจจุบัน ฉันแน่ใจว่าสิ่งนี้มีอยู่ที่ใดที่หนึ่ง
   * อื่นๆ แต่หาไม่เจอ
   * @param $initial ลำดับการจัดเรียงเริ่มต้น [asc | รายละเอียด]
   */
  ฟังก์ชั่นสาธารณะ scTableSortIndicator ($ เริ่มต้น) {
    กลับ [
      '#theme' => 'tablesort_indicator',
      '#style' => $เริ่มต้น,
    ];
  }

https://www.hashbangcode.com/article/drupal-9-creating-custom-twig-functions-and-filters สำหรับการอ้างอิง

โพสต์คำตอบ

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