Ergebnis 1 bis 3 von 3

Thema: DCA Subpalette für select-Feld

  1. #1
    Community-Moderator & Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.862
    Contao-Projekt unterstützen

    Support Contao

    Standard DCA Subpalette für select-Feld

    Hallo,

    Contao 4.13
    Ziel:
    in den Artikel-Einstellungen möchte ich ein Feld für ein Hintergrundmedium einrichten.
    Auswahl über 'select'
    und je nach Auswahl soll ein neuer InputType bereit gestellt werden.

    In meinem ersten Versuch möchte ich nur mal 'Hintergrundbild' (addimage) auswählen und dann soll 'inputType' => 'fileTree' bereit gestellt werden. Später dann mal soll noch 'addcolor' hinzukommen und dann sollen andere Felder bereit gestellt werden.

    ich habe
    PHP-Code:
    <?php

    use Contao\CoreBundle\DataContainer\PaletteManipulator;
    use 
    Contao\System;

    PaletteManipulator::create()
        ->
    addLegend('articleSpacingLegend''template_legend'PaletteManipulator::POSITION_BEFORE)
        ->
    addField('sectionOptBackground''articleSpacingLegend'PaletteManipulator::POSITION_APPEND)
        ->
    addField('addimage''articleSpacingLegend'PaletteManipulator::POSITION_APPEND)

    $GLOBALS['TL_DCA']['tl_article']['__selector__'][] = 'sectionBackground';
    $GLOBALS['TL_DCA']['tl_article']['subpalettes']['sectionBackground'] = 'sectionOptBackground';

    $GLOBALS['TL_DCA']['tl_article']['fields']['sectionOptBackground'] = [
        
    'label'     => &$GLOBALS['TL_LANG']['tl_article']['sectionOptBackground'],
        
    'inputType' => 'select',
        
    'options'   => [
                        
    'addimage'  
                        
    ],
        
    'reference' => &$GLOBALS['TL_LANG']['MSC']['optSectionOptBackground'],                    
        
    'eval'      => ['tl_class' => 'w50 clr''includeBlankOption' => true'chosen' => true],
        
    'sql'       => "varchar(255) NOT NULL default ''"
    ];


    $GLOBALS['TL_DCA']['tl_article']['fields']['sectionOptBackground']['addimage'] = [
        
    'label' => &$GLOBALS['TL_LANG']['tl_article']['sectionOptBackgroundImage'],
        
    'exclude' => true,
        
    'inputType' => 'fileTree',
        
    'eval' => [
            
    'files' => true,
            
    'filesOnly' => true,
            
    'fieldType' => 'radio',
            
    'extensions' => \Contao\Config::get('validImageTypes'),
            
    'tl_class' => 'clr',
        ],
        
    'sql' => ['type' => 'binary''length' => 16'notnull' => false],
    ];
    Das Auswahlfeld wird mir auch dargestellt. Aber bei Auswahl von 'addimage' passiert dann nichts. 'fileTree' wird mir nicht dargestellt.

    Fragen:
    - ist das überhaupt möglich?
    - hat jemand einen Lösungsansatz für mich?
    Grüsse
    Bernhard


  2. #2
    Contao-Urgestein Avatar von cliffparnitzky
    Registriert seit
    08.10.2010.
    Ort
    Lüneburg
    Beiträge
    2.451
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Für "sectionBackground" muss ins eval() eine "submitOnChange=>true" und für die Subpalette probiere mal "sectionBackground_addimage".

  3. #3
    Community-Moderator & Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.862
    Contao-Projekt unterstützen

    Support Contao

    Standard

    vielen Dank.
    Da hatte ich übrigends noch einen weiteren Fehler mit eingebaut ... ['palettes'] hatte gefehlt.

    für Nachleser das Ergebnis:
    PHP-Code:
    <?php

    use Contao\CoreBundle\DataContainer\PaletteManipulator;
    use 
    Contao\System;

    PaletteManipulator::create()
        ->
    addField('sectionBackground''articleSpacingLegend'PaletteManipulator::POSITION_APPEND)
        
        ->
    applyToPalette('default''tl_article');


    $GLOBALS['TL_DCA']['tl_article']['palettes']['__selector__'][] = 'sectionBackground';
    $GLOBALS['TL_DCA']['tl_article']['subpalettes']['sectionBackground_addimage'] = 'background_addimage, background_size';

    $GLOBALS['TL_DCA']['tl_article']['fields']['sectionBackground'] = [
        
    'label'     => &$GLOBALS['TL_LANG']['tl_article']['sectionBackground'],
        
    'inputType' => 'select',
        
    'options'   => [
                        
    'addimage'
                        
    ],
        
    'reference' => &$GLOBALS['TL_LANG']['MSC']['optSectionBackground'],                    
        
    'eval'      => ['tl_class' => 'w50 clr''includeBlankOption' => true'chosen' => true'submitOnChange' => true],
        
    'sql'       => "varchar(255) NOT NULL default ''"
    ];


    $GLOBALS['TL_DCA']['tl_article']['fields']['background_addimage'] = [
        
    'label' => &$GLOBALS['TL_LANG']['tl_article']['background_addimage'],
        
    'exclude' => true,
        
    'inputType' => 'fileTree',
        
    'eval' => [
            
    'files' => true,
            
    'filesOnly' => true,
            
    'fieldType' => 'radio',
            
    'extensions' => \Contao\Config::get('validImageTypes'),
            
    'tl_class' => 'clr',
        ],
        
    'sql' => ['type' => 'binary''length' => 16'notnull' => false],
    ];

    $GLOBALS['TL_DCA']['tl_article']['fields']['background_size'] = [
        
    'label'            => &$GLOBALS['TL_LANG']['tl_article']['background_size'],
        
    'exclude'          => true,
        
    'inputType'        => 'imageSize',
        
    'reference'        => &$GLOBALS['TL_LANG']['MSC'],
        
    'eval'             => ['rgxp' => 'natural''includeBlankOption' => true'nospace' => true'helpwizard' => true'tl_class' => 'w50'],
        
    'options_callback' => function () {
            return 
    System::getContainer()->get('contao.image.image_sizes')->getOptionsForUser(BackendUser::getInstance());
        },
        
    'sql'              => "varchar(64) NOT NULL default ''",
    ];
    ich füge hier zusätzlich zur Auswahl der Quelldatei auch noch die Bildgrösse mit ein.
    Grüsse
    Bernhard


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
  •