MetaModels / core

MetaModels Core Module
GNU Lesser General Public License v3.0
96 stars 42 forks source link

Exception: "Metapalette definition of palette "url" does not exist" (attribute_translatedurl without installed attribute_url) #1427

Closed johannes-bittner closed 2 years ago

johannes-bittner commented 3 years ago

Checklist before I submit this issue report

I confirm that:

My environment is:

(Please fill in the actual values from your environment - check Contao Manager or use composer show)

Key Value Comments
PHP version: 7.2.19
Contao version: 4.9.8
MetaModels version: dev-feature/2.2.0
Installed MetaModels packages: attribute_alias, attribute_checkbox, attributeselectattribute,tags, attribute_text, attributetranslatedaliasattribute, translatedlongtext, attribute_translatedtext, translatedurl,(attribute_url), filter_checkbox, filter_fromto, filter_perimeter, search, filter_range, filter_register, filter_select, filter_tags, filter_text missing attribute_url causes the application to break
DCG version: dev-release/2.2.0

Issue description

(Describe the problem you are having)

Steps to reproduce

  1. [First Step] Install core and attributes including attribute_translatedurl but except for attribute_url, update db etc.
  2. [Second Step] In the Contao backend, click on MetaModels > Attributes
  3. [Error] See error message below
  4. [Remedy] Installation of attribute_url solves the issue

Describe the behaviour of the application

Metapalette definition of palette "url" does not exist

$loader = require __DIR__.'/../vendor/autoload.php';$request = Request::createFromGlobals();$kernel = ContaoKernel::fromRequest(\dirname(__DIR__), $request);$response = $kernel->handle($request);$response->send();if ($kernel instanceof TerminableInterface) {    $kernel->terminate($request, $response);}
InvalidArgumentException:
Metapalette definition of palette "url" does not exist

  at vendor/contao-community-alliance/meta-palettes/src/Parser/MetaPaletteParser.php:73
  at ContaoCommunityAlliance\MetaPalettes\Parser\MetaPaletteParser->parsePalette('tl_metamodel_attribute', 'url', object(PalettesDefinitionInterpreter), true)
     (vendor/contao-community-alliance/meta-palettes/src/Parser/Interpreter/PalettesDefinitionInterpreter.php:136)
  at ContaoCommunityAlliance\MetaPalettes\Parser\Interpreter\PalettesDefinitionInterpreter->inherit('url', object(MetaPaletteParser))
     (vendor/contao-community-alliance/meta-palettes/src/Parser/MetaPaletteParser.php:89)
  at ContaoCommunityAlliance\MetaPalettes\Parser\MetaPaletteParser->parsePalette('tl_metamodel_attribute', 'translatedurl', object(PalettesDefinitionInterpreter))
     (vendor/contao-community-alliance/meta-palettes/src/Parser/MetaPaletteParser.php:46)
  at ContaoCommunityAlliance\MetaPalettes\Parser\MetaPaletteParser->parse('tl_metamodel_attribute', array('config' => array('dataContainer' => 'General', 'ptable' => 'tl_metamodel', 'switchToEdit' => false, 'enableVersioning' => false, 'sql' => array('keys' => array('id' => 'primary', 'pid' => 'index', 'colname' => 'index')), 'ondelete_callback' => array(array('Haste\\Model\\Relations', 'cleanRelatedRecords'))), 'dca_config' => array('data_provider' => array('parent' => array('source' => 'tl_metamodel'), 'tl_metamodel_rendersetting' => array('source' => 'tl_metamodel_rendersetting'), 'tl_metamodel_dcasetting' => array('source' => 'tl_metamodel_dcasetting'), 'tl_metamodel_dcasetting_condition' => array('source' => 'tl_metamodel_dcasetting_condition'), 'tl_metamodel_translatedtext' => array('source' => 'tl_metamodel_translatedtext'), 'tl_metamodel_translatedlongtext' => array('source' => 'tl_metamodel_translatedlongtext'), 'tl_metamodel_translatedurl' => array('source' => 'tl_metamodel_translatedurl')), 'childCondition' => array(array('from' => 'tl_metamodel', 'to' => 'tl_metamodel_attribute', 'setOn' => array(array('to_field' => 'pid', 'from_field' => 'id')), 'filter' => array(array('local' => 'pid', 'remote' => 'id', 'operation' => '=')), 'inverse' => array(array('local' => 'pid', 'remote' => 'id', 'operation' => '='))), array('from' => 'tl_metamodel_attribute', 'to' => 'tl_metamodel_rendersetting', 'setOn' => array(array('to_field' => 'attr_id', 'from_field' => 'id')), 'filter' => array(array('local' => 'attr_id', 'remote' => 'id', 'operation' => '='))), array('from' => 'tl_metamodel_attribute', 'to' => 'tl_metamodel_dcasetting', 'setOn' => array(array('to_field' => 'attr_id', 'from_field' => 'id')), 'filter' => array(array('local' => 'attr_id', 'remote' => 'id', 'operation' => '='))), array('from' => 'tl_metamodel_attribute', 'to' => 'tl_metamodel_translatedtext', 'setOn' => array(array('to_field' => 'att_id', 'from_field' => 'id')), 'filter' => array(array('local' => 'att_id', 'remote' => 'id', 'operation' => '='))), array('from' => 'tl_metamodel_attribute', 'to' => 'tl_metamodel_translatedlongtext', 'setOn' => array(array('to_field' => 'att_id', 'from_field' => 'id')), 'filter' => array(array('local' => 'att_id', 'remote' => 'id', 'operation' => '='))), array('from' => 'tl_metamodel_attribute', 'to' => 'tl_metamodel_translatedurl', 'setOn' => array(array('to_field' => 'att_id', 'from_field' => 'id')), 'filter' => array(array('local' => 'att_id', 'remote' => 'id', 'operation' => '='))), array('from' => 'tl_metamodel_attribute', 'to' => 'tl_metamodel_translatedtext', 'setOn' => array(array('to_field' => 'att_id', 'from_field' => 'id')), 'filter' => array(array('local' => 'att_id', 'remote' => 'id', 'operation' => '='))))), 'list' => array('sorting' => array('disableGrouping' => true, 'mode' => 4, 'fields' => array('sorting'), 'panelLayout' => 'filter;search;limit', 'headerFields' => array('name', 'tableName', 'tstamp', 'translated', 'varsupport'), 'flag' => 1), 'label' => array('fields' => array('name'), 'format' => '%s'), 'global_operations' => array('all' => array('label' => array('Mehrere bearbeiten', 'Mehrere Elemente auf einmal bearbeiten'), 'href' => 'act=select', 'class' => 'header_edit_all', 'attributes' => 'onclick="Backend.getScrollOffset();"')), 'operations' => array('edit' => array('label' => array('Attribut bearbeiten', 'Das Attribut mit der ID %s bearbeiten.'), 'href' => 'act=edit', 'icon' => 'edit.svg'), 'cut' => array('label' => array('Attribut-Definition ausschneiden', 'Schneiden Sie die Definition des Attributes ID %s aus.'), 'href' => 'act=paste&mode=cut', 'icon' => 'cut.svg', 'attributes' => 'onclick="Backend.getScrollOffset();"'), 'delete' => array('label' => array('Attribut löschen', 'Das Attribut ID %s löschen.'), 'href' => 'act=delete', 'icon' => 'delete.svg', 'attributes' => 'onclick="if (!confirm(\'Soll das Element ID %s wirklich gelöscht werden?\')) return false; Backend.getScrollOffset();"'), 'show' => array('label' => array('Attribut-Details', 'Die Details des Attributs ID %s anzeigen.'), 'href' => 'act=show', 'icon' => 'show.svg'))), 'metapalettes' => array('default' => array('title' => array('type')), '_base_ extends default' => array('+title' => array('colname', 'name', 'description'), 'advanced' => array(':hide', 'isvariant', 'isunique'), 'metamodeloverview' => array(), 'backenddisplay' => array()), '_simpleattribute_ extends _base_' => array(), '_complexattribute_ extends _base_' => array(), 'translatedtext extends _complexattribute_' => array(), 'tags extends _simpleattribute_' => array('+display' => array('tag_table after description', 'tag_column', 'tag_id', 'tag_alias', 'tag_sorting', 'tag_sort', 'tag_where', 'tag_filter', 'tag_filterparams')), 'translatedlongtext extends _complexattribute_' => array(), 'translatedurl extends url' => array(), 'text extends _simpleattribute_' => array(), 'checkbox extends _simpleattribute_' => array('+advanced' => array('check_publish', 'check_inverse', 'check_listview')), 'alias extends _simpleattribute_' => array('+advanced' => array('force_alias'), '+display' => array('validAliasCharacters', 'slugLocale', 'alias_prefix', 'alias_postfix', 'noIntegerPrefix', 'alias_fields after description')), 'translatedalias extends _complexattribute_' => array('+advanced' => array('force_talias'), '+display' => array('validAliasCharacters', 'prepostfix_fields', 'noIntegerPrefix', 'talias_fields after description')), 'translatedtags extends tags' => array('+display' => array('tag_langcolumn after tag_id', 'tag_srctable', 'tag_srcsorting')), 'select extends _simpleattribute_' => array('+display' => array('select_table after description', 'select_column', 'select_id', 'select_alias', 'select_sorting', 'select_where', 'select_filter', 'select_filterparams'))), 'palettes' => array('__selector__' => array('type')), 'fields' => array('id' => array('sql' => 'int(10) unsigned NOT NULL auto_increment'), 'pid' => array('sql' => 'int(10) unsigned NOT NULL default \'0\''), 'sorting' => array('sorting' => true, 'sql' => 'int(10) unsigned NOT NULL default \'0\''), 'tstamp' => array('sql' => 'int(10) unsigned NOT NULL default \'0\''), 'type' => array('label' => array('Attribut-Typ', 'Wählen Sie den Typ dieses Attributes. WARNUNG: Wenn der Attributtyp geändert wird, dann werden alle bereits bestehenden Daten für das Attribut gelöscht!'), 'exclude' => false, 'inputType' => 'select', 'eval' => array('includeBlankOption' => true, 'doNotSaveEmpty' => true, 'alwaysSave' => true, 'submitOnChange' => true, 'mandatory' => true, 'tl_class' => 'w50', 'chosen' => true), 'filter' => true, 'search' => true, 'sql' => 'varchar(64) NOT NULL default \'\''), 'name' => array('label' => array('Name', 'Für Menschen lesbarer Name.'), 'exclude' => false, 'inputType' => 'text', 'eval' => array('tl_class' => 'clr'), 'search' => true, 'sql' => 'text NULL'), 'description' => array('label' => array('Beschreibung', 'Für Menschen lesbare Beschreibung.'), 'exclude' => false, 'inputType' => 'text', 'eval' => array('tl_class' => 'clr'), 'sql' => 'text NULL'), 'colname' => array('label' => array('Spaltenname', 'Interner Referenz-Name für dieses Attribut.'), 'exclude' => false, 'inputType' => 'text', 'eval' => array('mandatory' => true, 'maxlength' => 64, 'tl_class' => 'w50', 'doNotOverrideMultiple' => true), 'search' => true, 'sql' => 'varchar(64) NOT NULL default \'\''), 'isvariant' => array('label' => array('Varianten überschreiben', 'Anwählen, falls Sie innerhalb des MetaModels Varianten wünschen, um Elternwerte zu überschreiben.'), 'inputType' => 'checkbox', 'eval' => array('submitOnChange' => true, 'tl_class' => 'cbx w50'), 'sql' => 'char(1) NOT NULL default \'\''), 'isunique' => array('label' => array('Eindeutige Werte', 'Wählen Sie diese Option, wenn Sie sicherstellen möchten, dass jeder Wert nur einmal vorkommen kann.'), 'inputType' => 'checkbox', 'eval' => array('tl_class' => 'cbx w50'), 'sql' => 'char(1) NOT NULL default \'\''), 'tag_table' => array('label' => array('Datenbanktabelle', 'Bitte wählen Sie eine Datenbanktabelle aus.'), 'exclude' => false, 'inputType' => 'select', 'eval' => array('includeBlankOption' => true, 'mandatory' => true, 'doNotSaveEmpty' => true, 'alwaysSave' => true, 'submitOnChange' => true, 'tl_class' => 'w50', 'chosen' => 'true'), 'sql' => 'varchar(255) NOT NULL default \'\''), 'tag_column' => array('label' => array('Tabellenspalte für Bezeichnung/Name', 'Bitte wählen Sie eine Spalte.'), 'exclude' => false, 'inputType' => 'select', 'eval' => array('includeBlankOption' => true, 'mandatory' => true, 'doNotSaveEmpty' => true, 'alwaysSave' => true, 'tl_class' => 'w50', 'chosen' => 'true'), 'sql' => 'varchar(255) NOT NULL default \'\''), 'tag_id' => array('label' => array('ID der Mehrfachauswahl', 'Bitte wählen Sie einen Eintrag für die ID der Mehrfachauswahl aus.'), 'exclude' => false, 'inputType' => 'select', 'eval' => array('includeBlankOption' => true, 'mandatory' => true, 'doNotSaveEmpty' => true, 'alwaysSave' => true, 'tl_class' => 'w50', 'chosen' => 'true'), 'sql' => 'varchar(255) NOT NULL default \'\''), 'tag_alias' => array('label' => array('Alias der Mehrfachauswahl', 'Bitte wählen Sie einen Eintrag für den Alias der Mehrfachauswahl aus.'), 'exclude' => false, 'inputType' => 'select', 'eval' => array('includeBlankOption' => true, 'mandatory' => true, 'doNotSaveEmpty' => true, 'alwaysSave' => true, 'tl_class' => 'w50', 'chosen' => 'true'), 'sql' => 'varchar(255) NOT NULL default \'\''), 'tag_sorting' => array('label' => array('Sortierung der Mehrfachauswahl', 'Bitte wählen Sie einen Eintrag für die Sortierung der Mehrfachauswahl aus.'), 'exclude' => false, 'inputType' => 'select', 'eval' => array('includeBlankOption' => true, 'mandatory' => true, 'doNotSaveEmpty' => true, 'alwaysSave' => true, 'tl_class' => 'w50 clr', 'chosen' => 'true'), 'sql' => 'varchar(255) NOT NULL default \'\''), 'tag_where' => array('label' => array('SQL', 'Die Auswahlmöglichkeiten können per SQL eingeschränkt werden.'), 'exclude' => false, 'inputType' => 'textarea', 'eval' => array('tl_class' => 'clr', 'style' => 'height: 4em;', 'decodeEntities' => 'true'), 'sql' => 'text NULL'), 'tag_filter' => array('label' => array('Filter', 'Hier können Sie den Filter wählen.'), 'exclude' => false, 'inputType' => 'select', 'eval' => array('includeBlankOption' => true, 'alwaysSave' => true, 'submitOnChange' => true, 'tl_class' => 'clr w50', 'chosen' => 'true'), 'sql' => 'int(11) unsigned NOT NULL default \'0\''), 'tag_filterparams' => array('label' => array('Filterparameter', 'Hier können Sie eine Vorgabe für den Filter wählen.'), 'exclude' => false, 'inputType' => 'mm_subdca', 'eval' => array('tl_class' => 'clr m12'), 'sql' => 'text NULL'), 'tag_sort' => array('label' => array('Sortierrichtung', 'Richtung der Sortierung.'), 'exclude' => false, 'inputType' => 'select', 'options' => array('asc', 'desc'), 'eval' => array('tl_class' => 'w50'), 'reference' => array('asc' => 'Aufsteigend', 'desc' => 'Absteigend'), 'sql' => 'varchar(10) NOT NULL default \'asc\''), 'check_publish' => array('label' => array('Veröffentlichen', 'Falls aktiviert, werden die Datensätze im Frontend angezeigt. Gleichzeitig ist in der Backend-Ansicht das Symbol \'Auge\' verfügbar, mit dem die Veröffentlichung eines Datensatzes ebenfalls gesteuert werden kann.'), 'exclude' => false, 'inputType' => 'checkbox', 'sql' => 'char(1) NOT NULL default \'\'', 'eval' => array('tl_class' => 'cbx w50')), 'check_inverse' => array('label' => array('Invertierte Anzeigeoption', 'Ist diese Option gesetzt, wird der Status "Veröffentlichen" invertiert (umgekehrt), d.h. das Element wird nicht angezeigt wenn diese Option gesetzt wird (Analog der Einstellung "Unsichtbar" bei den Contao-Inhaltselementen).'), 'exclude' => false, 'inputType' => 'checkbox', 'sql' => 'char(1) NOT NULL default \'\'', 'eval' => array('tl_class' => 'cbx w50')), 'check_listview' => array('label' => array('Listenanzeige-Checkbox ', 'Ist diese Option gesetzt, wird ein zusätzliches Icon in der Listenanzeige des Backends eingefügt.'), 'exclude' => false, 'inputType' => 'checkbox', 'sql' => 'char(1) NOT NULL default \'\'', 'eval' => array('tl_class' => 'clr cbx w50', 'submitOnChange' => true)), 'check_listviewicon' => array('label' => array('Icon der Listenansicht "aktiv"', 'Dieses Icon wird in der Listenanzeige des Backends für den Status "aktiv" gezeigt.'), 'exclude' => false, 'inputType' => 'fileTree', 'sql' => 'blob NULL', 'eval' => array('fieldType' => 'radio', 'files' => true, 'filesOnly' => true, 'extensions' => 'jpg,jpeg,gif,png,tif,tiff,svg', 'tl_class' => 'clr w50')), 'check_listviewicondisabled' => array('label' => array('Icon in der Listenansicht "inaktiv"', 'Dieses Icon wird in der Listenanzeige des Backends für den Status "inaktiv" gezeigt.'), 'exclude' => false, 'inputType' => 'fileTree', 'sql' => 'blob NULL', 'eval' => array('fieldType' => 'radio', 'files' => true, 'filesOnly' => true, 'extensions' => 'jpg,jpeg,gif,png,tif,tiff,svg', 'tl_class' => 'w50')), 'validAliasCharacters' => array('label' => array('Gültige Alias-Zeichen', 'Hier können Sie einen individuellen Zeichensatz für automatisch erstellte Aliase auswählen.'), 'exclude' => false, 'inputType' => 'select', 'options_callback' => object(Closure), 'eval' => array('includeBlankOption' => true, 'decodeEntities' => true, 'tl_class' => 'w50', 'helpwizard' => true), 'explanation' => 'validAliasCharacters', 'sql' => 'varchar(255) NOT NULL default \'\''), 'slugLocale' => array('label' => array('Convert language', 'Please enter the language to convert alias characters according to the ISO-639-1 standard (e.g. "en" for English or "en-US" for American English).'), 'exclude' => false, 'inputType' => 'text', 'sql' => 'varchar(5) default NULL', 'eval' => array('rgxp' => 'language', 'maxlength' => 5, 'nospace' => true, 'tl_class' => 'w50')), 'noIntegerPrefix' => array('label' => array('No integer prefix', 'Trim the "id-" prefix for alias that are numeric.'), 'exclude' => false, 'inputType' => 'checkbox', 'default' => 1, 'sql' => 'char(1) NOT NULL default \'\'', 'eval' => array('tl_class' => 'clr w50')), 'alias_prefix' => array('label' => array('Alias-Präfix', 'Optionale Angabe eines Präfix für die Erstellung des Alias.'), 'exclude' => false, 'inputType' => 'text', 'sql' => 'varchar(255) NOT NULL default \'\'', 'eval' => array('rgxp' => 'alpha', 'tl_class' => 'clr w50')), 'alias_postfix' => array('label' => array('Alias-Postfix', 'Optionale Angabe eines Postfix für die Erstellung des Alias.'), 'exclude' => false, 'inputType' => 'text', 'sql' => 'varchar(255) NOT NULL default \'\'', 'eval' => array('tl_class' => 'w50')), 'alias_fields' => array('label' => array('Alias-Felder', 'Bitte wählen Sie eines oder mehrere Attribute, um daraus einen Alias zu bilden.'), 'exclude' => false, 'inputType' => 'multiColumnWizard', 'sql' => 'blob NULL', 'eval' => array('tl_class' => 'clr w50', 'columnFields' => array('field_attribute' => array('label' => 'Attribute', 'exclude' => true, 'inputType' => 'select', 'reference' => array('meta' => 'Metafelder', 'attributes' => 'Attribute'), 'eval' => array('style' => 'width:100%', 'chosen' => 'true'))))), 'force_alias' => array('label' => array('Neuerstellung des Alias erzwingen.', 'Auswählen, um eine Neuerstellung des Alias zu erzwingen, wenn sich eines der abhängigen Felder ändert. Beachten Sie, dass bisherige URLs dadurch ungültig werden können.'), 'exclude' => false, 'inputType' => 'checkbox', 'sql' => 'char(1) NOT NULL default \'\'', 'eval' => array('tl_class' => 'cbx w50')), 'prepostfix_fields' => array('label' => array('Alias prefix and postfix', 'Please enter optional prefix and/or postfix.'), 'exclude' => false, 'minCount' => 1, 'maxCount' => 1, 'disableSorting' => '1', 'inputType' => 'multiColumnWizard', 'eval' => array('dragAndDrop' => false, 'hideButtons' => true, 'tl_class' => 'clr clx w50', 'columnFields' => array('prepostfix_language' => array('label' => array('Language'), 'exclude' => true, 'inputType' => 'justtextoption', 'eval' => array('valign' => 'center')), 'talias_prefix' => array('label' => array('Alias prefix', 'Optionally add a prefix term.'), 'exclude' => true, 'inputType' => 'text', 'eval' => array('style' => 'width:100%')), 'talias_postfix' => array('label' => array('Alias postfix', 'Optionally add a postfix term.'), 'exclude' => true, 'inputType' => 'text', 'eval' => array('style' => 'width:100%')))), 'sql' => 'blob NULL'), 'talias_fields' => array('label' => array('Alias fields', 'Please select one or more attributes to combine a alias.'), 'exclude' => false, 'inputType' => 'multiColumnWizard', 'eval' => array('tl_class' => 'clr clx w50', 'columnFields' => array('field_attribute' => array('label' => 'Attribute', 'exclude' => true, 'inputType' => 'select', 'reference' => array('meta' => 'Metafelder', 'attributes' => 'Attribute'), 'eval' => array('style' => 'width:100%', 'chosen' => 'true')))), 'sql' => 'blob NULL'), 'force_talias' => array('label' => array('Neuerstellung des Alias erzwingen.', 'Auswählen, um eine Neuerstellung des Alias zu erzwingen, wenn sich eines der abhängigen Felder ändert. Beachten Sie, dass bisherige URLs dadurch ungültig werden können.'), 'exclude' => false, 'inputType' => 'checkbox', 'eval' => array('tl_class' => 'cbx w50'), 'sql' => 'char(1) NOT NULL default \'\''), 'tag_langcolumn' => array('label' => array('Sprachenspalte', 'Bitte angeben, welche Spalte den Sprachcode nach ISO 639-1 enthält.'), 'exclude' => false, 'inputType' => 'select', 'eval' => array('includeBlankOption' => true, 'doNotSaveEmpty' => true, 'alwaysSave' => true, 'submitOnChange' => true, 'tl_class' => 'w50', 'chosen' => 'true'), 'sql' => 'varchar(255) NOT NULL default \'\''), 'tag_srctable' => array('label' => array('Nicht-Übersetzte Tabelle für die Sortierung.', 'Bitte nennen Sie die Tabelle, welche die zu sortieren de Spalte enthält.'), 'exclude' => false, 'inputType' => 'select', 'eval' => array('includeBlankOption' => true, 'alwaysSave' => true, 'submitOnChange' => true, 'tl_class' => 'w50', 'chosen' => 'true'), 'sql' => 'varchar(255) NOT NULL default \'\''), 'tag_srcsorting' => array('label' => array('Sortierspalte', 'Wählen Sie bitte, welche Spalte der noch nicht übersetzten Tabelle für die Sortierung verwendet werden soll.'), 'exclude' => false, 'inputType' => 'select', 'eval' => array('includeBlankOption' => true, 'alwaysSave' => true, 'submitOnChange' => true, 'tl_class' => 'w50', 'chosen' => 'true'), 'sql' => 'varchar(255) NOT NULL default \'\''), 'select_table' => array('label' => array('Quelltabelle', 'Bitte wählen Sie die Tabelle, aus der die Werte bezogen werden sollen.'), 'exclude' => false, 'inputType' => 'select', 'sql' => 'varchar(255) NOT NULL default \'\'', 'eval' => array('includeBlankOption' => true, 'mandatory' => true, 'submitOnChange' => true, 'tl_class' => 'w50', 'chosen' => 'true')), 'select_column' => array('label' => array('Werte-Spalte', 'Bitte wählen Sie die Tabellenspalte, aus der ein Textwert bezogen werden soll.'), 'exclude' => false, 'inputType' => 'select', 'sql' => 'varchar(255) NOT NULL default \'\'', 'eval' => array('includeBlankOption' => true, 'mandatory' => true, 'tl_class' => 'w50', 'chosen' => 'true')), 'select_id' => array('label' => array('ID-Spalte', 'Bitte wählen Sie die Tabellenspalte aus, die als Datensatz-ID dienen soll.'), 'exclude' => false, 'inputType' => 'select', 'sql' => 'varchar(255) NOT NULL default \'\'', 'eval' => array('includeBlankOption' => true, 'mandatory' => true, 'tl_class' => 'w50', 'chosen' => 'true')), 'select_alias' => array('label' => array('Alias-Spalte', 'Bitte wählen Sie die Tabellenspalte, die als Optionsalias (zum Beispiel in Filterwidgets) benutzt werden soll. Falls Sie unsicher sind, wählen Sie dieselbe Spalte wie für die ID aus.'), 'exclude' => false, 'inputType' => 'select', 'sql' => 'varchar(255) NOT NULL default \'\'', 'eval' => array('includeBlankOption' => true, 'mandatory' => true, 'tl_class' => 'w50', 'chosen' => 'true')), 'select_sorting' => array('label' => array('Auswahl-Sortierung', 'Bitte wählen Sie einen Eintrag für die Tag-Sortierung aus.'), 'exclude' => false, 'inputType' => 'select', 'sql' => 'varchar(255) NOT NULL default \'\'', 'eval' => array('includeBlankOption' => true, 'mandatory' => true, 'tl_class' => 'w50', 'chosen' => 'true')), 'select_where' => array('label' => array('SQL', 'Die Auswahlmöglichkeiten können per SQL eingeschränkt werden.'), 'exclude' => false, 'inputType' => 'textarea', 'sql' => 'text NULL', 'eval' => array('tl_class' => 'clr', 'style' => 'height: 4em;', 'decodeEntities' => 'true')), 'select_filter' => array('label' => array('Filter', 'Hier können Sie den Filter wählen.'), 'exclude' => false, 'inputType' => 'select', 'sql' => 'int(11) unsigned NOT NULL default \'0\'', 'eval' => array('includeBlankOption' => true, 'alwaysSave' => true, 'submitOnChange' => true, 'tl_class' => 'clr w50', 'chosen' => 'true')), 'select_filterparams' => array('label' => array('Filterparameter', 'Hier können Sie eine Vorgabe für den Filter wählen..'), 'exclude' => false, 'inputType' => 'mm_subdca', 'sql' => 'text NULL', 'eval' => array('tl_class' => 'clr m12'))), 'metasubpalettes' => array('check_listview' => array('check_listviewicon', 'check_listviewicondisabled'))), object(PalettesDefinitionInterpreter))
     (vendor/contao-community-alliance/meta-palettes/src/Listener/MetaPalettesBuilder.php:125)
  at ContaoCommunityAlliance\MetaPalettes\Listener\MetaPalettesBuilder->build(object(BuildDataDefinitionEvent), 'dc-general.factory.build-data-definition', object(TraceableEventDispatcher))
     (vendor/symfony/event-dispatcher/Debug/WrappedListener.php:126)
  at Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke(object(BuildDataDefinitionEvent), 'dc-general.factory.build-data-definition', object(TraceableEventDispatcher))
     (vendor/symfony/event-dispatcher/EventDispatcher.php:264)
  at Symfony\Component\EventDispatcher\EventDispatcher->doDispatch(array(object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener)), 'dc-general.factory.build-data-definition', object(BuildDataDefinitionEvent))
     (vendor/symfony/event-dispatcher/EventDispatcher.php:239)
  at Symfony\Component\EventDispatcher\EventDispatcher->callListeners(array(object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener)), 'dc-general.factory.build-data-definition', object(BuildDataDefinitionEvent))
     (vendor/symfony/event-dispatcher/EventDispatcher.php:73)
  at Symfony\Component\EventDispatcher\EventDispatcher->dispatch(object(BuildDataDefinitionEvent), 'dc-general.factory.build-data-definition')
     (vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:168)
  at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch(object(BuildDataDefinitionEvent), object(BuildDataDefinitionEvent))
     (vendor/contao-community-alliance/dc-general/src/Factory/DcGeneralFactory.php:381)
  at ContaoCommunityAlliance\DcGeneral\Factory\DcGeneralFactory->createContainer()
     (vendor/contao-community-alliance/dc-general/src/Factory/DcGeneralFactory.php:332)
  at ContaoCommunityAlliance\DcGeneral\Factory\DcGeneralFactory->createEnvironment()
     (vendor/contao-community-alliance/dc-general/src/Factory/DcGeneralFactory.php:298)
  at ContaoCommunityAlliance\DcGeneral\Factory\DcGeneralFactory->createDcGeneral()
     (vendor/contao-community-alliance/dc-general/src/DC/General.php:92)
  at ContaoCommunityAlliance\DcGeneral\DC\General->__construct('tl_metamodel_attribute', array('tables' => array('tl_metamodel', 'tl_metamodel_attribute', 'tl_metamodel_filter', 'tl_metamodel_filtersetting', 'tl_metamodel_rendersettings', 'tl_metamodel_rendersetting', 'tl_metamodel_dca_sortgroup', 'tl_metamodel_dca', 'tl_metamodel_dcasetting', 'tl_metamodel_dca_combine', 'tl_metamodel_dcasetting_condition', 'tl_metamodel_searchable_pages'), 'icon' => 'bundles/metamodelscore/images/backend/logo.png', 'callback' => 'MetaModels\\BackendIntegration\\Module'))
     (vendor/contao/core-bundle/src/Resources/contao/classes/Backend.php:411)
  at Contao\Backend->getBackendModule('metamodels', null)
     (vendor/contao/core-bundle/src/Resources/contao/controllers/BackendMain.php:167)
  at Contao\BackendMain->run()
     (vendor/contao/core-bundle/src/Controller/BackendController.php:48)
  at Contao\CoreBundle\Controller\BackendController->mainAction()
     (vendor/symfony/http-kernel/HttpKernel.php:158)
  at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1)
     (vendor/symfony/http-kernel/HttpKernel.php:80)
  at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true)
     (vendor/symfony/http-kernel/Kernel.php:201)
  at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
     (web/index.php:31)
  at require('/XXXXX/contao49/web/index.php')
     (web/app.php:4)      

Describe the expected behaviour of the application

Pretty obviously granting access to the attributes ...

zonky2 commented 2 years ago

see https://github.com/MetaModels/attribute_translatedurl/issues/17