Joomla! 3 (eBook)

Professionelle Webentwicklung. Aktuell zu Version 3.7
eBook Download: PDF | EPUB
2017 | 2., aktualisierte und erweiterte Auflage
636 Seiten
Carl Hanser Verlag GmbH & Co. KG
978-3-446-45629-7 (ISBN)

Lese- und Medienproben

Joomla! 3 - David Jardin, Elisa Foltyn
Systemvoraussetzungen
Systemvoraussetzungen
34,99 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen

Dieses Praxisbuch bietet Ihnen einen Komplett-Einstieg in das Open Source Content Management System Joomla! 3.7. Von den Grundlagen bis zu fortgeschrittenen Techniken erfahren Sie alles, was für die tägliche Arbeit relevant ist.

Neben einer Einführung in die grundlegenden Strukturen von Joomla! liegt der Fokus des Buches auf Themen, die insbesondere beim professionellen Einsatz von Joomla! eine Rolle spielen. Dies alles ist garniert mit zahlreichen Tipps und Tricks, mit Beispielen und Best Practices vom Anfänger bis zum Entwickler.

Nach der Lektüre gehören Sie zu den Profis, die wissen, wie sie die Möglichkeiten von Joomla! ganz und gar ausschöpfen und das CMS für die Realisierung professioneller Webanwendungen nutzen und Lösungen damit umsetzen können.

Aus dem Inhalt: Umfassende Einführung in das CMS // Rechteverwaltung // Suchmaschinenoptimierung // Joomla!-Erweiterungen programmieren // Mehrsprachigkeit // Vom Shop-System bis zur Community-Lösung // Design-Patterns, Plug-Ins & CLI-Applikationen // Joomla Custom Fields // CCK-Systeme (Seblod) // Sicherheit; Update und Migration // Entwickeln Sie ein komplettes Template im Template-Workshop // Erweiterungsentwicklung und Rapid Prototyping mit Framework on Framework // Crashkurs Unit-Testing für Joomla-Erweiterungen.

David Jardin, Inhaber der Firma djumla, ist Webentwickler, Joomla-Spezialist und eine der bekanntesten Persönlichkeiten in der deutschen Joomla!-Szene. Er ist aktiver Core-Contributor.Elisa Foltyn ist Mediendesignerin und im Bereich Webdesign/Programmierung auf Joomla! spezialisiert. Mit ihrer Firma coolcat-creations setzt sie sowohl Print- als auch Webprojekte um.

