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></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></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></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></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></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></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!

PHPSSIONS CANSTORESTRINGEN, ZUGNALTEN, ARRAYS, ANDOBjekte.1.

TostartaphpSession, useSession_start () atthescript'Sbeginning.1) PlaCEITBEFOREANYOUTPUTTOTHESESSIONSCOOKIE.2) useSsionsforuserDatalikeloginStatusOrShopingCarts

Die Sitzung der Sitzung bezieht sich auf die Generierung einer neuen Sitzungs -ID und die Ungültigmachung der alten ID, wenn der Benutzer sensible Vorgänge bei festgelegten Sitzungsangriffen ausführt. Die Implementierungsschritte umfassen: 1. Erkennen sensibler Vorgänge, 2. Erstellen neuer Sitzungs-ID, 3..

PHP -Sitzungen haben erhebliche Auswirkungen auf die Anwendungsleistung. Zu den Optimierungsmethoden gehören: 1. Verwenden Sie eine Datenbank, um Sitzungsdaten zu speichern, um die Antwortgeschwindigkeit zu verbessern; 2. Reduzieren Sie die Verwendung von Sitzungsdaten und speichern Sie nur die erforderlichen Informationen. 3.. Verwenden Sie einen nicht blockierenden Sitzungsprozessor, um die Parallelitätsfunktionen zu verbessern. 4. Passen Sie die Ablaufzeit der Sitzung an, um Benutzererfahrung und Serverbelastung auszugleichen. 5. Verwenden Sie persistente Sitzungen, um die Anzahl der Les- und Schreibzeiten zu verringern.

PhpSessionsaresServer-Side, whilecookiesareclient-Side.1) SESSIsions Storedataontheserver, Aremoresecure und Handlelargerdata.2) CookieStoredataoneTheClient, AslosenSecure und LimitedInsiesindaSsibilitäts- und -Stasibilitäts- und -Stasibilitäts- und -Anssibilitäts- und -Anssibilitätsporsedataandcookiesefornonsesibel, adailliertes, adailliertes, adailliertes, adailliertes, adailliertes, addiertes-addiertes- und -Staillieren- und -Anssistieren, und -Anssibilitätsporsedaten- und -Sta- und addierta und -Anssibilitäts- und addiertes- und addailliert.

PhpidentifiesAsersSSessionUsingSSessionCookiesAndSessionIDs.1) WHANE Session_Start () iscalled, phpGeneratesAuniqueSessionIDStoredInacookienMamePhpSsidontonTheusers.2) thisidallowStoretrieVessionDataFromtheServer.

Die Sicherheit von PHP -Sitzungen kann durch folgende Maßnahmen erreicht werden: 1. Verwenden Sie Session_regenerate_id (), um die Sitzungs -ID zu regenerieren, wenn sich der Benutzer anmeldet oder eine wichtige Operation ist. 2. Verschlüsseln Sie die Übertragungssitz -ID durch das HTTPS -Protokoll. A. Verwenden Sie Session_save_path (), um das sichere Verzeichnis anzugeben, um Sitzungsdaten zu speichern und Berechtigungen korrekt festzulegen.

PhpSessionFilesArestoredinTHedRectorySpecifiedBySession.save_path, typischerweise/tmponunix-likesystemsorc: \ windows \ temponwindows


Heiße KI -Werkzeuge

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

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

Undress AI Tool
Ausziehbilder kostenlos

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

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft
