it-swarm.com.de

Warum kann ich bestimmte Inhaltstypen nicht löschen?

Ich habe eine Drupal 7-Site) und im Menü "Inhaltstypen" haben nur bestimmte Typen einen Link "Löschen" in der Spalte "Vorgänge".

Alle Inhaltstypen verfügen über die Links für "Bearbeiten", "Felder verwalten" und "Anzeige verwalten", aber nur einige haben "Löschen", andere nicht.

Ich habe meine Berechtigungen für meinen Benutzer überprüft und habe Administer content types - aber das scheint eine globale Berechtigung für alle Inhaltstypen zu sein, daher verstehe ich immer noch nicht, warum einige löschbar sind, während andere nicht.

Warum haben nur bestimmte Inhaltstypen einen Löschvorgang?

18
user1359

Sie können nur manuell erstellte Inhaltstypen löschen (über admin/structure/types/add).

Inhaltstypen ohne Löschlink werden programmgesteuert von installiert Modulen erstellt und nach Deinstallation Modulen gelöscht.

15
hpn

Löschen Sie sie, indem Sie zur URL /admin/structure/types/manage/content-machine-name/delete Gehen.

content-machine-name ist der Computername des Inhaltstyps, den Sie löschen möchten. Stellen Sie außerdem sicher, dass Sie im Computernamen Bindestriche verwenden und keine Unterstriche.

30
Brian Reeves

Wie bereits erwähnt, können Sie nur manuell erstellte Inhaltstypen löschen.

Aber manchmal laufen die Dinge nicht reibungslos. Die folgenden Schritte haben zum Löschen von Inhaltstypen beigetragen. Sie müssen die Datenbank sichern, bevor Sie dies versuchen.

[Um einen erstellten Inhaltstyp manuell zu löschen 1 # 16 Nedjo schlägt in drupal.org vor:

  • Deaktivieren Sie die Funktion. Ich habe manchmal Probleme damit - eine Funktion wird nicht deaktiviert. Entfernen Sie in diesem Fall den Funktionsmodulcode.
  • Bestimmen Sie den Computernamen des zu löschenden Inhaltstyps, z. B. "mytype".
  • Setzen Sie in der Datenbank die Werte der Tabelle node_type auf die Standardeinstellungen zurück, als ob der Inhaltstyp manuell über die Benutzeroberfläche erstellt worden wäre:

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

  • Löschen Sie die Caches, um sicherzustellen, dass die Änderung des Inhaltstyps verfügbar ist.
  • Löschen Sie über die Benutzeroberfläche unter admin/structure/types den Inhaltstyp.

Die obigen Schritte haben mir schon früher geholfen, als ich diese Probleme gefunden habe.

2
cayerdis

Das Deaktivieren des Moduls mit dem Inhaltstyp sollte der erste Schritt sein. Wenn der Inhaltstyp von einer Funktion bereitgestellt wurde, müssen Sie den Inhaltstyp dennoch löschen.

Bei einem gut gemachten Feature kann ein Inhaltstyp erst gelöscht werden, wenn das Feature deaktiviert ist. Dies wird dem Löschen eines Inhaltstyps aus einer Funktion vorgezogen, da für die aktuelle Funktionalität oder zukünftige Aktualisierungen dieser Funktion möglicherweise der Inhaltstyp erforderlich ist.

Beachten Sie, dass Sie Feature-Module (admin/modules) deaktivieren können, auch wenn die Features-Oberfläche (ziemlich dumm) behauptet, dass sie ein Modul aufgrund von Konflikten nicht deaktivieren kann.

Wenn Sie über die Benutzeroberfläche nichts tun und nur Code ausführen möchten, finden Sie hier ein Beispiel für einen Update-Hook, mit dem die Funktionen für das Commons-Wiki und die Posts deaktiviert und die von ihnen bereitgestellten Inhaltstypen gelöscht werden.

<?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');
}
?>
1
mlncn

Ich habe dies getan, aber ich erhalte die folgende Fehlermeldung: Hinweis: Undefinierter Index [Inhaltstyp] in node_filter_form () Haben Sie eine Idee, wie Sie dies beheben können?

0
PatriciaW