Inhalt 6
1 Einleitung 18
2 Über Joomla! 20
2.1 Content-Management-Systeme 20
2.2 Geschichte 21
2.3 Organisation 21
2.4 Release-Strategie 24
3 Einrichten der Arbeitsumgebung 26
3.1 Lokaler Webserver 26
3.1.1 Windows 27
3.1.2 Linux 29
3.1.3 Mac OS X 32
3.1.4 Vagrant 35
3.2 Entwicklungstools 36
3.2.1 Texteditor 37
3.2.1.1 Windows: Notepad++ 37
3.2.1.2 Alle Systeme: Sublime Text 37
3.2.2 Entwicklungsumgebung 38
3.2.2.1 Eclipse 38
3.2.2.2 PhpStorm 39
3.3 Wahl des Browsers 40
3.3.1 Nutzung der Chrome-Entwicklertools 41
3.4 FTP-Client 45
3.5 Passwort-Manager 46
4 Installation 48
4.1 Installation in der lokalen Umgebung 48
4.1.1 Sonderfall 1: der FTP-Modus 57
4.1.2 Sonderfall 2: mehrsprachige Installation 59
4.2 Installation auf dem Webspace des Hosters 61
4.3 Erste Handgriffe nach der Installation 62
4.3.1 Anpassung der robots.txt 62
4.3.2 Leeren des Verzeichnisses/images 63
5 Grundlegende Begriffe und Architektur 66
5.1 Grundlegende Begriffe 66
5.1.1 Backend/Frontend 66
5.1.2 Komponenten, Module, Plug-ins und Templates 67
5.1.3 Beiträge, Kategorien, Menüs 68
5.2 Architektur 69
5.2.1 Joomla!-Framework 70
5.2.2 Joomla!-CMS 70
5.2.3 Erweiterungen 71
6 Das Backend 72
6.1 Login 72
6.2 Grundaufbau und Kontrollzentrum 73
6.3 Allgemeine Konfiguration 75
6.4 Massenmail 82
6.5 Menü: Menüs und Inhalte 84
6.6 Medienverwaltung 84
6.7 Menü: Komponenten 88
6.8 Menü: Erweiterungen 89
6.9 Menü: Hilfe 90
7 Inhalte verwalten 92
7.1 Kategoriensystem anlegen 93
7.1.1 Kategorienübersicht 93
7.1.2 Kategorie anlegen 96
7.1.3 Anlegen einer untergeordneten Kategorie 100
7.1.4 Bestehende Kategorien ändern 101
7.1.5 Kategorien entfernen und wiederherstellen 103
7.1.6 Kategorien veröffentlichen und verstecken 104
7.1.7 Kategorie-Reihenfolge ändern 105
7.1.8 Freigeben von Kategorien 106
7.1.9 Wiederherstellen der Kategorienstruktur 107
7.1.10 Kategorienoptionen 108
7.1.11 Anwenden von Änderungen auf mehrere Kategorien 108
7.2 Inhalte erstellen 109
7.2.1 Beitragsübersicht 109
7.2.2 Neuen Beitrag anlegen 110
7.2.2.1 Der WYSIWYG-Editor TinyMCE 111
7.2.2.2 Bilder einfügen 119
7.2.2.3 Verlinkungen zu anderen Beiträgen einfügen 121
7.2.2.4 Seitenumbruch 123
7.2.2.5 Weiterlesen-Funktion 126
7.2.2.6 Module einfügen 127
7.2.2.7 WYSIWYG-Editor deaktivieren 128
7.2.2.8 Beitragsparameter 128
7.2.3 Allgemeine Optionen der Beitragskomponente 132
7.3 Haupteinträge 136
7.4 Versionierung 136
7.5 Verschlagwortung 138
7.5.1 Schlagworte anlegen 139
7.5.2 Schlagworte im Frontend 140
8 Navigationsstruktur anlegen 142
8.1 Das Menüsystem 142
8.1.1 Die Menübereiche 142
8.1.2 Die Menüeinträge 143
8.2 Menüeinträge anlegen 144
8.2.1 Menütypen 144
8.2.2 Menüeintrags-Parameter 148
8.2.3 Kategorienauflistungen 152
8.2.4 Kategorienblogs 155
8.3 Split-Navigationen anlegen 160
9 Das Template-System 162
9.1 Was ist ein Template? 162
9.1.1 Backend- und Frontend-Templates 163
9.1.2 Modulpositionen 163
9.2 Template-Übersicht 164
9.2.1 Template-Stile 165
9.2.2 Installierte Templates 165
9.3 Editieren der installierten Templates 166
9.4 Template-Stil wechseln 167
9.5 Template-Zuweisung 168
9.6 Parameter ändern 169
9.7 Manuelle Template-Anpassungen 170
9.8 Andere Templates nutzen 173
9.8.1 Template-Verzeichnisse 173
9.8.2 Template-Clubs 174
9.8.3 Installation 175
10 Joomla!-Erweiterungen 176
10.1 Integrierte Erweiterungen 176
10.1.1 Komponenten: Nutzung der Kontakt-Komponente 176
10.1.2 Komponenten: Nutzung des Suchindex 180
10.1.3 Module: Das RSS-Feed-Modul einbinden 181
10.1.3.1 Administrator-Module 188
10.1.4 Plug-ins 188
10.1.5 Sprachen 190
10.1.6 Templates 191
10.1.7 Bibliotheken 191
10.1.8 Überblick über die Standarderweiterungen 191
10.2 Erweiterungen verwalten 196
10.2.1 Erweiterungen finden 196
10.2.1.1 extensions.joomla.org 196
10.2.1.2 Checkliste für die Auswahl der passenden Erweiterung 199
10.2.1.3 Deutschsprachige Erweiterungsverzeichnisse 199
10.2.2 Erweiterungen installieren 200
10.2.2.1 Aus Webkatalog installieren 203
10.2.3 Erweiterungsmanager 205
10.2.3.1 Erweiterungen verwalten 205
10.2.3.2 Erweiterungen überprüfen 206
10.2.3.3 Erweiterungen aktualisieren 207
10.2.3.4 Datenbank 207
10.2.3.5 Warnungen 208
10.2.3.6 Sprachen installieren 209
10.2.3.7 Aktualisierungsquellen 210
11 Benutzer- und Rechteverwaltung 212
11.1 Benutzerverwaltung 212
11.2 Gruppen 214
11.3 Zugriffsebene 217
11.4 Berechtigungen 219
11.4.1 System-Berechtigungen 220
11.4.2 Komponenten-Berechtigungen 222
11.4.3 Kategorie-Berechtigungen 222
11.4.4 Eintragsberechtigungen 223
11.5 Parameter der Benutzerverwaltung 224
12 Overrides/Template Workshop 226
12.1 Overrides und Alternative Layouts 226
12.1.1 Einleitung 226
12.1.2 MVC 227
12.1.3 Ausgabe von Komponenten überschreiben 227
12.1.3.1 Struktur 227
12.1.3.2 Override erstellen 228
12.1.3.3 Alternatives Layout erstellen 229
12.1.3.4 Überblick über Joomla!-Komponenten 230
12.1.3.5 Auswahl der Alternativen Layouts im Backend 231
12.1.4 Menütypen für Alternative Layouts anlegen 234
12.1.4.1 Struktur 235
12.1.5 Ausgabe von Modulen überschreiben 237
12.1.5.1 Struktur 237
12.1.5.2 Overrides anlegen 237
12.1.5.3 Alternative Layouts anlegen 238
12.1.5.4 Auswahl im Backend 239
12.1.6 Modul Chrome 240
12.1.6.1 Aufruf 240
12.1.6.2 Definition 240
12.1.6.3 Eigenen Chrome anlegen 242
12.1.6.4 Verwendung Modul Overrides vs. Chrome Stile 243
12.1.7 Ausgabe von jLayouts überschreiben 243
12.1.7.1 Struktur 243
12.1.7.2 Override anlegen 244
12.1.7.3 Eigene jLayouts anlegen 244
12.1.8 Overrides über den Template-Manager erstellen 244
12.1.9 Ausgabe von Plug-ins überschreiben 245
12.1.9.1 Struktur 245
12.1.9.2 Overrides anlegen 245
12.1.10 Ausgabe der Paginierung überschreiben 246
12.1.11 Media-Dateien überschreiben 247
12.1.11.1 Der Media-Ordner 247
12.1.11.2 Skripte überschreiben 247
12.1.11.3 Bilder überschreiben 248
12.1.11.4 Stile überschreiben 249
12.1.11.5 Dateien außerhalb des Media-Ordners 249
12.1.12 Ausgabe von Sprachdateien überschreiben 250
12.2 Joomla!-Template-Workshop 254
12.2.1 Download der Beispieldateien 255
12.2.2 Aufbau eines Joomla!-Templates 258
12.2.3 Bearbeitung der templateDetails.xml 263
12.2.4 Basisangaben in der index.php 272
12.2.4.1 Joomla!-spezifische PHP-Anweisungen 272
12.2.4.2 Stylesheet-Dateien einbinden 273
12.2.4.3 Skript-Dateien einbinden 274
12.2.4.4 Head laden – Jdoc-Anweisung 277
12.2.4.5 Template-Parameter 278
12.2.5 Module in der index.php laden 283
12.2.5.1 Jdoc-Anweisung 283
12.2.5.2 Menü 283
12.2.5.3 Seitenheader 287
12.2.5.4 Teaser 293
12.2.5.5 Icon-Modul 296
12.2.5.6 Portfolio-Modul 302
12.2.5.7 Call-to-Action-Bereich 308
12.2.5.8 Kontaktbereich im Footer 309
12.2.6 Verweise korrigieren 313
12.2.7 Weitere Jdoc-Anweisungen 313
12.2.8 Inhaltsbereich/Komponente 314
12.3 Weitere Joomla!-Template-Dateien 320
12.3.1 component.php 320
12.3.2 offline.php 320
12.3.3 error.php 321
12.3.4 pagination.php 322
12.4 Übersicht Joomla!-Befehle 322
12.5 Template-Frameworks und Template-Generatoren 324
12.6 CSS-Frameworks 325
12.7 Taskrunner 326
12.8 Barrierefreiheit 327
12.9 Backend-Template 328
13 Suchmaschinenoptimierung 330
13.1 Meta-Daten 330
13.2 SEF URLs 333
13.2.1 URL-Rewriting 335
13.2.2 Das Duplicate-Content-Problem 337
13.3 Umleitungen 337
13.4 Erweiterungen 339
13.4.1 sh404SEF 339
13.4.2 OSMap 340
13.4.3 Easy Frontend SEO 340
14 Mehrsprachigkeit 342
14.1 Integrierte Mehrsprachigkeit 342
14.1.1 Prinzip 342
14.1.2 Aktivierung der Sprachen 343
14.1.3 Aktivierung des Plug-ins 343
14.1.4 Aktivierung des Moduls 345
14.1.5 Sprachzuweisung der Beiträge 347
14.1.6 Sprachzuweisung der Menüeinträge 348
14.1.7 Sprachzuweisung der Module 352
14.1.8 Sprachverknüpfungen 354
14.2 FaLang 356
14.2.1 Prinzip 356
15 Spezialisierte Erweiterungen 358
15.1 Shop-Systeme 358
15.1.1 VirtueMart 359
15.1.2 HikaShop 359
15.1.3 J2Store 360
15.1.4 JoomShopping 360
15.2 Formulare 360
15.2.1 RSForm Pro 361
15.2.2 FlexForms 361
15.3 Dokumentenmanagement 362
15.3.1 jDownloads 362
15.4 Kalender 363
15.4.1 JEvents 363
15.4.2 DPCalendar 363
15.5 Galerien 363
15.5.1 Komponente: PhocaGallery 363
15.5.2 Plug-in: Simple Image Gallery 364
15.6 Community-Lösungen 364
15.6.1 JomSocial 365
15.6.2 Community Builder 366
15.6.3 Kunena 366
16 Eigene Felder/SEBLOD® 368
16.1 Eigene Felder 368
16.1.1 Diese Joomla!-Komponenten unterstützen „Eigene Felder“ 368
16.1.2 Feldtypen 369
16.1.2.1 Gemeinsame Grundeinstellungen 369
16.1.2.2 Gemeinsame Feldoptionen 371
16.1.2.3 Beschreibung der einzelnen Feldtypen 373
16.1.3 Felder anlegen – so geht es! 376
16.1.3.1 Anlegen einer Feldgruppe 376
16.1.3.2 Neues Feld anlegen 377
16.1.3.3 Feld-Reihenfolge ändern 377
16.1.3.4 Mehrsprachigkeit 378
16.1.4 Override der Eingabefelder 378
16.1.5 Felder ausgeben – so geht es! 378
16.1.5.1 Automatische Anzeige 378
16.1.5.2 Benutzerprofil 379
16.1.5.3 Im Beitrag 380
16.1.5.4 Im Kontakt 383
16.1.5.5 Im Kontaktformular 384
16.1.5.6 Override der Feldausgabe 387
16.1.6 Zugriff und Berechtigungen für „Eigene Felder“ 388
16.1.7 Weitere Funktionen und ihre Grenzen 389
16.1.8 Beispielprojekt: Jobportal 390
16.1.8.1 Aufgabenstellung 390
16.1.8.2 Arbeitgeberinformationen 391
16.1.8.3 Stellenanzeigen 394
16.1.8.4 Bewerbungsformular 396
16.1.8.5 Frontend konfigurieren 397
16.1.8.6 Ausgabe im Frontend 399
16.2 SEBLOD® 405
16.2.1 Was ist SEBLOD®? 405
16.2.2 SEBLOD® installieren 405
16.2.3 Erste Orientierung 408
16.2.4 Globale Konfiguration 410
16.2.5 Der App-Ordner Manager 419
16.2.5.1 Struktur 419
16.2.5.2 Die eigene App 420
16.2.6 Formular- und Inhaltstypen 422
16.2.6.1 Orientierung 422
16.2.6.2 Formular- und Inhaltstyp erstellen 426
16.2.6.3 Formular- und Inhaltstypen im Frontend darstellen 427
16.2.7 Listen- und Suchtypen anlegen 427
16.2.7.1 Orientierung 427
16.2.7.2 Listen- und Suchtypen erstellen 432
16.2.7.3 Listen- und Suchtypen im Frontend darstellen 433
16.2.8 Felder hinzufügen 433
16.2.8.1 Vorhandene Eingabefelder hinzufügen 433
16.2.8.2 Eigene Felder hinzufügen 434
16.2.8.3 Ausgabefelder festlegen 438
16.2.8.4 Feld-Manager 438
16.2.9 Feldtypen/Feldgruppen 438
16.2.9.1 Auswahl 438
16.2.9.2 Button 441
16.2.9.3 Formular 441
16.2.9.4 HTML 443
16.2.9.5 Inhalt 444
16.2.9.6 Joomla!-Bibliothek (JForm) 445
16.2.9.7 Joomla! 447
16.2.9.8 Kollektion 447
16.2.9.9 Suche 447
16.2.9.10 Textbereich 448
16.2.9.11 Upload 448
16.2.9.12 Wähler 450
16.2.9.13 #Core 450
16.2.10 Feld-Zusatzoptionen 451
16.2.10.1 Beschriftung und Variation 451
16.2.10.2 Live + Live Wert 451
16.2.10.3 Erforderlich/Validierung + Stufe 452
16.2.10.4 Zugriffsebene und Beschränkung 453
16.2.10.5 Abhängige Status (+ Berechnung) 454
16.2.10.6 Markup + Markup-Klassen 456
16.2.10.7 Link + Typografie 457
16.2.10.8 Treffer + Stufen 459
16.2.10.9 Positionen 459
16.2.10.10 Der Zuweisen-Button 459
16.2.11 Templates 460
16.2.11.1 Templates installieren 461
16.2.11.2 Template-Overrides 461
16.2.11.3 Eigenes Template erstellen 465
16.2.12 Seiten-Manager (Joomla!-Multidomain) 466
16.2.13 SEBLOD® Module 471
16.2.14 Backend-Menü erstellen 471
16.2.15 SEBLOD® Erweiterungen 472
16.2.16 Beispielprojekt: Jobportal 473
16.2.16.1 App-Ordner anlegen 473
16.2.16.2 Arbeitgeberinformationen 473
16.2.16.3 Stellenanzeigen 479
16.2.16.4 Jobsuche konfigurieren 487
16.2.16.5 Bewerbungsformular anlegen 488
16.2.17 Weitere CCK 491
17 Eigene Erweiterungen 494
17.1 Die Joomla!-API 494
17.2 Das MVC-Pattern 495
17.3 Wichtige Klassen 496
17.3.1 JFactory 496
17.3.2 JDatabase 497
17.3.3 JDatabaseQuery 498
17.3.4 JInput 499
17.3.5 JDocument 500
17.3.6 JFile/JFolder 501
17.3.7 JControllerLegacy 502
17.3.7.1 JControllerAdmin 503
17.3.7.2 JControllerForm 503
17.3.8 JModelLegacy 503
17.3.8.1 JModelAdmin 503
17.3.8.2 JModelForm 504
17.3.9 JViewLegacy 504
17.3.10 JForm 504
17.3.10.1 Verfügbare Feldtypen 504
17.3.11 JLayout 507
17.3.12 Weitere Klassen in der Kurzübersicht 507
17.3.13 Zur Verfügung stehende Konstanten 508
17.4 Tutorial: Wir programmieren eine Komponente für Stellenanzeigen 508
17.4.1 Anlegen der Verzeichnisstruktur 509
17.4.2 Anlegen der XML-Definition 509
17.4.3 Anlegen des Installationsskripts 512
17.4.4 Anlegen der SQL-Dateien für Installation, Deinstallation und Update 515
17.4.5 Anlegen des MVC-Patterns im Backend 517
17.4.5.1 Dispatcher 517
17.4.5.2 Die Backend-Controller 519
17.4.5.3 Die Backend-Models 521
17.4.5.4 Das Backend-Formular 526
17.4.5.5 Anlegen der Table-Klasse 528
17.4.5.6 Anlegen der View für die Listenansicht 530
17.4.5.7 Anlegen des Konfigurationsdialogs 539
17.4.5.8 Anlegen der Helper-Klasse 540
17.4.6 Anlegen der Backend-Sprachdateien 541
17.4.7 Anlegen der benötigten Medien-Dateien 543
17.4.8 Anlegen des MVC-Patterns im Frontend 544
17.4.8.1 Anlegen des Dispatchers 544
17.4.8.2 Anlegen des Controllers 545
17.4.8.3 Anlegen des Models 545
17.4.8.4 Anlegen der View 547
17.4.9 Anlegen der Frontend-Sprachdateien 550
17.4.10 Installieren der fertigen Erweiterung 550
17.5 Plug-ins entwickeln 551
17.5.1 Grundprinzip 551
17.5.2 Beispiel-Plug-in 552
17.5.3 Verfügbare Plug-in-Events 553
17.6 CLI-Applikationen entwickeln 560
17.7 Das FOF-Framework 562
17.7.1 Zentrale Konzepte 563
17.7.2 Nachteile des FOF-Frameworks 564
17.7.3 Vorteile des Frameworks 564
18 Best Practices 566
18.1 Sinnvolle Erweiterungen im professionellen Umfeld 566
18.1.1 OSMap 566
18.1.2 JCE 569
18.1.2.1 Installation und Konfiguration 569
18.1.2.2 Kostenpflichtige Zusatz-Plug-ins 577
18.1.2.3 Nutzung 577
18.1.3 ACL Manager 581
18.1.4 Advanced Module Manager 584
18.1.5 Akeeba Backup 586
18.1.5.1 Nutzung von Cloud-Storage 588
18.2 Einstellungen 589
18.2.1 Erweiterungen verstecken 589
18.2.2 Administrationsgestaltung 590
18.3 Administrationsenüs 591
18.4 Management-Tools 593
18.5 Standard-Paket 594
18.6 Fortbildungsmöglichkeiten 594
18.6.1 Joomla!-Events 594
18.6.2 Zertifizierung 595
19 Übertragung Offline > Online
19.1 Die Auswahl des richtiges Hosters 596
19.1.1 Das „www-run“-Problem 597
19.2 Transfer mittels FTP und phpMyAdmin 601
19.3 Transfer mit Akeeba Backup 607
19.4 Fallstricke nach dem Transfer 611
19.5 Online-Checkliste 611
20 Performance-Optimierungen 612
20.1 Optimierung der Generierungszeit 615
20.1.1 MySQL Query Caching 615
20.1.2 Opcode-Caches für PHP 615
20.1.3 Integriertes Joomla!-Caching 616
20.1.3.1 Seiten-Caching 618
20.1.3.2 Modul- und Komponenten-Caching 618
20.1.3.3 Erweitertes Caching 619
20.1.3.4 Leeren des Caches 619
20.2 Optimierung des HTML-Codes 620
20.3 Optimierung der Auslieferung 621
20.3.1 Aktivierung der GZIP-Komprimierung 621
20.3.2 Content Delivery Networks 622
21 Sicherheit 624
21.1 Motivation der Angreifer 624
21.2 Angriffstypen und Gegenmaßnahmen 626
21.2.1 SQL Injections 626
21.2.2 Directory Traversal 628
21.2.3 Remote Code Execution 630
21.2.4 Cross-Site-Scripting 630
21.2.5 Cross-Site Request Forgery 632
21.3 Sicherheitsmaßnahmen 633
21.3.1 Zwei-Faktor-Authentifizierung 634
21.4 Wie erkenne ich einen Hack? 636
21.5 Was tun nach dem Hack? 636
22 Update und Migration 640
22.1 Migrationen: theoretischer Ablauf 640
22.2 Schritt 1: Kopie erstellen 641
22.3 Schritt 2: Erweiterungen prüfen 642
22.3.1 Sonderfall Templates 643
22.4 Schritt 3: Backup! 644
22.5 Schritt 4: Migration 644
22.6 Schritt 5: Übertragen der Seite 646
22.7 Migration eigener Erweiterungen 646
Index 648

