Die bisher vorgestellten Content-Objekte reichen als Container für die Inhalte weitgehend aus. Für spezielle, erweiterte Anforderungen kann der Anwender sich eigene zusätzliche Objekttypen definieren oder bestehende Objekte modifizieren. Mit ZMS ist das besonders einfach, weil man die Objekte mit einem grafischen Interface konstruieren kann. Mit ZMS werden diverse Zusatz-Objekte ausgeliefert (Wiki, Forum, Newsletter etc.) und es zahlreiche Angebote von der ZMS-Homepage. So existiert ein großer Pool von Objektdefinitionen, die entweder direkt zum Einsatz kommen oder als Vorlage für eigene Konstrukte dienen können.
Hinsichtlich der Handhabung verhalten sich Spezielle Objekte genauso wie Standardobjekte, d.h. man kann sie über das Aktionsmenü einfügen, löschen, kopieren, sowie die Aktivität und den Publikationszeitraum definieren. Über das Konfigurationsmenü „Content-Objekte“ lässt sich für jede Objektklasse per Checkbox-Klick bestimmen, ob das Objekt prinzipiell im Aktionsmenu erscheint (s. folgendes Bild). Auf diese Art kann man z.B. in Arbeit befindliche Objektdefinitionen für den Redakteur bei Bedarf ausblenden.
Die Objekt-Konfiguration erlaubt eine beliebige Folge von Attribut-Typen; dabei handelt es sich um sog. Primitives, Komplexe-Typen oder Meta-Attribute. Primitives sind einfache Datentypen (wie Zeichenkette oder Zahl), die keine Element-Hierarchie bedingen. Komplexe-Typen sind alle bereits definierten Objektklassen-Defintionen (d.h. man kann Objekt-Definitionen schachteln) und Meta-Attribute sind die im gesonderten Meta-Attribute definierten Elementtypen. Desweiteren ist es möglich, bestimmte Zope-Objekte in die eigene Objekt-Definition zu integrierten (es handelt sich um ZSQL-Methoden, DTML-Methoden und Python-Scripte. Folgende Primitives stehen zur Wahl:
- amount: Float (Währung)
- autocomplete: Select (JS-Autocomplete)
- boolean: Checkbox
- color: Farb-Selektor (auf Basis konventionell benamter CSS-Elemente)
- constant: Vorgabewert
- date: Datum-Angabe (mit Datepicker)
- datetime: Zeitangabe
- delimiter: GUI-Separartor
- dialog: Textfeld mit Popup-Window für die Werteauswahl (erfordert browse-Methode)
- dictionary: Datensoeicher vom Dictionary-Typ, kein GUI
- file: Datei-Uploader
- float: Eingabefeld für Kommazahlen
- hint: GUI-Separator mit Hinweis-Text oder JS-Code
- identifier: von ZMS automatisch gefülltes ID-Feld
- image: Bild-Uploader
- int: Eingabefeld für ganze Zahlen
- interface: Frei programmierbares GUI-Element
- list: Datenspeicher vom Listen-Typ, kein GUI
- method: Attribut-Methode (DTML-Code)
- multiautocomplete: Mehrfachauswahl mit Autocomplete
- multiselect: Mehrfachauswahl
- password: Passwort-Eingabe (versteckte Anzeige)
- resource: Asset (z.B. Button)
- richtext: Texteingabe-Feld mit Formatierungsoptionen
- select: Einfach-Auswahliste
- string: Eingabefeld für Zeichenkettten
- text: Einfaches Texteingabe-Feld ohne Formatierungsoptionen
- time: Eingabefeld für Zeitangaben
- url: Eingabefeld mit URL-Selector (zur Linkauswahl)
- xml: Datenspeicher für das XML-Format