Як клонувати тип вмісту? [зачинено]


14

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

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

Я навіть спробував модуль Bundle Copy .

Який найкращий спосіб клонувати будь-який тип вмісту в Drupal 7?


Я тільки що помітив, що ви пробували копію пакета ... Я використовую це весь час, що не працювало?
Клайв


1
@NikhilM Додавання полів робить це подібним питанням, але не дублюванням 11645.
mpdonadio

Відповіді:


12

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

Модуль управління конфігурацією дає можливість відслідковувати конкретні конфігурації на сайті Drupal, забезпечує можливість переміщення цих конфігурацій між різними середовищами (локальними, dev, qa, prod), а також переміщувати конфігурації між абсолютно різними сайтами (мігрувати конфігурації) без використання модулів з усією конфігурацією, що належить сайту.

Це в основному функції з речами, які вам не потрібні. Його єдиною метою є переміщення конфігурації з одного сайту на інший.


Як використовувати пакетну копію? Я експортував тип статті - тепер що робити, щоб змінити його ім'я перед імпортом того ж коду?
AgA

Просто запустіть заміну рядка ... замініть "old_content_type" на "new_content_type", я ніколи не мав проблем із застосуванням цього методу
Clive

Дякую ... чи можу я замінити "статтю" для клонування типу вмісту статті?
AgA

Так, але переконайтесь, що заміна рядка є чутливою до регістру і включає апострофи (це не точна наука). Таким чином, PHP-код виглядатиме такstr_replace("'article'", "'new_type'", $export_code);
Clive

Ви маєте на увазі, що потрібно замінити лише ім’я машини?
AgA


3

Я створив Clone Type Clone, доступний як пісочний проект тут:

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

Це дозволяє клонувати тип вмісту одним клацанням без необхідності дивитися на PHP-код або виконувати складні маніпуляції.

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

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

Редагування 2: Офіційний реліз клонів типу вмісту для Drupal 8 доступний на тій же самій сторінці.


2

Модуль функцій - це найкращий варіант поки.

Ось що потрібно зробити:

  • Експортуйте тип вмісту, який ви хочете клонувати як функцію.
  • Перейменуйте тип вмісту (тобто змініть "ім'я машини") на своєму Drupal-сайті
  • Завантажте та ввімкніть свою функцію

На цій сторінці може бути ваша відповідь на "офіційний спосіб клонування типу вмісту в Drupal 7".


1
Не можу погодитися з цим шкода. Копія в комплекті набагато простіше у використанні (і легше), ніж функції. Конфігурація Ditto
Clive

Скажіть, будь ласка, які поля потрібно точно змінити в експортованому модулі та посилання на цю "офіційну" інформацію?
AgA

+1 @Clive - ми щойно тут використовували пакетну копію - він надає опцію меню "клонувати" в розділі "Структура" в меню адміністрування / налаштування Drupal для клонування типу вмісту. Саме те, на що ми сподівалися, розглядаючи цей модуль. Здається, це працює добре.
therobyouknow

@monymirza це передбачає редагування створеного машиною коду вручну для пошуку / заміни / перейменування коду типу вмісту, створеного функцією. Якщо хтось не знає код модуля Feature, а також те, як він генерує цей код, можуть бути невідомі / припущення щодо кодування руки таким чином і невдалі результати. Використовуйте версію розробника (на момент написання, на даний момент 7.x-2.x-dev) пакетної копії (виправлено мій оригінальний коментар, зроблений 1 жовтня 1414 о 10:29, щоб згадати про функціональність, який наразі є у версії dev), оскільки це забезпечує для цього завдання була створена опція "клонування" в меню "структура".
therobyouknow
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.