2 Über Joomla!
2.1 Content-Management-Systeme

Am Anfang dieses Buchs sollten wir uns zunächst einmal mit folgender Frage beschäftigen: Was ist eigentlich ein Content-Management-System (kurz CMS)? Die deutsche Übersetzung „Inhaltsverwaltungssystem“ hilft uns ein wenig weiter: Ein CMS ist eine Software zur Erstellung, Bearbeitung und Verwaltung von Informationen, die aus simplen Texten, aber auch aus komplexen Multimediaelementen (Bilder, Videos, Dokumente etc.) bestehen können. Dabei ist wichtig, dass die entsprechenden Inhalte im Regelfall ohne Programmierkenntnisse eingepflegt werden können.

Obwohl auch sog. Document-Management-Systeme (z. B. Alfresco) oder Offline-CMS wie Jekyll im weitesten Sinne zu den Content-Management-Systemen gehören, bezieht sich der Begriff des CMS i. d. R. auf Web-Content-Management-Systeme, die ausschließlich als Webanwendungen arbeiten, also über den Webbrowser administriert werden.

Diese WCMS erlauben es mehreren Benutzern, gemeinschaftlich an den hinterlegten Informationen zu arbeiten, und sind medienneutral in ihrer Ausgabe. Medienneutral bedeutet dabei, dass die hinterlegten Informationen unabhängig vom Ausgabeformat (HTML, PDF, XLS) bzw. der Gestaltung der Ausgabe (einfaches Wechseln von Designs) hinterlegt sind und so aus einem „Inhaltspool“ verschiedene Arten von Dokumenten erzeugt werden können. Dies wird dadurch ermöglicht, dass die Inhalte erst beim Aufruf durch den Nutzer dynamisch in ihr finales Ausgabeformat gebracht werden. Das unterscheidet Web-CMS vom klassischen Vorgehen mit HTML-Editor und FTP-Programm, bei dem die einzelnen Inhalte statisch, also schon in ihrer endgültigen Form, auf dem Server hinterlegt sind.

