Ergebnis 1 bis 8 von 8

Thema: PaletteManipulator Palette not found

  1. #1
    Contao-Nutzer Avatar von ttcdummy
    Registriert seit
    02.03.2014.
    Beiträge
    213
    User beschenken
    Wunschliste

    Standard PaletteManipulator Palette not found

    Hallo zusammen,

    ich finde den Fehler nicht.
    Ich habe zuerst dem Bundle gesagt, dass es nach dem Core geladen wird:

    Hier die /src/ContaoManager/Plugin.php

    PHP-Code:
    namespace Acme\ContentBundle\ContaoManager;

    use 
    Contao\ManagerPlugin\Bundle\Config\BundleConfig;
    use 
    Contao\ManagerPlugin\Bundle\BundlePluginInterface;
    use 
    Contao\ManagerPlugin\Bundle\Parser\ParserInterface;

    class 
    Plugin implements BundlePluginInterface
    {
        
    /**
         * {@inheritdoc}
         */
        
    public function getBundles(ParserInterface $parser)
        {
            return [
                
    BundleConfig::create('Acme\ContentBundle\AcmeContentBundle')->setLoadAfter([
                    
    'Contao\CoreBundle\ContaoCoreBundle',
                ]),
            ];
        }

    Dann den DCA in tl_content.php definiert.

    Hier der DCA:
    PHP-Code:
    <?php

    /*
     * Extend palettes
     */
    \Contao\CoreBundle\DataContainer\PaletteManipulator::create()
        ->
    addField('player_custom_size''player_legend', \Contao\CoreBundle\DataContainer\PaletteManipulator::POSITION_APPEND)
        ->
    applyToPalette('default''tl_content');

        
    /**
         * Player size
         * 
         */
        
    $GLOBALS['TL_DCA']['tl_content']['fields']['player_custom_size'] = array
        (
            
    'label'                   => &$GLOBALS['TL_LANG']['tl_content']['player_custom_size'],
            
    'explanation'             => &$GLOBALS['TL_LANG']['tl_content']['player_custom_size'],
            
    'default'                 => '1',
            
    'exclude'                 => true,
            
    'inputType'               => 'select',
            
    'options'                 => array('1' => '1/3''2' => '1/2 (halbe Breite)''3' => 'volle Breite'),
            
    'eval'                    => array('mandatory' => true'tl_class'=>'clr w50'),
            
    'sql'                     => "varchar(32) NOT NULL default ''"
        
    );

    ?>
    Das Installtool meldet einen Fehler.
    In der Log-Datei steht:
    Code:
    [2018-01-29 09:53:43] request.INFO: Matched route "contao_install". {"route":"contao_install","route_parameters":{"_scope":"backend","_token_check":true,"_controller":"Contao\\InstallationBundle\\Controller\\InstallationController::installAction","_route":"contao_install"},"request_uri":"domain.tld/contao/install","method":"POST"} []
    [2018-01-29 09:53:43] app.CRITICAL: An exception occurred. {"exception":"[object] (Contao\\CoreBundle\\Exception\\PaletteNotFoundException(code: 0): Palette \"default\" not found in table \"tl_content\" at /srv/kunden/domain/public_html/vendor/contao/core-bundle/src/DataContainer/PaletteManipulator.php:123)"} []
    Jetzt bin ich allerdings überrascht, dass die Palette 'default' nicht gefunden wird. Denn die gibt es ja wohl in tl_content.

    Kann jemand erkennen was ich falsch gemacht habe?

    Grüße

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.179
    Partner-ID
    10107

    Standard

    In die default Palette von tl_content fügst du ja normalerweise nichts ein, die siehst du ja nie.

  3. #3
    Contao-Nutzer Avatar von ttcdummy
    Registriert seit
    02.03.2014.
    Beiträge
    213
    User beschenken
    Wunschliste

    Standard

    Das stimmt wohl, habe also die Palette 'youtube' gewählt:

    PHP-Code:
    /* 
     * Extend palettes 
     */ 
    \Contao\CoreBundle\DataContainer\PaletteManipulator::create() 
        ->
    addField('player_custom_size''player_legend', \Contao\CoreBundle\DataContainer\PaletteManipulator::POSITION_APPEND
        ->
    applyToPalette('youtube''tl_content'); 
    Jetzt kommt der gleiche Fehler mit 'youtube':
    Code:
    app.CRITICAL: An exception occurred. {"exception":"[object] (Contao\\CoreBundle\\Exception\\PaletteNotFoundException(code: 0): Palette \"youtube\" not found in table \"tl_content\" at /srv/kunden/domain/public_html/vendor/contao/core-bundle/src/DataContainer/PaletteManipulator.php:123)"} []
    Die Palette existiert doch:
    https://github.com/contao/core-bundl...ntent.php#L129

    Habe ich etwas anderes noch falsch gemacht?
    Geändert von ttcdummy (29.01.2018 um 10:23 Uhr)

  4. #4
    Contao-Nutzer Avatar von ttcdummy
    Registriert seit
    02.03.2014.
    Beiträge
    213
    User beschenken
    Wunschliste

    Standard

    Ich stelle fest, dass es mit der Tabelle und den Paletten in 'tl_news' problemlos funktioniert.
    Ich verstehe nicht, warum es das bei der Tabelle 'tl_content' und z. B. der Palette 'youtube' nicht tut

  5. #5
    Contao-Nutzer Avatar von ttcdummy
    Registriert seit
    02.03.2014.
    Beiträge
    213
    User beschenken
    Wunschliste

    Standard

    Hat niemand noch ne Idee? Würde ungern wieder mit einem Replace-Befehl arbeiten.

  6. #6
    Contao-Fan
    Registriert seit
    16.11.2012.
    Ort
    Freiburg
    Beiträge
    539

    Standard

    Hab grad bei mir mit folgendem Code

    PHP-Code:
    // Add palettes to tl_content
    \Contao\CoreBundle\DataContainer\PaletteManipulator::create()
        ->
    addField('player_custom_size''player_legend', \Contao\CoreBundle\DataContainer\PaletteManipulator::POSITION_APPEND)
        ->
    applyToPalette('youtube''tl_content');

    // Add fields to tl_content
    $GLOBALS['TL_DCA']['tl_content']['fields']['player_custom_size'] = [
        
    'label'     => &$GLOBALS['TL_LANG']['tl_content']['player_custom_size'],
        
    'exclude'   => true,
        
    'inputType' => 'select',
        
    'options'   => [123],
        
    'eval'      => [
            
    'mandatory' => true,
            
    'tl_class'  => 'clr w50'
        
    ],
        
    'sql'       => [
            
    'type'    => 'string',
            
    'length'  => 32,
            
    'default' => ''
        
    ]
    ]; 
    unter Contao 4.5.3 versucht. Funktioniert ohne Probleme
    Grüße
    Alex

  7. #7
    Contao-Nutzer Avatar von ttcdummy
    Registriert seit
    02.03.2014.
    Beiträge
    213
    User beschenken
    Wunschliste

    Standard

    0_o ... wie sieht Deine Plugin.php aus?

  8. #8
    Contao-Fan
    Registriert seit
    16.11.2012.
    Ort
    Freiburg
    Beiträge
    539

    Standard

    ist nichts besonderes enthalten


    PHP-Code:
    class Plugin implements BundlePluginInterface
    {
        public function 
    getBundles(ParserInterface $parser)
        {
            return [
                
    BundleConfig::create(AcmeBundle::class)
                    ->
    setLoadAfter(
                        [
                            
    ContaoCoreBundle::class
                        ]
                    )
            ];
        }

    Grüße
    Alex

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •