Views 조차 Design 바꾸고 싶은 경우, Views Theme 기법

뷰는 강력한 컨텐츠 목록/내용 표시 모듈로,
드루팔로 진행하는 프로젝트에서 필수적으로 사용해야 할 모듈이다.

Views는 자유도가 상당히 높은 편이지만,
커스터마이징을 100% 만족할 수는 없다.

이런 경우 Views조차 Design 변경하는 테크닉을 마스터하면
드루팔로 거의 원하는 모든 화면을 만들 수 있겠다.
예를 들어 특정 컨텐츠 목록을 우리가 원하는 형태로 수정/Theme 작업하고 싶은 경우에는,
[hook]_views_pre_render 함수를 이용해서 일부 화면 수정이 가능한데,
이에 관한 자료는 다음의 주소에서 참고할 수 있다.

1. Alter views using pre alter function
http://drupal.org/node/438370

2. [hook]_views_pre_render 함수를 사용한 좋은 예제가 있다.
http://drupal.org/node/422264#comment-1466510

Views 2 Unofficial Tutorials
http://drupal.org/node/322506

1번과 2번 자료를 단순히 합친 예제를 준비해 보았다.
주된 소스 참조처는 위 주소들의 자료들이다.

function [해당모듈명]_views_pre_render(&$view) {

  if($view->name == "foobar") {
      //Add code to manipulate the view
  }

  if (variable_get("해당모듈명_debug", 0) == 1) {
    drupal_set_message('pre_render tag : '. $view->tag); // DEBUG
    drupal_set_message('<pre>'. print_r($view, TRUE) .'</pre>'); // DEBUG
  }

  // If set, display link on view
  if (variable_get('해당모듈명_view_link', 0) == 1) {
    if ($view->tag == 'views태그명') {
      $view->display_handler->set_option('footer', '<--귀하의 PHP CODE를 여기에-->');
      $view->display_handler->set_option('footer_format', '3');
      $view->display_handler->set_option('footer_empty', 0);
    }
  }

}

댓글

bs0048님. 아이디어

bs0048님. 아이디어 좋은데요!
저렇게 Views UI에 있는 Basic settings > Theme를 이용하면
해당 뷰는 (항상 고정적인 테마를 이용하니까) 전체 테마가 바뀌더라도 영향을 안받겠네요.

하하 감사합니다.

하하 감사합니다. 사실 다른 방법을 잘 몰라서 저렇게 한 것이지만요 :)

제가 남긴

제가 남긴 댓글입니다 :)