특정 컨텐츠 유형을 삭제할 수없는 이유는 무엇입니까?


19

Drupal 7 사이트가 있으며 콘텐츠 유형 메뉴에서 특정 유형의 '작업'열 아래에 '삭제'링크가 있습니다.

모든 컨텐츠 유형에는 '편집', '필드 관리'및 '표시 관리'에 대한 링크가 있지만 일부는 '삭제'를 가지고 있지만 다른 것은 그렇지 않습니다.

사용자에 대한 내 권한을 확인 Administer content types했지만 가지고 있지만 모든 콘텐츠 유형에 대해 하나의 전역 권한 인 것처럼 보이므로 일부는 삭제 가능하지만 다른 일부는 삭제할 수없는 이유를 여전히 이해하지 못합니다.

특정 컨텐츠 유형에만 삭제 조작이있는 이유는 무엇입니까?

답변:


15

을 통해 수동으로 작성된 컨텐츠 유형 만 삭제할 수 있습니다 admin/structure/types/add.

삭제 링크가없는 컨텐츠 유형은 설치된 모듈에 의해 프로그래밍 방식으로 작성되며 설치 제거 후에 삭제됩니다 .


5
누군가가 여전히 여기에있는 경우-프로그래밍 방식으로 만든 콘텐츠 유형이 있지만 사이트 코드에서 모든 흔적을 삭제 한 후에도 여전히 사이트 주위에 매달려 있습니다-여전히 {menu_links에 항목이 있습니다 } 및 {menu_router} 등이 있으므로 "콘텐츠 작성"메뉴 등에 계속 표시됩니다. 그 과정에서 무언가가 엉망이 된 것 같습니다. 데이터베이스를 직접 해킹하는이 짧은 (웃음)을 제거하는 좋은 방법이 있습니까?
Jim Miller

나는 같은 문제를 가지고있다. 다중 사이트에서 기능을 사용하여 컨텐츠 유형을 내보내고 다른 유형으로 내보냈습니다. 이제 관련 모듈을 제거했지만 내용 유형이 여전히 있습니다.

3
아마도 확인했지만 방금 확인 했습니다. 모듈 을 제거 하고 단순히 사용 하지 않도록 설정 했습니까?
user56reinstatemonica8


이 답변이 이전에 정확한지 모르겠지만 Drupal 7.23에서는 더 이상 정확하지 않습니다. 컨텐츠 유형은 작성 방법에 관계없이 삭제할 수 있습니다.
Kari Kääriäinen

30

URL로 이동하여 삭제 /admin/structure/types/manage/content-machine-name/delete

content-machine-name은 삭제하려는 컨텐츠 유형의 시스템 이름입니다. 또한 밑줄 대신 기계 이름에 대시를 사용해야합니다.


1
굉장히 훌륭하게 작동했습니다! Enterprise Blog와 Enterprise FAQ를 다시 설치했지만 결국 사용하지 않았습니다. 컨텐츠 유형 화면에는 해당 컨텐츠 유형을 삭제하기위한 옵션이 제공되지 않았으므로 귀하의 방법은 반갑습니다!
hockey2112

1
나는 이것이 효과가 있다고 기대하지 않았지만 아름답게 작동했습니다. 기능 모듈을 사용하여 추가 된 컨텐츠 유형을 제거하는 데 좋습니다.
Citricguy

네! 이 팁은 굉장했습니다. 잘 작동합니다.
Boriana Ditcheva

이것은 실제 솔루션입니다 :)
petergus

그러나 "삭제"링크가 자연스럽게 표시되지 않으면 삭제하기에 안전하지 않을 수 있습니다. 이를 사용하는 컨텐츠 유형, 종속성, 캐시 된 컨텐츠 및이를 사용하지 않는 변수 및 기능이 없으면 링크가 표시됩니다. 따라서 신중하게 사용하는 것이 좋습니다.
Christia

2

hpn에서 언급했듯이 수동으로 만든 컨텐트 유형 만 삭제할 수 있습니다.

그러나 때로는 상황이 순조롭게 진행되지 않습니다. 다음 단계는 컨텐츠 유형을 삭제하는 데 도움이되었습니다. 이를 시도하기 전에 데이터베이스를 백업해야합니다.

[작성된 컨텐츠 유형을 수동으로 삭제하려면 drupal.org 에서 1 # 16 Nedjo가 제안합니다.

  • 기능을 비활성화하십시오. 때때로이 문제가 발생하여 기능이 비활성화되지 않습니다. 이 경우 기능 모듈 코드를 제거하십시오.
  • 삭제할 컨텐츠 유형의 기계 이름 (예 : 'mytype')을 결정하십시오.
  • 데이터베이스에서 컨텐츠 유형이 UI를 통해 수동으로 작성된 것처럼 node_type 테이블 값을 기본값으로 되 돌리십시오.

mysql> UPDATE node_type SET module = 'node', custom = 1, modified = 1, locked = 0 WHERE type = 'mytype';

  • 컨텐츠 유형 변경이 가능하도록 캐시를 지우십시오.
  • admin / structure / types의 UI를 통해 컨텐츠 유형을 삭제하십시오.

위의 단계는 내가 그러한 문제를 발견했을 때 도움이 된 것입니다.


1

콘텐츠 유형을 제공하는 모듈을 비활성화하는 것이 첫 번째 단계입니다. 기능이 컨텐츠 유형을 제공 한 경우 여전히 컨텐츠 유형을 삭제해야합니다.

잘 작성된 기능의 경우 컨텐츠 유형을 삭제하는 기능은 기능이 제공되지 않는 기능 이후에 제공됩니다. 현재 기능 또는 해당 기능에 대한 향후 업데이트에는 컨텐츠 유형이 필요할 수 있으므로 기능 아래에서 컨텐츠 유형을 삭제하는 것보다 선호됩니다.

기능 인터페이스가 어리석게도 기능 모듈이 충돌로 인해 모듈을 비활성화 할 수 없다고 주장하더라도 기능 모듈 (관리자 / 모듈)을 비활성화 할 수 있습니다.

인터페이스를 통해 아무것도하고 싶지 않고 코드 만 작성하려는 경우 Commons Wiki 및 Posts Features를 비활성화 한 다음 제공하는 콘텐츠 유형을 삭제하는 업데이트 후크 예제가 있습니다.

<?php
/**
 * Remove unused features and content types.
 */
function example_update_7001() {
  // Delete one (spam) piece of wiki content.
  node_delete(2731);
  // Disable Feature modules.
  module_disable(array('commons_wikis_pages', 'commons_wikis', 'commons_posts'));
  // Delete content types.
  node_type_delete('wiki');
  node_type_delete('post');
}
?>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.