PHPackages                             manuxi/sulu-tweaks-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. manuxi/sulu-tweaks-bundle

ActiveSymfony-bundle[Utility &amp; Helpers](/categories/utility)

manuxi/sulu-tweaks-bundle
=========================

Tweaks for Sulu.

v0.5.0(3mo ago)02MITJavaScriptPHP ^8.2

Since Nov 11Pushed 3mo agoCompare

[ Source](https://github.com/manuxi/SuluTweaksBundle)[ Packagist](https://packagist.org/packages/manuxi/sulu-tweaks-bundle)[ Docs](https://github.com/manuxi/SuluTweaksBundle)[ RSS](/packages/manuxi-sulu-tweaks-bundle/feed)WikiDiscussions 3.x Synced 1mo ago

READMEChangelogDependencies (11)Versions (10)Used By (0)

SuluTweaksBundle
================

[](#sulutweaksbundle)

[![License](https://camo.githubusercontent.com/784362b26e4b3546254f1893e778ba64616e362bd6ac791991d2c9e880a3a64e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e2e737667)](https://github.com/manuxi/SuluTweaksBundle/LICENSE)[![GitHub Tag](https://camo.githubusercontent.com/5636d072dbc674e6797e50b0d98d5267afaa6d38f6741bbdf468707dfda76de7/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f7461672f6d616e7578692f53756c75547765616b7342756e646c65)](https://camo.githubusercontent.com/5636d072dbc674e6797e50b0d98d5267afaa6d38f6741bbdf468707dfda76de7/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f7461672f6d616e7578692f53756c75547765616b7342756e646c65)[![Sulu Version](https://camo.githubusercontent.com/df296a9c0d3d5e2edd35e45155a2259b509f0d2cab13b204c730ec0c79d06b9c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53756c752d2533453d322e362d626c7565)](https://sulu.io/)[![Supports Sulu 2.6 or later](https://camo.githubusercontent.com/ad44793d91ed102decfbfdbef6ce8b883b8b3dfa0db9c265719bfa2590310882/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f25323053756c752d2533453d332e302d3030383863633f636f6c6f723d303062326466)](https://camo.githubusercontent.com/ad44793d91ed102decfbfdbef6ce8b883b8b3dfa0db9c265719bfa2590310882/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f25323053756c752d2533453d332e302d3030383863633f636f6c6f723d303062326466)[![PHP Version](https://camo.githubusercontent.com/bd31a1e9f4a64c3c4f87b0386edb737ac17fb609f8ffdc06f4f08c84ce792bd1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d253545382e322d707572706c65)](https://php.net/)

**English** | [Deutsche Version](README.de.md)

This bundle was created to tweak some aspects of Sulu's list display.

Feature requests are always welcome.

This bundle works for Sulu 2.6 (probably earlier too) and 3.0. Use at own risk 🤞🏻

---

Features
--------

[](#features)

[![Features](docs/img/features.de.png)](docs/img/features.de.png)

### 🔴 Publish State Indicator

[](#-publish-state-indicator)

Stair effects in lists are ugly, and the default display produces exactly those.

This bundle cleans that up: The included SCSS hides the current publish indicators and ghost locale and adds new ones in separate columns. The PublishIndicator also shows a green dot for published elements.

StatusColorPublished🟢 GreenDraft🟢🟡 Green + YellowNot published🟡 Yellow[![Publish Dots](docs/img/publish-dots.de.png)](docs/img/publish-dots.de.png)

### 🌐 Ghost Locale Indicator

[](#-ghost-locale-indicator)

Sulu's built-in ghost locale indicator (showing the fallback language) is automatically added to cells and cannot be repositioned. This bundle provides a separate column for the ghost locale that can be placed anywhere in lists.

The styling matches Sulu's original design.

[![Ghost Locale](docs/img/ghost-locale.de.png)](docs/img/ghost-locale.de.png)

### ⭐ Star Rating

[](#-star-rating)

Displays numeric ratings as visual stars. Supports both 5-point and 10-point scales (with half-stars).

RatingDisplay3/5★★★☆☆7/10★★★⯪☆ (half star)The numeric value is shown in a tooltip on hover. Optionally, the value can also be displayed next to the stars.

[![Star Rating](docs/img/star-rating.de.png)](docs/img/star-rating.de.png)

### 📊 Percent Bar

[](#-percent-bar)

Displays values as a colored progress bar. The color transitions from red (0%) through orange, yellow to green (100%).

PercentColor0-20%🔴 Red20-40%🟠 Orange40-60%🟡 Yellow60-80%🟢 Light green80-100%🟢 Green**Features:**

- Configuration globally or per XML parameter
- **max\_value**: Any scale (0-100, 0-10, 0-5, etc.)
- **value\_position**: Value inside the bar (`inside`), to the right (`outside`) or hidden (`none`)
- **gradient\_mode**: Smooth transition (`interpolate`) or color bands (`steps`)
- **use\_gradient**: Gradient colors or single color
- **height**: Height can be defined
- **animate**: CSS animation on load

[![Percent Bar](docs/img/percent-bar.interpolate.height.de.png)](docs/img/percent-bar.interpolate.height.de.png)[![Percent Bar](docs/img/percent-bar.uni.height.de.png)](docs/img/percent-bar.uni.height.de.png)[![Percent Bar](docs/img/percent-bar.interpolate.de.png)](docs/img/percent-bar.interpolate.de.png)[![Percent Bar](docs/img/percent-bar.steps.de.png)](docs/img/percent-bar.steps.de.png)

---

👩🏻‍🏭 Installation
-----------------

[](#‍-installation)

### Step 1: Install the package

[](#step-1-install-the-package)

```
composer require manuxi/sulu-tweaks-bundle
```

### Step 2: Register Admin Assets

[](#step-2-register-admin-assets)

Add to `assets/admin/package.json`:

```
{
    "dependencies": {
        "sulu-tweaks-bundle": "file:../../vendor/manuxi/sulu-tweaks-bundle/src/Resources"
    }
}
```

### Step 3: Import the Bundle

[](#step-3-import-the-bundle)

Import in `assets/admin/app.js`:

```
import 'sulu-tweaks-bundle';
```

### Step 4: Rebuild Admin Assets

[](#step-4-rebuild-admin-assets)

```
cd assets/admin
npm install
npm run build
```

---

🔧 How It Works
--------------

[](#-how-it-works)

When importing the bundle via `import 'sulu-tweaks-bundle';`, the following happens automatically:

1. **Configuration Hook**: The bundle registers an update config hook for `sulu_tweaks`
2. **Transformer Registration**: All list field transformers are registered in Sulu's `listFieldTransformerRegistry`
3. **Styles Applied**: The included SCSS hides Sulu's default indicators/ghost locales and applies custom styling

### Available Transformers

[](#available-transformers)

TransformerType NameDescription`PublishStateFieldTransformer``publish_state_indicator`Colored dots for publish status`GhostLocaleFieldTransformer``ghost_locale_indicator`Separate column for fallback language`StarRatingFieldTransformer``star_rating`Star rating display`PercentBarFieldTransformer``percent_bar`Colored percent barOnly the transformers that should be used need to be added to the list XML configurations.

---

📋 Usage
-------

[](#-usage)

### Publish State Indicator

[](#publish-state-indicator)

Add to list XML (e.g., `config/lists/events.xml`):

```

    publishedState
    %sulu.model.event_translation.class%

```

**Tip:** Place this property at the beginning of the list for better visibility.

### Ghost Locale Indicator

[](#ghost-locale-indicator)

Add to list XML:

```

    ghostLocale

```

**Note:** The `ghostLocale` field must be available in the list data. With Sulu 3.0 DimensionContent architecture, this field is typically provided automatically.

### Star Rating

[](#star-rating)

Add to list XML:

```

    rating

```

#### With XML parameters (overrides global config):

[](#with-xml-parameters-overrides-global-config)

```

    rating

```

### Percent Bar

[](#percent-bar)

Add to list XML:

```

    progress

```

#### Different scales via XML parameters:

[](#different-scales-via-xml-parameters)

```

    rating

```

```

    score

```

```

    progress

```

```

    completion

```

---

🧶 Configuration
---------------

[](#-configuration)

Create `config/packages/sulu_tweaks.yaml` in the project:

```
sulu_tweaks:
    publish_state_indicator:
        # Enable offset when not using ghost_locale_indicator as separate column
        enable_offset: false
        # offset_width: 28

    star_rating:
        # Show numeric value next to stars (e.g. "★★★☆☆ (3/5)")
        show_value: true
        # Maximum rating value (5 or 10) - can be overridden per list via XML param
        max_value: 5

    percent_bar:
        # Show percentage value
        show_value: true
        # Position: 'inside' (in bar), 'outside' (right), 'none' (hidden)
        value_position: outside
        # Color of the percentage value (hex)
        value_color: '#000000'
        # Maximum value for calculation - can be overridden per list via XML param
        # Examples: 100 for 0-100%, 10 for 0-10 scale, 5 for 0-5 scale
        max_value: 100
        # Height of the bar in pixels
        # Under 14px: inside value hidden, border-radius: 2px
        # Under 10px: border-radius: 1px
        height: 16
        # Use gradient colors or single color
        use_gradient: true
        # Gradient mode: 'interpolate' (smooth) or 'steps' (color bands)
        gradient_mode: interpolate
        # Single color when use_gradient is false
        color: '#52b6ca'
        # Animate bar on page load
        animate: true
```

### Configuration vs. XML Parameters

[](#configuration-vs-xml-parameters)

OptionGlobal (YAML)Per List (XML)Applies toAll listsSingle propertyPriorityLowerHigher (overrides)Use caseProject defaultsSpecial requirements**Example:** Global `max_value: 100`, but one list needs `max_value: 10` → override via XML parameter.

---

🗣️ Translations
---------------

[](#️-translations)

The bundle provides translations for English and German. They can be overridden in the project:

```
# translations/admin.en.yaml
sulu_tweaks:
    draft: "Draft"
    published: "Published"
    not_published: "Not published"
    ghost_locale: "Language"
```

```
# translations/admin.de.yaml
sulu_tweaks:
    draft: "Entwurf"
    published: "Veröffentlicht"
    not_published: "Nicht veröffentlicht"
    ghost_locale: "Sprache"
```

---

📁 Bundle Structure
------------------

[](#-bundle-structure)

```
SuluTweaksBundle/
├── src/
│   ├── Admin/
│   │   └── TweaksAdmin.php
│   ├── DependencyInjection/
│   │   ├── Configuration.php
│   │   └── SuluTweaksBundleExtension.php
│   ├── Resources/
│   │   ├── config/
│   │   │   ├── packages/sulu_tweaks.yaml
│   │   │   └── services.xml
│   │   ├── js/
│   │   │   ├── fieldTransformers/
│   │   │   │   ├── PublishStateFieldTransformer.js
│   │   │   │   ├── PublishStateFieldTransformer.scss
│   │   │   │   ├── GhostLocaleFieldTransformer.js
│   │   │   │   ├── GhostLocaleFieldTransformer.scss
│   │   │   │   ├── StarRatingFieldTransformer.js
│   │   │   │   ├── StarRatingFieldTransformer.scss
│   │   │   │   ├── PercentBarFieldTransformer.js
│   │   │   │   └── PercentBarFieldTransformer.scss
│   │   │   └── index.js
│   │   ├── translations/
│   │   │   ├── admin.de.yaml
│   │   │   └── admin.en.yaml
│   │   └── package.json
│   └── SuluTweaksBundle.php
└── README.md

```

---

🤝 Contributing
--------------

[](#-contributing)

Contributions are welcome! Pull requests can be submitted.

---

📄 License
---------

[](#-license)

This bundle is under the MIT license.

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance79

Regular maintenance activity

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~8 days

Total

9

Last Release

111d ago

Major Versions

v0.4.3 → 3.x-dev2026-01-21

### Community

Maintainers

![](https://www.gravatar.com/avatar/8ce067feaa3f9ece08d78385c401aab7d72e9e8ee64d77d584f884b6725ad9de?d=identicon)[manuxi](/maintainers/manuxi)

---

Top Contributors

[![manuxi](https://avatars.githubusercontent.com/u/11303615?v=4)](https://github.com/manuxi "manuxi (1 commits)")

---

Tags

admin-uicontent-typeslist-decoratorslist-transformerssulu-26sulu-30sulu-bundlesulu-cmsutilities

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/manuxi-sulu-tweaks-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/manuxi-sulu-tweaks-bundle/health.svg)](https://phpackages.com/packages/manuxi-sulu-tweaks-bundle)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k16.7M310](/packages/easycorp-easyadmin-bundle)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[netgen/layouts-core

Netgen Layouts enables you to build and manage complex web pages in a simpler way and with less coding. This is the core of Netgen Layouts, its heart and soul.

3689.4k10](/packages/netgen-layouts-core)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)[robole/sulu-ai-translator-bundle

Translate any type of content using DeepL

181.3k](/packages/robole-sulu-ai-translator-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
