Views를 사용하여 settings.php에 정의 된 다른 Drupal 데이터베이스에서 노드를 'cms'키로로드하려고합니다. 두 사이트는 모두 Drupal 7입니다. 다른 데이터베이스는 콘텐츠 저장소 또는 중앙 집중식 CMS 역할을하는 다른 Drupal 설치입니다. 내 목표는 대상 사이트에서 새보기 유형 / 그룹을 만드는 것이므로보기를 만들 때 사이트 빌드는 "콘텐츠"대신 "CMS 콘텐츠"를 선택할 수 있습니다. 그런 다음 사이트 작성기가 각 콘텐츠 유형의 모든 필드에 대해보기를 제공해야하더라도 콘텐츠 유형 및 중앙 집중식 CMS 사이트의 콘텐츠를 기반으로 일반적으로보기를 작성할 수 있기를 바랍니다.
내 hook_views_data () 구현에서 'database'키를 설정했지만 $ data [ 'node']를 재정의하지 않고 노드 테이블에서 읽는 방법을 알 수 없습니다.
function cms_connector_views_data() {
$data['cms_connector']['table']['group'] = t('CMS Content');
$data['cms_connector']['table']['base'] = array(
'field' => 'nid',
'title' => t('CMS Content'),
'help' => t('Content from the centralized CMS.'),
'database' => 'cms',
);
return $data;
}
물론 이것은 노드 테이블을 찾지 않고 데이터베이스에서 존재하지 않는 cms_connector
테이블을 찾습니다 cms
.
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'cms.cms_connector' doesn't exist
http://views-help.doc.logrus.com/help/views/api-tables에 따르면 $ data 내의 키는…
접두사를 포함하지 않는 테이블의 실제 데이터베이스 이름이어야하지만 조인 정보 (나중에 설명)에 테이블의 실제 이름이 포함되어 있으면 별칭이 될 수 있습니다.
실제로 조인을 원하지 않고 다른 데이터베이스의 노드 테이블에서 기본 테이블을 만들고 싶습니다. 그러나 http://drupal.org/node/1713010#comment-6310438 를 본 후에 어쨌든 이것을 시도했습니다 (실제로 이해가되지는 않지만) .
$data['cms_connector']['table']['join'] = array(
'node' => array(
'left_field' => 'nid',
'left_table' => 'node',
'field' => 'nid',
'table' => 'node',
),
);
여기에서 검색하고 수행하고 스택 오버플로를 검색했지만 내가 찾은 대부분은 Drupal-to-Drupal이 아닌 Some-other-database-to-Drupal입니다.
/drupal/12736/using-nodes-from-another-site-database 질문을 찾았 지만 노드 참조에 관한 것이며 대답하지 않았습니다.
중앙 집중식 사이트에서 서비스를 사용하여 XML / JSON을 읽는 것에 대해 생각했지만 그 방법에는 너무 많은 장애물이 있습니다. 노드도 동기화하고 싶지 않습니다.