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

FAQ für CMS-Entwickler

Für CMS-Entwickler kurze Antworten auf die Fragen, die Entwickler in ihren ersten Wochen mit Exponential stellen. Sie behandeln das Modell, Templates, Caches, APIs, Multisite, die Produktfamilie und das Projekt, jeweils…

Download as PDF

Address: https://doc.exponential.earth/learninminutes/exphelp/viewer/help/cms-developers/cms-developer-faq.md

On this page

This page is a translation. Read the English original

FAQ für CMS-Entwickler

Diese Seite richtet sich an Entwickler, die neu bei Exponential sind und schnelle Antworten möchten. Jede Antwort ist kurz und verweist auf die Seite mit der ganzen Geschichte.

Warnung .htaccess bremst jede Anfrage. Sind .htaccess-Dateien erlaubt (AllowOverride alles außer None), geschweige denn genutzt, sucht Apache sie bei jeder Anfrage in jedem Verzeichnis des Pfads und liest und wertet sie aus, und die Ladezeiten der Seiten steigen drastisch (gemessen). Die einzige wirkliche Abhilfe ist, die Funktion für den virtuellen Host abzuschalten: AllowOverride None im virtuellen HTTPS-Host, und die Regeln in der Konfiguration des virtuellen Hosts selbst als mod_rewrite-Regeln. Das ist in Geschwindigkeitstests im Produktivbetrieb weit schneller und die Zeit für die Optimierung einer Produktivkonfiguration unbedingt wert. Stellen Sie sofort um: Übernehmen Sie die Regeln des Beispiels für einen virtuellen HTTPS-Host in Ihren virtuellen Host (mit dem statischen Cache auch staticcache_offload.conf), setzen Sie AllowOverride None, führen Sie apachectl configtest aus, laden Sie Apache neu und testen Sie die Website. Dieselben Regeln für andere Server: nginx, LiteSpeed, Caddy, IIS, Velocity (eingebaut); wohin Regeln für virtuelle Hosts in einem Control Panel gehören: Plesk, cPanel, DirectAdmin, ISPConfig. Unter LiteSpeed oder OpenLiteSpeed kann zusätzlich der Seiten-Cache des Servers anonyme Besucher und Crawler ohne PHP bedienen: Seiten-Caching mit LiteSpeed und OpenLiteSpeed.

Inhalt

  1. Das Modell
  2. Templates und Caches
  3. Code und APIs
  4. Websites und Server
  5. Das Projekt

Das Modell

Was ist der Unterschied zwischen einem Knoten und einem Objekt? Das Objekt ist der Inhalt, mit seinen Versionen und Übersetzungen; ein Knoten ist ein Platz dieses Objekts im Baum. Ein Objekt kann mehrere Knoten haben; einer davon ist der Hauptknoten. Eine Seitenansicht zeigt einen Knoten. Objekte, Knoten und Platzierungen.

Wo lege ich Inhaltstypen fest? Unter Setup > Klassen (/class/grouplist). Übertragen Sie sie in Paketen in andere Installationen. Eine Inhaltsklasse anlegen.

Kann ich den Typ eines Feldes später ändern? Nicht direkt: ein neues Attribut hinzufügen, die Werte mit einem Skript kopieren, das alte entfernen. Inhaltsklassen und Attribute.

Gibt es ein Feld zum Wiederholen ("Repeater")? Keinen verschachtelten Repeater-Datentyp. Verwenden Sie Unterobjekte einer kleinen Klasse, ezmatrix für kleine Tabellen oder Blöcke von Layouts. Inhalte auf Exponential abbilden.

Wie richte ich einen Bereich nur für Mitglieder ein? Eine Sektion auf dem Teilbaum und eine Rolle mit content/read auf dieser Sektion, der Mitgliedergruppe zugewiesen. Sektionen, Rollen und Richtlinien.

Templates und Caches

Meine Template-Änderung erscheint nicht. Warum? Ein Cache hält die alte Ausgabe oder Zuordnung: der Template-Override-Cache für neue Dateien und Regeln, der View-Cache oder der Antwort-Cache von Velocity. Caching für CMS-Entwickler und Warum erscheint meine Änderung nicht?.

Welches Template zeichnet diesen Teil der Seite? Schalten Sie auf einem Entwicklungsrechner ShowUsedTemplates und ShowTemplatePathComments ein. Templates und Overrides für CMS-Entwickler.

