Я пытаюсь использовать Views для загрузки узлов из другой базы данных Drupal, определенной в settings.php, с ключом 'cms'. Оба сайта являются Drupal 7. Другая база данных - это другая установка Drupal, которая действует как хранилище контента или централизованная CMS. Моя цель - создать новый тип / группу представлений на целевом сайте, поэтому при создании представления для сборки сайта можно выбрать «Содержимое 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», а не «Drupal-to-Drupal».
Я нашел здесь /drupal/12736/using-nodes-from-another-site-database , но он касается ссылок на узлы и остается без ответа.
Я думал об использовании служб для чтения XML / JSON с централизованного сайта, но у этого подхода слишком много препятствий. Я тоже не хочу синхронизировать узлы.