Yönetici listesi ve formu için ui bileşenleri kullanarak Magento 2 için bir CRUD modülü inşa ediyorum ve varlıklarımdan biri görüntü alanı vardır.
Ama olması gerektiği gibi çalışmasını sağlayamıyorum.
İşte nasıl olması gerektiği.
Ekleme modunda veya yüklenen görüntü bulunmayan düzenleme modundayken basit bir dosya girişi gibi görünmelidir.
Bir dosya yüklendiğinde, resim önizlemesini ve altında bir silme kutusunu göstermelidir.
Tam olarak bu tasarımı aramıyorum. Farklı görünebilir, ancak aynı işlevselliğe sahip olabilir.
Magento 1'de bunu sadece kendi blok oluşturucumu oluşturarak başardım
class {{Namespace}}_{{Module}}_Block_Adminhtml_{{Entity}}_Helper_Image extends Varien_Data_Form_Element_Image
{
protected function _getUrl()
{
$url = false;
if ($this->getValue()) {
$url = Mage::helper('{{namespace}}_{{module}}/{{entity}}_image')->getImageBaseUrl().$this->getValue();
}
return $url;
}
}
Ve bunu form bloğuma ekleyerek
$fieldset->addType(
'image',
Mage::getConfig()->getBlockClassName('{{namespace}}_{{module}}/adminhtml_{{entity}}_helper_image')
);
Ama Magento 2'de hiçbir form bloğu yok
. Ui bileşenleri dosyasındaki form alanı için bir sınıf adı kullanabileceğimi biliyorum
<field name="image" class="Class\Name\Here">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Resume</item>
<item name="formElement" xsi:type="string">image</item>
<item name="source" xsi:type="string">[entity]</item>
<item name="dataScope" xsi:type="string">image</item>
</item>
</argument>
</field>
Açıkçası bu sınıfı yaratmak zorundayım, ama neyi genişletmeliyim?
Tek bildiğim arayüzü uygulamak zorunda olduğum Magento\Framework\View\Element\UiComponentInterface
ama genişletebileceğim hiçbir şey bulamadım.
Yani asıl sorum şu: İstenilen davranışı elde etmek için bir sınıfı genişletebilir miyim? Değilse, bu öğe oluşturucuyu oluşturmaya nasıl başlayabilirim?