Zu den bekanntesten Open-Source-CMS gehören das Blogsystem Wordpress, die Enterprise-Systeme Drupal und Typo3 sowie Joomla!.

2.2 Geschichte

Die Wurzeln von Joomla! liegen im CMS Mambo, das seit der Jahrtausendwende vom australischen Unternehmen Miro entwickelt und im Jahr 2002 als Open-Source-Software veröffentlicht wurde. Mambo entwickelte sich schnell zu einem sehr beliebten System und wurde so z. B. im Jahr 2004 von der Zeitschrift Linux User and Developer als „Best Linux or Open Source Software“ ausgezeichnet. Im August 2005 entschied sich Miro dazu, die Mambo Foundation, einen gemeinnützigen Verein, zu gründen, um das Mambo-Projekt von Miro zu lösen und so zu gewährleisten, dass die Weiterentwicklung unabhängig vom Schicksal der Firma erfolgen kann.

Einige Tage später kam es jedoch zum Bruch zwischen dem aus Freiwilligen bestehenden Entwicklerteam und Miro, woraufhin das gesamte Entwicklerteam das Mambo-Projekt verließ, um sich unter dem Namen „Open Source Matters“ neu zu gruppieren. Als Grund für diesen Schritt gab das Entwicklerteam an, dass die Mambo Foundation ohne Beteiligung der Community gegründet worden sei und Miro weiterhin eine starke Kontrollfunktion ausübe, die mit einem Open-Source-Projekt nicht vereinbar wäre – so ließ sich z. B. der Geschäftsführer von Miro zum Vorsitzenden der Foundation wählen.

