-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fileTree im MetaModel funktioniert nicht: Property not registered #215
Comments
Please try this:
Good luck. <?php
use ContaoCommunityAlliance\DcGeneral\DataDefinition\Definition\Properties\DefaultProperty;
use ContaoCommunityAlliance\DcGeneral\Factory\Event\BuildDataDefinitionEvent;
return array
(
BuildDataDefinitionEvent::NAME => array(
array(
function (BuildDataDefinitionEvent $event) {
// Get the container and all properties.
$container = $event->getContainer();
$properties = $container->getPropertiesDefinition();
/** @var DefaultProperty $property */
foreach ($properties as $property) {
// Only run for mcw.
if ('multiColumnWizard' !== $property->getWidgetType()) {
continue;
}
// Get the extra and make an own field from it.
$config = $property->getExtra();
foreach ($config['columnFields'] as $fieldKey => $fieldConfig) {
// Build the default name.
$name = sprintf('%s__%s', $property->getName(), $fieldKey);
// Make a new field and fill it with the data from the config.
$subProperty = new DefaultProperty($name);
foreach ($fieldConfig as $key => $value) {
switch ($key) {
case 'label':
$subProperty->setLabel($value);
break;
case 'description':
if (!$subProperty->getDescription()) {
$subProperty->setDescription($value);
}
break;
case 'default':
if (!$subProperty->getDefaultValue()) {
$subProperty->setDefaultValue($value);
}
break;
case 'exclude':
$subProperty->setExcluded((bool)$value);
break;
case 'search':
$subProperty->setSearchable((bool)$value);
break;
case 'filter':
$subProperty->setFilterable((bool)$value);
break;
case 'inputType':
$subProperty->setWidgetType($value);
break;
case 'options':
$subProperty->setOptions($value);
break;
case 'explanation':
$subProperty->setExplanation($value);
break;
case 'eval':
$subProperty->setExtra(
array_merge(
(array)$subProperty->getExtra(),
(array)$value
)
);
break;
case 'reference':
$subProperty->setExtra(
array_merge(
(array)$subProperty->getExtra(),
array('reference' => &$subProperty['reference'])
)
);
break;
default:
}
}
// Add all to the current list.
$properties->addProperty($subProperty);
}
}
},
-500000
)
),
); |
Thank you very much! Works for me, but:
This part throws an error in MetaModels attribute editing because $subProperty is an instance of DefaultProperty, not an array. |
Thanks, i will fix it. If this works for you i'll make a new version of the MCW with this fix. |
@stefanheimes Auch von meiner Seite vielen lieben Dank, wir hatten telefoniert. Ich komm spätestens auf der Contao-Konferenz hierzu nochmal auf Dich zu, Du hast was bei uns gut! |
Implements a event for adding alls MCW fields to the DCA. This should solve a problem with the fileTree Widget or the pageTree widget. Moved the Event GetOptionsEvent to another folder. Add a new GetOptionsEvent Class under the MCW namespace. Mark the GetOptionsEvent in the MAW namespace as deprecated.
I have add a hotfix branch with a new version. Can u check if this is running for u. |
@Dodger77 @ADoebeling ping ;) |
Mach ma! |
@stefanheimes Sorry für die späte Rückmeldung. Wie auf der #ck2017 besprochen, gibt es mit dem Patch leider noch Probleme. @Dodger77 meldet sich mit den Details. |
wann? |
Ich habe heute eine Telko, da kläre ich nochmal den Status. Sorry für unsere Reaktionszeit. |
@Dodger77 wird sich hier Ende der Woche melden, wir haben gestern nochmal ein eigenes Entwicklungssystem aufgesetzt, um den aufgetretenen Fehler zu reproduzieren. |
Ich habe nun das EInspielen des Hotfix nochmal nachgestellt und bin dabei auf folgendes Problem gestoßen: Verschobene Klasse MenAtWork\MultiColumnWizard\Event\GetOptionsEvent
Anscheinend wird diese von MetaModels direkt in den Autoloader gepackt (vendor_autoload.php), so dass der verschobene Pfad Probleme bereitet hat. Als Workaround habe ich nun das Verzeichnis einfach kopiert. Damit lässt sich das aufrufen. Bei uns hat zudem das Problem bestanden, dass die #217 mit der 3.3.11 dann auch wieder aufgetreten ist, so dass wir die Version so erst einmal nicht mit MetaModels einsetzen konnten. Dafür habe ich allerdings mittlerweile auch eine Workaround gefunden. Als letzten (verzweifelten) Versuch hatte ich dann MetaModels aktualisiert. Das führte dann allerdings dazu, dass https://github.com/byteworks-ch/contao-metamodelsattribute_multi/ gar nicht mehr funktioniert hat. |
Contao-Version: 3.5.27 |
mit MCW 3.3.11 und contao-metamodelsattribute_multi funktioniert fast... Beim Ändern der Dateiauswahl und schließen des Modalfensters kommt
man kann trotzdem die Sachen Speichern... die Fehlermeldung beim |
Fixed in 3.3.16? |
Test 3.3.16 + DCG b42:
|
Hier die komplette Fehlermeldung:
Fatal error: Uncaught exception ContaoCommunityAlliance\DcGeneral\Exception\DcGeneralInvalidArgumentException with message Property atuk__mm_accessories_image is not registered. thrown in composer/vendor/contao-community-alliance/dc-general/src/ContaoCommunityAlliance/DcGeneral/DataDefinition/Definition/DefaultPropertiesDefinition.php on line 116
tritt auf wenn ich einen Ordner aufklappe.
Extensions die damit was zu tun haben könnten:
Wenns ein Fehler im MCW, könnt ihr uns gerne auch ne Schätzung zukommen lassen und wir beauftragen das.
Link zum ursprünglichen Ticket: https://github.com/byteworks-ch/contao-metamodelsattribute_multi/issues/3
The text was updated successfully, but these errors were encountered: