Wenn Sie einen neuen Inhaltstyp in Drupal erstellen Sie den Content Creation Kit, erhalten Sie automatisch Titel und Körper Felder in der erzeugten Form. Gibt es eine Möglichkeit, sie zu entfernen?Wie entfernen Sie die Standardtitel und Körper Felder in einem CCK Drupal Content-Typ erzeugt?
Antwort
Wenn Sie kein Entwickler sind (oder den Entwicklungsprozess abkürzen möchten), können Sie auch das Modul auto_nodetitle verwenden. Auto nodetitle lässt Sie Regeln erstellen, um den Titel des Knotens zu generieren. Dies können programmatische Regeln, Token, die ersetzt werden, oder einfach statischer Text sein. Einen Blick wert, wenn nichts anderes.
, um den Körper zu bearbeiten, die Art, erweitert „Submission Form Einstellungen“ und setzte in freiem Raum für Körperfeldbeschriftung zu entfernen. Für den Titel können Sie ihn in ein anderes Textfeld umbenennen. Wenn Sie wirklich keine Notwendigkeit für Textfelder haben Sie ein eigenes Modul erstellen können, sagen foo genannt und Funktion foo_form_alter create() die $ Form ersetzt [ ‚title‘] mit einer #value wenn $ form [ ‚type‘] [ '# Wert '] ist Ihr Knotentyp.
Wenn Sie kein Entwickler sind (oder Sie wollen den Entwicklungsprozess abzukürzen), eine weitere mögliche Lösung ist, das auto_nodetitle Modul nutzen. Auto nodetitle werden Sie Regeln zur Erzeugung der Titel des Knoten lassen erstellen. Diese können programmatische Regeln sein, Token, die ersetzt werden, oder einfach statischer Text. Einen Blick wert, wenn nichts sonst.
Und William OConnor's Lösung hinzufügen auf ...
Das Modul leider schlecht dokumentiert ist. Es ist wirklich nur effektiv, wenn Sie PHP damit meiner Meinung nach verwenden. Überprüfen Sie den „Werten Sie PHP in Pattern“ und geben Sie in das „Muster für den Titel“ Feld so etwas wie:
<?php echo $node->field_staff_email[0]['email']; ?>
oder:
<?php echo $node->field_staff_name[0]['value'] . '-' . gmdate('YmdHis'); ?>
... wo ich ein Feld hatte mit einem internen Name von "field_staff_email" und verwendete das CCK E-Mail-Modul - daher wurde der E-Mail-Typ verwendet. Oder ich hatte ein Feld mit dem internen Namen "field_staff_name" und war nur ein gewöhnliches Textfeld - daher wurde der 'value'-Typ verwendet. Der Aufruf von gmdate() am Ende dient dazu, die Eindeutigkeit zu gewährleisten, da zwei oder mehr Mitarbeiter dasselbe benannt haben können.
So wie ich das alles mit, indem man zuerst das Experimentieren entdeckt wurde:
<?php print_r($node); ?>
... was natürlich verrückt Ergebnisse gab, aber zumindest konnte ich die Ausgabe analysieren und herauszufinden, wie die verwenden $ Node-Objekt hier richtig.
Wenn Sie eine dieser PHP-Routinen verwenden, müssen Sie nur die Inhaltsliste in Drupal Admin anzeigen, die Einträge genau so zeigt, wie Sie PHP programmiert haben. Aus diesem Grund habe ich nicht nur gmdate() alleine verwendet, weil es dann schwierig sein könnte, meinen Datensatz zum Bearbeiten zu finden.
Hinweis: Sie können möglicherweise auch die Base-36-Konvertierung für gmdate() verwenden, um die Ausgabegröße zu reduzieren, da gmdate ('YmdHis') relativ lang ist.
keine Notwendigkeit, etwas zu installieren:
, wenn die Inhalte des Typs bearbeiten, drücken Sie auf „Bearbeiten“
(im Menü von Bearbeiten | Felder verwalten | Anzeigefelder)
Klick auf die Submission Einstellungen Form
auf Das Textfeld "Body":
Lassen Sie es leer, es würde das Feld "Body" entfernen.
Die ersten Antworten sind alle gut. Genau wie eine andere Idee für den Titel Teil ... wie wäre es mit dem Erstellen einer benutzerdefinierten Vorlage für den Cck-Node-Typ. Sie würden node.tpl.php in node-TYPE.tpl.php kopieren und dann die neue Datei bearbeiten und entfernen, wo der Titel gerendert wird. (Vergessen Sie nicht, Ihren Cache zu löschen).
Auf diese Weise bedeutet, dass jeder Knoten noch einen Titel hat, so dass Sie für die Inhaltsverwaltung keine leeren Titel oder ähnliches haben.
HTH!
Dies funktionierte gut für das Body-Feld, aber ich bevorzuge das Auto_nodetitle-Modul zum Entfernen des Feldes Name. Danke! –