Drupal: обмен контентом через мультисайт - PullRequest
2 голосов
/ 09 марта 2010

У меня 2 сайта с похожим типом контента.

Скажем, тип содержимого события с некоторыми полями cck.

site1: события (название, тело, изображение) site2: события (название, тело, изображение, onsite1)

дополнительным полем на site2-events, я хочу дать возможность пользователю публиковать свое событие на (основном) сайте1.

Site1 и site2 находятся в 1 базе данных, хотя таблицы из site2 имеют префикс.

Как я могу добавить контент, созданный с site2 на site1? (Есть ли простой способ сделать это, не прибегая к sql? В настоящее время я использую nodeapi, чтобы сделать некоторые дополнительные действия при отправке события.)

Ответы [ 3 ]

1 голос
/ 17 марта 2010

Возможно, вы сможете использовать db_set_active (), как описывает Майк-Криттенден, даже если он находится в одной базе данных, так как и $ db_url, и $ db_prefix могут быть массивами, а не одиночными строками.

Таким образом, вы можете иметь один и тот же db_url для db «по умолчанию» и «альтернативный», но использовать разные префиксы для переключения между базами данных, используя db_set_active («alternative») и db_set_active () для возврата к значениям по умолчанию.

1 голос
/ 09 марта 2010

Поскольку вы говорите, что уже используете hook_nodeapi, похоже, что вы могли бы просто сделать:

if ($op == 'insert' && (see if checkbox is checked here))

... затем переключиться на базу данных другого сайта , выполнить node_save и вернуться к базе данных текущего сайта, чтобы позволить Drupal завершить свою работу.

0 голосов
/ 09 марта 2010

Многие люди для этого используют Feed API / Модуль Feeds . Вы можете фильтровать по терминам таксономии, типу контента, что вам нужно, чтобы вам не пришлось импортировать все с основного сайта. Отличный инструмент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...