É possível desativar um tipo de conteúdo?

8

No momento, estou criando um pequeno site do Drupal 7, mas não pretendo usar o tipo de conteúdo do artigo entregue. É possível desativá-lo sem excluí-lo? O que quero dizer com isso é garantir que nenhum usuário crie artigos por acidente.

Não consegui encontrar uma opção para isso. Obrigado.

Jérôme Verstrynge
fonte

Respostas:

16
  • Você não pode desativar um tipo de conteúdo, mas pode impedir (quase) que todos criem / visualizem / modifiquem etc. um artigo com a definição das permissões de acordo.
  • Se não houver conteúdo do artigo no site, é 100% seguro excluí-lo. (É interessante verificar como o perfil de instalação padrão e mínimo fornece diferentes conjuntos de tipos de conteúdo. O artigo é apenas um tipo de conteúdo "de estoque" que não é de forma alguma necessário).
Scorchio
fonte
7

Para pessoas não familiarizadas com o Drupal, você evitaria que as pessoas usassem um tipo de conteúdo indo (em 7) People > Permissions (url: admin/people/permissions)

Em Nó, desmarque a Article: Create new contentpermissão para as funções selecionadas. :)

Obviamente, você mudaria Articlepara o tipo de conteúdo relevante.

mediaashley
fonte
Você consegue pensar em algum motivo pelo qual um usuário ainda possa acessar o link "criar" para um tipo de conteúdo específico, mesmo que sua função não permita a criação desse tipo de conteúdo? Clono minha função de usuário administrador e criei uma função de usuário "admin-lite" que só deve ter acesso para criar um punhado dos muitos tipos de conteúdo no meu site. No entanto, esses usuários admin-lite podem criar todos os diferentes tipos de conteúdo ... Tentei reconstruir permissões, mas isso também não ajudou.
precisa saber é o seguinte
2
Eu descobri o meu problema ... a função ainda tinha a permissão "Ignorar controle de acesso a conteúdo" ativada. Desativei isso e corrigi o meu problema.
precisa saber é o seguinte
5

No seu arquivo .install:

function YOURMODULE_disable() {

  // Disable content type MyContentType
  disable_content_type('MyContentType');


  //Activation message
  drupal_set_message(t('MyContentType is now disabled on your site.'));
}

e agora no seu arquivo .module ou .inc:

function disable_content_type($type) {
  $type_info = node_type_load($type);
  $type_info->module = 'node';
  $type_info->custom = 1;
  $type_info->modified = 1;
  $type_info->locked = 0;
  $type_info->disabled = 1;
  node_type_save($type_info);
}
drupal_stuff_alter
fonte
Isso efetivamente torna invisível o tipo de nó e qualquer conteúdo desse tipo? Meu caso de uso é uma opção no módulo que exigiria novos tipos de conteúdo, mas apenas se essa opção estiver selecionada. Eu não quero que eles vejam o tipo de conteúdo se não escolherem essa opção, mas também quero manter a integridade dos dados se eles ativarem / desativarem / ativarem / etc.
precisa saber é o seguinte
@UnsettlingTrend yes. Eu tive uma necessidade semelhante e tentei esta opção. Também tive que criar uma função _enable () no meu arquivo .install que chamava enable_content_type ('MyContentType'). No arquivo .module (ou .inc), $ type_info-> disabled é definido como 0. Dessa forma, quando o módulo está ativado, o tipo de conteúdo está disponível. Quando o módulo está desativado, o tipo de conteúdo não está disponível. Se você precisar acessar o conteúdo (por exemplo, como administrador), considere outra opção que altere as permissões para o tipo de conteúdo. Essa foi a rota que acabei seguindo.
2023 sho
1

Você também pode tentar o módulo Acesso ao Conteúdo para restringir os usuários com base na função de um tipo de conteúdo. http://drupal.org/project/content_access

yuhwei
fonte
1

Existem alguns tipos de conteúdo que podem ser "desativados" devido à desativação do módulo que o utiliza. Por exemplo: os tipos de conteúdo de pesquisa, fórum, livro e blog desaparecem dos tipos disponíveis quando você desativa os módulos associados. Página e artigo básicos são as duas exceções.

user1991685
fonte