Das Entwicklerteam entschloss sich daraufhin, einen eigenen Ableger von Mambo auf den Markt zu bringen, der im September 2005 unter dem Namen Joomla! in der Version 1.0 erschien. Joomla! leitet sich vom Suaheli-Wort „Jumla“ ab, das in der Übersetzung „Alle zusammen“ bedeutet. Joomla! 1.0 war zu diesem Zeitpunkt im Wesentlichen nur eine leicht fehlerbereinigte Version von Mambo 4.5.2.3, zog jedoch aufgrund des Wechsels des gesamten Entwicklerteams große Teile der Mambo-Community mit sich.

Nach der Veröffentlichung von Joomla! 1.0 und der Stabilisierung des Projekts entschloss sich das Entwicklerteam, den alten Code, der teilweise noch aus dem Jahr 2000 stammte, über Bord zu werfen und eine von Grund auf neu geschriebene Joomla!-Version 1.5 zu erstellen, die im Januar 2008 erschien und dem Projekt nochmals einen enormen Aufwind gab. In den aktuellen Versionen findet sich dadurch kein Code des Vorgängers Mambo mehr.

2.3 Organisation

Das Joomla!-Projekt ist in den letzten Jahren massiv gewachsen und musste dabei seine Strukturen mehrfach an die veränderten Anforderungen anpassen. Die aktuelle Organisationsstruktur befindet sich zum Zeitpunkt des Erscheinens dieses Buchs in einem Übergangsprozess, ist also noch nicht vollständig umgesetzt worden.

