Key Takeaways
- Drupal ist ein flexibles Content -Management -System, das die Erstellung neuer Knotentypen durch das Schreiben eines benutzerdefinierten Moduls erm?glicht. Dies ist von Vorteil, um komplexere Websites über die Standardartikel- und Seitenknoten -Typen hinaus zu erstellen.
- Erstellen eines neuen Knotentyps beinhaltet das Erstellen eines Moduls mit drei Dateien: .Info (enth?lt Informationen zum Modul), .Install (Details zu dem, was das Modul installiert oder deinstalliert) und .module (enth?lt den Code zum Implementieren des Moduls Drupal -Haken, die vom Modul verwendet werden).
- Der neue Knotentyp wird mit den Drupal -Hooks und der API installiert, und Felder wie Titel, Beschreibung usw. werden definiert. Das Modul sollte auch Code zum Reinigen von Daten oder Typen enthalten, die hinzugefügt werden, wenn es deinstalliert wird.
- Zus?tzliche Felder k?nnen dem neuen Knotentyp hinzugefügt werden, indem die Felder und Feldinstanzen in der .Install -Datei des Moduls erstellt werden. Dies erm?glicht ma?gefertigtere Inhalte, z. B. den Produktpreis und die Menge in einem Produktknotentyp.
Erstellen Ihres Moduls
Beginnen wir zun?chst die Grundstruktur eines Moduls, in dem wir unseren neuen Inhaltstyp erstellen. So erstellen Sie ein Modul, erstellen Sie im Verzeichnis von Sites/All/Modules Ihrer Drupal -Installation ein neues Verzeichnis mit dem Namen productCustomType. Erstellen Sie in diesem Ordner drei Dateien:- productCustomType.info - enth?lt die Informationen zum Modul, damit Drupal es erkennt und in der Liste angezeigt wird.
- productCustomType.install - enth?lt Details zu Dingen, die Sie für das Modul installieren oder deinstallieren werden.
- productCustomType.module - enth?lt Code, um die vom Modul verwendeten Drupal -Hooks zu implementieren.
name = productcustomtype description = A new content type of Product package = Product Custom node Type core = 7.x files[] = productcustomtype.install files[] = productcustomtype.moduleDas obige definiert einfach einige Parameter für unser Modul, sodass Drupal es verwenden und die Informationen zu unserem Modul anzeigen kann. Sobald dies erledigt ist, sollten wir unser Modul in der Modulliste wie unten gezeigt sehen. Aber aktivieren Sie es noch nicht - wir werden das nach dem n?chsten Schritt tun.
Installieren und Deinstallieren des Knotens
Sobald wir die grundlegenden Dateien für das Modul vorhanden haben, k?nnen wir mit dem Schreiben von Code für die Installation des benutzerdefinierten Knotentyps beginnen. Der erste Haken, den wir implementieren müssen, ist Hook_node_info. Mit diesem Haken kann ein Modul einen oder mehrere Knotentypen in Drupal definieren. Die Hook -Implementierung gibt ein Array zurück, das den neuen Knotentyp definiert, zu dem das Modul hinzugefügt wird. Um diesen Haken zu implementieren, fügen Sie den folgenden Code zu ProductCustomType.module hinzu:name = productcustomtype description = A new content type of Product package = Product Custom node Type core = 7.x files[] = productcustomtype.install files[] = productcustomtype.moduleDie Implementierung gibt ein Array zurück, das ein neues Produkt des Knotentyps zusammen mit einigen seiner Eigenschaften definiert, z. B. seinen Namen, die Beschreibung, wenn es einen Titel hat, und der Basis (die in verschiedenen Hooks für diesen Inhaltstyp verwendet wird). Da wir definiert haben, dass dieser Knotentyp einen Titel hat, müssen wir das Feld Title -Text anzeigen, wenn das Formular für diesen Knoten angezeigt wird, um Inhalte hinzuzufügen. Dazu müssen wir die Hook_form implementieren. Der Hook_Form -Hook wird verwendet, um das Formular zum Erstellen/Bearbeiten von Knoten anzuzeigen. Der Haken ist in productCustomType.module wie folgt implementiert:
<span><span><?php </span></span><span><span>/** </span></span><span><span> * Implements hook_node_info() </span></span><span><span> */ </span></span><span><span>function productcustomtype_node_info() { </span></span><span> <span>return array( </span></span><span> <span>'product' => array( </span></span><span> <span>'name' => t('Product'), </span></span><span> <span>'base' => 'product', </span></span><span> <span>'description' => t('You can define new Products here'), </span></span><span> <span>'has_title' => TRUE, </span></span><span> <span>'title_label' => t('Product title') </span></span><span> <span>) </span></span><span> <span>); </span></span><span><span>}</span></span>Wir verwenden einfach die Drupal -API, die eine Implementierung von Hook_form verleiht und fügt ein Titelfeld hinzu, das vorgesehen ist, dass die Knotendefinition das Attributsatz von Has_title hat (das wir in unserem Fall festgelegt haben). Sobald wir dies erledigt haben, müssen wir den Hook_install -Hook implementieren, um das K?rperfeld dem neuen Knotentyp hinzuzufügen. Fügen Sie die Implementierung zu ProductCustomType.install wie folgt hinzu:
<span><span><?php </span></span><span><span>/** </span></span><span><span> * Implement hook_form() </span></span><span><span> */ </span></span><span><span>function product_form($node, $form_state) { </span></span><span> <span>return node_content_form($node, $form_state); </span></span><span><span>}</span></span>Wir speichern zun?chst alle neuen Knotentypen, die von verschiedenen Modulen (einschlie?lich unserer) erstellt wurden, indem wir die Funktion Drupal API node_types_rebuild () aufrufen. Dann erhalten wir alle Knotentypen und rufen auf unserem Typ node_add_body_field () auf, um das K?rperfeld hinzuzufügen. Sobald wir dies getan haben, k?nnen wir unser Modul aktivieren, das unseren neuen Knotentyp installiert. Dann sollten wir in der Lage sein, unseren neuen Typ zu sehen, wenn wir auf wie folgt auf Inhalt hinzufügen:
name = productcustomtype description = A new content type of Product package = Product Custom node Type core = 7.x files[] = productcustomtype.install files[] = productcustomtype.moduleWir finden zun?chst alle Knoten -IDs, die Knoten unseres installierten Inhaltstyps sind. Sobald wir die IDs gesammelt haben, verwenden wir die API -Funktion node_delete_multiple (), um mehrere Knoten zu l?schen. Dann verwenden wir die Funktion node_type_delete (), um unseren Knotentyp zu l?schen. Wenn wir jetzt unser Modul deinstallieren, sollten alle Knoten unseres Typs und unser Typ selbst gel?scht werden.
Erstellen zus?tzlicher Felder
Sobald wir den neuen Knotentyp hinzugefügt haben, haben wir eine Funktionalit?t, die dem eines Knotens ?hnelt. Aber was ist, wenn wir je nach Knotentyp mehr Felder hinzufügen m?chten? Wenn es sich beispielsweise um einen Produkttyp handelt, m?chten wir m?glicherweise zwei weitere Felder wie Preis und Menge hinzufügen. Dafür müssen wir zuerst die Felder erstellen und dann Feldinstanzen auf unserem Knotentyp erstellen. Wir schreiben zwei neue Funktionen in die productCustomType.install -Datei, um die Felder und die Feldinstanzen zu definieren.<span><span><?php </span></span><span><span>/** </span></span><span><span> * Implements hook_node_info() </span></span><span><span> */ </span></span><span><span>function productcustomtype_node_info() { </span></span><span> <span>return array( </span></span><span> <span>'product' => array( </span></span><span> <span>'name' => t('Product'), </span></span><span> <span>'base' => 'product', </span></span><span> <span>'description' => t('You can define new Products here'), </span></span><span> <span>'has_title' => TRUE, </span></span><span> <span>'title_label' => t('Product title') </span></span><span> <span>) </span></span><span> <span>); </span></span><span><span>}</span></span>Wir erstellen dann eine Funktion add_custom_fields () in productCustomtype.install, in der das Array von den Feldern und Instanzen gelesen wird.
<span><span><?php </span></span><span><span>/** </span></span><span><span> * Implement hook_form() </span></span><span><span> */ </span></span><span><span>function product_form($node, $form_state) { </span></span><span> <span>return node_content_form($node, $form_state); </span></span><span><span>}</span></span>Jetzt k?nnen wir einfach die Funktion add_custom_fields () in productCustomType_install () aufrufen, damit die Felder und Feldinstanzen installiert werden, wenn das Modul installiert ist.
<span><span><?php </span></span><span><span>/** </span></span><span><span> * Implements hook_install(). </span></span><span><span> */ </span></span><span><span>function productcustomtype_install() { </span></span><span> <span>node_types_rebuild(); </span></span><span> <span>$types = node_type_get_types();| </span></span><span> <span>node_add_body_field($types['product']); </span></span><span><span>}</span></span>Wir müssen auch unsere Funktion productCustomType_uninstall () aktualisieren, um die Felder und Feldinstanzen zu entfernen.
<span><span><?php </span></span><span><span>/** </span></span><span><span> * Implements hook_uninstall(). </span></span><span><span> */ </span></span><span><span>function productcustomtype_uninstall() { </span></span><span> <span>$ournewtype = 'product'; </span></span><span> <span>$sql = 'SELECT nid FROM {node} n WHERE n.type = :type'; </span></span><span> <span>$result = db_query($sql, array(':type' => $ournewtype)); </span></span><span> <span>$nodeids = array(); </span></span><span> <span>foreach ($result as $row) { </span></span><span> <span>$nodeids[] = $row->nid; </span></span><span> <span>} </span></span><span> <span>node_delete_multiple($nodeids); </span></span><span> <span>node_type_delete($ournewtype); </span></span><span><span>}</span></span>Installieren Sie das Modul erneut und klicken Sie auf Produkt, um ein neues Produkt hinzuzufügen. Wir sollten die beiden Felder wie unten gezeigt sehen:
Schlussfolgerung
Das Drupal CMS bietet viele nützliche Haken und eine leistungsstarke API, mit der wir verschiedene Anpassungen durchführen k?nnen. In diesem Artikel konnten wir einen v?llig neuen Knotentyp erstellen, der im Inhaltsabschnitt von Drupal angezeigt wird. Mithilfe der API von Drupal haben wir auch Felder an diesem neuen Knotentyp angeh?ngt, damit jeder mit dem neuen Knotentyp einfach Inhalte hinzufügen kann. Viel Spa? beim Erstellen Ihres n?chsten neuen Knotentyps für Ihre Drupal -Site. Bild über Fotolienh?ufig gestellte Fragen zum Erstellen eines neuen Drupal -Knoten -Typs
Was ist ein Drupal-Knoten-Typ und warum ist es wichtig? durch einen Informationskontext. Dies k?nnte ein einfacher Blog -Beitrag, ein Artikel, eine Nachrichtengeschichte, ein Forumthema oder ein Tutorial sein. Knotentypen sind wichtig, da sie eine strukturierte Methode zur Eingabe, Anzeige und Verwaltung von Inhalten in Drupal bieten. Sie erm?glichen die Anpassung der Einstellungen für Dateneingaben, Validierung und Anzeige, die die Benutzererfahrung und die Gesamtfunktionalit?t einer Drupal -Site erheblich verbessern k?nnen.
Wie kann ich einen neuen Knotentyp in Drupal erstellen?
Erstellen eines neuen Knotentyps in Drupal ist ein einfacher Prozess. Navigieren Sie zuerst zum Menü "Struktur" in Ihrem Drupal Admin -Dashboard und w?hlen Sie dann "Inhaltstypen". Klicken Sie auf die Schaltfl?che "Inhaltstyp hinzufügen". Sie werden aufgefordert, den Namen, die Beschreibung und die Einstellungen für Ihren neuen Knotentyp auszufüllen. Wenn Sie die erforderlichen Informationen ausgefüllt haben, klicken Sie auf die Schaltfl?che ?Felder speichern und verwalten“, um Feldern zu Ihrem neuen Knotentyp hinzuzufügen.
Kann ich die Felder in meinem Drupal -Knoten -Typ anpassen? ??> Ja, Sie k?nnen die Felder in Ihrem Drupal -Knoten -Typ anpassen. Nachdem Sie einen neuen Knotentyp erstellt haben, k?nnen Sie nach Bedarf Felder hinzufügen, bearbeiten oder l?schen. Auf diese Weise k?nnen Sie den Knotentyp an Ihre spezifischen Inhaltsanforderungen anpassen. Sie k?nnen beispielsweise ein Textfeld für eine Artikelzusammenfassung, ein Bildfeld für ein vorgezogenes Bild oder ein Datumsfeld für ein Ver?ffentlichungsdatum hinzufügen.
Drupal bietet für jeden Knotenentyp eine Registerkarte "Anzeige verwalten". Auf diese Weise k?nnen Sie steuern, wie jedes Feld angezeigt wird, wenn der Knoten angezeigt wird. Sie k?nnen das Etikett, das Format und die Reihenfolge jedes Feldes einstellen. Sie k?nnen auch Felder in benutzerdefinierte Anzeigemodi wie eine Teaseransicht oder eine vollst?ndige Inhaltsansicht gruppieren. Eine leistungsstarke M?glichkeit, Knoten programmgesteuert zu erstellen, zu aktualisieren und zu l?schen. Dies kann für Aufgaben wie das Importieren von Inhalten aus einem anderen System, das Generieren von Testdaten oder das Erstellen von benutzerdefinierten Workflows nützlich sein. Die Knoten -API ist Teil des Kernsystems von Drupal, daher ist sie in allen Drupal -Installationen erh?ltlich.
Was sind die Kernknotentypen in Drupal? Diese bieten einen Ausgangspunkt für die Verwaltung von Inhalten in Drupal. Sie k?nnen jedoch auch Ihre eigenen benutzerdefinierten Knotentypen erstellen, die Ihren spezifischen Anforderungen entsprechen.
Wie kann ich den Zugriff auf meine Drupalknoten steuern? Sie k?nnen Berechtigungen basierend auf Benutzerrollen festlegen, sodass Sie steuern k?nnen, wer an jedem Typ ansehen, erstellen, bearbeiten und l?schen kann. Sie k?nnen auch Drupals Knoten -Zugriffs -API verwenden, um komplexere Zugriffsregeln zu erstellen. . Sie k?nnen benutzerdefinierte Ansichten erstellen, die Knoten basierend auf verschiedenen Kriterien anzeigen, z. B. Knotentyp, Ver?ffentlichungsstatus oder Autor. Sie k?nnen auch das Anzeigeformat, das Sortieren und die Paginierung Ihrer Ansichten anpassen. Gefühl Ihrer Knoten. Sie k?nnen benutzerdefinierte Vorlagen für jeden Knotentyp erstellen und Drupals Themen -API verwenden, um Ihren Knoten benutzerdefinierte CSS und JavaScript hinzuzufügen.
Kann ich die Funktionalit?t meiner Drupalknoten mit Modulen erweitern? > Ja, die modulare Architektur von Drupal erm?glicht es Ihnen, die Funktionalit?t Ihrer Knoten mit Modulen zu erweitern. Es gibt Tausende von zustimmenden Modulen, mit denen Funktionen wie Bildgalerien, Kommentare, Bewertungen und Social -Media -Integration zu Ihren Knoten hinzugefügt werden k?nnen. Sie k?nnen auch Ihre eigenen benutzerdefinierten Module erstellen, wenn Sie spezifische Anforderungen haben, die nicht von den verfügbaren Modulen erfüllt werden.
Das obige ist der detaillierte Inhalt vonPHP Master | Erstellen eines neuen Drupal -Knotentyps. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

