taxonomy/term/% 패스를 Views에 정의하면 큰 코 다친다. 용어에 의한 추출 페이지가 이상해 짐.

taxonomy/term/% 패스를 Views에 정의하면 큰 코 다친다. 용어에 의한 추출 페이지가 이상해 짐.

현상)
여러 태그 모듈(ActiveTag, InlineTag 등)을 이용해서 동적으로
카테고리별 용어를 추가 생성하는 컨텐츠 타입(이하 "신 타입")이 있었다.

이 신 타입의 컨텐츠를 생성할 때 태그 항목에 정상적으로
용어들 Terms을 추가, Vocabulary에 해당 용어들이 잘 추가됨을 확인했다.

그런데, 해당 용어에 따른 링크(/taxonomy/term/용어번호)를 클릭하면
해당 용어를 태그로 설정한 컨텐츠 목록이 나와야 하는데, RSS 버튼만 보이고
컨텐츠 목록이 도저히 안나오는 것이다!

원인)
엉뚱한 원인을 한참 찾아봤으나, 결국에는 "Views"의 Path 지정에 문제가 있었다.

추측1 - 엉뚱한 원인이지만 일단 기록해 둔다.
처음에는 ActiveTag, InlineTag 등 동적 태그 추가 모듈에 버그가 있는 것으로 의심했다.

나중에는 DB구조까지 조사해 보고, 드루팔 6.x대의 term_node 테이블에 있는 vid가
vocabulary ID가 아닌 컨텐츠의 노드 리비젼과 관계있는 version ID임을 알게 됐다.
그러나 이것도 문제 현상의 원인이 아니었다.

추측2 - 최근에 Views 모듈의 한 뷰에 패스를 지정한 것이 생각났다.
그 패스에 taxonomy/term/%/feed 등으로 설정돼 있었다. 아하!
혹시 Taxonomy 모듈에서 기본적으로 용어 링크에 사용하는 패스와 겹치지는 않을까?!

해결)
역시나 추측2에서 생각한 원인이 문제현상의 원인이었다.
Views 모듈의 설정에 가서 taxonomy/term/% 가 패스로 설정된 뷰를 전부
다른 패스로 바꾸었다. 예를 들어 taxonomy/term-by-view/% 등등으로.

그러고 나니, 해당 용어에 따른 링크(/taxonomy/term/용어번호)를 클릭하면
해당 용어를 태그로 설정한 컨텐츠 목록이 잘 나타났다!!!
원인을 알고 해결하기까지 상당한 시간을 소모했다.

재발방지)
Views나 혹은 Path Alias를 이용해서 새로운 컨텐츠 목록이나 컨텐츠를 작성하는 경우,
반드시 taxonomy/term/% 라는 패스는 지정하지 않도록 하자.
또한 다른 핵심 모듈에서 지정한 기본설정 패스도 함부로 뷰에서 지정치 않도록 주의하자.

참고사항)
드루팔은 Views에 설정한 Path 지정을, 특정 모듈(예:Taxonomy 모듈)에서 사용하는
기본 Path보다 우선적으로 Alias 처리하게 돼 있는 모양이다. 조심하자...

Your rating: None 평균 : 5 (1 vote)

댓글

위 문제 현상을

위 문제 현상을 이용하면, 역으로 이런 게 가능하다.
특정 용어(taxonomy/term/용어번호)에 대해 Views를 이용한 표시 레이아웃의 변경이 된다.

다시 말하자면, 기본적인 taxonomy/term/용어번호 화면 레이아웃을 변경하고 싶은 경우,
뷰를 이용해서 원하는 화면 레이아웃을 준비한 후, 강제적으로 taxonomy/term/용어번호를
Path Alias로 지정하면 되는 것이다.