Die Grundstruktur des Projekts entspricht auf den ersten Blick der eines klassischen Unternehmens (siehe Bild 2.1).

Bild 2.1 Neue Organisationstruktur des Joomla!-Projekts

Basis des Projekts ist die juristische Person hinter Joomla!, nämlich die bereits erwähnte not-for-profit-Organisation „OpenSourceMatters Inc“ mit Sitz in New York.

OpenSourceMatters hat einen Vorstand, bestehend aus den Sonderrollen „Präsident/in“, „Vize-Präsident/in“, „Generalsekretär/in“ und „Schatzmeister/in“ sowie den Abteilungsleiter/innen der sieben Abteilungen, im Projektjargon als „Department Coordinator“ bezeichnet.

Derzeit sind die folgenden Abteilungen im Projekt vorgesehen:

  • Production: zuständig für die technische Entwicklung des eigenen Kernprodukts „Joomla! CMS“.

  • Legal: verteidigt die rechtlichen Interessen des Gesamtprojekts, insbesondere in Bezug auf die Marke „Joomla!“.

  • Marketing & Communication: koordiniert die interne und externe Kommunikation des Projekts und versucht die Verbreitung von Joomla! zu erhöhen.

  • Events: zuständig für alle Fragen rund um Veranstaltungen und Meetups.

  • Operations: kümmert sich um den Betrieb der Infrastruktur, den das Projekt benötigt, wie zum Beispiel die Website joomla.org.

  • Programs: betreut die verschiedenen Programme und Initiativen, an denen Joomla! beteiligt ist. Hierzu gehört zum Beispiel das „Google Summer of Code“-Programm oder das geplante Zertifizierungs-Programm für Joomla!-Administratoren und Dienstleister.

  • Local Communities: repräsentiert die lokalen Communities wie Usergroups oder nationale Vereine.

