承接 srhinow/download-bundle 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

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

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ä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

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 我们能提供哪些服务?
定制开发 / 二次开发

基于 srhinow/download-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

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

GitHub 信息

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

其他信息

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