MultiSite: Разные бд, один content type.

Главные вкладки

Аватар пользователя dgastudio dgastudio 6 мая 2009 в 14:41

Имеет место одна базовая установка друпала. Полностью рабочая и функциональная. На которой создан content type например news.

От этой установки, сделаны и локализованы (переведены на другие языки) копии бд, после чего, через другие домены и небольших модификаций в SITES сделан доступ в виде.

Site 1 --> bd 1
Site 2 --> bd 2 (копия бд1)
Site 3 --> bd 3 (копия бд1)

Вопрос такой.

Как мне этот content type (news) с первого сайта расшарить на остальные копии? то есть при добавлении на один сайт, остальные автоматом обновляются?

Запихивать в одну бд и делать префиксы нереально. так как всего будет около 10 сайтов, и некоторые из них плюс ко всему имеют еше 2 языковых версии каждый.

Заранее спс.

Комментарии

Аватар пользователя xanderz xanderz 6 мая 2009 в 16:44

не совсем понятно что значит "расшарить контент-тип". Имеется в виду синхронизация модели ноды, т.е. например при добавлении поля CCK на одном из сайтов все другие тоже обновят схему типа данных и добавят это поле. Или же нужны именно сквозные ноды, которые видны сразу на нескольких сайтах и не требуют ручного дублирования на каждый из сайтов. Тут все зависит от того какое количество таких сквозных нод будет присутствовать по отношению к количеству остального контента. Если не много, то проще можно настроить экспорт (автоэкспорт) отдельных материалов через какой-нибудь модуль экспорта-импорта контента. Если же таких нод будет существенное число, то лучше ваши сайты как раз объединить в одну базу с разделением лишь некоторых таблиц по префиксу. И количество сайтов 10 тут вовсе не критерий усложняющий задачу. Если таблица node будет общая для всех сайтов, то любые ноды могут быть как сквозными так и индвидуальными для конкретного их сайтов. Правда для выборок по views тогда нужно будет описывать фильтр отбирающий ноды по текущему домену.

Аватар пользователя WiseMan WiseMan 7 мая 2009 в 2:47

"xanderz" wrote:
Если таблица node будет общая для всех сайтов, то любые ноды могут быть как сквозными так и индвидуальными для конкретного их сайтов.

А вы пробовали так? весьма интересно можно ли именно так, как вы пишите в этих строках, сделать.

Был бы благодарен за ваш опыт. Будет еще одна комбинация для мультисайтинга.

Аватар пользователя xanderz xanderz 7 мая 2009 в 11:49

пробовал на нескольких своих проектах. Например есть у меня сайт газетного издательства. Для каждой из выпускаемых газет есть свой поддомен со своей темой оформления. Все хранится в одной базе. Таблица node и node_revision общие, таксономия разделена через префикс. Есть типы контента: статья, автор, тема и прочие. При такой конфигурации получается что ноды статей должны быть отдельные для каждого сайта, а например ноды типа автор, тема и другие общие для всех сайтов, поэтому таблицу node приходится делать общей. Но также приходится вводить дополнительное поле для несквозных нод, которое будет определять принадлежность ноды тому или другому поддомену.

Аватар пользователя WiseMan WiseMan 7 мая 2009 в 23:18

xanderz wrote:
Но также приходится вводить дополнительное поле для несквозных нод, которое будет определять принадлежность ноды тому или другому поддомену.

Другими словами, вывод нод на сайтах необходимо делать нестандартными методами, добавляя проверку на принадлежность домену?

Похоже, что лучшим решением в таких случаях пока остается модуль domain

Аватар пользователя xanderz xanderz 8 мая 2009 в 7:11

WiseMan wrote:
Другими словами, вывод нод на сайтах необходимо делать нестандартными методами, добавляя проверку на принадлежность домену?

Похоже, что лучшим решением в таких случаях пока остается модуль domain

ну да именно такой принцип и используется. Модуль Domain реализует все описанное очень хорошо, но мне он не подошел по причине сильного утяжеления запроса связью с таблицей domain_access, определяющей принадлежность каждой ноды одному из доменов. А у меня порядка 80 тыс нод и запросы на выборку после добавления этой связи выполняются в 3-4 раза дольше. Поэтому я добавил поле принадлежности домену в таблицу node.

Аватар пользователя dgastudio dgastudio 8 мая 2009 в 9:43

У меня Domain Access убивал напрочь все стили админки. Так что я от него отказался.

Вообщем пришел я к такому решению:

На главном сайте, все content type забивать в RSS. После чего на сайтах спутниках, через simpleFeed забирать их, парсить и вставлять в необходимые категории.

Дешево и сердито.