Jedes Department kann wiederum aus beliebig vielen Teams bestehen, die für jeweils einen bestimmten Aspekt zuständig sind. Im Department „Production“ könnte es hier z. B. ein Team für die Übersetzung von Joomla! in andere Sprachen geben, ein Team für die Entwicklung von Joomla! 4.x sowie ein Team für die Dokumentation. Die Anzahl der Teams unterliegt dabei keiner Begrenzung, sondern kann frei gewählt werden.

Auf der Ebene der Teams angekommen besteht jedes Team aus den Positionen „Teamleiter/in“ und „stellv. Teamleiter/in“ sowie einer beliebigen Anzahl von Teammitgliedern. Die Aufnahme in ein Team erfolgt über ein Bewerbungsverfahren, das die Teams individuell gestalten können. Ein Team wiederum wählt dann den Teamleiter sowie seinen Stellvertreter, die Teamleiter eines Departments wählen den Department Coordinator und alle Department Coordinators wählen die passenden Personen für die vier genannten Sonderposten auf Vorstandsebene.

Die Projektstruktur verfügt somit über einige bemerkenswerte Merkmale:

Absolut alle Mitarbeiter im Projekt, ganz egal auf welcher Ebene, arbeiten unbezahlt und ehrenamtlich.

Es gibt nicht „die Firma“ hinter dem Projekt, die die Entwicklung steuert, sondern die Richtungsfindung und Entwicklung erfolgt im Rahmen von demokratischen Prozessen.

