Bir Modal'in (Model değil) davranışını Magento 2'de değiştirmeye çalışıyorum.
Söz konusu modal advanced_inventory_modal
, ilan edildi module-catalog-inventory/view/adminhtml/ui_component/product_form.xml
.
Artık ürün-değiştirici-havuzunda bir Değiştirici kullanabileceğimi biliyorum:
<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>
... ve modifyMeta()
XML yapılandırmasını değiştirmek için değiştiricimdeki -metod komutunu kullanın , ancak bir nedenden dolayı, envanter modeli burada sağlanan verilerde mevcut değildir.sortOrder
Zaten böyle yüksek bir seviyeye koyduğumdan beri de alakalı bir problem değil .sortOrder
-Attribute bununla bir şey olabilir.
Peki ne verir? Birisi bana Magento 2'deki mevcut bir modelin içeriğini değiştirmenin doğru yolunun ne olduğunu söyleyebilir mi?
Düzenle:
Elde etmeye çalıştığım şeye nasıl ulaşacağım konusunda bir çözüm veya geçici çözüm buldum (henüz emin değilim). Görünüşe göre 10000 olarak ayarlarsam sortOrder
, -a yönteminde kullanabileceğim bazı veriler var :modifyMeta()
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?