srhinow/download-bundle 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

srhinow/download-bundle

最新稳定版本:2.2.4

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ängigkeitVersion
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).

FeldBeschreibung
NameBezeichnung der Kategorie (Pflichtfeld, max. 255 Zeichen)
AliasURL-freundlicher Bezeichner (automatisch generiert)
Sortierung (sorting)Numerische Sortierreihenfolge

Downloads (tl_downloads)

Hauptverwaltung aller Download-Einträge.

FeldBeschreibung
NameBezeichnung des Downloads (Pflichtfeld, max. 255 Zeichen)
AliasURL-Alias (automatisch generiert, alphanumerisch + Underscore)
KategorieZugeordnete Kategorien (Mehrfachauswahl, Pflichtfeld)
DateiDatei 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)
TagsTag-Auswahl via srhinow/contao-tags
TextBeschreibungstext (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.

FeldBeschreibung
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-TemplateItem-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.

FeldBeschreibung
Download-TemplateItem-Template für die Detailausgabe

download_search — Download-Suche

Stellt ein Suchformular zur Volltextsuche in Downloads bereit.

FeldBeschreibung
Download-TemplateItem-Template für die Suchergebnis-Ausgabe

download_filter — Download-Filter

Kategorie-Filterformular — stellt Filter-Links zur Kategorieauswahl bereit.

FeldBeschreibung
Sprungseite (jumpTo)Seite mit der gefilterten Download-Liste

Insert-Tags

Insert-TagBeschreibung
{{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

SpalteTypBeschreibung
idint(10) unsigned PK AIPrimärschlüssel
pidint(10) unsignedElternkategorie (0 = Root)
sortingint(10) unsignedSortierung
tstampint(10) unsignedZeitstempel letzte Änderung
modifyint(10) unsignedReservierter Änderungstimestamp
namevarchar(255)Kategoriename
aliasvarchar(128)URL-Alias

tl_downloads

SpalteTypBeschreibung
idint(10) unsigned PK AIPrimärschlüssel
tstampint(10) unsignedZeitstempel letzte Änderung
modifyint(10) unsignedReservierter Änderungstimestamp
sortingint(10) unsignedSortierung
namevarchar(255)Download-Bezeichnung
aliasvarchar(128)URL-Alias
categoryblob NULLZugeordnete Kategorien (serialisiert)
filebinary(16) NULLDatei-UUID aus tl_files
dl_urlvarchar(255)Optionale externe Datei-URL
tagschar(1)Tag-Zuordnung (via contao-tags)
texttext NULLBeschreibungstext (HTML)
direct_linkchar(1)Direkt-Link zur Datei
addImagechar(1)Vorschaubild aktiv
singleSRCbinary(16) NULLVorschaubild-UUID aus tl_files
publishedbooleanVeröffentlicht
pageTitlevarchar(255)SEO-Seitentitel
descriptiontext NULLSEO-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 Rhinowsr-tag.de
Support: kservice@sr-tag.de
Quellcode: gitlab.com/srhinow/download-bundle

统计信息

  • 总下载量: 192
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: LGPL-3.0-or-later
  • 更新时间: 2018-12-25

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固