Как скопировать ноду с одного сайта на другой?

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

Аватар пользователя AnNik AnNik 31 мая 2013 в 10:15

Дамы и господа, подскажите плз, есть ли модуль, позволяющий хотя бы частично реализовать задачку, описанную ниже.
Если нет - подкиньте идейку, как его написать, максимально задействуя АПИ Друпала и минимально - "рукопашные" методы типа прямых SQL Insert'ов и т.п. и минимум ручной работы.

Суть задачи.

Есть сайт А. На нем есть нода, которую надо скопировать на один из сайтов: Б1, Б2, Б3 ... Бn (их предполагается около десятка).
Сайт А можно сделать хоть на D6, хоть на D7.
Среди сайтов Б1...Бn есть сайты как на 6-ке, так и на 7-ке.
Типы материалов и ССК-поля на них могут быть разные.
Ко всем сайтам есть админовский доступ и доступ к базе, но они могут быть на разных хостингах.
После копирования в специальное ССК-поле этой ноды на сайте А должен прописаться УРЛ созданной ноды на сайте Б.

В идеале хотелось бы, чтобы копирование происходило "одной кнопкой": на сайте А выбрал один из сайтов Бi, тип материала на нем и прочие служебные поля (например, имя пользователя, под которым нода будет размещена на сайте Бi, термин таксономии и пр.), нажал кнопку "Поехали", и все скопировалось.

Но идеала, наверно, достигнуть будет невозможно, видимо надо будет делать выгрузку в какой-то промежуточный буфер (вспомогательную БД, CSV или XML файл, да хоть как), и загрузку на нужном сайте. Какие модули оптимальны для этого? Повторюсь, сайт, с которого будет копирование, можно сделать хоть на 6, хоть на 7, а на которые копировать - уже есть, и часть из них на 6, часть на 7.

Копировать надо будет по одной ноде, массовая перезаливка с сайта на сайт вряд ли понадобится.

Комментарии

Аватар пользователя kv4 kv4 31 мая 2013 в 10:35

Простой запрос в google "drupal node export" дал кучу ссылок, вот первая.

Но, есть и другие пути, если предыдущий не подойдёт (подозреваю, что из-за разных версий ядра сайтов А и Б, первый способ может не очень хорошо подойти).

Модуль Feeds
На сайта источнике генерируете c помощью views RSS, а сайтом на который нужно импортировать материал забираете этот RSS с помощью Feeds.

Или другой вариант (если полей различных много): сайт А генерирует xml или csv с содержимым ноды, а один из сайтов В забирает этот экспортированный сайтом А контент и создаёт на его основе ноду. Можно тоже Feeds попробовать.

Аватар пользователя AnNik AnNik 31 мая 2013 в 11:28

Node Export и Feeds смотрел, но они, по-моему, больше подходят для массового экспорта-импорта, тут же нужна индивидуальная, точечная работа.
Видимо, самому что-то сварганить надо будет...

Аватар пользователя kv4 kv4 31 мая 2013 в 12:54

"AnNik" wrote:
больше подходят для массового экспорта-импорта

А кто вам мешает определить максимальны размер массовости в количестве одной ноды?
"AnNik" wrote:

Видимо, самому что-то сварганить надо будет...

Ну, конечно вам виднее - полное описание задачи доступно только вам.

Аватар пользователя Koreychenko Koreychenko 1 июня 2013 в 12:16

Если нужна точечность, то можно формировать views rss с фильтром по отмеченным нодам. А потом эту RSS загружать чем угодно на другие сайты.

Т.е. вы у типа материала добавляете поле-список, в который вводите названия всех сайтов, на которых может быть размещен материал, а дальше делаете вьюху с фильтром по этому полю, вроде.

site.com/views-export/feed?site=mysite1
site.com/views-export/feed?site=mysite2
site.com/views-export/feed?site=mysite3

И скармливаете эти ленты вашим соответствующим сайтам.