heimrichhannot / contao-archive-palettes-bundle
This bundle offers functionality for selecting custom palettes depending on the parent archive for the backend of the Contao CMS.
Installs: 1 020
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:contao-bundle
Requires
- php: ^7.4 || ^8.0
- contao/core-bundle: ^4.9
- heimrichhannot/contao-utils-bundle: ^2.164
- symfony/dependency-injection: ^4.4 || ^5.0
- symfony/polyfill-php80: ^1.26
README
This bundle offers functionality for selecting custom palettes depending on the parent archive for the backend of the Contao CMS.
Features
- add custom palettes to your DCA files
- select them in the parent archive
Setup
-
Install via composer:
composer require heimrichhannot/contao-archive-palettes-bundle
. -
Adjust your project configuration
Example for tl_news:
# config/config.yml huh_archive_palettes: tables: tl_news: # The table where the custom palettes should be applied parent: "tl_news_archive" # The archive table where custom palette should be selected palette_parent: "comments_legend" # A legend or a field after which the palette selector should be inserted in the parent table palette
-
Clear cache and update your database
Configuration
Configuration via yaml
# Default configuration for extension with alias: "huh_archive_palettes" huh_archive_palettes: # The tables that should be extended with the archive palette. tables: # Example: tl_news # Prototype name: # The parent (archive) table. parent: ~ # Required, Example: tl_news_archive # A field or a parent where the should be added after. palette_parent: ~ # Required
Configuration via PHP
- Open the DCA file you'd like to extend. As an example we use
tl_news
. It should be located in your project bundle. - Create the custom field palettes as you would normally:
// ... $dca['palettes']['custom_palette1'] = '{general_legend},field1,field2;'; $dca['palettes']['custom_palette2'] = '{general_legend},field3,field4;';
- Paste the following code at the end of the DCA file in order to insert the palette manipulation logic:
System::getContainer()->get(\HeimrichHannot\ArchivePalettesBundle\Manager\ArchivePalettesManager::class)->addArchivePalettesSupportForChild( 'tl_news', 'tl_news_archive' );
- Open the parent DCA file, i.e. the archive DCA file. In the case of
tl_news
this would betl_news_archive
. - Paste the following code at the end of the DCA file in order to insert the palette manipulation logic:
System::getContainer()->get(\HeimrichHannot\ArchivePalettesBundle\Manager\ArchivePalettesManager::class)->addArchivePalettesSupportForArchive( 'tl_news', 'tl_news_archive' );
- Add the following code at the end of the file in order to add the palette selector field (the field as been added in the step before):
// ... $dca['palettes']['default'] = $dca['palettes']['default'] . ';{archive_palettes_legend},addArchivePalette;';
- Clear the project cache and update the database in order to add the needed fields.
- Open archive's configuration (
editheader
operation in most cases) and set the custom palette to your needs.