Joomla! 3 - Professionelle Webentwicklung. Aktuell zu Version 3.7

David Jardin, Elisa Foltyn

Joomla! 3

Professionelle Webentwicklung. Aktuell zu Version 3.7

2017

636 Seiten

Format: PDF, ePUB, Online Lesen

E-Book: €  34,99

E-Book kaufen

E-Book kaufen

ISBN: 9783446440883

 

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

596

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

 

© 2009-2024 ciando GmbH