2010-08-23 4 views
3

모듈에 의해 생성 된 테이블이 있습니다. 필드의 일부를 기존보기에 포함시켜야합니다.Views에 테이블 노출

the table wizard module을 사용해 보았지만 그 작업은 모두 해당 테이블에 대한 별도의보기를 만드는 것입니다. 그 테이블에서 필드를 선택하여 추가 필드로 기존 뷰에 추가하거나 관계 또는 이와 유사한 것을 통해 필드를 추가 할 수 있기를 원합니다. 내가하려고하는 일을 해결할 방법이 있습니까?

답변

4

아. 조회수. 나도 잠시 나갔다. 이 답변은 드루팔 (Drupal 6)을위한 것이며 추상은 필드를 정의하는 방법과 필드를 노드 테이블에 링크 할 수 있도록 관계를 사용하는 방법을 보여줍니다.

 
function modulename_views_data() { 
    $data['modulename_table'] = array(
     'table'  => array(
      'group'  => 'ModuleName', 
      'title'  => 'Module name title', 
     ), 
     'join' => array(
      // to join to node, we'll use a field in modulename_table called 'nid' 
      'node'  => array(
       'left_field' => 'nid', 
       'field'   => 'nid', 
      ), 
     ), 
    ); 

    // now we define the fields in the table like this 
    // check out modules/views/handlers to see more specific handlers 

    $data['modulename_table']['fieldname'] = array(
     'title'  => 'fieldname', 
     'help'  => 'fieldname description', 
     'field' => array(
      'handler' => 'views_handler_field', 
     ), 
    ); 

    $data['modulename_table']['nid'] = array(
     'title'  => 'related node', 
     'help'  => 'the field that relates back to {node}', 
     // here we implement a relationship to nid 
     'relationship' => array(
      'base'  => 'node', 
      'field'  => 'nid', 
      'handler' => 'views_handler_relationship', 
      'label'  => 'modulename row node', 
     ), 
     // this relationship can be turned on in views 
    ); 

    return $data; 
} 
1

hook_views_data를 사용하여 코드에서 테이블을 정의 할 수 있습니다. 보기에서 특수 조작을 원하지 않는 한 스키마 API를 사용하여 테이블을 정의하는 것만 큼 간단합니다.

1

:

function modulename_views_api() { 
    return array(
    'api' => 2, 
); 
} 

는 그런 다음라는 파일 modulename.views.inc을하고이 같은 함수를 정의하려면 :

는 modulename.module 내부, 당신이가는 기능을 원하는 다른 옵션은 테이블 마법사를 사용하여 테이블을 데이터베이스에 노출 한 다음 마이그레이션 모듈을 사용하여 뷰를 만드는 것입니다. http://drupal.org/project/migrate

+0

.. 도움을 줄 ..보기에 괴짜 필드를 추가로까지 그냥 내가 필요 아무것도 수행 할 수 있음을 발견했다, 그러나 이것은 라이브입니다 표. 그렇다면 기존 데이터 만 이전 할 수 있습니까? 마이그레이션 후 테이블에 추가되는 새로운 데이터는 어떻습니까? – Berming