Điểm:0

Các trường kết hợp dạng xem bảng, sắp xếp riêng biệt

lá cờ us

Tôi đang tìm kiếm một số trợ giúp trong việc thiết lập chế độ xem bảng để có thể sắp xếp các cột được hợp nhất một cách riêng biệt. Ở cấp độ cao, tôi có bảng xem sau:

Họ Họ Tuổi/Cân nặng^
Ken davidson Tuổi: 42
Trọng lượng: 200

Tôi có tất cả ba cột có thể sắp xếp, ngoại trừ cột thứ ba chỉ sắp xếp theo Lứa tuổi, mặc dù nó có hai tùy chọn sắp xếp khả thi. nhấp vào Tuổi/Cân nặng sẽ chỉ sắp xếp theo Độ tuổi, không có cách nào tôi có thể thấy để làm cho nó có thể sắp xếp theo Độ tuổi hoặc Cân nặng.

Tôi tìm thấy một vài liên kết ở đây có vẻ không quá lạc quan, nhưng tôi hy vọng rằng mọi thứ đã thay đổi:

Chỉnh sửa

Càng xem xét vấn đề này, tôi càng bắt đầu nghĩ rằng cách duy nhất để làm điều này là cung cấp một mẫu tùy chỉnh lượt xem-xem-bảng--tùy chỉnh-view-name.html.twig và sẽ cần ghi đè lên một phần:

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

Trước khi tôi đi theo con đường này, nó có vẻ như là một giải pháp tối ưu? Vấn đề ở đây là tôi sẽ mất khả năng hiển thị chỉ báo sắp xếp vì cột vẫn liên quan trực tiếp đến Tuổi/Cân nặng (chỉ là Tuổi) thay vì các cột riêng lẻ.

Có một biến toàn cầu có sẵn trong lượt xem-xem-bảng trình kết xuất đồ họa mà tôi có thể kiểm tra cột sắp xếp thực tế không? URL có sẵn để phân tích cú pháp không?

Điểm:0
lá cờ us

Tôi đã có thể làm cho nó hoạt động - theo cách thực hành Drupal tốt nhất mà tôi có thể nghĩ ra. Nếu đây là cách tắt, tôi muốn có một số hướng dẫn về cách thực hiện việc này đúng cách, nhưng đối với những người đang tìm kiếm điều tương tự:

Tôi đã thêm một bộ tiền xử lý chủ đề để cập nhật bảng biến $ với sắp xếp/thứ tự ở mức cao nhất:

hàm sc_pre process_views_view_table(&$variables) {  
  $view = $variables['view'];
  $handler = $view->style_plugin;
  $variables['sắp xếp'] = mảng(
    'hoạt động' => $handler->hoạt động, 
    'đặt hàng' => $handler->order
  );
}

Tệp twig đã được cập nhật với:

// lượt xem-view-table--custom-view--page.html.twig
{% if column.title == 'sắp xếp theo Tuổi/Cân nặng' %}
  <a href="{{ sc_column_sort_url('field_hfs_age', sorting) }}" title="Sắp xếp theo tuổi">tuổi</a>
  {% if sorting['active'] == 'field_hfs_age' %}
    {{ sc_column_sort_indicator(sorting['order']) }}
  {% endif %} /
  
  <a href="{{ sc_column_sort_url('field_hfs_weight', sorting) }}" title="Sắp xếp theo trọng số">trọng số</a>
  {% if sorting['active'] == 'field_hfs_weight' %}
    {{ sc_column_sort_indicator(sorting['order']) }}
  {% endif %}
{% khác %}
  // Mã gốc
{% endif %}

Và hai Chức năng Twig tùy chỉnh đã được tạo

  /**
   * Cung cấp chức năng phổ biến để tạo URL sắp xếp cột tùy chỉnh được yêu cầu.
   * @param $name tên của trường hiện tại
   * @param $sắp xếp mảng liên quan của sắp xếp hiện tại
   */
  hàm công khai scTableSortUrl($name, $sorting) {
    $nextSort = ($sorting['active'] == $name && $sorting['order'] == 'asc' ? 'desc' : 'asc');
    return "?order={$name}&sort={$nextSort}";
  }

  /**
   * Hiển thị chỉ báo sắp xếp bảng của bảng tùy chỉnh hiện tại. Tôi chắc rằng điều này tồn tại ở đâu đó
   * khác, nhưng tôi không thể tìm thấy nó.
   * @param $initial thứ tự sắp xếp ban đầu [asc | mô tả]
   */
  hàm công khai scTableSortIndicator($initial) {
    trở lại [
      '#theme' => 'tablesort_indicator',
      '#style' => $initial,
    ];
  }

https://www.hashbangcode.com/article/drupal-9-creating-custom-twig-functions-and-filters để tham khảo.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.