Closed emha closed 5 years ago
Der Release v1.1.1
funktioniert noch. Der Release v1.2.1
nicht mehr. Dazwischen scheint eine Änderung das kaputt zu machen.
das reCAPTCHA-Bundle legt noch eine eigene Palette an, die angezeigt wird, wenn reCAPTCHA 3 als Typ ausgewählt wurde. Da das Bundle scheinbar vor dem eigenen Code geladen wird, müsste vom eigenen Code sowohl die default
, als auch die recaptcha3
Palette angepasst werden:
$GLOBALS['TL_DCA']['tl_settings']['palettes']['default'] = str_replace('{global_legend}', "$legend;{global_legend}", $GLOBALS['TL_DCA']['tl_settings']['palettes']['default']);
$GLOBALS['TL_DCA']['tl_settings']['palettes']['recaptcha3'] = str_replace('{global_legend}', "$legend;{global_legend}", $GLOBALS['TL_DCA']['tl_settings']['palettes']['recaptcha3']);
Nicht ganz optimal, aber im Moment die einzige Lösung die mir einfällt, die gleichzeitig das richtige Palette-Wechsel-Verhalten beibehält.
Es wäre schön, wenn die letzten commits neu getagt würden, weil der Bug in tl_settings immer ncoh auftritt.
Hier noch mein Workaraound mit dem Palette Manipulator.
<?php
// dca/tl_settings.php
// Extend the default palette
Contao\CoreBundle\DataContainer\PaletteManipulator::create()
->addLegend('recaptcha_legend', 'files_legend', Contao\CoreBundle\DataContainer\PaletteManipulator::POSITION_AFTER)
->addField(['recaptchaType', 'recaptchaPublicKey', 'recaptchaPrivateKey'], 'recaptcha_legend', Contao\CoreBundle\DataContainer\PaletteManipulator::POSITION_APPEND)
->applyToPalette('default', 'tl_settings');
if (Contao\Config::get('recaptchaType') === 'recaptcha3')
{
// Add additional field if Contao\Config::get('recaptchaType') === 'recaptcha3'
Contao\CoreBundle\DataContainer\PaletteManipulator::create()
->addField(['recaptcha3GlobalThreshold'], 'recaptchaType', Contao\CoreBundle\DataContainer\PaletteManipulator::POSITION_AFTER)
->applyToPalette('default', 'tl_settings');
}
Das Bundle überschreibt die von anderen gesetzten Definitionen in der
tl_settings.php
. Ich kann nicht sagen warum das passiert. Sobald ich das Bundle via composer entferne werden die Definitionen aus anderen Bundles wieder ausgegeben.Cache gelöscht,
composer du
ausgeführt. Keine Veränderung.Ich versuche vor das
global_legend
Felder einzufügen. Das hat vor der Installation des Recaptcha-Bundles auch funktioniert.$GLOBALS['TL_DCA']['tl_settings']['palettes']['default'] = str_replace('{global_legend}', "$legend;{global_legend}", $GLOBALS['TL_DCA']['tl_settings']['palettes']['default']);