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.


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.


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.


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).


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.



1

W przeciwnym razie Klonowanie typu treści pozwala to zrobić szybko i prosto, bez konieczności patrzenia na kod PHP lub wykonywania skomplikowanych operacji:

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

W tej chwili jest to projekt piaskownicy, ale wkrótce będzie dostępny jako oficjalny moduł Drupala.

Edycja: Oficjalne wydanie Klonu typu treści dla Drupala 7 jest już dostępne! https://www.drupal.org/project/content_type_clone Wersja Drupal 8 już wkrótce.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.