Sto cercando di cambiare il comportamento di un modale (non modello) in Magento 2.
Il modale in questione è advanced_inventory_modal
, dichiarato in module-catalog-inventory/view/adminhtml/ui_component/product_form.xml
.
Ora so di poter usare un modificatore nel pool di modificatori di form di prodotto:
<virtualType name="Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Pool">
<arguments>
<argument name="modifiers" xsi:type="array">
<item name="hf_quantity" xsi:type="array">
<item name="class" xsi:type="string">Vendor\Module\Ui\DataProvider\Product\Form\Modifier\Quantity</item>
<item name="sortOrder" xsi:type="number">100</item>
</item>
</argument>
</arguments>
</virtualType>
... e uso il modifyMeta()
metodo nel mio modificatore per manipolare la configurazione XML, ma per qualche ragione, il modale dell'inventario non è presente nei dati forniti qui.Inoltre, non è un L' sortOrder
problema correlato poiché ho già impostato il livello più alto.sortOrder
attributo potrebbe avere qualcosa a che fare con esso.
Quindi cosa dà? Qualcuno può dirmi qual è il modo corretto di modificare il contenuto di un modale esistente in Magento 2?
Modificare:
Ho trovato una soluzione o una soluzione (non ancora sicuro) su come ottenere ciò che sto cercando di ottenere. Si scopre che se ho impostato sortOrder
su 10000 ho alcuni dati nel mio modifyMeta()
metodo -a che posso usare:
public function modifyMeta(array $meta)
{
if ($path = $this->arrayManager->findPath('quantity_and_stock_status_qty', $meta, null, 'children')) {
$this->arrayManager->remove(
$path . '/children/qty/arguments/data/config/validation/validate-digits',
$meta
);
}
if ($path = $this->arrayManager->findPath('advanced_inventory_modal', $meta)) {
$meta = $this->arrayManager->merge(
$path . '/children/stock_data/children/qty/arguments/data/config',
$meta,
['validation' => ['validate-digits' => false]]
);
}
return $meta;
}
Note that the `advanced_inventory_modal` node is not yet complete, but my best guess is that the later addition of the modal merges with these settings, but doesn't override it. Could be wrong though, perhaps someone could share some more light on how this mechanism works?