Aus deinem Post geht nicht hervor, was du nachhaken möchtest . Ohne weitere Informationen kann ich nur wiederholen, was schon gepostet wurde.
Ich hatte deinen Beitrag zitiert. Da ging es um die Ausgabe der Custom fields in einer eigenen Gruppe im Frontend.
Deshalb hatte ich diesen Thread genommen weil oben alles steht. Ich kopiere das mal hier runter und zeige ein Feld als Beispiel
Feld mit einem Dropdown (rot) welches aktuell im Bereich personal Data ausgegeben wird. Nehme ich statt "personal" die Gruppe "test" landet es ganz unten und hat keine Überschrift. Vermutlich weil es diesen Bereich nicht vom Core her gibt. Ich bräuchte einen neuen Bereich "Ausbildung" der nach "Persönliche Daten" kommt. Genau da kam ich damals schon nciht weiter aber wir wollen das an dieser Stelle jetzt mit ein paar mehr Feldern ausbauen und ich brauche einen eigenen Bereich.
Code:$GLOBALS['TL_DCA']['tl_member']['fields']['jaegerpruefung'] = [ 'label' => ['Jägerprüfung', 'Geplantes Prüfungsquartal des Jagdschülers'], 'exclude' => true, 'filter' => true, 'inputType' => 'select', 'options' => ['', 'JP2/2022', 'JP1/2022', 'JP4/2021', 'JP3/2021', 'JP2/2021', 'JP3/2020'], 'eval' => array('tl_class'=>'w25', 'mandatory'=>false, 'doNotCopy'=>true, 'feGroup'=>'personal', 'feEditable' => true), 'sql' => "varchar(32) NOT NULL default" ]; PaletteManipulator::create() // add a new "custom_legend" before the "date_legend" ->addLegend('Infos zur Jagdausbildung', 'contact_legend', PaletteManipulator::POSITION_AFTER) ->addField('ausbildungspaket', 'Infos zur Jagdausbildung', PaletteManipulator::POSITION_APPEND) ->addField('jaegerpruefung', 'Infos zur Jagdausbildung', PaletteManipulator::POSITION_APPEND) ->addField('praktische_pruefung', 'Infos zur Jagdausbildung', PaletteManipulator::POSITION_APPEND) ->addField('status', 'Infos zur Jagdausbildung', PaletteManipulator::POSITION_APPEND) ->addField('info', 'Infos zur Jagdausbildung', PaletteManipulator::POSITION_APPEND) ->applyToPalette('default', 'tl_member') ;
Und was muss ich dafür wo tun?
Das wäre super denn hier übersteigt es leider mein Wissen
Ich weiß ehrlich gesagt nicht so recht nach was bzw. wo ich suchen soll. Wenn im das vendor/Core Verzeichnis runterlade und nach "personal" suche wäre ein möglicher Treffer in der ModulePersonalData der auf eine translation Variable hinweist.
PHP-Code:
$objTemplate->wildcard = '### ' . Utf8::strtoupper($GLOBALS['TL_LANG']['FMD']['personalData'][0]) . ' ###';
/var/cache/prod/contao/languages/de bzw contao/languages/de/tl_member.php
PHP-Code:
$GLOBALS['TL_LANG']['tl_member']['personal_legend'] = 'Personendaten';
$GLOBALS['TL_LANG']['tl_member']['address_legend'] = 'Adressdaten';
$GLOBALS['TL_LANG']['tl_member']['contact_legend'] = 'Kontaktdaten';
Geändert von Kahmoon (17.03.2021 um 11:30 Uhr)
Ich habe jetzt in contao/languages/de/tl_member.php verschiedene Einträge versucht und anschließend den Cache geleert. Das sind halt eigentlich Backendvariablen dort. Also zumindest die Erste.
PHP-Code:
$GLOBALS['TL_LANG']['tl_member']['groups_legend'] = 'Jagdkurse';
$GLOBALS['TL_LANG']['tl_member']['ausbildung_legend'] = 'Ausbildung';
$GLOBALS['TL_LANG']['tl_member']['test_legend'] = 'Test';
PHP-Code:
$GLOBALS['TL_DCA']['tl_member']['fields']['jaegerpruefung'] = [
'label' => ['Jägerprüfung', 'Geplantes Prüfungsquartal des Jagdschülers'],
'exclude' => true,
'filter' => true,
'inputType' => 'select',
'options' => ['','JP3/2020','JP4/2020', 'JP1/2021', 'JP2/2021', 'JP3/2021', 'JP4/2021', 'JP1/2022', 'JP2/2022', 'JP3/2022', 'JP4/2022', 'JP1/2023', 'JP2/2023', 'JP3/2023', 'JP4/2023'],
'eval' => array('tl_class'=>'w25', 'mandatory'=>false, 'doNotCopy'=>true, 'feGroup'=>'ausbildung', 'feEditable' => true),
'sql' => "varchar(32) NOT NULL default"
];
$GLOBALS['TL_DCA']['tl_member']['fields']['praktische_pruefung'] = [
'label' => ['Praktische Prüfung', 'Datum der praktischen Prüfung. Wichtig für die Planung der WHH Termine!'],
'exclude' => true,
'filter' => true,
'sorting' => true,
'flag' => 5,
'inputType' => 'text',
'eval' => array('rgxp'=>'date', 'mandatory'=>false, 'doNotCopy'=>true, 'datepicker'=>true, 'tl_class'=>'w25 wizard', 'feGroup'=>'test', 'feEditable' => true),
'sql' => "int(10) unsigned NULL"
];
Edit:
Auch testhalber einen der anderen Werte überschreiben geht nicht. Das ändert nur im Backend die Bezeichnung siehe Anhang
PHP-Code:
$GLOBALS['TL_LANG']['tl_member']['personal_legend'] = 'xxx';
Geändert von Kahmoon (17.03.2021 um 11:46 Uhr)
Hab gerade nachgesehen: wenn deine feGroup test heißt, dann sieht der Translation Key so aus: tl_member.testDetails
Also immer die feGroup + "Details" hinten dran. zB:PHP-Code:
// contao/languages/de/tl_member.php
$GLOBALS['TL_LANG']['tl_member']['testDetails'] = 'Flädlesuppe';
Yay! Flädlesuppe war genau das Richtige! :-P. Danke!
Kann man dieser Gruppe noch irgendwo eine CSS Klasse geben damit man das optisch etwas absetzen kann?
Vermutlich form_fieldset. Ich schau mal. Danke
Ja, is alles default.
Jetzt habe ich noch eine weitere Frage. Ich würde gerne ein Feld für den Schüler machen in das er seine aktuelle Anzahl an Praxisstunden eintragen kann die er bereits absolviert hat. Ich könnte das jetzt mit einem hardcodierten Dropdown von 1-60 machen.
Das gibt aber ein Problem für einen späteren Filter im Backend. Hier bräuchte ich eine von bis Filterung ähnlich wie bei der Begrenzung Einträge pro Seite sonst kann man nur auf die genaue Anzahl Stunden filtern. Wünschenswert wäre aber z.B. alle unter 40 Std.Code:$GLOBALS['TL_DCA']['tl_member']['fields']['praxisstunden'] = [ 'label' => ['Praxisstunden', 'xxxxx'], 'exclude' => true, 'filter' => true, 'inputType' => 'select', 'options' => ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'], 'eval' => array('tl_class'=>'w25', 'mandatory'=>true, 'doNotCopy'=>true, 'feGroup'=>'ausbildung', 'feEditable' => true), 'sql' => "varchar(32) NOT NULL default" ];
Gibts hier ne bessere Lösung als hardcoded?
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Lesezeichen