Umstieg von Drupal
Diese Seite richtet sich an Entwickler, die Drupal kennen und ein Exponential-Projekt beginnen. Drupal-Entwickler denken bereits in Inhaltstypen und Feldern, daher wird sich das Inhaltsmodell vertraut anfühlen; die Unterschiede liegen in den Begriffen, in der Art, wie Templates gewählt werden, und darin, wo die Konfiguration liegt. Diese Seite vergleicht nur Begriffe und bewertet die beiden Systeme nicht.
Inhalt
- Falsche Freunde
- Begriff für Begriff
- Views und Blöcke
- Module und Hooks
- Themes und Twig
- Konfiguration und Drush
- Eine Drupal-Website umziehen
Falsche Freunde
| Wort | In Drupal | In Exponential |
|---|---|---|
| node | eine Inhaltsentität: ein Artikel, eine Seite | eine Platzierung eines Inhaltsobjekts im Baum (Knoten); der Inhalt selbst ist das Objekt |
| module | ein Zusatzpaket | eine Gruppe von Seiten (Views) unter einem URL-Präfix, etwa content oder user; Zusätze sind Erweiterungen |
| view | eine konfigurierte Abfrage mit Darstellung (Views) | eine Seite eines Moduls (content/view) und ein Ansichtsmodus wie full oder line |
| block | ein platzierbares Ausgabestück in einer Region | ein Block von Exponential Layouts, platziert in einer Zone eines Layouts |
| section | (kein Kernbegriff) | eine Kennzeichnung an Inhalten, die Berechtigungen und Template-Regeln verwenden (Sektion) |
Behalten Sie die erste Zeile im Kopf: In Exponential ist $node in einem Template der Platz im Baum, und
$node.object ist der Inhalt (Objekte, Knoten und Platzierungen).
Begriff für Begriff
| In Drupal | In Exponential | Lesen |
|---|---|---|
| Inhaltstyp (Node-Bundle) | Inhaltsklasse | Inhaltsklassen und Attribute |
| Feld und Feldtyp | Klassenattribut und Datentyp | Datentypen wählen |
| Entity-Reference-Feld | ezobjectrelationlist | Relationen und Einbettungen |
| Paragraphs | Unterobjekte kleiner Klassen oder Blöcke von Layouts | Ein Inhaltsmodell entwerfen |
| Taxonomie-Vokabular und Begriffe | eztags oder Ordner im Baum | Datentypen wählen |
| Menülinks, Buchgliederung | der Inhaltsbaum und seine Sortierung | Objekte, Knoten und Platzierungen |
| Revisionen und Content Moderation | Versionen, Objektzustände, Freigabe-Workflows | Versionen, Entwürfe und Veröffentlichen |
| Inhaltsübersetzung | Übersetzungen desselben Objekts | Übersetzungen und Sprachen |
| Rollen und Berechtigungen | Rollen mit Richtlinien und Einschränkungen | Sektionen, Rollen und Richtlinien |
| Pfad-Aliase, Weiterleitungen | URL-Aliase, URL-Platzhalter (Wildcards) | URL-Aliase und Routing |
| Webform | Informationssammlung | Formulare und Informationssammlung |
| Multisite | Siteaccesses in einer Installation und einer Datenbank | Siteaccesses und Multisite |
| JSON:API, REST | die REST-Schnittstelle von ezprestapi, expservices | Die REST-API |
Views und Blöcke
Ein Drupal-View ist Konfiguration, die eine Abfrage und eine Darstellung aufbaut. In Exponential ist die Abfrage eine
Fetch-Funktion, die in einem Template aufgerufen wird (fetch( 'content', 'list', hash( ... ) )), und die
Darstellung ist dieses Template (Inhalte in Templates abrufen). Redakteure, die
Listen selbst konfigurieren müssen, verwenden Exponential Layouts: einen Block mit einer Sammlung, die von Hand
oder durch eine Abfrage gefüllt wird, platziert in einer Zone eines Layouts, ohne Code
(Layouts für CMS-Entwickler). Beide Wege treffen sich in Template-Blöcken
(Zwei Wege zum Bauen).
Module und Hooks
Ein Drupal-Modul implementiert Hooks oder abonniert Events. Eine Exponential-Erweiterung verwendet genaue Erweiterungspunkte:
| Drupal-Gewohnheit | Exponential |
|---|---|
hook_entity_presave, hook_node_insert | ein Workflow-Event am Auslöser für das Veröffentlichen oder ein Event-Listener (Workflows und Auslöser) |
| Eine Route und ein Controller | ein Modul mit einer View (module.php, ein View-Skript) (Module und Views) |
Eine Berechtigung in *.permissions.yml | eine Richtlinienfunktion Ihres Moduls (Richtlinienfunktionen und Zugriff) |
| Ein Twig-Filter oder eine Twig-Funktion | ein Template-Operator oder eine Template-Funktion (Template-Operatoren) |
hook_cron | ein Cronjob-Skript in einem Cronjob-Teil (Cronjobs) |
| Ein Feldtyp-Plugin | ein Datentyp (Datentypen) |
Themes und Twig
Drupal-Themes verwenden Twig mit Template-Vorschlägen wie node--article--full.html.twig. Exponential-Designs
verwenden eine eigene Template-Sprache (.tpl), und die "Vorschläge" sind ausdrückliche Override-Regeln in
override.ini, die auf Klasse, Knoten, übergeordneten Knoten, Sektion, Ansichtsmodus und mehr passen
(Templates und Overrides für CMS-Entwickler). Ansichtsmodi gibt es in
beiden Systemen mit derselben Idee: full, line und Ihre eigenen (Ansichtsmodi). Designs fallen
durch eine Kette von Designs zurück, ganz ähnlich wie ein Basis-Theme
(Die Design-Kette).
Konfiguration und Drush
| Drupal | Exponential |
|---|---|
settings.php | settings/override/site.ini.append.php und die Siteaccess-Ordner |
| Konfigurationsexport (YAML) | INI-Dateien in Ihrer Erweiterung unter Versionsverwaltung; Klassen und Inhalte in Paketen |
drush cr | php bin/php/ezcache.php --clear-all oder gezielt --clear-id / --clear-tag |
drush-Befehle | ./console und bin/php/*.php |
drush config:get / config:set | ./console exp:ini get / exp:ini set |
Klassen liegen in der Datenbank, so wie die Inhaltstypen von Drupal in der aktiven Konfiguration liegen; um sie zu versionieren, exportieren Sie sie in Paketen (Inhaltsklassen und Attribute).
Eine Drupal-Website umziehen
Die Migrationsanleitung behandelt JSON:API und die Migrate API, die Zuordnung, Paragraphs, Pfad-Aliase und Weiterleitungen: Drupal und Exponential. Die Lektion für Trainer ist Von Drupal und Joomla, und die Werkzeuge, die das Ergebnis importieren, stehen unter Inhalte importieren.
Verwandte Seiten
- Exponential für CMS-Entwickler
- Umstieg von WordPress, Umstieg von TYPO3
- Inhalte auf Exponential abbilden
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
Werden Sie Exponential-Partner
Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.