TosecurelyHandleAuthenticationAuthorizationInphp, folge theSteps: 1.Alwayshashpasswordswithpassword_hash () und password_verify (), usePreeParedStatementStopreventsQlinjapitca und StoreuserDatain $ _SessionArtelogin.2.ImplementscaChescescesc

Um Datei -Uploads in PHP sicher zu verarbeiten, besteht der Kern darin, Dateitypen zu überprüfen, Dateien umzubenennen und die Berechtigungen zu beschr?nken. 1. Verwenden Sie Finfo_File (), um den realen MIME -Typ zu überprüfen, und nur bestimmte Typen wie Bild/JPEG sind zul?ssig. 2. Verwenden Sie Uniqid (), um zuf?llige Dateinamen zu generieren und sie im Root-Verzeichnis ohne Web zu speichern. 3.. Begrenzen Sie die Dateigr??e durch Php.ini- und HTML -Formulare und setzen Sie die Verzeichnisberechtigungen auf 0755; 4. Verwenden Sie Clamav, um Malware zu scannen, um die Sicherheit zu verbessern. Diese Schritte verhindern effektiv Sicherheitslücken und stellen sicher, dass der Upload -Prozess des Datei -Uploads sicher und zuverl?ssig ist.

In PHP ist der Hauptunterschied zwischen == und == die Strenge der Typprüfung. == Die Konvertierung des Typs wird vor dem Vergleich durchgeführt, beispielsweise 5 == "5" gibt true zurück und === fordert an, dass der Wert und der Typ gleich sind, bevor True zurückgegeben wird, z. B. 5 === "5" gibt false zurück. In den Nutzungsszenarien ist === sicherer und sollte zuerst verwendet werden, und == wird nur verwendet, wenn die Typumwandlung erforderlich ist.

