Jak skopiować typ zawartości?

Odpowiedzi:

13

Jeśli masz na myśli eksport przez duplikat, skorzystaj z modułu Funkcje .

Moduł funkcji umożliwia przechwytywanie i zarządzanie funkcjami w Drupal. Cechą jest zbiór bytów Drupala, które razem spełniają określony przypadek użycia.

Funkcje zapewniają interfejs użytkownika i interfejs API do pobierania różnych komponentów budowy witryny z modułów z eksportowalnymi danymi i łączenia ich w jeden moduł funkcji. Moduł funkcji jest jak każdy inny moduł Drupal, z tym wyjątkiem, że deklaruje swoje komponenty (np. Widoki, konteksty, pola CCK itp.) W pliku .info, dzięki czemu można go sprawdzić, zaktualizować lub przywrócić programowo.

hpn
źródło
1
W tej chwili wydaje się to najlepsza metoda. Niestety nie ma (jeszcze?) Modułu takiego jak Content Copy w Drupal 6.
marcvangend
Mam na myśli eksport, a następnie import.
Raptor,
2
Funkcje to przesada w przypadku kopiowania typu zawartości. Ma on na celu łączenie różnych jednostek / modułów / innych razem w wysoce spersonalizowanych celach. Jeśli chcesz prostą kopię typu zawartości, patrz @ użytkownik3936 poniżej.
doub1ejack
Odkryłem, że moduł dziedziczenia pakietów jest najłatwiejszy; zobacz moją odpowiedź poniżej .
Matt Browne,
19

Może za późno możesz skorzystać z modułu kopiowania pakietów :

Kopia pakietu jest zamiennikiem modułu kopiowania treści, który mieszka w projekcie CCK dla Drupal 6. Obsługuje eksport / import dla: typów węzłów, taksonomii, użytkownika, pól API pola, grup pól

AKTUALIZACJE 7.x-2.x-dev notatki

Dodano następujące funkcje:

  • Eksport / import kolekcji terenowej
  • Klonowanie typów treści
  • Eksport / import pakietów jednostek handlowych

Drupal 8: Kopiowanie pakietu znajduje się w rdzeniu CMI Drupal 8.

Ccile
źródło
1
Kopiowanie pakietu nie nadaje się do klonowania typu zawartości na inny typ zawartości w tej samej witrynie. A wyszukiwanie / zamiana nie jest proste. Istnieją tablice węzłów, które odwołują się do innych typów treści. Nie do końca to rozgryzłem, ale zapytałem gorączkowo. Gdybym wiedział, co można bezpiecznie i nie bezpiecznie zmienić, byłoby to pomocne. Tylko ostrzeżenie. (Jeden użytkownik odpowiadający na to samo żądanie zauważył, że miał błędy korupcji bazy danych podczas wyszukiwania / zamiany wszystkich wystąpień oryginalnej nazwy maszyny typu zawartości.
@ User7558 Kopiowanie pakietu nie jest odpowiednie do klonowania typu zawartości na inny typ zawartości w tej samej witrynie. Tak, potrzebujesz najmniejszej ręcznej interwencji
Clive
Problem dotyczy „Klonowania typów treści w tej samej witrynie?” drupal.org/node/1589118
gagarine
1
7.x-2.x-dev obsługuje klonowanie typu zawartości w tej samej witrynie za pośrednictwem interfejsu użytkownika.
mpdonadio
Myślę, że ulubioną opcją jest Kopiowanie pakietu, ponieważ użycie funkcji Funkcje wymagałoby ręcznego edytowania kodu generowanego maszynowo w celu wyszukiwania / zamiany / zmiany nazwy kodu typu treści generowanego przez funkcję. O ile nie zna się dobrze kodu modułu funkcji i sposobu generowania tego kodu, mogą istnieć nieznane / założenia dotyczące ręcznego kodowania w ten sposób i pechowych rezultatów. Zaktualizowano 1 października 14 komentarz 1 z 2
therobyouknow
14

Użyłem modułu narzędzi polowych i działał bezbłędnie.

Wszystko, co zrobiłem, to stworzyłem mój drugi typ zawartości, użyłem tej funkcji modułu, aby sklonować wszystkie pola do nowego typu zawartości, a następnie odinstalowałem moduł. Kopiowanie pakietu i Funkcje wydają się absurdalnym sposobem na powielenie typu zawartości, było to bardzo proste i dokładnie to, czego chciałem.

leeksonline
źródło
Jeśli wszystko, co chcesz zrobić, to zduplikować złożony niestandardowy typ zawartości, jest to właściwy sposób. Funkcje mają wiele niepotrzebnych kosztów ogólnych, a typ zawartości jest powiązany z wygenerowanym modułem. Bleh Użyj tego. Zainstaluj / włącz, przejdź do typu zawartości, który chcesz sklonować, poszukaj Clone Fieldskarty u góry, wybierz pola do skopiowania, węzeł do skopiowania i gotowe.
doub1ejack
1
Myślę, że Field Tools to najszybszy i najprostszy sposób. Dziękuję Ci!
Roger,
Utwórz nowy, pusty typ zawartości, Toolszakładki Clone fields to this bundle, wybierz pola z istniejącego typu zawartości węzła Add field instances.
Hugo,
4

Odkryłem, że (stosunkowo nowy) moduł dziedziczenia pakietów jest bardzo łatwym sposobem na zrobienie tego. Pamiętaj, aby włączyć moduł „Węzeł dziedziczenia pakietu” (bundle_inherit_node) oprócz modułu bundle_inherit, wówczas podczas tworzenia nowych typów treści pojawi się nowa karta „Dziedziczenie”.

(Daje to również wybór pomiędzy „miękkim dziedziczeniem” a „ścisłym dziedziczeniem” ... o ile mogę zebrać, „miękkie dziedziczenie” po prostu wykonuje jednorazową kopię pól, podczas gdy „ścisłe dziedziczenie” śledzi hierarchia dziedziczenia).

Matt Browne
źródło
4

Najprostszym sposobem jest skorzystanie z funkcji kopiowania pakietów - wersji 7.2, która jest w fazie rozwoju, ale działała idealnie dla mnie.

Po zainstalowaniu modułu przejdź do strony „typy zawartości” i kliknij nową kartę „klonuj”.

W obszarze „Pakiet źródłowy” wybierz typ zawartości, który chcesz sklonować.

W polu „Nowa nazwa pakietu” wprowadź nazwę nowego typu zawartości, który chcesz utworzyć. Kliknij „klon”, a zobaczysz nowy typ zawartości na liście.

Narzędzia polowe również wykonują zadanie, ale nie jest to tak proste.

Monique Hanford
źródło
1

Tylko dla historii jest jeszcze jeden moduł, który sobie z tym poradzi.

Config in Code (CINC)

TheodorosPloumis
źródło