Ist es möglich, einen Inhaltstyp zu deaktivieren?


8

Ich erstelle derzeit eine kleine Drupal 7-Website, habe jedoch nicht vor, den gelieferten Artikelinhaltstyp zu verwenden. Ist es möglich, es zu deaktivieren, ohne es zu löschen? Damit meine ich, dass kein Benutzer versehentlich Artikel erstellt.

Ich konnte keine Option dafür finden. Vielen Dank.

Antworten:


16
  • Sie können einen Inhaltstyp nicht deaktivieren, aber Sie können (fast) jeden daran hindern, einen Artikel zu erstellen / anzuzeigen / zu ändern usw., indem Sie die Berechtigungen entsprechend festlegen.
  • Wenn die Website keinen Artikelinhalt enthält, ist das Löschen zu 100% sicher. (Es ist interessant herauszufinden, wie das Standard- und das minimale Installationsprofil unterschiedliche Arten von Inhaltstypen bereitstellen. Artikel ist nur ein "Standard" -Inhaltstyp, der keineswegs erforderlich ist.)

7

Für Personen, die mit Drupal nicht vertraut sind, würden Sie verhindern, dass Personen einen Inhaltstyp verwenden, indem Sie (in 7) gehen. People > Permissions (url: admin/people/permissions)

Deaktivieren Sie dann unter Knoten die Article: Create new contentBerechtigung für die ausgewählten Rollen. :) :)

Natürlich würden Sie Articlezum entsprechenden Inhaltstyp wechseln .


Können Sie sich einen Grund vorstellen, warum ein Benutzer weiterhin auf den Link "Erstellen" für einen bestimmten Inhaltstyp zugreifen kann, obwohl seine Rolle die Erstellung dieses Inhaltstyps nicht zulässt? Ich klone meine Administrator-Benutzerrolle und habe eine "Admin-Lite" -Benutzerrolle erstellt, die nur Zugriff haben sollte, um eine Handvoll der vielen Inhaltstypen auf meiner Website zu erstellen. Diese Admin-Lite-Benutzer können jedoch alle verschiedenen Inhaltstypen erstellen ... Ich habe versucht, Berechtigungen neu zu erstellen, aber das hat auch nicht geholfen.
Hockey2112

2
Ich habe mein Problem herausgefunden ... In der Rolle war die Berechtigung "Inhaltszugriffskontrolle umgehen" weiterhin aktiviert. Ich habe das deaktiviert und mein Problem behoben.
Hockey2112

5

In Ihrer Installationsdatei:

function YOURMODULE_disable() {

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


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

und jetzt in Ihrer .module- oder .inc-Datei:

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);
}

Macht dies den Knotentyp und Inhalte dieses Typs effektiv unsichtbar? Mein Anwendungsfall ist eine Option im Modul, die neue Inhaltstypen erfordern würde, jedoch nur, wenn diese Option ausgewählt ist. Ich möchte nicht, dass sie den Inhaltstyp sehen, wenn sie diese Option nicht auswählen, aber ich möchte auch die Integrität der Daten beibehalten, wenn sie die Option ein- / ausschalten / ein / etc.
UnsettlingTrend

@UnsettlingTrend ja. Ich hatte ein ähnliches Bedürfnis und versuchte diese Option. Ich musste auch eine _enable () -Funktion in meiner .install-Datei erstellen, die enable_content_type ('MyContentType') heißt. In der .module- (oder .inc-) Datei wird $ type_info-> disabled auf 0 gesetzt. Auf diese Weise ist der Inhaltstyp verfügbar, wenn das Modul aktiviert ist. Wenn das Modul deaktiviert ist, ist der Inhaltstyp nicht verfügbar. Wenn Sie Zugriff auf den Inhalt benötigen (z. B. als Administrator), sollten Sie eine andere Option in Betracht ziehen, mit der die Berechtigungen für den Inhaltstyp geändert werden. Das war der Weg, den ich gegangen bin.
Sho


1

Es gibt einige Inhaltstypen, die durch Deaktivieren des Moduls, das sie verwendet, "deaktiviert" werden können. Beispiel: Die Inhaltstypen für Umfragen, Foren, Bücher und Blogs verschwinden aus den verfügbaren Typen, wenn Sie die zugehörigen Module deaktivieren. Grundlegende Seite und Artikel sind die beiden Ausnahmen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.