PHPackages                             heimrichhannot/contao-advanced-dashboard-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. [Admin Panels](/categories/admin)
4. /
5. heimrichhannot/contao-advanced-dashboard-bundle

ActiveContao-bundle[Admin Panels](/categories/admin)

heimrichhannot/contao-advanced-dashboard-bundle
===============================================

A bundle to customize the contao backend dashboard.

0.1.3(2y ago)0174LGPL-3.0-or-laterPHPPHP ^7.2|^8.0

Since Jul 7Pushed 2y ago5 watchersCompare

[ Source](https://github.com/heimrichhannot/contao-advanced-dashboard-bundle)[ Packagist](https://packagist.org/packages/heimrichhannot/contao-advanced-dashboard-bundle)[ RSS](/packages/heimrichhannot-contao-advanced-dashboard-bundle/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (4)Dependencies (6)Versions (5)Used By (0)

Contao Advanced Dashboard Bundle
================================

[](#contao-advanced-dashboard-bundle)

A bundle to add more flexibility to the contao backend dashboard.

Features
--------

[](#features)

- replaces the contao dashboard with a more customizable one
- customize the dashboard versions list to your need, like changing the visibility of user and tables or add custom columns

[![](docs/img/screenshot.png)](docs/img/screenshot.png)

Usage
-----

[](#usage)

### Install

[](#install)

1. Install with composer or contao manager

    ```
     composer require heimrichhannot/contao-advanced-dashboard-bundle

    ```
2. Update database

### Customize dashboard versions list.

[](#customize-dashboard-versions-list)

A main feature of this bundle is the customization of the versions log in the contao dashboard. After installing this bundle, you'll find, that there is no difference to the original contao dashboard, as the default configurations are the same. But now you can create configurations thats specify which logs are displayed to a user filtered by user or table. You can also specify which columns are displayed.

1. Setup a versions\_right configuration in your projekt config, typically `config/config.yml`

    ```
    huh_advanced_dashboard:
      versions_rights:
        # All user changes visible for table tl_news.
        editor_news:
          user_access_level: all
          columns:
            - date
            - user
            - table
            - id
            - description
            - version
            - actions
          tables:
            - tl_news
    ```
2. Clear your cache if not in dev mode
3. Apply the created right in user or user group settings to a user or user group.

Additional notes:

- If no configuration is defined, or a user has no configuration added, a default configuration is used. You can customize the default configuration by creating a configuation with the name default.
- Restriction are not applied to admin user.

### Add custom content/sections to backend template

[](#add-custom-contentsections-to-backend-template)

The dashboard template comes with this bundle contains some customization options. You can add custom section or content and disable existing sections.

Following postions are available (as template variables):

- positionTop
- positionBeforeShortcuts
- positionBeforeVersions
- positonBottom

Skip existing sections by settings these variables to false (available as template variables:

- showMessages
- showShortcuts
- showVersions

To set these template variables, you can use the contao [parseTemplate](https://docs.contao.org/dev/reference/hooks/parseTemplate/) hook or the `BeforeParseTwigTemplateEvent` and `BeforeRenderTwigTemplateEvent` events of [Twig Support Bundle](https://github.com/heimrichhannot/contao-twig-support-bundle). For the twig support bundle events, the template name is `be_advanced_dashboard`.

If you use the parseTemplate hook to add your custom content, keep in mind it should have a priority higher than `-10`!

```
/**
 * @Hook("parseTemplate")
 */
class ParseTemplateListener
{
    public function __invoke(Template $template): void
    {
        if ('be_welcome' === $template->getName()) {
            $template->positionTop = '
            Welcome
            This could be your message!
        ';
            $template->showShortcuts = false;
        }
    }
}
```

Developers
----------

[](#developers)

### Add new columns or change the appearance of existing columns

[](#add-new-columns-or-change-the-appearance-of-existing-columns)

There are two events to add custom columns to the versions log or change existing columns.

Maybe you have an extension that expands the version table and adds more information to a version database log entry and want to output that information in the dashboard version log. We recommend creating a Subscriber for `VersionListDatabaseColumnsEvent` and `VersionListTableColumnsEvent`.

```
use HeimrichHannot\AdvancedDashboardBundle\Event\VersionListDatabaseColumnsEvent;
use HeimrichHannot\AdvancedDashboardBundle\Event\VersionListTableColumnsEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

class AdvancedDashboardEventSubscriber implements EventSubscriberInterface {

    public static function getSubscribedEvents(){
        return [
            VersionListDatabaseColumnsEvent::class => 'onVersionListDatabaseColumnsEvent',
            VersionListTableColumnsEvent::class => 'onVersionListTableColumnsEvent',
        ];
    }

    // Add additional database columns that should be fetched (or modify existing values)
    public function onVersionListDatabaseColumnsEvent(VersionListDatabaseColumnsEvent $event) {
        $event->addColumn('custom_information');
    }

    // Add additional columns to the version list.
    // `label` is the table column headline
    // `renderCallback` is the method that renders the content of the current column.
    //                  Gets the database values for the current row as parameter.
    public function onVersionListTableColumnsEvent(VersionListTableColumnsEvent $event) {
        $event->setColumn('custom_colum', [
            'label' => 'Custom information',
            'renderCallback' => function(array $version) {
                return $version['custom_information'] ?: 'No custom information';
            }
         ]);
    }
}
```

Configuration reference
-----------------------

[](#configuration-reference)

```
# Default configuration for extension with alias: "huh_advanced_dashboard"
huh_advanced_dashboard:

    # Configure user rights for version list. Can be selected in the user and user group settings.
    versions_rights:

        # Prototype: The title of the configuration. Should be a unique alias/name containing just 'a-z0-9-_' like 'all_users','editor_news'.
        name:

            # Allowed version table columns. Empty means all columns are allowed.
            columns:

                # Defaults:
                - date
                - user
                - table
                - id
                - description
                - version
                - actions

            # Allowed database tables. Empty means all tables are allowed.
            tables:               []

            # Access rights for other users version logs.
            user_access_level:    [self] # One of "all"; "self"
```

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 94.1% 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 ~265 days

Total

4

Last Release

979d ago

PHP version history (2 changes)0.1.0PHP ^7.2

0.1.3PHP ^7.2|^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/28ad3224d8727b622ebd229840eea6b9dbcb83eb0bd609e6ce65b614830ff538?d=identicon)[digitales@heimrich-hannot.de](/maintainers/digitales@heimrich-hannot.de)

---

Top Contributors

[![koertho](https://avatars.githubusercontent.com/u/12064642?v=4)](https://github.com/koertho "koertho (16 commits)")[![matuweb](https://avatars.githubusercontent.com/u/13745042?v=4)](https://github.com/matuweb "matuweb (1 commits)")

### Embed Badge

![Health badge](/badges/heimrichhannot-contao-advanced-dashboard-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/heimrichhannot-contao-advanced-dashboard-bundle/health.svg)](https://phpackages.com/packages/heimrichhannot-contao-advanced-dashboard-bundle)
```

###  Alternatives

[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k16.7M310](/packages/easycorp-easyadmin-bundle)[codefog/contao-haste

haste extension for Contao Open Source CMS

42650.8k139](/packages/codefog-contao-haste)[sulu/article-bundle

Bundle for managing localized content-rich entities like blog-posts in the Sulu content management system

66409.6k2](/packages/sulu-article-bundle)[codefog/contao-news_categories

News Categories bundle for Contao Open Source CMS

3183.3k6](/packages/codefog-contao-news-categories)[contao-community-alliance/dc-general

Universal data container for Contao

1578.3k86](/packages/contao-community-alliance-dc-general)[numero2/contao-storelocator

Contao Plugin for managing stores (or in common address data) and providing a frontend-search based on geo data

121.5k](/packages/numero2-contao-storelocator)

PHPackages © 2026

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