it-swarm-ko.tech

다른 테이블 열의 기본 정렬 순서

theme_table()으로 테이블을 렌더링하고이를 위해 테이블 ​​정렬 (sql)을 사용합니다. 모두 잘 작동합니다.

다른 테이블에 대한 초기/기본 정렬을 제외하고. 아직 정의 된 사용자 정렬 옵션이 없습니다. 예:

Name | Age ▼

"연령"별 정렬은 $header. 사용자가 "이름"을 클릭합니다. 이제 정렬 오름차순 됩니다. 어쨌든! 나는 내림차순 이 필요합니다.

딸깍 하는 소리:

Name ▲ | Age

그러나 나는 필요/원한다 :

딸깍 하는 소리:

Name ▼ | Age

tablesort_header 에서 기본 정렬 순서를 결정하는 코드를 연구하면 다음과 같은 결과가 나타납니다.

else {
  // If the user clicks a different header, we want to sort ascending initially.
  $ts['sort'] = 'asc';
  $image = '';
}

나는 이것을 피할 방법이 없다. 당신은? 매개 변수, 옵션을 놓쳤습니까? 나는 Drupal 개발자가 그것을 무시하지 않고 그런 어리석은 가정을 만든다고 믿지 않는다.

4
berkes

아니요, 지금은 불가능합니다.

이에 대한 문제가 있습니다. 곧 실행될 수 있도록 시도해보고 다시보고하는 것이 좋습니다. http://drupal.org/node/10949

3
Berdir

재정의 할 수 있지만 원하는 방식이 아닐 수 있습니다. tablesort_headertheme_table 내에서 호출됩니다. 이렇게 하드 코딩 된 이유는 테마 기능을위한 유틸리티 기능이기 때문이라고 생각합니다.

theme_table를 재정의하고 동작을 변경할 수 있지만 변수에 의해 결정되면 더 좋았을 것입니다.

2
googletorp

정렬하려는 테이블이있는 페이지로 이동하는 링크를 정의 할 수있는 경우 해결 방법이 있습니다.

열을 클릭하여 내림차순으로 만든 것처럼 링크를 동일하게 만드십시오. 링크에는 테이블 열 이름과 정렬이 조각으로 정의됩니다. www.domain.com/table_page?order=title&sort=desc

적어도 이것은 핵심 해킹이 아니며 페이지 매김 링크를 통해 지속됩니다.

0
codexmas

다음은 # attached. js 동작 을 사용하여 사용자 지정 모듈로 수행 한 방법입니다.

example.js

(function ($) {
  Drupal.behaviors.myFoo = {
    attach: function (context, settings) {

      var th = document.querySelectorAll('#my-container table.sticky-table thead th');
      if (th) {
        for (var i = 0; i < th.length; i++) {
          var el = th[i];
          if (el.classList.contains('active')) { continue; } // Skip the active column.
          var a = el.querySelector('a');
          a.setAttribute('href', a.getAttribute('href').replace('sort=asc', 'sort=desc'));
        }
      }

    }
  };
}(jQuery));

단순히 테이블의 각 열을 반복하고 (활성 열을 건너 뛰고) sort=ascsort=desc 각 링크에서.

빠르고 더럽다고 그녀가 말한 것입니다.

0