Es gibt klare Prozesse für Abstimmungen, Teamgründungen und -auflösungen sowie die Aufnahme neuer Mitarbeiter.

An dieser Stelle sollte jedoch nicht verschwiegen werden, dass die neue Struktur in der Community nicht unumstritten ist. Die Abstimmung über den Wechsel zum neuen Aufbau ging denkbar knapp aus und der derzeit stattfindende Wechsel von der alten auf die neue Struktur ist massiv hinter dem aufgestellten Zeitplan. Kritiker äußern dabei vor allem die folgenden Kritikpunkte:

Die neue Struktur ist zu bürokratisch. Langatmige Prozesse verlangsamen die Entscheidungsfindung und nehmen allen Beteiligten die nötige Flexibilität.

In der neuen Struktur konzentriert sich zu viel „Macht“ auf einige wenige Menschen, nämlich den Vorstand von OpenSourceMatters. Ein System der gegenseitigen Prüfung von mehreren gleichberechtigten Instanzen, wie es in der alten Struktur der Fall war, fehlt.

Der Wechsel zur neuen Struktur würde das Projekt über Monate beschäftigen und lähmen.

Zum jetzigen Zeitpunkt (Februar 2017) ist noch nicht...

Erscheint lt. Verlag 15.1.2018
Verlagsort München
Sprache deutsch
Themenwelt Informatik Web / Internet Content Management Systeme
Schlagworte Best Practice • Content • Framework • Frontend • Grundlagen • Joomshopping • Menüstruktur • Onlineshop • Programmieren • Responsive Design • SEBLOD • Suchmaschinenoptimierung • Template
ISBN-10 3-446-45629-5 / 3446456295
ISBN-13 978-3-446-45629-7 / 9783446456297
Haben Sie eine Frage zum Produkt?
PDFPDF (Wasserzeichen)
Größe: 41,3 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.

Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

EPUBEPUB (Wasserzeichen)
Größe: 20,4 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belle­tristik und Sach­büchern. Der Fließ­text wird dynamisch an die Display- und Schrift­größe ange­passt. Auch für mobile Lese­geräte ist EPUB daher gut geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise

Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich