Hi guys,
On Magento 2.3.0, there are some issues regarding logo upload for header section or for transactional emails (Content -> Design -> Configuration -> My Theme (edit) -> ...).
I tried to override design_config_form.xml, both from module-theme and module-email in my custom module, so that I can change fileUploader with imageUploader, and I'm asking how should I do this?
So far I succeeded somehow, but I'm still confused why it's working. Basically, I created in my custom module a file called design_config_form.xml under view/adminhtml/ui_component and changed fileUploader with imageUploader. Somehow it worked, but I don't know why because I didn't add the sequence in module.xml.
Also, there are two files with the same name (design_config_form.xml), both from different modules and I want to override them in the same module. How can I do that?
Solved! Go to Solution.
Hi @Anonymous ,
Magento merges xml config into one. design_config_form.xml merge according to sequence order. In your case, this is missing and order by module name. You can combine two xml by following way:
app/code/SR/MagentoCommunity/view/adminhtml/ui_component/design_config_form.xml
<?xml version="1.0" encoding="UTF-8"?>
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
<fieldset name="other_settings">
<fieldset name="head">
<field name="head_shortcut_icon" formElement="fileUploader">
<settings>
<notice translate="true">Not all browsers support all these formats!</notice>
<label translate="true">Favicon Icon</label>
<componentType>imageUploader</componentType>
</settings>
<formElements>
<imageUploader>
<settings>
<allowedExtensions>jpg jpeg gif png ico apng</allowedExtensions>
<maxFileSize>2097152</maxFileSize>
<uploaderConfig>
<param xsi:type="string" name="url">theme/design_config_fileUploader/save</param>
</uploaderConfig>
</settings>
</imageUploader>
</formElements>
</field>
</fieldset>
<fieldset name="email">
<field name="email_logo" formElement="fileUploader">
<settings>
<notice translate="true">To optimize logo for high-resolution displays, upload an image that is 3x normal size and then specify 1x dimensions in the width/height fields below.</notice>
<label translate="true">Logo Image</label>
<componentType>imageUploader</componentType>
</settings>
<formElements>
<imageUploader>
<settings>
<allowedExtensions>jpg jpeg gif png</allowedExtensions>
<maxFileSize>2097152</maxFileSize>
<uploaderConfig>
<param xsi:type="string" name="url">theme/design_config_fileUploader/save</param>
</uploaderConfig>
</settings>
</imageUploader>
</formElements>
</field>
</fieldset>
</fieldset>
</form>
Hi @Anonymous ,
Magento merges xml config into one. design_config_form.xml merge according to sequence order. In your case, this is missing and order by module name. You can combine two xml by following way:
app/code/SR/MagentoCommunity/view/adminhtml/ui_component/design_config_form.xml
<?xml version="1.0" encoding="UTF-8"?>
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
<fieldset name="other_settings">
<fieldset name="head">
<field name="head_shortcut_icon" formElement="fileUploader">
<settings>
<notice translate="true">Not all browsers support all these formats!</notice>
<label translate="true">Favicon Icon</label>
<componentType>imageUploader</componentType>
</settings>
<formElements>
<imageUploader>
<settings>
<allowedExtensions>jpg jpeg gif png ico apng</allowedExtensions>
<maxFileSize>2097152</maxFileSize>
<uploaderConfig>
<param xsi:type="string" name="url">theme/design_config_fileUploader/save</param>
</uploaderConfig>
</settings>
</imageUploader>
</formElements>
</field>
</fieldset>
<fieldset name="email">
<field name="email_logo" formElement="fileUploader">
<settings>
<notice translate="true">To optimize logo for high-resolution displays, upload an image that is 3x normal size and then specify 1x dimensions in the width/height fields below.</notice>
<label translate="true">Logo Image</label>
<componentType>imageUploader</componentType>
</settings>
<formElements>
<imageUploader>
<settings>
<allowedExtensions>jpg jpeg gif png</allowedExtensions>
<maxFileSize>2097152</maxFileSize>
<uploaderConfig>
<param xsi:type="string" name="url">theme/design_config_fileUploader/save</param>
</uploaderConfig>
</settings>
</imageUploader>
</formElements>
</field>
</fieldset>
</fieldset>
</form>
Hi @Sohel,
Thank you, it's working. But, how should I do it if I want to override two or three XMLs, with different fieldsets, in the same module?
PS. Somehow, I successfully overwritten the default_config_form.xml from module-theme in app/code/TemplateMonster/ThemeOptions/view/adminhtml/ui_component.
Hi @Anonymous ,
You need to create the same xml file for this. In your case, default_config_form.xml inside you can add as many fieldsets as you want or overwrite it. Also, your module name is TemplateMonster_ThemeOptions that's why this is loaded last where you did not add sequence though.