Datentypen wählen
Diese Seite richtet sich an Entwickler, die eine Liste von Feldern in Klassenattribute umsetzen. Ein Datentyp bestimmt Speicherung, Prüfung, Bearbeitungsformular, View-Template, Suche und wie Importe Werte lesen; die Wahl ist also eine Minute pro Feld wert. Einen Datentyp später zu ändern bedeutet ein neues Attribut und ein Migrationsskript (Inhaltsklassen und Attribute).
Inhalt
- Woher die Liste kommt
- Die Kernel-Datentypen nach Zweck
- Datentypen aus der Standarddistribution
- Entscheidungen, die sich schwer rückgängig machen lassen
- Datentypen, die Sie in neuen Modellen meiden sollten
- Wann Sie einen eigenen Datentyp schreiben
Woher die Liste kommt
Die im Klasseneditor angebotenen Datentypen stehen in settings/content.ini [DataTypeSettings] AvailableDataTypes[]:
35 im Kernel (kernel/classes/datatypes/). Aktive Erweiterungen fügen ihre in ihrer eigenen
content.ini.append.php hinzu. So sehen Sie, was Ihre Installation anbietet:
./console exp:ini get content.ini/DataTypeSettings/AvailableDataTypes --allow-root-userDie Kernel-Datentypen nach Zweck
Die Namen in Klammern zeigt der Klasseneditor an.
| Zweck | Datentyp | Hinweise |
|---|---|---|
| Ein Titel, ein Name, eine kurze Zeile | ezstring (Textzeile) | Höchstlänge je Attribut; meist die Quelle des Objektnamens |
| Reiner Text über mehrere Zeilen | eztext (Textabschnitt) | kein Markup; gut für Teaser, Adressen, Meta-Beschreibungen |
| Formatierter Text: Überschriften, Listen, Links, Einbettungen | ezxmltext (XML Block) | wird im Online Editor bearbeitet; siehe Rich Text |
| Ganze Zahlen, Dezimalzahlen | ezinteger (Ganzzahl), ezfloat (Fließkommawert) | Minimum und Maximum je Attribut |
| Ja oder nein | ezboolean (Kontrollkästchen) | |
| Datum und Uhrzeit | ezdate, ezdatetime, eztime | ezdatetime für alles, was Sie nach Uhrzeit sortieren oder filtern |
| Eine oder mehrere Optionen aus einer festen Liste | ezselection (Auswahlliste) | Einfach- oder Mehrfachauswahl; die Optionen liegen in der Klasse |
| Freie Schlüsselwörter | ezkeyword (Schlüsselwörter) | flach, durch Kommas getrennt; Abruf nach Schlüsselwort mit fetch( 'content', 'keyword', ... ) |
| Ein Bild | ezimage (Bild) | über Bildvarianten skaliert; Alternativtext; siehe Bilder und Bildvarianten |
| Eine herunterladbare Datei | ezbinaryfile (Datei) | die Datei liegt im Speicherverzeichnis, außerhalb der Datenbank |
| Audio- oder Videodateien | ezmedia (Mediendatei) | |
| Ein Link zu einer anderen Website | ezurl (URL) | URL und Text; die Linkliste prüft Links (Links und URL-Aliase) |
| Eine E-Mail-Adresse | ezemail (E-Mail) | wird geprüft |
| Verweise auf andere Inhalte | ezobjectrelationlist (Objekt Vernüpfungsliste), ezobjectrelation (Objekt Verknüpfung) | siehe Relationen und Einbettungen |
| Eine kleine Wertetabelle | ezmatrix (Matrix) | Spalten werden in der Klasse festgelegt |
| Autoren als Namen und E-Mail-Adressen | ezauthor (Autoren) | |
| Ein Land | ezcountry (Land) | |
| Eine ISBN | ezisbn (ISBN) | |
| Eine fortlaufende Nummer | ezidentifier (Bezeichner) | Präfix, Suffix und Stellen je Klasse |
| Ein Benutzerkonto | ezuser (Benutzerkonto) | nur in Benutzerklassen |
| Preise und Produktoptionen | ezprice, ezmultiprice, ezoption, ezmultioption, ezmultioption2, ezrangeoption, ezproductcategory | für den eingebauten Shop (Der eingebaute Shop) |
| Einstellungen und Pakete aus Inhalten | ezinisetting, ezpackage | Sonderzwecke im Setup-Baum |
| Abonnement von Benachrichtigungen für einen Teilbaum | ezsubtreesubscription |
Das Template und das Bearbeitungsformular jedes Datentyps erklärt
Lektion 4.2: Datentypen und ihre Templates;
das Werteformat, das ein Import verwendet (fromString()), steht in
Import- und Exportwerkzeuge, Abschnitt 4.
Datentypen aus der Standarddistribution
Exponential 6 installiert über seine composer.json eine Reihe von Erweiterungen. Für Inhaltsmodelle zählen diese:
| Bedarf | Datentyp | Erweiterung |
|---|---|---|
| Hierarchische Tags, Synonyme, ein kontrolliertes Vokabular | eztags | se7enxweb/eztags |
| Ein Ort auf einer Karte | ezgmaplocation | se7enxweb/ezgmaplocation |
| Eine Sternebewertung durch Besucher | ezsrrating | se7enxweb/ezstarrating |
| Metadaten für Suchmaschinen (Titel, Schlüsselwörter, Beschreibung) | xrowmetadata | se7enxweb/xrowmetadata |
| Ein Link mit internem oder externem Ziel | ngenhancedlink | se7enxweb/exp_enhanced_link |
Auswahllisten mit mehr Optionen als ezselection | sckenhancedselection | se7enxweb/enhancedselection2 |
Eine Datei mit mehr Optionen als ezbinaryfile | enhancedezbinaryfile | se7enxweb/enhancedezbinaryfile |
| Spam-Schutz für Formulare | recaptcha, hcaptcha | se7enxweb/recaptcha, se7enxweb/hcaptcha |
Dieselbe Liste, ausgehend von Feldern anderer Systeme, steht in
Inhalte auf Exponential abbilden.
Prüfen Sie, ob eine Erweiterung auf Ihren Siteaccesses aktiv ist, bevor Sie ihren Datentyp verwenden
(./console exp:ini get site.ini/ExtensionSettings/ActiveExtensions --allow-root-user).
Entscheidungen, die sich schwer rückgängig machen lassen
- Textzeile oder Rich Text. Eine Überschrift, die später einen Link oder Kursivschrift braucht, braucht Rich Text.
Wählen Sie im Zweifel für einen Haupttext
ezxmltext, für einen Titelezstring. - Auswahlliste, Tags oder verknüpfte Objekte. Eine feste kurze Liste, die nur Sie ändern:
ezselection. Ein Vokabular, das Redakteure erweitern:eztags. Kategorien mit eigenen Seiten: verknüpfte Objekte oder Platzierungen. - Bildattribut oder Bildobjekt. Ein
ezimage-Attribut gehört zu einem Objekt. Ein Bild, das an mehreren Stellen verwendet wird oder das Redakteure einmal für alle Seiten austauschen, gehört in ein Bildobjekt in der Medienbibliothek, verknüpft oder eingebettet. - Einfache Relation oder Liste. Bevorzugen Sie
ezobjectrelationlistauch für ein einziges Ziel: Es schränkt die Klassen ein, hat einen Standardort für neue Ziele und kann später mehr aufnehmen. - Übersetzbar oder nicht. Ein Preis, eine E-Mail-Adresse oder ein Datum soll sich oft nicht je Sprache unterscheiden: Entfernen Sie das Häkchen bei übersetzbar, damit Übersetzer den Wert nicht kopieren müssen.
Datentypen, die Sie in neuen Modellen meiden sollten
| Datentyp | Warum | Stattdessen |
|---|---|---|
ezenum | ein alter Auswahl-Datentyp; der Kernel liefert bin/php/convertezenumtoezselection.php mit, um davon wegzukommen | ezselection |
ezobjectrelation | nur ein Ziel, weniger Optionen | ezobjectrelationlist |
| Viele kleine Textfelder für Absätze | Redakteure kämpfen mit dem Formular | ein ezxmltext-Feld |
Wann Sie einen eigenen Datentyp schreiben
Schreiben Sie einen nur, wenn der Wert eigene Speicherung, Prüfung und Bearbeitung hat, die kein vorhandener Datentyp und keine Kombination von Attributen abdeckt: ein Wert aus einem externen Dienst, ein strukturierter Wert mit eigenen Regeln. Versuchen Sie zuerst eine Kombination von Attributen, eine Unterklasse oder ein eigenes Tag in Rich Text. Ist ein Datentyp die Antwort, beschreibt das Buch den ganzen Weg: Datentypen und die Tutorials ein Datentyp von Hand und mit dem RAD-Assistenten.
Verwandte Seiten
- Inhaltsklassen und Attribute
- Ein Inhaltsmodell entwerfen
- Die eZDataType-API
- 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.