inspiredminds / contao-file-usage
Contao 扩展,允许您在辅助文件管理器中搜索数据库中文件的引用。
Requires
- php: >=7.4
- contao/core-bundle: ^4.9 || ^5.0
- khill/php-duration: ^1.0
- symfony/cache: ^4.4 || ^5.4 || ^6.2
- symfony/config: ^4.4 || ^5.4 || ^6.2
- symfony/dependency-injection: ^4.4 || ^5.4 || ^6.2
- symfony/http-kernel: ^4.4 || ^5.4 || ^6.2
Requires (Dev)
- contao/easy-coding-standard: ^6.0
- contao/rector: ^1.0
README
Contao 文件使用
此 Contao 扩展允许您找到并显示文件管理器中管理的文件的引用。对于文件管理器中的每个文件,将有一个新的操作(或
)。
此操作将显示此扩展在数据库中找到的此文件的任何引用,如果有的话,将显示到原始数据记录的链接。
搜索结果无限期缓存。您可以使用“刷新”按钮强制获取新的搜索结果。但是,根据您的数据库大小,这可能需要一段时间,并且可能无法在 HTTP 请求中完成。在这种情况下,您需要依赖cronjob或命令。
您还可以使用“未使用文件”全局操作来查找任何未在任何地方引用的数据库辅助文件(至少根据搜索结果)。
文件替换
此扩展还将 Contao 的 fileTree
小部件替换为其自己的实现,显示一个额外的按钮,您可以使用它替换此文件找到的文件引用。
定时任务
如前所述,搜索结果被缓存。为了确保缓存至少在 24 小时内始终是最新的,此扩展实现了每日定时任务。但是,定时任务仅在命令行界面中运行,因此请确保您已相应设置Contao 的定时任务。
命令
您还可以使用contao_file_usage:warmup
命令从命令行预热文件使用结果缓存。
自定义提供者
目前,此扩展可以找到由任何(数据库基于)DCA 的 fileTree
输入字段创建的任何引用,它可以从数据库中任何基于文本的字段(如 {{file::*}}
、{{picture::*}}
和 {{figure::*}}
插入标签)中找到任何引用。如果您想将此搜索扩展到其他位置,您可以通过实现 FileUsageProviderInterface
来实现自己的 文件使用提供者。
// src/FileUsage/FoobarProvider.php use InspiredMinds\ContaoFileUsage\Provider\FileUsageProviderInterface; use InspiredMinds\ContaoFileUsage\Result\DatabaseReferenceResult; use InspiredMinds\ContaoFileUsage\Result\ResultsCollection; class FoobarProvider implements FileUsageProviderInterface { public function find(): ResultsCollection { $collection = new ResultsCollection(); // Additional database search // … $collection->addResult(new DatabaseReferenceResult($table, $field, $id)); return $collection; } }
这是您需要做的全部,如果您已为您的服务启用了autoconfigure
。否则,您还需要手动将服务标记为 contao_file_usage.provider
。
您可能需要或想要实现一个新结果容器,使用 ResultInterface
来满足您的需求(例如,如果您的提供者查看文件内容,而不是数据库,例如,此扩展默认情况下不这样做)。请注意,目前仅在文件管理器中显示 DatabaseReferenceResult
实例。