Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Inhaltsklassen und Attribute

Für CMS-Entwickler jede Eigenschaft einer Inhaltsklasse und eines Klassenattributs, was jede auf der Website ändert, und die Regeln für Bezeichner, Namensmuster, Behälter und das Ändern einer Klasse, die bereits Inhalte…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/cms-developers/content-classes-and-attributes.md

On this page

This page is a translation. Read the English original

Inhaltsklassen und Attribute

Diese Seite richtet sich an Entwickler, die die Inhaltstypen einer Website festlegen. Sie geht die Eigenschaften einer Klasse und ihrer Attribute einzeln durch und sagt, was jede für Redakteure, Templates, URLs und die Suche ändert. Die Klickfolge zum Anlegen einer Klasse steht unter Eine Inhaltsklasse anlegen.

Inhalt

  1. Eigenschaften der Klasse
  2. Eigenschaften der Attribute
  3. Bezeichner sind ein Vertrag
  4. Namensmuster
  5. Klassengruppen
  6. Eine Klasse ändern, die Inhalte hat
  7. Klassen unter Versionsverwaltung

Eigenschaften der Klasse

EigenschaftGespeichert alsWas sie ändert
Name, Beschreibungserialized_name_list, übersetzbarwas Redakteure im Menü zum Anlegen und in Listen sehen
Bezeichneridentifierwas Templates, Overrides, Fetch-Filter und Importe verwenden
Muster für den Objektnamencontentobject_nameden Namen jedes Objekts: im Baum, in Listen, in der Standard-URL
Muster für den URL-Aliasurl_alias_nameden URL-Teil jedes Knotens, wenn er vom Namen abweichen soll
Behälteris_containerob Objekte der Klasse Unterelemente haben dürfen
Standardsortierungsort_field, sort_orderdie Reihenfolge der Unterelemente neuer Knoten
Standardverfügbarkeit der Objektealways_availableob Objekte in Sprachen angezeigt werden, in die sie nicht übersetzt sind
Remote-IDremote_ideine stabile ID für die Klasse selbst, von Paketen verwendet

Die Spalten sind in kernel/classes/ezcontentclass.php festgelegt. Eine Klasse wird als temporäre Version bearbeitet und ersetzt die festgelegte Klasse erst, wenn Sie OK drücken; eine halbfertige Bearbeitung erreicht die Redakteure also nie.

Eigenschaften der Attribute

EigenschaftGespeichert alsWas sie ändert
Name, Beschreibungübersetzbardie Beschriftung und den Hilfetext im Bearbeitungsformular
Bezeichneridentifier$node.data_map.<identifier> in Templates, Schlüssel von attributes in PHP
Datentypdata_type_stringSpeicherung, Prüfung, Bearbeitungsformular, View-Template, Suche
Erforderlichis_requireddas Objekt kann ohne Wert nicht veröffentlicht werden
Durchsuchbaris_searchableob der Wert in den Suchindex aufgenommen wird
Übersetzbarcan_translateob jede Übersetzung ihren eigenen Wert hat oder alle den der Hauptsprache teilen
Informationssammleris_information_collectorBesucher füllen dieses Feld auf der Website aus, als Formular (Formulare und Informationssammlung)
Kategoriecategorydie Gruppe, in der das Feld beim Bearbeiten erscheint; content.ini [ClassAttributeSettings] CategoryList[] liefert content und meta mit
Positionplacementdie Reihenfolge der Felder im Bearbeitungsformular und in Schleifen über data_map

Die meisten Datentypen bringen eigene Einstellungen mit: eine Höchstlänge für ezstring, die erlaubten Klassen und den Standardort für ezobjectrelationlist, die Optionen von ezselection, die Zeilenzahl von eztext. Sie werden in den Datenfeldern des Klassenattributs gespeichert und bei jedem Datentyp beschrieben (Datentypen und ihre Templates).

Bezeichner sind ein Vertrag

Templates, Override-Regeln, Fetches, Importe, Pakete und die REST-Schnittstelle verweisen alle auf Klassen- und Attributbezeichner. Behandeln Sie sie wie eine öffentliche API:

  • Kleinbuchstaben, Ziffern und Unterstriche, englische Wörter, die sagen, was das Feld ist (title, intro, body, image, start_date);
  • derselbe Bezeichner für dieselbe Bedeutung in jeder Klasse, sodass ein Template-Teil das image eines Artikels, einer Veranstaltung und eines Produkts anzeigen kann;
  • benennen Sie nie einen Bezeichner um, den Code verwendet; benennen Sie stattdessen den Anzeigenamen um, das ist folgenlos;
  • versehen Sie die Bezeichner von Klassen Ihres Projekts mit einem Präfix, wenn sie mit mitgelieferten kollidieren könnten (exp_event statt eines allgemeinen Namens, den ein Seitenpaket schon verwendet).

Das Kapitel für Website-Bauer sagt dasselbe aus Sicht der Templates: Inhaltsklassen für Website-Bauer.

Namensmuster

Das Muster für den Objektnamen bildet den Namen aus Attributwerten. Jedes <identifier> wird durch den Text dieses Attributs ersetzt; <a|b> verwendet a oder b, wenn a leer ist (kernel/classes/eznamepatternresolver.php):

MusterErgebnis
<title>der Titel
<short_title|title>der Kurztitel, sonst der Titel
<first_name> <last_name>der volle Name einer Person

Aus dem Namen werden die URL-Aliase gebildet, sofern die Klasse kein eigenes Muster für den URL-Alias hat; ein gutes Muster ergibt also auch gute Adressen. Muss ein Name von Code berechnet werden, kann ein Muster eine PHP-Klasse als Resolver nennen (content.ini [NamePatternSettings] ResolverClasses[], Schnittstelle expNamePatternResolverInterface); siehe Namen, die eine PHP-Klasse bildet.

Klassengruppen

Klassen werden in Klassengruppen abgelegt (Content, Users, Media, Setup in einer neuen Installation). Gruppen ordnen nur die Klassenliste in der Administration und die Klassen, die in jedem ihrer Teile angeboten werden; sie ändern keine Berechtigungen. Klassengruppen erklärt die Seiten und wie Sie eine Gruppe sicher entfernen.

Eine Klasse ändern, die Inhalte hat

ÄnderungWirkung auf vorhandene Objekte
Ein Attribut hinzufügenjedes Objekt erhält das Attribut mit einem leeren oder Standardwert; ein erforderliches wird erst bei der nächsten Bearbeitung durchgesetzt
Ein Attribut entfernenseine Werte werden aus jedem Objekt und jeder Version entfernt; es gibt kein Rückgängig
Name, Beschreibung oder Kategorie ändernnur die Beschriftungen ändern sich
Einen Bezeichner änderngespeicherte Werte bleiben, aber jedes Template, jede Einstellung und jeder Import, der den alten Bezeichner verwendet hat, bricht
Den Datentyp ändernnicht angeboten: ein neues Attribut hinzufügen, die Werte mit einem Skript kopieren, das alte entfernen
Das Namensmuster ändernNamen werden neu gebildet, wenn Objekte erneut veröffentlicht werden
Objekte in eine andere Klasse überführennicht im Kernel; die Erweiterung expchangeclass erledigt das mit einer Attributzuordnung (Fallstudie: expchangeclass)

Bevor Sie eine Klasse auf einer Live-Website ändern, erstellen Sie eine Datenbanksicherung, probieren die Änderung an einer Kopie aus und prüfen die Templates, die die Klasse verwenden, mit grep -rn "data_map.<identifier>" extension/.

Klassen unter Versionsverwaltung

Eine in der Administration angelegte Klasse existiert nur in der Datenbank. Um sie in eine andere Installation zu bringen:

  • exportieren Sie sie in einem Paket (Klassenexport) und installieren Sie das Paket dort (Pakete);
  • oder schreiben Sie ein Skript, das sie anlegt: Der RAD-Assistent Content extension (/setup/contentextension) erzeugt eines (RAD-Werkzeuge).

Bewahren Sie das Ergebnis in jedem Fall in der Erweiterung Ihres Projekts auf, damit die nächste Installation aus Dateien gebaut wird und nicht von Hand. Seitenpakete und Installer zeigt, wie ganze Websites so gebaut werden.

Verwandte Seiten

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.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x