Estoy tratando de usar Vistas para cargar nodos de otra base de datos de Drupal definida en settings.php con una clave de 'cms'. Ambos sitios son Drupal 7. La otra base de datos es una instalación de Drupal diferente que actúa como un depósito de contenido o CMS centralizado. Mi objetivo es crear un nuevo tipo / grupo de vistas en el sitio de destino, por lo que al crear una vista, la construcción del sitio puede elegir "Contenido CMS" en lugar de "Contenido". Espero que un creador de sitios pueda crear una vista normalmente basada en los tipos de contenido y el contenido del sitio centralizado de CMS, incluso si tengo que contar las vistas sobre todos los campos en cada tipo de contenido.
En mi implementación hook_views_data () configuré la clave 'base de datos', pero no puedo entender cómo leer desde la tabla de nodos sin anular $ data ['nodo'].
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;
}
Por supuesto, esto no busca una tabla de nodos, busca una cms_connector
tabla en mi cms
base de datos, que no existe.
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 dice que la clave dentro de $ data ...
debe ser el nombre real de la base de datos de la tabla (sin incluir el prefijo), pero puede ser un alias siempre que la información de unión (explicada más adelante) contenga el nombre real de la tabla.
En realidad no quiero hacer una unión, quiero crear una tabla base a partir de la tabla de nodos de la otra base de datos. Pero intenté esto de todos modos (aunque realmente no tiene sentido) después de ver 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',
),
);
He buscado por aquí, do y Stack Overflow, pero la mayoría de lo que estoy encontrando es Some-other-database-to-Drupal, no Drupal-to-Drupal.
Encontré la /drupal/12736/using-nodes-from-another-site-database pregunta aquí, pero se trata de referencias de nodos y no tiene respuesta.
Pensé en usar los Servicios para leer XML / JSON desde el sitio centralizado, pero hay demasiados obstáculos para ese enfoque. Realmente tampoco quiero sincronizar nodos.