Panels 모듈 6.x 버전의 새 기능, 큰 버그, 작은 버그

메모를 위해 작성한 본 글은 2009년 3월의 것으로,
이후의 Panels 모듈 6.x 버전에서는 아래의 큰 버그, 작은 버그가
모두 해결돼 있을 것으로 생각된다.

Panels 모듈 - http://drupal.org/project/panels

이 모듈은 블럭이나 뷰, 여러 노드들을 이용해서
페이지를 조립(짜집기)하는 기능을 갖추었다.
참고 자료 : 패널에 관한 기본 이야기 - http://palpal.org/ko/node/81

Panels 모듈을 이용한 블럭/노드의 조립 페이지Panels 모듈을 이용한 블럭/노드의 조립 페이지

CCK 모듈, Views 모듈, Taxonomy 모듈(이미 코어임)과 함께
가장 중요하고 유용한 것으로 손꼽히는 Panels 모듈로
6.x 대에서는 5.x 에서의 부족한 기능을 일신, 상당히 편해졌다.
특히나 패널의 드래그 드랍에 의한 순서 조정은 6.x 대에서의
모든 순위 조정 인터페이스의 특징을 고스란히 따르고 있는 느낌이다.

하지만 이런 패널 모듈도 업그레이드가 급하게 이루어지면서
2009년 3월 현재는 아직 다소 불안정한 모습이다.
특히 ctools 모듈을 필요로 하는 최신 버전(6.x-3.0-alpha2)은
조금 더 기다린 후 안정화 버전을 사용하는 것을 권한다.
(환경에 따라 작동 불가 에러가 혹은 DB 스키마의 설치가 잘 안됨).

그리고 위보다 다소 이전인 6.x-2.0-alpha3 버전은 다음과 같은
사소한 버그가 나타나 애를 먹인다. 이는 수정해서 사용할 만 하다.

* Panels 6.x-2.0-alpha3 에서 드루지기가 겪은 현상
표준 블럭이나 Views는 모두 패널에 추가가 잘 되나,
Custom 영역에 있는 데이터를 패널에 추가하면 아래와 같은 에러 화면이 보인다.

{ "type": "add", "region": "#panel-pane-left", "id": "#panel-pane-new-5", "output": "\x3cdiv class=\"panel-pane\" id=\"panel-pane-new-5\"\x3e\x3cdiv class=\"grabber\"\x3e\x3cspan class=\"buttons\"\x3e\x3ca href=\"/panels/ajax/hide/1/new-5\" class=\"panels-ajax-link pane-toggle-shown-link panels-no-modal\" title=\"Hide \x26quot;Custom (test title)\x26quot;\" alt=\"Hide \x26quot;Custom (test title)\x26quot;\"\x3e\x3cimg src=\"/sites/all/modules/panels/images/icon-hidepane.png\" alt=\"\" title=\"\" width=\"16\" height=\"16\" /\x3e\x3c/a\x3e\x3ca href=\"/panels/ajax/configure/1/new-5\" class=\"panels-ajax-link pane-configure-link\" title=\"Configure settings for \x26quot;Custom (test title)\x26quot;\" alt=\"Configure settings for \x26quot;Custom (test title)\x26quot;\"\x3e\x3cimg src=\"/sites/all/modules/panels/images/icon-configure.png\" alt=\"\" title=\"\" width=\"16\" height=\"16\" /\x3e\x3c/a\x3e\x3ca href=\"/\" class=\"pane-delete\" id=\"pane-delete-panel-pane-new-5\" title=\"Delete pane \x26quot;Custom (test title)\x26quot;\" alt=\"Delete pane \x26quot;Custom (test title)\x26quot;\"\x3e\x3cimg src=\"/sites/all/modules/panels/images/icon-delete.png\" alt=\"\" title=\"\" width=\"16\" height=\"16\" /\x3e\x3c/a\x3e\x3c/span\x3e\x3cspan class=\"text\"\x3eCustom (test title)\x3c/span\x3e\x3c/div\x3e\x3cdiv class=\"panel-pane-collapsible\"\x3e\x3ch2 class=\"title\"\x3etest title\x3c/h2\x3e\x3cdiv class=\"content\"\x3e\x3cp\x3etest custom content\x3c/p\x3e\n\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e" }

같은 현상을 겪은 사람들의 보고도 있다.
http://drupal.org/node/359262

이 현상의 원인은 놀랍게도 Image Assist 모듈과의 충돌이다.
http://drupal.org/node/333018#comment-1217504

* 해결책으로는 다음과 Image Assist 모듈의 작동 Path를 제한하면 된다.
관리 > 사이트 설정 > Image assist > Access settings 부분에 가서
패널과 관련된 패스가 포함돼 있지 않는지 점검한다(있다면 빼 줄 것).
혹은 node/* 와 comment/* 에서만 작동토록 on specific paths를
체크하고 저장하면 Panels 6.x-2.0-alpha3 에서 패널 추가 문제를 해소할 수 있다.

댓글

다음과 같은 에러가 나온다면,

다음과 같은 에러가 나온다면, http://drupal.org/node/856636#comment-3260810 의 방법으로 해결하면 되겠다.

user warning: Table 'db_socref.panels_layout' doesn't exist query: SELECT * FROM panels_layout t__0 WHERE plugin = 'flexible'

디비 update.php 화면에서 패널 모듈을 6308 버전으로 지정, 다시 갱신하는 것이다.
예외 상황이 몇몇 있는 듯 한다. 예를 들어,

- 이미 문제의 테이블이 있는 경우 : 디비 관리자에서 테이블을 삭제하고, 다시 디비 update.php 를 구동해 보라.

- 간혹 드루팔의 캐쉬 플러쉬를 하기 전에는 위 에러 메시지가 계속 보일 수가 있다. 꼭 캐쉬를 청소하고 다시 확인해 보기를 권한다.

Panels 6.3 과 그 이전의

Panels 6.3 과 그 이전의 버전들은 너무나도 차이가 많다.
CTools 모듈을 이용해서 Panels 6.3 은 확 바뀌었는데 그 달라진 활용법은 다음 기회에 기록해 두겠다.

주의점이 있다.
1. Panels 6.2.x 에서 6.3 으로 옮길 때는 기존 패널들의 호환성 문제가 있을 수 있으므로,
업그레이드에 아주 신중해야 한다. 그 복잡도와 이런저런 에러로 인해 아예 안하는 게 더 나을 경우도 있다.

2. 대표적인 업그레이드 에러로,
Fatal error: Call to undefined function panels_context_load_contexts() 가 있다.
해결책은 구 버전 Panels 모듈의 흔적을 완전히 지운 다음, 모듈 설정 페이지를 다시 저장하는 것이다.
자세한 내용은 다음 자료를 참고하라. http://drupal.org/node/408258