2010-03-09 5 views
2

У меня есть 2 веб-сайта с похожими типами контента.Drupal: общий доступ к Multisite

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

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

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

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

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

ответ

1

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

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

... потом switch to the other site's database, сделать node_save и переключиться обратно в базу данных текущего сайта, чтобы позволить Drupal закончить свой бизнес.

+0

Оба сайта находятся в одной базе данных, так как некоторые таблицы (таксономия) являются общими. Таблицы сайта2 имеют префикс. , поэтому коммутатор базы данных с использованием db_set_active() не будет работать. Если я что-то пропустил. Я посмотрю вашу ссылку как можно скорее. – Jozzeh

0

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

+0

Посмотрите на это. спасибо – Jozzeh

1

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

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

Смежные вопросы