# OpenCms

OpenCms ist ein in Java und XML realisiertes Content-Management-System (CMS) für die Gestaltung und Bearbeitung von Websites. Das aus Open-Source-Komponenten aufgebaute System kann in einer Vielzahl von verschiedenen Infrastrukturen betrieben werden. Es wird als Freie Software unter der LGPL veröffentlicht. Seit der Erstveröffentlichung im Februar 2000 erfolgt eine kontinuierliche Weiterentwicklung durch die Firma Alkacon Software GmbH und der OpenCms-Community.

## Verwendung

OpenCms wird bei einer Vielzahl von Unternehmen aus verschiedenen Branchen für die Verwaltung von Websites und/oder Intranets eingesetzt. Eine große Zahl von Dienstleistern bieten zum Teil auch kommerzielle Unterstützung und Support-Verträge für OpenCms an.

## Bedienung

Die Bedienung von OpenCms erfolgt über einen beliebigen Webbrowser. Der Redakteur arbeitet in OpenCms direkt auf der angezeigten Webseite, eventuell notwendige Dialoge werden dynamisch darüber eingeblendet. Inhalte auf einer Seite können mit Drag and Drop modifiziert werden. OpenCms bietet weiterhin die Möglichkeit, mittels des sogenannten Inline Editing Texte direkt auf der Webseite zu bearbeiten. Dabei ist ein nahtloser Wechsel in einen formularbasierten Editor für den gleichen Inhalt jederzeit möglich. In der Regel können Redakteure nach einer kurzen Einweisung in OpenCms eigenständig Inhalte bearbeiten.
Die Struktur einer OpenCms Website wird über den Sitemap-Editor verwaltet, mit dem sich neue Seiten anlegen bzw. vorhandene Seiten in der Navigation umstellen lassen. Inhalte werden in Galerien abgelegt und können auf verschiedenen Seiten oder Websites wiederverwendet werden. Weiterhin bietet OpenCms noch einen speziellen Backendmodus (Workplace) für administrative Aufgaben wie z. B. die Benutzerverwaltung. Ab der Version 9.5 ermöglicht OpenCms außerdem die Erstellung von Seitenvorlagen (Templates) ohne Programmierung.

## Aufbau

OpenCms läuft auf der Java-Plattform als Servlet. Es baut auf einer Reihe von Open Source Komponenten auf, viele davon stammen von der Apache Foundation. Das Benutzerinterface wurde mit Vaadin und dem Google Web Toolkit entwickelt. Inhalte werden in OpenCms in einem datenbankbasierten Repository abgelegt, wobei MariaDB, MySQL, PostgreSQL, HSQLDB, Oracle, MSSQL und DB2 direkt unterstützt werden. Der Zugriff darauf erfolgt über CMIS, WebDAV, eine SMB Netzwerkfreigabe, sowie das eigene Web-Interface. Text-Inhalte in OpenCms werden über ein XML Schema definiert. Das Benutzerinterface für Redakteure erstellt XML-Dateien aus diesen Schemas, welche im Repository abgelegt werden. Ein Template-Mechanismus basierend auf JavaServer Pages erzeugt dann Webseiten auf der Basis des XML.

## Erweiterungen

OpenCms lässt sich über sogenannte Module mit zusätzlichen Funktionen erweitern. Es stehen Module für spezielle Templates, dynamische Funktionen und Ähnliches bereit. Ein Großteil der Module steht kostenfrei zur Verfügung. Durch die Module kann OpenCms universell eingesetzt werden und so sind technische Erweiterungen, die der Entwicklung auf diversen Plattformen oder Technologien, wie Maven, IntelliJ oder NetBeans dienen ebenso verfügbar wie die Möglichkeit des inhaltlichen Ausbaus über Galerie- oder Shop-Plugins.

## Versionen

