====== 17) Content Management System (CMS-System) ====== Ein CMS, ein **Content-Management-System**, dient zur **Verwaltung der Inhalte (Einpflege von Texten, Bildern, Videos und Daten)**. Ein WCMS (Web Content Management System) verwaltet Inhalte von einer oder auch mehrerer **Websites**. WCMS sind **mandantenfähig**, d.h. sie können mehrere Kunden (Mandanten) bedienen, ohne dass diese Einblick in die Benutzerverwaltung des anderen haben. In weiterer Folge, wird immer von einem WCMS ausgegangen, jedoch der Einfachheit halber wird immer der Begriff CMS verwendet. \\ \\ ===== Frontend & Backend eines CMS ===== Ein CMS wird meist in ein Frontend- und ein Backend-Bereich unterteilt. Das Frontend eines CMS (wörtlich übersetzt "Vorder-Ansicht") ist die Webseite, die ein Besucher angezeigt bekommt. {{:inf:inf7bi_201819:pasted:20190506-184417.png}} Das Backend eines CMS (wörtlich übersetzt "Hinter-Ansicht") ist ein geschützter Bereich, in dem die Administration des CMS stattfindet. Hier stellt das CMS nach einer Anmeldung alle Funktionen zur Verfügung, die der jeweilige Benutzer zum Verwalten der Webseite benötigt. Häufig können für unterschiedliche CMS-Benutzer auch unterschiedliche Zugriffsrechte festgelegt werden, z.B. der Designer auf die Templates des CMS, der Redakteur auf die Inhalte des CMS. ===== CMS-Architektur anhand von Joomla ====== {{:inf:inf8bi_201819_matura:pasted:20190506-190227.png}} ==== Datenbank ==== Alle Inhalte (Text, Menüs, Benutzer, ...) außer Bilddateien & Dokumente sind in einer Datenbank (z.B. MySQL) gespeichert. ==== Framework ==== Das Joomla-Framework (Rahmenstruktur/Programmiergerüst) ist ein modulares PHP-Framework und bietet eine Auswahl an vorgefertigten Funktionen und Bibliotheken, die einfach anzupassen bzw. leicht zu erweitern sind. ==== Extensions ==== Durch den modularen Aufbau des Joomla-Framework kann man dieses einfach mithilfe von Components, Modules, Plugins oder Templates erweitern. === Components === Komponenten sind die Anwendungen innerhalb von Joomla!. Unter einer Joomla! Komponente versteht man eigene Applikationen, die innerhalb von Joomla! laufen. Einige dieser Komponenten sind bereits in Joomla! integriert wie zum Beispiel das Artikelsystem zur Darstellung der Artikel oder eine einfache Weblinks-Verwaltung. \\ \\ Komponenten sind also Anwendungen zur Verarbeitung und Darstellung von Informationen. Diese Komponenten unterliegen dabei einer eigenen Administration, in der Sie Ihre Daten verwalten oder auch die Verarbeitungsweise von vom Besucher eingegeben Informationen bestimmen. \\ \\ Neben den bereits in Joomla! integrierten Komponenten findet man auf dem Markt eine Vielzahl kostenloser (das heißt lizenzfreier), aber auch einige kostenpflichtige Komponenten. Sehr bekannt sind Komponenten wie Foren, Gästebücher und Kommentarmöglichkeiten. Aber auch komplexe spezifische Anwendungen wie Kleinanzeigenmärkte, Buchungssysteme und Übersetzungstools für multilinguale Websites sind erhältlich. === Module === Unter Modulen bei Joomla! versteht man die Tools zur Anzeige von Informationen an verschiedenen Stellen auf der Seite. Diese Informationen bezieht Joomla! dabei in der Regel aus der Datenbank. Das heißt, sämtliche Anwendungen (Joomla! selbst, andere Komponenten), die ihre Daten in der Datenbank speichern, können abgefragt werden. Typische Beispiele sind das "wer ist online"-Modul, das die Anzahl der Besucher anzeigt oder das "latest news"-Modul, das die letzten Nachrichten kompakt in einer Liste anzeigt. Module können aber auch dafür genutzt werden, selbst definierten Inhalt anzuzeigen: beispielsweise ein einfaches Bild oder einen eigenen Text. Diese Module werden meist neben dem Hauptinhalt in einer Spalte angezeigt und lockern damit das Erscheinungsbild auf und liefern weitere Informationen. === Plugins === Plugins haben vielerlei Funktionen und arbeiten teilweise mit Komponenten zusammen. Der Editor ist beispielsweise ein Plugin, ebenso wie die Möglichkeit, Bilder einzubinden. Erweiterungen für alle drei Elemente, zum Beispiel umfangreichere Editoren oder erweiterte Sprachpakete, lassen sich zusätzlich installieren. === Templates === Unter Template versteht man nicht nur bei Joomla! den gestalterischen "Rahmen" der Website. Der Sinn eines Content Management Systems ist die Trennung von Inhalt und Design. In der Datenbank stehen nur die reinen Texte, das Template sorgt vor der Ausgabe auf dem Bildschirm dafür, dass diese - wie vom Designer festgelegt - "passend" angezeigt werden. Sinn und Zweck dieser Trennung liegt auf der Hand: Auch nicht mit der Web-Programmierung vertraute Nutzer können die Inhalte pflegen und müssen sich nicht um die Darstellung kümmern. Der Designer legt verschiedene Formatierungen fest, aus denen der Nutzer wählen kann (klein, groß, Überschrift, fett etc.), so dass diese auf der gesamten Website konsistent angezeigt werden. Natürlich ist ein solches Template noch mehr: Es bestimmt den generellen Aufbau der Seite, ist also auch für den Gesamteindruck Ihrer Website verantwortlich. Denn die besten Inhalte nutzen nichts, wenn diese aufgrund einer nicht durchdringbaren Struktur unauffindbar bleiben. Ebenso sorgt das Template für den stimmigen Transport Ihrer CI. ==== Website ==== Zum Schluss entsteht eine Webseite, mit der die Benutzer & Besucher interagieren können. ===== Vorteile ===== ====Dezentralisierte Wartung==== Ein gutes webbasiertes Content Management System funktioniert mit jedem gewöhnlichen Webbrowser (zum Beispiel Internet Explorer, Mozilla Firefox oder Opera). Sie benötigen also keine zusätzliche Software und können ohne Engpässe Ihre Internet-Präsentation warten und erweitern, wann und wo Sie wollen. ==== Trennung Inhalt & Gestaltung ==== Zum einen werden bei einem CMS die G**estaltung der Webseite (Layout & Design)** und die **Verwaltung der Inhalte getrennt** verwaltet. Dadurch muss man sich beim Einsatz eines CMS nicht bei Inhalten um das Layout kümmern und umgekehrt. Außerdem kann so **mit wenigen Klicks** im CMS das **Layout der kompletten Webseite geändert** werden. ====Für Autoren ohne technischen Background ==== Wer Textverarbeitung beherrscht, kann auch in einem modernen CMS System online Inhalte erstellen, Bilder veröffentlichen oder neue Produkte anlegen. Über ein modernes Content Management System können Sie ohne HTML-Kenntnisse Ihre Homepage pflegen. ==== Konfigurierbare Zugriffsbeschränkung==== Ein CMS System beinhaltet in der Regel eine eigene Benutzerverwaltung. Benutzern können Rollen und Berechtigungen zugewiesen werden, wodurch die unautorisierte Veränderung von Inhalten effektiv verhindert wird. ====Einhalten von Design-Vorgaben==== In einem CMS können Inhalte vom Design getrennt gespeichert werden. Folglich wird der gesamte Content aller Autoren in einem Design zentral ausgegeben. ====Automatische Navigations-Generierung==== Menüs können in CMS Lösungen aus den Datenbankinhalten automatisch erzeugt bzw. generiert werden. Hyperlinks werden nur dargestellt, wenn sie auf gültige Seiten verweisen. Wenn beispielsweise diese Seiten gelöscht werden, können auch die Hyperlinks automatisch ausgeblendet werden. ====Speicherung der Inhalte in einer Datenbank==== In einem guten CMS System werden die Inhalte in der zentraler Datenbank abgelegt. Eine zentrale Content-Speicherung bedeutet, dass Inhalte an verschiedenen Stellen wiederverwendet werden und für das jeweilige Medium (Webbrowser, Mobiltelefon/Wap, PDA, Print) adäquat formatiert werden können. ====Dynamische Inhalte==== Modulare Erweiterungen wie z.B. Foren, Umfragen, Shops, Anwendungen, Suchfunktionen und News-Management stehen als Module zum Einsatz bereit. ====Content just in time==== Die Publikation von Inhalten ist zeitgenau steuerbar. Inhalte können im Hintergrund vorbereitet und nur von berechtigten Usern in der sog. „hidden preview“ vorab eingesehen werden. {{:inf:inf7bi_201819:pasted:20190506-185637.png?400}} ===== Nachteile ===== ====Eingeschränkte Gestaltung der Website==== Durch die festgelegte Struktur eines CMS bestehen nicht vielen Freiräume was Widgets oder Features zur Integration in die Website betrifft. Es können nur verfügbare Features in die Website integriert werden. ====Abhängigkeit vom Dienstleister==== Entscheidet man sich für ein CMS, so ist man von der Aktualisierung und Service der Software vom jeweiligen Hersteller des Website-CMS abhängig. ==== Sicherheitsaspekt ==== Gerade **weitverbreitete Systeme (TYPO3, Joomla, Wordpress,...)** werden (genau wie bei den Betriebssystemen auch) natürlich **mit Vorliebe gehackt**. **Sicherheitslücken verbreiten sich schnell** in der Szene. Die vollständige Absicherung des Systems - zum Beispiel durch Ändern aller üblichen Installationspfade - kann sehr schnell sehr aufwändig werden. Allerdings sind bei den oben genannten Systemen auch die Entwickler sehr schnell mit der Erstellung von Patches. Es bedarf allerdings dann auch der entsprechenden Beobachtung der bekannten Foren und Mailinglisten. ====Geringere Performance ==== Da die Inhalte dynamisch beim Aufruf der Seite generiert werden, kann der Auslieferung der kompletten Seite zumeist nur langsamer als bei einer statischen HTML-Seite erfolgen. Gute CMS-Systeme bieten hier allerdings geeignete Caching-Lösungen (Zwischenspeicher) an, die diesen Nachteil wieder ausgleichen. ====Mehr Funktionalität als benötigt==== Ein CMS muss als Gesamtsystem angesehen werden, in dem sich viele Programmteile bedingen oder voneinander abhängen. Will man das System um nicht benötigte Funktionionen reduzieren kann es häufig zu unerwünschten Nebenwirkungen kommen. ====Aufwendigere Backups==== Genügt bei statischen Seiten meist ein einfaches Kopieren der Inhalte per FTP, so ist ein Backup eines CMS aufwändiger. Hier muss zusätzlich die Datenbank gesichert werden, sowie eventuell auch Systemeinstellungen des Servers. Auch das Rückspielen von Backups im Falles eines Datenverlustes sollte in regelmäßigen Abständen getestet werden. ===== Verbreitete CMS-Systeme ===== ==== WordPress ==== {{ https://i2.wp.com/www.hochmairmedia.at/wp-content/uploads/2017/03/wordpress-logo-stacked-rgb.png?280|Wordpress}} Ursprünglich ein reines Blogsystem ist es heute mit über 70 Mio. Installationen das am weitesten verbreitete CMS. ===Vorteile=== * Installations- und Einrichtungsaufwand überschaubar * Riesige Auswahl an kostenlosen bzw. -günstigen Designs * Vielfältige Erweiterungsmöglichkeiten durch Plugins * Ideal für SEO-Maßnahmen (sehr gute Tools: z.B. YOAST) ===Nachteile=== * WordPress braucht jede Menge Systemressourcen * Ladegeschwindigkeit bei hohem Traffic oft langsam * Viele Updates, teilweise mit Sicherheitsrisiken ----- ====TYPO3==== {{ https://upload.wikimedia.org/wikipedia/commons/thumb/5/58/Logo_TYPO3.svg/2000px-Logo_TYPO3.svg.png?300|Typo3}} Content-Management-Systeme: Typo3-LogoDas „Open Source Flaggschiff“ mit mehr als 9 Mio. Installationen und 500.000+ Websites. ===Vorteile=== * Weitverbreitet, viele Experten und Entwickler * Viele Funktionen * Erheblich schneller als WordPress, auch bei hoher Besucherfrequenz ===Nachteile=== * Das Setup ist komplex und für den Laien ungeeignet * Auch bei Backend-Anpassungen sind profunde Kenntnisse im Administrationsbereich erforderlich ----- ====Joomla==== Content-Management-Systeme: Joomla-LogoIst schon lange auf dem Markt und hat mit 1,2 Mio.+ Downloads eine eingeschworene Fangemeinde. Durch einen Entwicklungsstopp vor ein paar Jahren ist Joomla ein wenig ins Hintertreffen geraten. Derzeit holt dieses CMS allerdings wieder mächtig auf. {{ https://docs.joomla.org/images/3/37/Joomla-3D-Vertical-logo-light-background-en.png|Joomla}} ===Vorteile=== * Installation und Einrichtung einfach und gut dokumentiert * Viele Erweiterungen und vorgefertigte Designs (ähnlich wie bei WordPress) ===Nachteile=== * Beliebtes Ziel von Hackern, nicht zuletzt aufgrund der vielen Erweiterungsmöglichkeiten (gilt übrigens auch für WordPress) * Beim Rollen- und Rechtemanagement gibt’s Luft nach oben => [[:inf:inf7bi_201819:2:2_01| 2.01) Joomla Installation]] ----- ====Drupal==== Content-Management-Systeme: Drupal-LogoDrupal ist ein Baukaustensystem mit einer riesigen Auswahl an Features. Obwohl es unter die Content-Management-Systeme fällt, ist es eigentlich ein Content-Management-Framework (CMF). Drupal funktioniert im Grunde wie Lego – man kann alles damit bauen. {{ https://www.drupal.org/files/drupal%208%20logo%20inline%20CMYK%2072.png?300|Drupal}} ===Vorteile=== * Drupal verfügt über ein differenziertes Rollen- und Rechtesystem * Es hat jede Menge Funktionen, die als Baustein in das System integriert werden können * Das Backend ist voll individualisierbar ===Nachteile=== * Das Drupal-Setup ist vergleichsweise kompliziert * Eingriffe im Backend und am Server erfordern Routine -----