定制 alengo/sulu-translated-media-bundle 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

alengo/sulu-translated-media-bundle

最新稳定版本:3.0.3

Composer 安装命令:

composer require alengo/sulu-translated-media-bundle

包简介

SEO-friendly translated media filenames for Sulu CMS

README 文档

README

SEO-friendly translated media filenames for Sulu CMS 3.x.

Serves media files under locale-specific SEO filenames (e.g. /uploads/red-shoes-de.jpg) while keeping the original file stored under its original name. Includes an "Additional Data" admin tab with locale-aware title, description, and SEO filename fields — plus optional boolean flags (verifyDownload, aiGenerated).

Features

  • Translated filenames — per-locale seoFilename, title, description in me_media_translations
  • Built-in Media entity — ready-to-use Media entity extending Sulu's base; no project entity required
  • TranslatedFormatManager — replaces Sulu's default FormatManager via compiler pass
  • Twig functionssulu_translated_media_url() / sulu_translated_media_urls() with WebP support
  • Admin tab — "Additional Data" tab auto-registered in the Sulu Media admin
  • Zero-configsulu_media.objects.media.model and sulu_admin resources are auto-configured

Requirements

  • PHP 8.2+
  • Sulu CMS ~3.0
  • Symfony 7.x

Installation

composer require alengo/sulu-translated-media-bundle

Register the bundle in config/bundles.php:

Alengo\SuluTranslatedMediaBundle\TranslatedMediaBundle::class => ['all' => true],

Import the admin API routes in config/routes/sulu_admin.yaml:

TranslatedMediaBundle:
    resource: "@TranslatedMediaBundle/Resources/config/routing_admin_api.yaml"
    prefix: /admin/api

Run a database migration or schema update to create the me_media_translations table:

bin/adminconsole doctrine:schema:update --force

That's it — no further configuration required.

Twig Usage

{# Single URL with translated filename #}
{{ sulu_translated_media_url(media, '800x', app.request.locale) }}

{# With explicit format override #}
{{ sulu_translated_media_url(media, '800x', 'de', 'webp') }}

{# All format URLs (default + WebP) for use in <picture> / srcset #}
{% set urls = sulu_translated_media_urls(media, '800x', app.request.locale) %}
<picture>
    <source srcset="{{ urls.webp }}" type="image/webp">
    <img src="{{ urls.default }}">
</picture>

Provided Models

Class Purpose
Entity\Media Concrete Doctrine entity (me_media) — use directly or extend
Entity\MediaTranslations Locale rows in me_media_translations
Model\MediaTranslationsAwareInterface + MediaTranslationsTrait Locale fields: title, description, seoFilename
Model\MediaAdditionalDataInterface + MediaAdditionalDataTrait Boolean flags: verifyDownload, aiGenerated

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-04-05

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固