È possibile disabilitare un tipo di contenuto?


8

Attualmente sto creando un piccolo sito Web Drupal 7, ma non intendo utilizzare il tipo di contenuto dell'articolo consegnato. È possibile disabilitarlo senza eliminarlo? Quello che intendo con questo è assicurarsi che nessun utente creerà articoli per caso.

Non sono riuscito a trovare un'opzione per questo. Grazie.

Risposte:


16
  • Non è possibile disabilitare un tipo di contenuto, ma è possibile impedire (quasi) a tutti di creare / visualizzare / modificare un articolo con l'impostazione delle autorizzazioni di conseguenza.
  • Se non ci sono contenuti dell'articolo sul sito, è sicuro al 100% eliminarlo. (È interessante scoprire come il profilo di installazione minimo e predefinito fornisce diversi set di tipi di contenuto. L'articolo è solo un tipo di contenuto "stock" che non è assolutamente necessario avere.)

7

Per le persone che non hanno familiarità con Drupal, si impedirebbe alle persone di utilizzare un tipo di contenuto andando (in 7) People > Permissions (url: admin/people/permissions)

Quindi sotto Nodo deselezionando l' Article: Create new contentautorizzazione per i ruoli selezionati. :)

Ovviamente dovresti passare Articleal tipo di contenuto pertinente.


Riesci a pensare a qualche motivo per cui un utente sarebbe ancora in grado di accedere al link "crea" per un determinato tipo di contenuto, anche se il suo ruolo non consente la creazione di quel tipo di contenuto? Clono il mio ruolo utente amministratore e ho creato un ruolo utente "admin-lite" che dovrebbe avere accesso solo per creare una manciata di molti tipi di contenuti sul mio sito. Tuttavia, quegli utenti admin-lite possono creare tutti i diversi tipi di contenuto ... Ho provato a ricostruire le autorizzazioni, ma neanche questo mi ha aiutato.
hockey 2112

2
Ho capito il mio problema ... il ruolo aveva ancora abilitato l'autorizzazione "Bypass Content Access Control". L'ho disabilitato e il problema è stato risolto.
hockey 2112

5

Nel tuo file .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 ora nel tuo file .module o .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);
}

Ciò rende effettivamente invisibile il tipo di nodo e qualsiasi contenuto di quel tipo? Il mio caso d'uso è un'opzione nel modulo che richiederebbe nuovi tipi di contenuto, ma solo se tale opzione è selezionata. Non voglio che vedano il tipo di contenuto se non scelgono quell'opzione, ma voglio anche mantenere l'integrità dei dati se attivano / disattivano / attivano / ecc. L'opzione.
Disordinato:

@UnsettlingTrend yes. Avevo un bisogno simile e ho provato questa opzione. Ho anche dovuto creare una funzione _enable () nel mio file .install che si chiamava enable_content_type ('MyContentType'). Nel file .module (o .inc), $ type_info-> disabled è impostato su 0. In questo modo, quando il modulo è abilitato, il tipo di contenuto è disponibile. Quando il modulo è disabilitato, il tipo di contenuto non è disponibile. Se hai bisogno di accedere al contenuto (ad es. Come amministratore), potresti prendere in considerazione un'altra opzione che modifica le autorizzazioni per il tipo di contenuto. Questa è stata la strada che ho finito.
sho


1

Esistono alcuni tipi di contenuto che possono essere "disabilitati" in virtù della disabilitazione del modulo che lo utilizza. Ad esempio: i tipi di contenuto di sondaggi, forum, libri e blog scompaiono dai tipi disponibili quando si disabilitano i moduli associati. La pagina e l'articolo di base sono le due eccezioni.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.