컨텐츠 유형을 복사하는 방법?


답변:


13

중복 내보내기를 의미하는 경우 기능 모듈을 사용하십시오 .

기능 모듈을 사용하면 Drupal에서 기능을 캡처하고 관리 할 수 ​​있습니다. 기능은 함께 사용하여 특정 사용 사례를 충족시키는 Drupal 엔티티의 모음입니다.

기능은 내보낼 수있는 모듈이있는 서로 다른 사이트 구축 구성 요소를 단일 기능 모듈로 묶을 수있는 UI 및 API를 제공합니다. 기능 모듈은 다른 Drupal 모듈과 유사합니다. 프로그래밍 방식으로 확인, 업데이트 또는 되돌릴 수 있도록 .info 파일에 구성 요소 (예 : 뷰, 컨텍스트, CCK 필드 등)를 선언한다는 점이 다릅니다.


1
이것은 현재 가장 좋은 방법 인 것 같습니다. 불행히도 Drupal 6의 Content Copy와 같은 모듈 (아직?)은 없습니다.
marcvangend

내 보낸 다음 가져와야합니까?
랩터

2
컨텐츠 유형을 복사 할 때 기능이 과도합니다. 고도로 사용자 정의 된 목적을 위해 다양한 엔티티 / 모듈 / 기타를 함께 번들링하기위한 것입니다. 컨텐츠 유형의 간단한 사본을 원하면 아래 @ user3936을 참조하십시오.
doub1ejack

번들 상속 모듈이 가장 쉽다는 것을 알았습니다. 내 대답을 참조 아래를 .
Matt Browne

19

너무 늦게 번들 복사 모듈을 사용할 수 있습니다 .

번들 사본은 Drupal 6의 CCK 프로젝트에있는 컨텐츠 사본 모듈을 대체합니다. 노드 유형, 분류법, 사용자, 필드 API 필드, 필드 그룹에 대한 내보내기 / 가져 오기 지원

7.x-2.x-dev 업데이트

다음과 같은 기능이 추가되었습니다 :

  • 필드 콜렉션 내보내기 / 가져 오기
  • 컨텐츠 유형 복제
  • 상거래 엔티티 번들 내보내기 / 가져 오기

Drupal 8 : 번들 사본은 Drupal 8 Core CMI에 있습니다.


1
번들 사본은 컨텐츠 유형을 동일한 사이트의 다른 컨텐츠 유형으로 복제하는 데 적합하지 않습니다. 그리고 검색 / 바꾸기 작업은 간단하지 않습니다. 다른 컨텐츠 유형을 참조하는 노드 배열이 있습니다. 나는 그것을 이해하지 못했지만 열렬하게 물었다. 내가 안전하고 변경하기에 안전하지 않은 것을 알고 있다면 도움이 될 것입니다. 경고 일뿐입니다. (동일한 요청에 응답 한 한 명의 사용자는 원래 컨텐츠 유형 머신 이름의 모든 인스턴스를 검색 / 교체 할 때 DB 손상 오류가 있음을 언급했습니다.

@ user7558 번들 사본은 컨텐츠 유형을 동일한 사이트의 다른 컨텐츠 유형으로 복제하는 데 적합하지 않습니다. 그렇습니다. 아주 작은 수동 개입이 필요합니다
Clive

"같은 사이트에 콘텐츠 유형 복제?"에 대한 문제입니다. drupal.org/node/1589118
gagarine

1
7.x-2.x-dev는 UI를 통해 동일한 사이트에서 컨텐츠 유형 복제를 지원합니다.
mpdonadio

기능 복사를 사용하면 기능 생성 컨텐츠 유형 코드를 검색 / 교체 / 이름 바꾸기 위해 기계 생성 코드를 직접 편집해야하므로 번들 복사가 선호하는 옵션입니다. 피처 모듈 코드를 알고이 코드를 생성하는 방법에 대해 알지 않는 한, 이런 식으로 핸드 코딩하고 운이 나쁜 결과에 대해 알려지지 않은 가정이있을 수 있습니다. 업데이트 14 1 월 14 일 코멘트 1의 2
therobyouknow

14

Field tools 모듈을 사용 했는데 완벽하게 작동했습니다.

두 번째 컨텐츠 유형을 작성하고이 모듈 기능을 사용하여 모든 필드를 새 컨텐츠 유형으로 복제 한 다음 모듈을 설치 제거했습니다. 번들 사본기능 은 콘텐츠 유형을 복제하는 어리석은 방법처럼 보입니다. 이것은 매우 간단하고 정확하게 내가 원했던 것입니다.


복잡한 사용자 정의 컨텐츠 유형을 복제하기 만하면됩니다. 기능에는 불필요한 오버 헤드가 많으며 콘텐츠 유형은 생성 된 모듈과 연결되어 있습니다. 블리. 이것을 사용하십시오. 설치 / 활성화, 복제 할 컨텐츠 유형으로 이동 Clone Fields하고 맨 위 탭을 찾고 복사 할 필드를 선택하고 복사 할 노드를 선택하면 완료됩니다.
doub1ejack

1
필드 도구가 가장 빠르고 간단한 방법이라고 생각합니다. 고맙습니다!
Roger

비어있는 새 컨텐츠 유형 ToolsClone fields to this bundle을 작성하고 기존 노드 컨텐츠 유형에서 필드를 선택하십시오 Add field instances.
휴고

4

(상대적으로 새로운) Bundle Inherit 모듈이 이것을 수행하는 매우 쉬운 방법이라는 것을 알았습니다 . bundle_inherit 모듈 외에 "Bundle Inheritance Node"(bundle_inherit_node) 모듈을 활성화해야 새 컨텐츠 유형을 작성할 때 새로운 "Inheritance"탭이 표시됩니다.

(또한 "soft inherit"과 "strict inherit"중 하나를 선택할 수 있습니다. 수집 할 수있는 한 "soft inherit"은 필드의 일회성 복사본을 수행하는 반면 "strict inherit"은 상속 계층.)


4

가장 쉬운 방법은 개발 중이지만 완벽하게 작동하는 7.2 버전 인 Bundle Copy 를 사용 하는 것입니다.

모듈을 설치 한 후 "컨텐츠 유형"페이지로 이동하여 새 "복제"탭을 클릭하십시오.

"소스 번들"에서 복제하려는 컨텐츠 유형을 선택하십시오.

"새 번들 이름"에서 작성하려는 새 컨텐츠 유형의 이름을 입력하십시오. "복제"를 클릭하면 목록에 새로운 콘텐츠 유형이 표시됩니다.

필드 도구도 작업을 수행하지만 간단하지는 않습니다.



1

그렇지 않으면 Content Type Clone을 사용하면 PHP 코드를 보거나 복잡한 조작을 수행하지 않고도 빠르고 간단하게 수행 할 수 있습니다.

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

현재 샌드 박스 프로젝트이지만 공식 Drupal 모듈로 곧 제공 될 예정입니다.

편집 : Drupal 7 용 Content Type Clone의 공식 릴리스가 여기에 있습니다! https://www.drupal.org/project/content_type_clone Drupal 8 버전이 곧 제공 될 예정입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.