srhinow/contao-page-images-bundle
Composer 安装命令:
composer require srhinow/contao-page-images-bundle
包简介
Set one or more images central per page in Contao CMS. This is a Fork from 'Ruudt/contao-page_images' and updated for >=Contao 5.3 and >=PHP 8.3
README 文档
README
Zentrale Verwaltung von Seitenbildern für Contao CMS. Bilder werden einmalig im Backend konfiguriert und automatisch an Unterseiten vererbt — bis eine Seite eine eigene Zuweisung besitzt oder die Vererbung explizit gesperrt wird.
Fork von Ruudt/contao-page_images, neu geschrieben für Contao 5.3+ und PHP 8.3+.
Anforderungen
| Abhängigkeit | Version |
|---|---|
| PHP | ^8.3 |
| Contao Core Bundle | ^5.3 |
Installation
composer require srhinow/contao-page-images-bundle
Nach der Installation die Datenbank-Migration ausführen:
php bin/console contao:migrate
Datenhierarchie
tl_pageimages Bild-Kategorien (z. B. „Header", „Teaser-Bild")
└── tl_pageimages_items Konkrete Bildzuweisungen mit Seitenliste
└── tl_pageimages_pages Verknüpfungstabelle: Item ↔ Seiten-ID
Backend
Das Bundle fügt unter Inhalte → Seitenbilder (do=page_images) ein Backend-Modul hinzu.
Bild-Kategorien (tl_pageimages)
Jede Kategorie definiert einen „Slot" im Layout, in dem Seitenbilder angezeigt werden.
| Feld | Beschreibung |
|---|---|
| Name | Eindeutiger interner Name der Kategorie (Pflichtfeld) |
Bildquellen (multiSRC) | Standard-Bilder für diesen Slot (Fallback, wenn keine Seiten-Zuweisung greift) |
Alt-Text (alt) | Standard-Alt-Text für alle Bilder dieser Kategorie |
Bildgröße (size) | Contao Image-Size für die Ausgabe |
Bildeinträge (tl_pageimages_items)
Kindeinträge einer Kategorie. Jedem Eintrag werden konkrete Seiten zugeordnet.
| Feld | Beschreibung |
|---|---|
Bildquellen (multiSRC) | Bilder für diesen Eintrag (Pflichtfeld) |
Seiten (pages) | Seiten, auf denen dieser Eintrag angezeigt wird (Pflichtfeld, Seitenbaum-Auswahl) |
Beschriftung anzeigen (showText) | Checkbox: Klappt das Textfeld auf |
Text (text) | Optionaler HTML-Text (TinyMCE-Editor), der zusammen mit dem Bild ausgegeben wird |
Vererbung sperren (noInheritance) | Checkbox: Verhindert, dass dieser Eintrag an Unterseiten weitergegeben wird |
Vererbungslogik
Beim Rendern des Frontend-Moduls sucht PageImagesService ein Bild für die aktuelle Seite:
- Prüfe ob ein Eintrag direkt der aktuellen Seite zugeordnet ist.
- Falls nicht: Gehe zur Elternseite — außer ein Eintrag auf dem Weg hat „Vererbung sperren" aktiviert.
- Falls kein Eintrag im Seitenbaum gefunden: Nutze das Standard-Bild der Kategorie (
tl_pageimages.multiSRC).
Frontend-Modul
Modultyp: page_images — „Seitenbilder" (Gruppe: Seitenbilder)
| Feld | Beschreibung |
|---|---|
Seitenbilder-Kategorie (pageimages) | Welche Kategorie dargestellt wird (Pflichtfeld, Radio-Auswahl) |
Seitenbilder-Template (pageimages_layout) | Template für die Ausgabe (alle Templates mit Präfix pageimages_) |
Anzahl der Bilder (image_count) | 1 = erstes Bild, 0 = alle, N = die ersten N Bilder |
| useCaption | Bildunterschrift anzeigen |
| fullsize | Lightbox-Link aktivieren |
Templates
mod_page_images.html.twig
Modul-Wrapper. Rendert das Bild-Template, wenn ein Seitenbild vorhanden ist.
| Variable | Typ | Beschreibung |
|---|---|---|
has_pageimage | bool | true wenn ein Bild für die aktuelle Seite gefunden wurde |
pageimage | string | Gerendertes HTML des Bild-Templates |
pageimages_default.html.twig
Rendert die Bilder mit optionalem Textoverlay. Nutzt die Twig-Funktion contao_figure().
| Variable | Typ | Beschreibung |
|---|---|---|
images | array | Array von Bild-Datensätzen (UUID + Größe aus der Kategorie) |
text | string | Optionaler Text-Overlay (HTML) |
showText | bool | Text-Overlay aktiv? |
Eigene Templates müssen mit dem Präfix pageimages_ beginnen, damit sie im Backend-Dropdown erscheinen.
Hook
Der compilePageImages-Hook feuert nach der Bildauflösung und erlaubt projektspezifische Nachbearbeitung:
$GLOBALS['TL_HOOKS']['compilePageImages'][] = [MyClass::class, 'myMethod'];
Signatur: myMethod(Template $template, array $pageImages, ModuleModel $model): void
Benutzerrechte
Zwei Berechtigungsschlüssel werden für Backend-Benutzer und -Gruppen registriert:
| Schlüssel | Beschreibung |
|---|---|
pageimages_categories | Auf welche Kategorien der Benutzer zugreifen darf |
pageimages_categoriesp | Erlaubte Operationen: create, delete |
Datenbankstruktur
tl_pageimages
| Spalte | Typ | Beschreibung |
|---|---|---|
id | int(10) unsigned PK AI | Primärschlüssel |
sorting | int(10) unsigned | Sortierung |
tstamp | int(10) unsigned | Zeitstempel letzte Änderung |
name | varchar(200) | Kategoriename |
alt | varchar(200) | Standard-Alt-Text |
size | varchar(64) | Bildgröße-Konfiguration |
multiSRC | blob NULL | Standard-Bildquellen (serialisierte UUIDs) |
tl_pageimages_items
| Spalte | Typ | Beschreibung |
|---|---|---|
id | int(10) unsigned PK AI | Primärschlüssel |
pid | int(10) unsigned | Elternkategorie (tl_pageimages.id) |
sorting | int(10) unsigned | Sortierung |
tstamp | int(10) unsigned | Zeitstempel |
multiSRC | blob NULL | Bildquellen (serialisierte UUIDs) |
showText | boolean | Text anzeigen |
text | blob NULL | Optionaler HTML-Text |
noInheritance | char(1) | Vererbung sperren |
tl_pageimages_pages
Verknüpfungstabelle: Welche Seiten ein tl_pageimages_items-Eintrag abdeckt.
| Spalte | Typ | Beschreibung |
|---|---|---|
id | int(10) unsigned PK AI | Primärschlüssel |
pid | int(10) unsigned | Elterneintrag (tl_pageimages_items.id) |
sorting | int(10) unsigned | Sortierung |
tstamp | int(10) unsigned | Zeitstempel |
pageId | int(10) unsigned | Seiten-ID (tl_page.id) |
Tests ausführen
vendor/bin/phpunit -c vendor/srhinow/contao-page-images-bundle/phpunit.xml.dist
Changelog
Siehe CHANGELOG.md für die vollständige Versionshistorie.
Lizenz
GPL-3.0-or-later
Autoren
Ruud Walraven (Ursprungsautor)
Sven Rhinow — sr-tag.de
Support: kservice@sr-tag.de
Quellcode: gitlab.com/srhinow/contao-page-images-bundle
srhinow/contao-page-images-bundle 适用场景与选型建议
srhinow/contao-page-images-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.87k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2018 年 12 月 26 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「image」 「contao」 「pageimage」 「backend modul」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 srhinow/contao-page-images-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 srhinow/contao-page-images-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 srhinow/contao-page-images-bundle 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Contao Open Source CMS
Yii2 LightBox image galary widget uses Lightbox v2.10.0 by Lokesh Dhakar
Diese Contao 4 Erweiterung stellt Google reCAPTCHA V2 in Form eines neuen Formularfeldes im Formulargenerator bereit. This extension provides Google reCAPTCHA V2 in the form of a new form field in the form generator of Contao Open Source CMS.
The Yii2 extension uses jQuery jquery.carousel-1.1.min.js and makes image carousel from php array of structure defined.
The Yii2 extension uses jQuery PrettyPhoto and OwlCarousel js and makes image galary from php array of structure defined.
Implementation of carouFredSel as extension for Contao Open Source CMS
统计信息
- 总下载量: 1.87k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 19
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: GPL-3.0-or-later
- 更新时间: 2018-12-26