Kann ich PHP in Templates schreiben? Nein. Templates rufen Fetch-Funktionen und Operatoren auf; schreiben Sie einen Operator oder eine Fetch-Funktion in Ihrer Erweiterung, wenn Sie mehr brauchen. Erweiterungen, die Sie schreiben werden.

Templates oder der Layout-Editor? Templates für jede Seite einer Klasse; Layouts für Seiten, die Redakteure zusammenstellen. Beides verbindet sich über Template-Blöcke. Layouts für CMS-Entwickler.

Code und APIs

Wie lege ich Inhalte aus Code an? eZContentFunctions::createAndPublishObject() und updateAndPublishObject(), mit einer Remote-ID je Objekt. Inhalte aus PHP.

Gibt es eine REST-API? Ja: Die Erweiterung ezprestapi bedient Routen v1 und v2 für Knoten, Unterelemente und Felder, mit Anlegen und Entfernen in v2; Authentifizierung über persönlichen API-Schlüssel oder OAuth2. Aktualisierungen antworten vorerst mit 501. Die REST-API.

Gibt es GraphQL? Nicht in Exponential 6. Die Linie Exponential Platform auf dem Symfony-Stack hat es. Headless-Auslieferung.

Wohin gehören Hooks? Workflow-Events an Auslösern, Event-Listener in site.ini [Event] oder Template-Operatoren, je nach Bedarf. Workflows und Auslöser, Erweiterungspunkte auf einen Blick.

Kann ich eine CSV-Datei importieren? Ja: mit xrowextract, standardmäßig als Probelauf, oder mit dem einfachen ezcsvimport des Kernels. Inhalte importieren.

Websites und Server

Kann eine Installation mehrere Websites betreiben? Ja, über Siteaccesses, die eine Datenbank und einen Baum teilen. Siteaccesses und Multisite.

Welchen Webserver sollte ich verwenden? Exponential Velocity ist die empfohlene Engine; FrankenPHP ist die produktionsreife Alternative; Apache oder nginx mit PHP-FPM funktionieren ebenfalls. Eine Website bereitstellen.

Welches PHP und welche Datenbanken? PHP 8.0 bis 8.5 (PHP 7.4 ohne Support nutzbar) laut composer.json im Hauptverzeichnis. Datenbanken in der Reihenfolge der Präferenz des Projekts: SQLite 3, PostgreSQL, MongoDB, MariaDB, Oracle, MySQL. Datenbankunterstützung, Anforderungen.

Wie lege ich .htaccess und config.php an? ./console exp:setup:htaccess --apply kopiert .htaccess_root (mit --static: .htaccess_root_static), und ./console exp:setup:config --apply kopiert config.php-RECOMMENDED. Ohne --apply zeigen sie nur, was sie tun würden, und eine vorhandene, abweichende Datei wird als Diff gezeigt und behalten, solange Sie nicht --force angeben. .htaccess und config.php von der Konsole aus einrichten.

Wie ändere ich eine Einstellung in config.php ohne Editor? ./console exp:config:set EZP_INI_FILEMTIME_CHECK false --apply: Die Datei wird gesichert, mit php -l geprüft und in einem Schritt geschrieben. exp:config:list zeigt jede dokumentierte Einstellung, exp:config:get <NAME> einen Wert, und exp:config:unset <NAME> --apply kommentiert sie wieder aus. .htaccess und config.php von der Konsole aus einrichten.

Wie starte ich ein Projekt schnell? exp:install mit dem Standardpaket sevenx_multisite auf SQLite, dann Ihre eigene Erweiterung. Entwicklungsumgebung.

Das Projekt

Wer führt Exponential? 7x, das Unternehmen, das es führt, und die Exponential Foundation, die gemeinnützige Organisation. Exponential steht nicht in Verbindung mit eZ Systems oder Ibexa. Wer ist 7x?, Wer ist die Exponential Foundation?.

Wie ist die Geschichte? Exponential führt den Code eines Produkts fort, das sein Hersteller nach fast 18 Jahren eingestellt hat; 7x veröffentlicht die Releases 6.0.x seit 2024. Exponential für CMS-Entwickler.

Welche Lizenz? Der Kernel steht unter GPL 2.0 oder später (composer.json im Hauptverzeichnis); diese Dokumentation ist frei unter der GNU FDL 1.3. Freie Dokumentation.

Wo frage ich nach? Die Gemeinschaft fragen.

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