다시 작성된 필드를 기준으로 뷰를 정렬하려면 어떻게해야합니까?


10

두 개의 다른 날짜 필드 (하나는 날짜 반복이 있고 하나는 여러 값을 가진 단일 날짜)를 포함하는 내용 유형을 볼 수 있습니다. 주어진 시간에 하나의 날짜 필드 만 채워집니다. 뷰의 디스플레이에서 첫 번째 날짜 필드를 숨기고 두 번째 필드를 다시 쓰고 첫 번째와 두 번째의 교체 토큰을 포함하여 두 필드를 결합했습니다. 다시 작성된 필드를 사용하여이 결합 된 날짜 필드를 기준으로 오름차순으로보기를 정렬하는 방법이 있습니까? 날짜 필드의 원래 값을 기준으로 정렬하는 것처럼 보입니다.

나는 나의 연구를 해왔고 막 다른 골목이있는 오래되고 다소 관련이있는 실만을 발견했다.

다시 작성된 필드를 기준으로 정렬 한 조회수?

다시 작성된 필드가 아니라 원래 필드에서 테이블이 정렬 됨

보기 : 정렬 기준에 대한 사용자 정의 필드

전역 : 맞춤 텍스트로 정렬합니다. 가능합니까?

나는 이것을 가능하게하는 새롭고 비열한 방법이 있기를 바랐습니다.


merlinofchaos의 답변을 사용할 수없는 이유가 있습니까? drupal.org/node/1260160#comment-4907526
Kari Kääriäinen

그는 실제로 계산 된 필드를 사용하는 방법에 대한 답변을 제공하지 않습니다. 그는 그것을 사용하는 것이 좋습니다. 나는 그것을 시도하는 것을 신경 쓰지 않지만 모듈로 무엇을 해야할지 모른다. 또한 2 년 전과 Drupal 6 이후 새로운 시도가있을 수 있기를 바랐습니다.
Nigel Waters

예, 그것은 짧은 대답이었습니다. 그래도 원칙은 같습니다. 내 대답을 참조하십시오.
Kari Kääriäinen

해당 날짜 필드로 무엇을하고 싶습니까? 다음에 오는 날짜를 선택 하시겠습니까?
Kari Kääriäinen

두 날짜 필드를 기준으로 이벤트 내용 유형을 오름차순으로 정렬하고 싶습니다.
Nigel Waters

답변:


4

모듈 경로로 가고 싶지 않다면, 이것은 대안 중 하나입니다 :

1) 계산 필드 설치 모듈
2) 컨텐츠 유형에 계산 필드 추가
3) 필드 설정의 계산 코드 (PHP) 텍스트 영역에서 필드 데이터에 액세스 할 수 있습니다.

현재 언어의 날짜 필드를 변수로 가져옵니다.

$repeating_dates = field_get_items($entity_type, $entity, 'field_repeating_date_example');
$multidates = field_get_items($entity_type, $entity, 'field_multidate_example');

날짜 값은 이제

$repeating_dates[0]['value'],
$repeating_dates[1]['value'],
$repeating_dates[2]['value'], etc.

$multidates[0]['value'],
$multidates[1]['value'],
$multidates[2]['value'], etc.

날짜 필드에 필요한 모든 논리를 수행하고 결과를

$entity_field[0]['value']

이제 뷰에서 사용할 수있는 정렬 가능한 필드가 있지만 먼저 계산 된 필드가 계산되고 노드 저장시 데이터베이스에 저장되므로 모든 노드를 업데이트해야합니다. 이 작업을 수행하는 방법에는 여러 가지가 있습니다. 하나는 대량 작업보기를 사용하는 것이며 관리자 / 콘텐츠에서 노드를 다시 저장하는 옵션을 제공합니다.


이것이 반복되는 날짜가있는 하나의 날짜 필드와 단일 날짜가있는 다른 필드 (무제한 설정)로 작동하는지 확실하지 않습니다. 두 필드가 모두 단일 값인 경우 작동 할 수 있습니다.
Nigel Waters

그 경우에 대한 답변을 편집했습니다. dpm ($ entity)을 사용하면 날짜 필드의 구조가 무엇인지 알 수 있습니다. dpm은 Devel 모듈과 함께 제공됩니다.
Kari Kääriäinen

[und]구문을 권장하지 마십시오 . 대신 field_get_items를 사용하십시오.
Letharion


0

페이지 매김을 사용하지 않으면 데이터베이스에 의존하지 않는 사용자 지정 쿼리 재정의에서 PHP 정렬을 사용할 수 있습니다.

stevector 에 따르면 ,

페이지 매김은 계산 된 필드를 기준으로 정렬하는 것을 실제로 막는 것입니다. 왜냐하면 일반적으로 "데이터베이스!

따라서 db가 21-30을 정의하는 방법을 모르는 경우 (계산 된 필드의 경우와 같이) 데이터베이스에서 21-30의 결과를 안정적으로 얻을 수 없습니다.

따라서 Kari Kääriäinen이 언급 한 것처럼 가장 실용적이고 안정적인 솔루션은 Computed Field를 사용하는 것입니다.


버전 번호를 지정하고 복사 붙여 넣기 오류를 수정 한 후 누군가 나를 다운 투표 한 것처럼 보입니다. 이 답변에 문제가 있습니까?
beth

나는 모듈 접근 방식에 대해 이전에 찬성했지만 나중에 포함 된 다른 것과 마찬가지로 유용한 질문이 아니기 때문에 하향식으로 답했다.
Kari Kääriäinen

그 질문은 나에게 분명해 보인다. 내 답변에 설명을 추가하겠습니다.
beth

신경 쓰지 마라.보기는 내가하는 것처럼 정확하게 행동하지 않는다는 것을 깨달았다.
beth

0

이것은 약간의 해킹 방법이지만 작동하지만 추가 모듈이 필요하지 않습니다.

정렬 할 필드의 레이블을 작성하고 표시에서 제외하지 마십시오. 대신 빈 HTML <!---->주석을 다시 쓰기 값으로 추가하여 디스플레이를 "공백"으로 다시 작성하십시오. 그런 다음 다른 php / rewritten 필드를이 열의 자식으로 추가하십시오.

정렬을위한 올바른 열에 대한 테이블 헤더가 표시됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.