Как скопировать тип контента?


Ответы:


13

Если вы имеете в виду экспорт по дубликатам, используйте модуль « Функции ».

Модуль функций позволяет собирать и управлять функциями в Drupal. Особенность - это набор сущностей Drupal, которые в совокупности удовлетворяют определенному сценарию использования.

Компоненты предоставляют пользовательский интерфейс и API для извлечения различных компонентов построения сайта из модулей с экспортируемыми файлами и объединения их в один функциональный модуль. Функциональный модуль похож на любой другой модуль Drupal, за исключением того, что он объявляет свои компоненты (например, представления, контексты, поля CCK и т. Д.) В своем файле .info, чтобы его можно было проверять, обновлять или возвращать программно.


1
Это, кажется, лучший метод на данный момент. К сожалению, в Drupal 6 нет такого модуля (пока что?), Как Content Copy.
marcvangend

Мне нужно экспортировать, а затем импортировать вы имеете в виду?
Raptor

2
Возможности излишни для копирования типа контента. Он предназначен для объединения различных объектов / модулей / других вместе в целях индивидуальной настройки. Если вам нужна простая копия типа контента, смотрите @ user3936 ниже.
doub1ejack

Я нашел модуль Bundles Inherit самым простым; см. мой ответ ниже .
Мэтт Браун

19

Может быть, слишком поздно, вы можете использовать модуль Bundle Copy :

Bundle copy является заменой модуля Content copy, который находится в проекте CCK для Drupal 6. Имеет поддержку экспорта / импорта для: типов узлов, таксономии, пользователя, полей API полей, групп полей

ОБНОВЛЕНИЕ 7.x-2.x-dev заметки

Следующие функции были добавлены:

  • Экспорт / импорт полевой коллекции
  • Клонирование типов контента
  • Экспорт / импорт торговых объектов

Drupal 8: Bundle Copy находится в Drupal 8 Core CMI.


1
Bundle Copy не подходит для клонирования типа контента в другой тип контента на том же сайте. И выполнять поиск / замену не так просто. Существуют массивы узлов, которые ссылаются на другие типы контента. Я не совсем понял, но спросил лихорадочно. Если бы я знал, что безопасно и не безопасно менять, это было бы полезно. Просто предупреждение. (Один пользователь, отвечающий на этот же запрос, отметил, что у него были ошибки искажения базы данных при поиске / замене всех экземпляров исходного имени компьютера с типом контента.

@ user7558 Bundle Copy не подходит для клонирования типа контента в другой тип контента на том же сайте. Да, вам просто нужно самое маленькое ручное вмешательство
Клайв

Это проблема "Клонирование типов контента на одном сайте?" drupal.org/node/1589118
gagarine

1
7.x-2.x-dev поддерживает клонирование типа контента на том же сайте через пользовательский интерфейс.
mpdonadio

Я думаю, что Bundle Copy - любимый вариант, поскольку использование подхода «Возможности» подразумевает редактирование машинно-сгенерированного кода вручную для поиска / замены / переименования сгенерированного функциональности кода типа контента. Если кто-то не знает код модуля Feature хорошо о том, как он генерирует этот код, могут быть неизвестные / предположения относительно ручного кодирования таким образом и неудачных результатов. Обновлено 1 октября '14 комментарий 1 из 2
therobyouknow

14

Я использовал модуль Field tools , и он работал безупречно.

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


Если все, что вы хотите сделать, это продублировать сложный пользовательский тип контента, это путь. Функции имеют много ненужных накладных расходов, и ваш тип контента привязан к сгенерированному модулю. BLEH. Использовать этот. Установите / включите, перейдите к типу контента, который вы хотите клонировать, найдите Clone Fieldsвкладку вверху, выберите поля для копирования, узел для копирования, и все готово.
doub1ejack

1
Я думаю, что Field Tools - самый быстрый и простой способ. Спасибо!
Роджер

Создайте новый пустой тип содержимого Toolsвкладки, Clone fields to this bundleвыберите поля из существующего типа содержимого узла, Add field instances.
Хьюго

4

Я нашел (относительно новый) модуль Bundle Inherit очень простым способом сделать это. Обязательно включите модуль «Bundle Inheritance Node» (bundle_inherit_node) в дополнение к модулю bundle_inherit, тогда вы получите новую вкладку «Inheritance» при создании новых типов контента.

(Он также дает вам выбор между «мягким наследованием» и «строгим наследованием» ... насколько я понимаю, «мягкое наследование» просто делает однократную копию полей, тогда как «строгое наследование» отслеживает иерархия наследования.)


4

Самый простой способ - это использовать Bundle Copy - версию 7.2, которая находится в разработке, но отлично сработала для меня.

После установки модуля перейдите на страницу «типы контента» и нажмите на новую вкладку «клон».

Под «Source Bundle» выберите тип контента, который вы хотите клонировать.

В поле «Имя нового пакета» введите имя нового типа контента, который вы хотите создать. Нажмите «клонировать», и вы увидите новый тип контента в своем списке.

Полевые Инструменты также делают работу, но это не так просто.



1

В противном случае, Content Type Clone позволяет вам сделать это быстро и просто, не обращая внимания на код PHP или выполняя сложные манипуляции:

https://www.drupal.org/sandbox/davidfiaty/2745827

На данный момент это песочница, но скоро она будет доступна в качестве официального модуля Drupal.

Редактировать: Официальный релиз Content Type Clone для Drupal 7 уже здесь! https://www.drupal.org/project/content_type_clone Drupal 8 скоро будет доступна.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.