Як скопіювати тип вмісту?


Відповіді:


13

Якщо ви маєте на увазі експорт у двох примірниках, використовуйте модуль " Особливості" .

Модуль функцій дозволяє знімати та керувати функціями в Drupal. Особливістю є колекція суб'єктів Drupal, які разом узгоджують певний випадок використання.

Особливості надають інтерфейс користувача та API для збору різних компонентів побудови сайтів з модулів з експортованими продуктами та їх об'єднання в один модуль функцій. Модуль функцій, як і будь-який інший модуль Drupal, за винятком того, що він декларує свої компоненти (наприклад, перегляди, контексти, поля CCK тощо) у своєму файлі .info, щоб його можна було перевірити, оновити або повернути програмно.


1
Це, здається, найкращий метод на даний момент. На жаль, немає жодного модуля (поки що?), Як Content Copy в Drupal 6.
marcvangend

Мені потрібно експортувати, тоді ти маєш на увазі імпорт?
Раптор

2
Особливості є надмірними для копіювання типу вмісту. Він призначений для поєднання різних об'єктів / модулів / інших разом для високомобільних цілей. Якщо ви хочете просту копію типу вмісту, див. @ User3936 нижче.
сумнів1ejack

Я виявив, що найпростіший модуль "Пачки"; дивіться мою відповідь нижче .
Метт Браун

19

Можливо, занадто пізно ви можете використовувати модуль пакетної копії :

Пакетна копія - це заміна модуля копіювання вмісту, який знаходиться в проекті CCK для Drupal 6. Має підтримку експорту / імпорту для: типів вузлів, таксономії, користувачів, полів API API, груп полів

ОНОВЛЕННЯ Примітки 7.x-2.x-dev

Додано такі функції:

  • Експорт / імпорт польового збору
  • Клонування типів вмісту
  • Експорт / імпорт комерційних пакетів

Drupal 8: Копія пакету знаходиться в CMI Drupal 8 Core.


1
Копіювання пакетів не підходить для клонування типу вмісту до іншого типу вмісту на тому ж сайті. І пошук / заміна не є прямим. Існують масиви вузлів, які посилаються на інші типи вмісту. Я не зовсім це зрозумів, але гарячково запитав. Якби я знав, що це безпечно, а що не безпечно змінити, було б корисно. Просто попередження. (Один користувач, відповідаючи на цей самий запит, зазначив, що у нього виникли помилки з

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

Їх проблема для "Клонування типів вмісту на одному веб-сайті?" drupal.org/node/1589118
gagarine

1
7.x-2.x-dev підтримує клонування типу вмісту на одному веб-сайті через інтерфейс користувача.
mpdonadio

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

14

Я використовував модуль інструментів Field , і він працював бездоганно.

Все, що я робив, це створити свій другий тип вмісту, використовував цю функціональність модуля для клонування всіх полів до нового типу вмісту, а потім видалив модуль. Пакетна копія та функції здаються смішними способами дублювання типу вмісту, це було дуже просто і саме те, що я хотів.


Якщо все, що ви хочете зробити, це дублювати складний спеціальний тип вмісту, це шлях. Особливості мають багато зайвих накладних витрат, і ваш тип вмісту прив’язаний до створеного модуля. Bleh. Використовуй це. Встановіть / увімкніть, перейдіть до типу вмісту, який ви хочете клонувати, шукайте Clone Fieldsвкладку вгорі, виберіть поля для копіювання, вузол для їх копіювання, і ви закінчили.
sum1ejack

1
Я думаю, що Field Tools - це найшвидший і найпростіший спосіб. Дякую!
Роджер

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

4

Я виявив, що (відносно новий) модуль пакетної спадщини є дуже простим способом зробити це. Не забудьте включити модуль "Вузол успадкування" (bundle_inherit_node) крім модуля bundle_inherit, тоді ви отримаєте нову вкладку "Спадщина" під час створення нових типів вмісту.

(Це також дає вам вибір між "м'яким спадкуванням" і "суворим успадкуванням" ... наскільки я можу зібрати, "м'який спадок" просто робить одноразову копію полів, тоді як "сувора спадщина" веде облік ієрархія спадщини.)


4

Найпростіший спосіб - використовувати пакетну копію - версія 7,2, яка розробляється, але для мене прекрасно працювала.

Після встановлення модуля перейдіть на сторінку "Типи вмісту" і натисніть на нову вкладку "Клон".

У розділі "Пакет джерела" виберіть тип вмісту, який потрібно клонувати.

У "Нове ім'я групи" введіть назву нового типу вмісту, який ви хочете створити. Клацніть на "клонувати", і тепер ви побачите цей новий тип вмісту у своєму списку.

Field Tools також виконує цю роботу, але це не так прямо.



1

В іншому випадку, Clone Type Clone дозволяє зробити це швидко і просто, не вимагаючи коду PHP або виконуючи складні маніпуляції:

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

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

Редагувати: Офіційний випуск клонів типу вмісту для Drupal 7 тут! https://www.drupal.org/project/content_type_clone Версія для Drupal 8 незабаром.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.