srhinow/download-bundle
Composer 安装命令:
composer require srhinow/download-bundle
包简介
this extension manage download-list
README 文档
README
Contao-Bundle zur zentralen Verwaltung von Downloads mit hierarchischen Kategorien im Backend und vielfältiger Ausgabe im Frontend. Unterstützt Dateianhänge, Vorschaubilder, Tags (srhinow/contao-tags), Volltextsuche, Kategorie-Filter und einen konfigurierbaren Detailseitenlink.
Anforderungen
| Abhängigkeit | Version |
|---|---|
| PHP | ≥ 8.3 |
| Contao Core Bundle | ^5.3 |
| srhinow/contao-tags | ^5.0.6 |
| symfony/form | ^7.2 |
| ext-json | * |
Installation
composer require srhinow/download-bundle
Nach der Installation die Datenbank-Migration ausführen:
php bin/console contao:migrate
Backend
Das Bundle fügt unter Inhalte → Downloads (do=downloads) ein Backend-Modul hinzu. Über die globale Operation „Download-Kategorien" gelangt man zur Kategorieverwaltung.
Download-Kategorien (tl_download_categories)
Hierarchische Kategorieverwaltung (Baumstruktur via pid, bis zu 3 Ebenen tief, Sortierung per Drag & Drop).
| Feld | Beschreibung |
|---|---|
| Name | Bezeichnung der Kategorie (Pflichtfeld, max. 255 Zeichen) |
| Alias | URL-freundlicher Bezeichner (automatisch generiert) |
Sortierung (sorting) | Numerische Sortierreihenfolge |
Downloads (tl_downloads)
Hauptverwaltung aller Download-Einträge.
| Feld | Beschreibung |
|---|---|
| Name | Bezeichnung des Downloads (Pflichtfeld, max. 255 Zeichen) |
| Alias | URL-Alias (automatisch generiert, alphanumerisch + Underscore) |
| Kategorie | Zugeordnete Kategorien (Mehrfachauswahl, Pflichtfeld) |
| Datei | Datei aus der Contao-Dateiverwaltung (Pflichtfeld, Radio-Auswahl) |
Bild hinzufügen (addImage) | Checkbox: Klappt das Feld „Vorschaubild" auf |
Vorschaubild (singleSRC) | Optionales Vorschaubild (sichtbar im Backend-Listing als 100×100px-Thumbnail) |
| Tags | Tag-Auswahl via srhinow/contao-tags |
| Text | Beschreibungstext (TinyMCE-Editor) |
Direkt-Link (direct_link) | Checkbox: Link führt direkt zur Datei statt zur Detailseite |
Sortierung (sorting) | Manuelle numerische Sortierung |
Seiten-Titel (pageTitle) | SEO-Seitentitel für die Detailansicht |
Beschreibung (description) | SEO-Meta-Beschreibung |
Online sichtbar (published) | Veröffentlichungs-Flag |
Frontend-Module
Das Bundle registriert vier Frontend-Module in der Gruppe „Downloads":
download_list — Download-Liste
Zeigt veröffentlichte Downloads als gefilterte, durchsuchbare und paginierte Liste.
| Feld | Beschreibung |
|---|---|
Sprungseite (jumpTo) | Seite mit dem download_details-Modul für den Detailseitenlink |
Dezimalstellen Dateigröße (download_size_decimal) | Anzahl der Nachkommastellen bei der Dateigrößenangabe (Standard: 1) |
| Download-Template | Item-Template für jeden Listeneintrag (alle Templates mit Präfix download_item_) |
download_details — Download-Detailansicht
Zeigt alle Felder eines einzelnen Downloads. Liest den Download-Alias aus der URL.
| Feld | Beschreibung |
|---|---|
| Download-Template | Item-Template für die Detailausgabe |
download_search — Download-Suche
Stellt ein Suchformular zur Volltextsuche in Downloads bereit.
| Feld | Beschreibung |
|---|---|
| Download-Template | Item-Template für die Suchergebnis-Ausgabe |
download_filter — Download-Filter
Kategorie-Filterformular — stellt Filter-Links zur Kategorieauswahl bereit.
| Feld | Beschreibung |
|---|---|
Sprungseite (jumpTo) | Seite mit der gefilterten Download-Liste |
Insert-Tags
| Insert-Tag | Beschreibung |
|---|---|
{{download::search}} | Aktueller Suchwert aus dem POST-Request (Suchformular) |
{{download::tag}} | Aktuell gesetzter Tag-Filter aus dem POST-Request |
Suchindex
Der getSearchablePages-Hook (GetSearchablePagesListener) fügt alle veröffentlichten Downloads dem Contao-Suchindex hinzu, sofern ein download_details-Modul mit einer konfigurierten Sprungseite (jumpTo) vorhanden ist.
parseDownload-Hook
Nach dem Aufbereiten eines Download-Datensatzes feuert der parseDownload-Hook und erlaubt projektspezifische Nachbearbeitung:
$GLOBALS['TL_HOOKS']['parseDownload'][] = [MyClass::class, 'myMethod'];
Datenbankstruktur
tl_download_categories
| Spalte | Typ | Beschreibung |
|---|---|---|
id | int(10) unsigned PK AI | Primärschlüssel |
pid | int(10) unsigned | Elternkategorie (0 = Root) |
sorting | int(10) unsigned | Sortierung |
tstamp | int(10) unsigned | Zeitstempel letzte Änderung |
modify | int(10) unsigned | Reservierter Änderungstimestamp |
name | varchar(255) | Kategoriename |
alias | varchar(128) | URL-Alias |
tl_downloads
| Spalte | Typ | Beschreibung |
|---|---|---|
id | int(10) unsigned PK AI | Primärschlüssel |
tstamp | int(10) unsigned | Zeitstempel letzte Änderung |
modify | int(10) unsigned | Reservierter Änderungstimestamp |
sorting | int(10) unsigned | Sortierung |
name | varchar(255) | Download-Bezeichnung |
alias | varchar(128) | URL-Alias |
category | blob NULL | Zugeordnete Kategorien (serialisiert) |
file | binary(16) NULL | Datei-UUID aus tl_files |
dl_url | varchar(255) | Optionale externe Datei-URL |
tags | char(1) | Tag-Zuordnung (via contao-tags) |
text | text NULL | Beschreibungstext (HTML) |
direct_link | char(1) | Direkt-Link zur Datei |
addImage | char(1) | Vorschaubild aktiv |
singleSRC | binary(16) NULL | Vorschaubild-UUID aus tl_files |
published | boolean | Veröffentlicht |
pageTitle | varchar(255) | SEO-Seitentitel |
description | text NULL | SEO-Meta-Beschreibung |
Templates anpassen
Eigene Item-Templates müssen mit dem Präfix download_item_ beginnen, damit sie im Backend-Dropdown erscheinen. Beispiel: download_item_card.html.twig.
Tests ausführen
vendor/bin/phpunit -c vendor/srhinow/download-bundle/phpunit.xml.dist
Changelog
Siehe CHANGELOG.md für die vollständige Versionshistorie.
Lizenz
LGPL-3.0-or-later
Autor
Sven Rhinow — sr-tag.de
Support: kservice@sr-tag.de
Quellcode: gitlab.com/srhinow/download-bundle
srhinow/download-bundle 适用场景与选型建议
srhinow/download-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 198 次下载、GitHub Stars 达 0, 最近一次更新时间为 2018 年 12 月 25 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「download」 「contao」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 srhinow/download-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 srhinow/download-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 srhinow/download-bundle 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Contao Open Source CMS
The NzoFileDownloaderBundle is a Symfony Bundle used to Download all types of files from servers and Web applications safely and with ease. You can also read/show the file content in the Web Browser.
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.
Adds a download link next to assets
Implementation of carouFredSel as extension for Contao Open Source CMS
Contao CMS integrity check for some files
统计信息
- 总下载量: 198
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 5
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: LGPL-3.0-or-later
- 更新时间: 2018-12-25