Search by

manuxi / sulu-glossary-bundle

manuxi

Glossary bundle for Sulu CMS: abbreviations, acronyms and terms with draft/live publishing

Package info

github.com/manuxi/SuluGlossaryBundle

Type:symfony-bundle

pkg:composer/manuxi/sulu-glossary-bundle

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-10-12 18:55 UTC

This package is auto-updated.

Last update: 2026-10-12 19:00:21 UTC


README

ci workflow License: MIT GitHub Tag Github Release Supports Sulu 3.0 or later

๐Ÿ‡ฉ๐Ÿ‡ช German Version

The SuluGlossaryBundle extends Sulu 3.0 with a glossary for abbreviations, acronyms and terms.

Every entry has a type, an explanation, an optional description, image and link, and its own detail page. Entries use the content features of Sulu: draft and live content per locale, versions, SEO and excerpt data, search, references and scheduled publishing.

This bundle is the successor of manuxi/sulu-abbreviations-bundle (Sulu 2). The data of the 2.0 release can be migrated with a command, see UPGRADE.md.

โœจ Features

๐Ÿ“š Glossary Management

  • Entry Types - Abbreviation, acronym or term
  • Rich Content - Title, explanation, description, image and link
  • Draft & Live - Separate draft and live content per locale, publish and unpublish
  • Versions - Restore older versions into the draft
  • SEO & Excerpt - Full SEO and excerpt management
  • Multilingual - Full translation support, copy to locale
  • Author Management - Assign contacts as authors
  • Settings - Header, hero, breadcrumbs and overview page
  • More - Trash, references, sitemaps, teaser, preview, activity log, etc.

๐Ÿ”„ Advanced Features

  • Selection Field Types - Select one or multiple entries in pages, snippets and other templates
  • Smart Content - List entries filtered by categories and tags
  • Twig Functions - Resolve entries in templates, optional abbr filter for automatic markup
  • Search - Admin and website index (SEAL)
  • HTTP Cache - Tagging and automatic invalidation
  • Scheduled Publishing - Publish and unpublish at a given date (sulu/automation-bundle)
  • Migration - Command to migrate the data of SuluAbbreviationsBundle 2.0

๐Ÿ“‹ Prerequisites

  • PHP 8.2 or higher
  • Sulu CMS 3.0 or higher
  • Symfony 6.4 or higher
  • MySQL 5.7+ / MariaDB 10.2+ / PostgreSQL 11+

๐Ÿ‘ฉ๐Ÿปโ€๐Ÿญ Installation

Step 1: Install the package

composer require manuxi/sulu-glossary-bundle

If you are not using Symfony Flex, add the bundle to config/bundles.php:

return [
    //...
    Manuxi\SuluGlossaryBundle\SuluGlossaryBundle::class => ['all' => true],
];

Step 2: Configure routes

Add to routes_admin.yaml:

SuluGlossaryBundle:
    resource: '@SuluGlossaryBundle/Resources/config/routes_admin.yaml'

Step 3: Update the database

# Check what will be created
php bin/console doctrine:schema:update --dump-sql

# Execute migration
php bin/console doctrine:schema:update --force

With Doctrine migrations use doctrine:migrations:diff. A MySQL migration template is available in docs/templates/doctrine-migration.php.dist.

Step 4: Rebuild the search index

php bin/console sulu:search:reindex

Step 5: Grant permissions

  1. Go to Sulu Admin โ†’ Settings โ†’ User Roles
  2. Find the appropriate role
  3. Enable the permissions for the glossary entries (sulu.glossary.entries) and the glossary settings (sulu.glossary.settings)
  4. Reload the page

๐ŸŽฃ Usage

Create your first entry

  1. Navigate to Glossary in the Sulu admin navigation
  2. Click on Add
  3. Choose the type, enter title and explanation
  4. Add description, image and link (optional)
  5. Publish your entry

Use entries in templates

<property name="entries" type="glossary_entry_selection">
    <meta>
        <title lang="en">Glossary entries</title>
    </meta>
</property>
{% set entry = sulu_resolve_glossary_entry(id) %}
{% if entry %}
    <abbr title="{{ entry.explanation }}">{{ entry.title }}</abbr>
{% endif %}

More examples: Selection field types, Smart content, Twig.

๐Ÿงถ Configuration

# config/packages/sulu_glossary.yaml
sulu_glossary:
    versioning:
        max_versions: 20   # versions per entry and locale, 0 = unlimited
    twig:
        auto_abbr: false   # enables the abbr twig filter

Further options: Settings

๐Ÿ“– Documentation

Detailed documentation in the docs/ directory.

๐Ÿ‘ฉโ€๐Ÿณ Contributing

Contributions are welcome! Please create issues or pull requests.

๐Ÿ“ License

This bundle is licensed under the MIT License. See LICENSE.

๐ŸŽ‰ Credits

Created and maintained by manuxi.

Thanks to the Sulu team for the great CMS and fantastic support!

And thank you for your support and testing!