PHPackages                             schachbulle/contao-figcaption-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. schachbulle/contao-figcaption-bundle

ActiveContao-bundle[Utility &amp; Helpers](/categories/utility)

schachbulle/contao-figcaption-bundle
====================================

Ersetzt in Bildunterschriften einen von Platzhaltern umklammerten Text, damit sich zum Beispiel der Fotograf gesondert auszeichnen lässt.

3.0.0(2w ago)029LGPL-3.0-or-laterPHPPHP ^8.1

Since Jun 9Pushed 2w ago1 watchersCompare

[ Source](https://github.com/Samson1964/contao-figcaption-bundle)[ Packagist](https://packagist.org/packages/schachbulle/contao-figcaption-bundle)[ Docs](https://github.com/Samson1964/contao-figcaption-bundle)[ RSS](/packages/schachbulle-contao-figcaption-bundle/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (10)Versions (9)Used By (0)

Bildunterschriften ersetzen für Contao
======================================

[](#bildunterschriften-ersetzen-für-contao)

Diese Erweiterung schneidet aus Bildunterschriften einen von Trennzeichen umklammerten Text heraus und setzt ihn – in eine frei wählbare HTML-Vorlage verpackt – als eigenen Block an den Anfang der Bildunterschrift. Damit lässt sich zum Beispiel der Fotograf oder eine Quellenangabe gesondert auszeichnen, ohne dass dafür ein eigenes Feld oder ein eigenes Template nötig wäre.

Die Bildunterschrift wird dabei so gepflegt, wie sie sich am natürlichsten schreibt – die Quellenangabe steht mitten im Satz und wird von der Erweiterung automatisch herausgelöst.

- **Voraussetzungen:** Contao 4.13 LTS oder Contao 5, PHP 8.1 oder neuer
- **Lizenz:** LGPL-3.0-or-later

Installation
------------

[](#installation)

Über den Contao Manager nach `contao-figcaption-bundle` suchen und installieren, oder auf der Kommandozeile:

```
composer require schachbulle/contao-figcaption-bundle
```

Anschließend den Contao-Cache leeren (Contao Manager → Wartung → Anwendungs-Cache neu aufbauen, oder `vendor/bin/contao-console cache:clear`). Eine Datenbank-Migration ist nicht nötig, die Erweiterung legt keine Tabellen an.

Einstellungen
-------------

[](#einstellungen)

Die Erweiterung wird im Backend unter **System → Einstellungen** im Abschnitt *Bildunterschriften*konfiguriert:

[![Einstellungen im Contao-Backend](docs/bildunterschriften.jpg)](docs/bildunterschriften.jpg)

EinstellungBedeutungVoreinstellung**Ersetzung aktivieren**Schaltet die Erweiterung global ein oder aus. Ist der Haken nicht gesetzt, bleiben alle Bildunterschriften unverändert – auch die bereits gepflegten Trennzeichen bleiben dann sichtbar im Text stehen.aktiv**Start-Trennzeichen**Zeichen oder Zeichenfolge, an der die Quellenangabe beginnt.`[`**Ende-Trennzeichen**Zeichen oder Zeichenfolge, an der die Quellenangabe endet.`]`**Ersetzen durch**HTML-Vorlage für die Ausgabe. Der Platzhalter `%s` wird durch den Text zwischen den Trennzeichen ersetzt.`%s`**Position der Quellenangabe**Ob die Quellenangabe in der Bildunterschrift bleibt oder aus ihr herausgelöst und direkt hinter das Bild gesetzt wird – siehe [Position der Quellenangabe](#position-der-quellenangabe).In der BildunterschriftDie vier unteren Felder erscheinen erst, wenn *Ersetzung aktivieren* angehakt ist. Alle Einstellungen gelten für die gesamte Installation; eine Einstellung pro Seite oder pro Inhaltselement gibt es nicht.

Verwendung
----------

[](#verwendung)

Die Quellenangabe wird direkt in die Bildunterschrift geschrieben – dort, wo sie inhaltlich hingehört. Bildunterschriften pflegt man in Contao je nach Kontext an unterschiedlichen Stellen, zum Beispiel:

- Inhaltselement **Bild** → Feld *Bildunterschrift*
- Inhaltselement **Bildergalerie** → Bildunterschrift der einzelnen Datei
- **Nachrichten**, **Events**, **Formulare** und eigene Elemente, sofern deren Template ein `` ausgibt
- Dateiverwaltung → Metadaten einer Datei, Feld *Bildunterschrift*

### Beispiel

[](#beispiel)

Eingabe im Backend:

```
Links steht Hans Mustermann,[Holger Mustermann] rechts Berta Mustermann.

```

Ausgabe im Frontend (mit der Standard-Vorlage `%s`):

```

    Holger MustermannLinks steht Hans Mustermann, rechts Berta Mustermann.

```

Der umklammerte Text wird also an seiner ursprünglichen Stelle **entfernt** und dem Rest der Bildunterschrift **vorangestellt**. Das ist Absicht: Die Standard-Vorlage ist ein eigenes Block-Element, das per CSS unabhängig vom Fließtext positioniert wird.

Wo genau die Quellenangabe erscheint, entscheidet also das Stylesheet, nicht die Erweiterung. Wird sie – wie beim Deutschen Schachbund – absolut positioniert, ist ihre Stelle im Quelltext für die Darstellung ohnehin bedeutungslos:

```
.image_container {
    position: relative;
}

.image_container .rechte {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 100%;
    padding: 18px 5px 5px;
    font-size: 12px;
    line-height: 14px;
    color: #fff;
    text-align: right;
    pointer-events: none;
    opacity: 0;
    transition: 0.4s ease-in-out;
}

/* Quellenangabe erst beim Überfahren des Bildes einblenden */
.image_container:hover .rechte {
    opacity: 1;
    background-image: linear-gradient(rgba(2, 97, 152, 0) 0%, rgb(0, 37, 51) 100%);
}

.image_container .rechte::before {
    content: "© ";
}
```

Schlichter geht es auch: Mit `float: right; margin-left: 1em;` läuft die Bildunterschrift um die Quellenangabe herum, mit `display: block; text-align: right;` steht sie in einer eigenen Zeile.

### Position der Quellenangabe

[](#position-der-quellenangabe)

Über die Einstellung *Position der Quellenangabe* lässt sich umschalten, wohin die fertige Ersetzung geschrieben wird.

**In der Bildunterschrift** (Voreinstellung) – die Quellenangabe bleibt innerhalb des ``-Elements:

```

        Holger MustermannLinks steht Hans, rechts Berta.

```

**Vor der Bildunterschrift, direkt hinter dem Bild** – die Quellenangabe wird aus der Bildunterschrift herausgelöst und als eigenständiges Element in die `` gesetzt:

```

    Holger Mustermann
    Links steht Hans, rechts Berta.

```

Die zweite Variante ist dann sinnvoll, wenn die Quellenangabe über dem Bild liegen soll statt unter ihm – etwa als eingeblendeter Streifen am unteren Bildrand –, oder wenn die Bildunterschrift per CSS ausgeblendet wird, die Quellenangabe aber sichtbar bleiben soll. Für das oben gezeigte `position: absolute` macht es dagegen keinen Unterschied: Beide Varianten hängen an derselben ``.

Bildunterschriften, die gar nicht in einer `` stehen, werden auch in dieser Betriebsart wie gewohnt behandelt. So bleiben die Trennzeichen in keinem Fall sichtbar stehen.

> **Hinweis:** Die Quellenangabe wird bewusst nicht in den Bildlink oder einen Container des Themes geschrieben. Diese Struktur unterscheidet sich von Theme zu Theme, die Position unmittelbar vor der `` gibt es dagegen immer.

### Eigene Vorlagen

[](#eigene-vorlagen)

Die Vorlage in *Ersetzen durch* ist beliebiges HTML, solange sie den Platzhalter `%s` enthält. Beispiele:

VorlageErgebnis`%s`Block-Element mit eigener CSS-Klasse (Standard)`Foto: %s`Inline-Element mit festem Vorspann`&copy; %s`Copyright-Zeichen vor dem NamenDer Platzhalter darf mehrfach vorkommen; dann wird der Text auch mehrfach eingesetzt.

### Eigene Trennzeichen

[](#eigene-trennzeichen)

Start- und Ende-Trennzeichen dürfen auch mehrstellig sein und Sonderzeichen enthalten, etwa `((`und `))` oder `{{foto:` und `}}`. Sie werden intern maskiert und deshalb immer wörtlich gesucht.

> **Hinweis:** Die geschweifte Doppelklammer `{{ }}` ist in Contao die Syntax der Insert-Tags. Wer sie als Trennzeichen verwendet, sollte eine Kombination wählen, die Contao nicht selbst als Insert-Tag interpretiert.

Verhalten im Detail
-------------------

[](#verhalten-im-detail)

- Die Erweiterung greift erst am Ende des Seitenaufbaus und bearbeitet das fertige HTML der Seite. Sie erwischt dadurch **jedes** ``-Element, unabhängig davon, aus welchem Template oder welcher Erweiterung es stammt. Ein eigenes Template muss dafür nicht angepasst werden.
- Attribute am ``-Tag (etwa `class` oder `itemprop`) bleiben unverändert erhalten.
- Pro Bildunterschrift wird **nur das erste** Vorkommen ersetzt. Mehrere Quellenangaben in einer einzelnen Bildunterschrift sind nicht vorgesehen.
- Mehrere Bilder auf einer Seite werden jeweils einzeln bearbeitet.
- Enthält eine Bildunterschrift keine Trennzeichen, bleibt sie unangetastet.
- Ist eines der Felder *Start-Trennzeichen*, *Ende-Trennzeichen* oder *Ersetzen durch* leer, findet keine Ersetzung statt. Damit kann eine unvollständige Konfiguration die Seite nicht beschädigen.
- Die Ersetzung wirkt ausschließlich im Frontend. Im Backend und in der Suche steht weiterhin der ursprünglich eingegebene Text mit den Trennzeichen.

Fehlersuche
-----------

[](#fehlersuche)

BeobachtungMögliche UrsacheDie Trennzeichen stehen sichtbar im Frontend*Ersetzung aktivieren* ist nicht angehakt, oder eines der Felder *Start-Trennzeichen*, *Ende-Trennzeichen* oder *Ersetzen durch* ist leer.Nichts passiert, obwohl alles eingestellt istDer Anwendungs-Cache ist veraltet. Cache leeren und neu aufbauen.Die HTML-Vorlage erscheint als Text statt als MarkupDie Vorlage wurde beim Speichern maskiert. Sie im Feld *Ersetzen durch* erneut eingeben und speichern.Die Quellenangabe steht an der falschen StelleDas ist eine Frage des CSS, nicht der Erweiterung – siehe [Beispiel](#beispiel).Entwicklung
-----------

[](#entwicklung)

Die eigentliche Logik steckt in `src/EventListener/FigcaptionListener.php`. Die Klasse wird über das Attribut `#[AsHook('modifyFrontendPage')]` registriert, das Contao 4.13 und Contao 5 gleichermaßen kennen.

Unit-Tests ausführen:

```
vendor/bin/phpunit
```

Entwickler
----------

[](#entwickler)

**Frank Binding**

###  Health Score

48

—

FairBetter than 94% of packages

Maintenance97

Actively maintained with recent releases

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~268 days

Recently: every ~201 days

Total

8

Last Release

15d ago

Major Versions

0.0.1 → 1.0.02021-06-10

1.1.0 → 2.0.02024-05-21

2.0.3 → 3.0.02026-08-02

PHP version history (3 changes)0.0.1PHP ^5.6 || ^7.0

2.0.0PHP ^5.6 || ^7.0 || ^8.0

3.0.0PHP ^8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/53ee29e676dd83ca6683e27788cc7143a46d2bc1e10945ae37730bd4fec0c29c?d=identicon)[Samson1964](/maintainers/Samson1964)

---

Top Contributors

[![Samson1964](https://avatars.githubusercontent.com/u/4542730?v=4)](https://github.com/Samson1964 "Samson1964 (10 commits)")

---

Tags

contaofigcaptionbildunterschriftfotograf

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/schachbulle-contao-figcaption-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/schachbulle-contao-figcaption-bundle/health.svg)](https://phpackages.com/packages/schachbulle-contao-figcaption-bundle)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