OpenCms wird seit dem Jahr 2000 kontinuierlich weiterentwickelt. Aktuell wird alle 6 Monate, im April und Oktober, eine neue Version veröffentlicht. Die Versionsverwaltung des Quelltexts von OpenCms erfolgt seit Juli 2011 mittels Git auf GitHub, davor in CVS.
Nachfolgend eine Übersicht über die bisher veröffentlichten Hauptversionen:
| Version | Veröffentlichung | Wichtigste neue Funktionen |
| Ältere Version; nicht mehr unterstützt: 4.0 | 24.02.2000 | Online / Offline Workflow, WYSIWYG-Editor für Webseiten, Explorer, Benutzermanagemenet |
| Ältere Version; nicht mehr unterstützt: 5.0 | 05.05.2002 | Seitentemplates in JSP mit eigener <cms:> Tag-Library, Erweitertes Caching und statischer Export von Webseiten |
| Ältere Version; nicht mehr unterstützt: 5.3 | 11.12.2003 | Integrierte Volltextsuche mit Lucene, Direktes bearbeiten von angezeigten Webseiten |
| Ältere Version; nicht mehr unterstützt: 6.0 | 30.06.2005 | Neue Workplace-Benutzeroberfläche, Erstellen von XML Inhalten basierend auf XSD, Verwaltung mehrerer Websites |
| Ältere Version; nicht mehr unterstützt: 6.2 | 31.03.2006 | Integrierte Bildskalierung, Vergleich von Dokumentenversionen |
| Ältere Version; nicht mehr unterstützt: 7.0 | 04.07.2007 | WebDAV Unterstützung, Automatisches Linkmanagement, Zuordnung von Kategorien für beliebige Inhalte |
| Ältere Version; nicht mehr unterstützt: 7.5 | 15.06.2009 | Inhalts-Galerien, Zugriff auf Inhalte in JSP mittels Expression Language |
| Ältere Version; nicht mehr unterstützt: 8.0 | 08.05.2011 | Erweiterte Benutzeroberfläche mit Drag and Drop von Elementen im Seiten-Editor und Sitemap-Editor, Unterstützung für mobile Endgeräte |
| Ältere Version; nicht mehr unterstützt: 8.5 | 24.09.2012 | „Inline“ Editor für Webseiten, Integration der Solr Suchmaschine, CMIS Unterstützung, Suchmaschinenoptimierungsfunktionen |
| Ältere Version; noch unterstützt: 9.0 | 08.11.2013 | Unterstützung für unterschiedliche Endgeräte, Zugriff auf OpenCms Repository über ein SMB/CIFS Netzlaufwerk, Site Management Tool, erstes Demo Template basierend auf Bootstrap |
| Ältere Version; noch unterstützt: 9.5 | 03.11.2014 | Template- und Layout-Erstellung per Drag&Drop mit Nested Containern, User generated Content, PDF-Generierung, Erweiterte Rollen für Editoren, integrierte Rechtschreibprüfung im WYSIWYG-Editor, Verwalten von Galerien, Kategorien und Templates im Sitemap-Editor |
| Ältere Version; noch unterstützt: 10.0 | 23.03.2016 | Überarbeitete Verwaltungs-Oberfläche, neues Apollo-Template, neuer Datei-Explorer, Identicons für User, direktes Commit von geänderten Templates nach Git, Drag&Drop von Bildern, vereinfachte Solr basierte Inhaltssuche |
| Ältere Version; noch unterstützt: 10.5 | 15.02.2017 | Lokalisierungs-Werkzeuge zum direkten Vergleich übersetzter Sites Seite-an-Seite, Asset Verbindung erlaubt die native Integration von externen Daten im Editor, Verwendung von Font-Icons in der Benutzeroberfläche |
| Ältere Version; noch unterstützt: 11.0 | 30.04.2019 | Überarbeitetes User Interface, „Meta Mappings“ für SEO, neues Mercury-Template, vereinfachtes Erzeugen von Inhalts-Listen durch vordefinierte Solr-Abfragen, Lesezeichen im Explorer, neue Apps für die Verwaltung von Ressource-Typen und Sessions. |
| Ältere Version; noch unterstützt: 12.0 | 12.10.2021 | Headless JSON API für REST Abfragen auf Inhalte, stark verbessertes Mercury Template, Template Varianten, aktualisierte WebDAV Implementation. |
| Ältere Version; noch unterstützt: 13.0 | 13.04.2022 | Neues Plugin-System, Suche nach Geokoordinaten, Erweiterungen für Template Varianten, verbessertes Mercury Template. |
| Ältere Version; noch unterstützt: 14.0 | 11.10.2022 | XML Schema Versionierung mit automatischem Neuschreiben der Inhalte, Zwei-Faktor-Authentifizierung (2FA) im Benutzer Login, Quellcode Widget für mehrzeilige Eingabefelder, Mercury Template auf Bootstrap 5.2 aktualisiert. |
| Ältere Version; noch unterstützt: 15.0 | 25.04.2023 | Rollenbasierte Beschränkung für Änderungen der Sitemap Konfiguration, Editor zur Modifikation von Sitemap Attributen für alle Redakteure, neue App „Abfrage Personendaten“ findet personenbezogeneDaten im VFS, verbessertes Mercury Template. |
| Ältere Version; noch unterstützt: 16.0 | 02.10.2023 | Neue App „Unbenutzte Inhalte“ zum auffinden und löschen von nicht mehr verwendeten Inhalten, individuelle Detailseiten für Kategorien, zurücksetzen des Passworts für alle Redakteure erzwingen, verbessertes Mercury Template. |
| Ältere Version; noch unterstützt: 17.0 | 09.04.2024 | Neue App „Datumsuche“, exportieren ausgewählter Websites zur Archivierung, verbergen von „sensiblen“ Inhalten im Offline-Projekt, Unterstützung für Java LTS 17 und 21, verbessertes Mercury Template. |
| Aktuelle Version: 18.0 | 08.10.2024 | Neuer „Element platzieren“-Modus im Seiteneditor, wiederverwendeter Inhalt wird nun deutlich gekennzeichnet, automatische typografische Korrektur von Anführungszeichen, verbessertes Mercury Template. |
| Legende:Ältere Version; nicht mehr unterstütztÄltere Version; noch unterstütztAktuelle VersionAktuelle VorabversionZukünftige Version |||