Drupal 8 Einstellungen Dritter und Pseudo-Felder
Dieses Drupal 8 -Modul erstellt wiederverwendbare Formen, die an verschiedenen Knotenbündeln angebracht werden können. Erstellen wir ein einfaches, aber leistungsstarkes, wiederverwendbares Formsystem. Das Ziel ist es, ein Formular auf jeder Knotenseite problemlos zu laden, wodurch der Formulartyp pro Knotenpaket ausgewählt wird.
Wir haben bereits einen benutzerdefinierten Plugin -Typ ReusableForm
mit einer Basis -Plugin -Klasse für die Erweiterung erstellt. Jedes Plugin interagiert mit einer Formklasse, die in seiner Annotation definiert ist. In ähnlicher Weise bietet eine Basisformklasse eine Grundlage für neue Formen.
Als nächstes konfigurieren wir Kernknotentypen, um diese Plugins zu verwenden, und rendern das entsprechende Formular während der Knotenanzeige. Lassen Sie uns zunächst ein einfaches ReusableForm
Plugin erstellen.
Schlüsselkonzepte:
- Wiederverwendungsabschnitt -Plugin: Ein benutzerdefinierter Plugin -Typ, der die Auswahl von Formularen pro Knotenbündel ermöglicht.
- Formklasse: definiert die Struktur und Logik jeder einzelnen Form.
- Plugin Manager Service: Bietet Zugriff auf verfügbare
ReusableForm
Plugins. - Einstellungen von Drittanbietern: speichert Plugin-Auswahl pro Knotentyp.
- Pseudofeld: Ermöglicht das Rendern des ausgewählten Formulars auf der Knotenanzeige.
Erstellen des ersten Plugin
im Verzeichnis des Moduls src/Form
erstellen BasicForm.php
:
<?php namespace Drupal\reusable_forms\Form; use Drupal\Core\Form\FormStateInterface; class BasicForm extends ReusableFormBase { public function getFormId() { return 'basic_form'; } public function buildForm(array $form, FormStateInterface $form_state) { $form = parent::buildForm($form, $form_state); return $form; } public function submitForm(array &$form, FormStateInterface $form_state) { // Handle form submission. } }
Dies erweitert unser Basisformular und implementiert die erforderlichen Methoden. Die buildForm
-Methode verwendet die Basislogik. Die Handhabung der Einreichung bleibt für die spätere Implementierung übrig.
Erstellen Sie nun das Plugin in src/Plugin/ReusableForm/BasicForm.php
:
<?php namespace Drupal\reusable_forms\Plugin\ReusableForm; use Drupal\reusable_forms\ReusableFormPluginBase; /** * @ReusableForm( * id = "basic_form", * name = @Translation("Basic Form"), * form = "Drupal\reusable_forms\Form\BasicForm" * ) */ class BasicForm extends ReusableFormPluginBase {}
Die Annotation definiert die ID, den Namen und die zugehörige Form des Plugins.
Knotenentypkonfiguration
Um Plugins zuzugreifen und zu laden, machen wir den Plugin -Manager zu einem Dienst. In reusable_forms.services.yml
:
services: plugin.manager.reusable_forms: class: Drupal\reusable_forms\ReusableFormsManager parent: default_plugin_manager
Ändern Sie als nächstes den Knotentyp -Bearbeitungsformular (reusable_forms.module
):
use Drupal\Core\Form\FormStateInterface; use Drupal\node\NodeTypeInterface; function reusable_forms_form_node_type_form_alter(&$form, FormStateInterface $form_state) { // ... (Code to add checkbox and radios for enabling and selecting forms) ... $form['#entity_builders'][] = 'reusable_forms_form_node_type_form_builder'; } function reusable_forms_form_node_type_form_builder($entity_type, NodeTypeInterface $type, &$form, FormStateInterface $form_state) { // ... (Code to save/unset third-party settings) ... }
Dies fügt ein Kontrollkästchen hinzu, um wiederverwendbare Formulare und eine Auswahlliste zur Auswahl eines Plugins zu aktivieren. Der Rückruf #entity_builders
speichert die Auswahl in Einstellungen von Drittanbietern.
Konfigurationsschema (reusable_forms.schema.yml
)
node.type.*.third_party.reusable_forms: type: mapping label: 'Reusable Forms' mapping: enabled: type: boolean label: 'Enable reusable forms' plugin: type: string label: 'Form Plugin'
Knotenansicht
Erstellen Sie ein Pseudo -Feld (reusable_forms.module
):
use Drupal\node\Entity\NodeType; use Drupal\Core\Entity\Display\EntityViewDisplayInterface; use Drupal\Core\Entity\EntityInterface; function reusable_forms_entity_extra_field_info() { // ... (Code to add 'reusable_form' pseudo field to enabled node types) ... } function reusable_forms_node_view(array &$build, EntityInterface $entity, EntityViewDisplayInterface $display, $view_mode, $langcode) { // ... (Code to render the form using the plugin manager) ... }
hook_entity_extra_field_info
definiert das Pseudofeld und rendert hook_node_view
die ausgewählte Form.
Dies vervollständigt die Grundstruktur. Denken Sie daran, Caches nach Änderungen zu klären. Diese detaillierte Erklärung bietet eine solide Grundlage für den Aufbau einer komplexeren wiederverwendbaren Formfunktionalität in Drupal 8.
Das obige ist der detaillierte Inhalt vonDrupal 8 Einstellungen Dritter und Pseudo-Felder. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

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

Alipay PHP ...

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Die Hijacking der Sitzung kann in den folgenden Schritten erreicht werden: 1. Erhalten Sie die Sitzungs -ID, 2. Verwenden Sie die Sitzungs -ID, 3. Halten Sie die Sitzung aktiv. Zu den Methoden zur Verhinderung der Sitzung der Sitzung in PHP gehören: 1. Verwenden Sie die Funktion Session_regenerate_id (), um die Sitzungs -ID zu regenerieren. 2. Store -Sitzungsdaten über die Datenbank, 3. Stellen Sie sicher, dass alle Sitzungsdaten über HTTPS übertragen werden.

Die Anwendung des soliden Prinzips in der PHP -Entwicklung umfasst: 1. Prinzip der Einzelverantwortung (SRP): Jede Klasse ist nur für eine Funktion verantwortlich. 2. Open and Close Principle (OCP): Änderungen werden eher durch Erweiterung als durch Modifikation erreicht. 3.. Lischs Substitutionsprinzip (LSP): Unterklassen können Basisklassen ersetzen, ohne die Programmgenauigkeit zu beeinträchtigen. 4. Schnittstellen-Isolationsprinzip (ISP): Verwenden Sie feinkörnige Schnittstellen, um Abhängigkeiten und nicht verwendete Methoden zu vermeiden. 5. Abhängigkeitsinversionsprinzip (DIP): Hoch- und niedrige Module beruhen auf der Abstraktion und werden durch Abhängigkeitsinjektion implementiert.

Wie debugge ich den CLI -Modus in PhpStorm? Bei der Entwicklung mit PHPSTORM müssen wir manchmal den PHP im CLI -Modus (COMS -Zeilenschnittstellen) debuggen ...

So setzen Sie die Berechtigungen von Unixsocket automatisch nach dem Neustart des Systems. Jedes Mal, wenn das System neu startet, müssen wir den folgenden Befehl ausführen, um die Berechtigungen von Unixsocket: sudo ...

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Senden von JSON -Daten mithilfe der Curl -Bibliothek von PHP in der PHP -Entwicklung müssen häufig mit externen APIs interagieren. Eine der gängigen Möglichkeiten besteht darin, die Curl Library zu verwenden, um Post � ...