Die Methoden zur Verwendung grundlegender mathematischer Operationen in PHP sind wie folgt: 1. Additionszeichen unterstützen Ganzfaktoren und Floating-Punkt-Zahlen und k?nnen auch für Variablen verwendet werden. String -Nummern werden automatisch konvertiert, aber nicht für Abh?ngigkeiten empfohlen. 2. Subtraktionszeichen verwenden - Zeichen, Variablen sind gleich, und die Typumwandlung ist ebenfalls anwendbar. 3. Multiplikationszeichen verwenden * Zeichen, die für Zahlen und ?hnliche Zeichenfolgen geeignet sind; 4. Division verwendet / Zeichen, die vermeiden müssen, durch Null zu dividieren, und beachten Sie, dass das Ergebnis m?glicherweise schwimmende Punktzahlen sein kann. 5. Die Modulzeichen k?nnen verwendet werden, um ungerade und sogar Zahlen zu beurteilen, und wenn negative Zahlen verarbeitet werden, stimmen die Restzeichen mit der Dividende überein. Der Schlüssel zur korrekten Verwendung dieser Operatoren liegt darin, sicherzustellen, dass die Datentypen klar sind und die Grenzsituation gut behandelt wird.

Ja, PHP kann mit NoSQL -Datenbanken wie MongoDB und Redis durch bestimmte Erweiterungen oder Bibliotheken interagieren. Verwenden Sie zun?chst den MongoDBPHP -Treiber (installiert über PECL oder Composer), um Client -Instanzen zu erstellen und Datenbanken und Sammlungen zu betreiben, wobei Sie Insertion, Abfrage, Aggregation und andere Vorg?nge unterstützen. Zweitens verwenden Sie die Predis Library oder PHPREDIS-Erweiterung, um eine Verbindung zu Redis herzustellen, Schlüsselwerteinstellungen und -akquisitionen durchzuführen und PHPREDIS für Hochleistungsszenarien zu empfehlen, w?hrend Predis für die schnelle Bereitstellung bequem ist. Beide sind für Produktionsumgebungen geeignet und gut dokumentiert.

TostaycurrentwithPHPdevelopmentsandbestpractices,followkeynewssourceslikePHP.netandPHPWeekly,engagewithcommunitiesonforumsandconferences,keeptoolingupdatedandgraduallyadoptnewfeatures,andreadorcontributetoopensourceprojects.First,followreliablesource

PHPBECAMEPOPULARFORWebDevelopmentDuetoitSeaseoflearning, Seamlessintegrationwithhtml, weit verbreitete Hostingsupport, andalargeecosystemincludingFrameWorkelaravelandcmsplatformen -?hnliche WordPress.itexcelsinformlingsformen, Managingusesersions, Interacti

Tosettherighttimezoneinphp, usedate_default_timezone_set () functionAtthestartofyourScriptWithAvalididentifiersuchas'america/new_york'.1.usedate_default_timezone_set () beeanydate/timeFununtions.2.Alternativ, konfigurieren
