Kendi UI Bileşeninizi "oluşturmanız" * gerekir. Bunu, Tarih Kullanıcı Arabirimi Bileşeni'ni genişleterek yapabilirsiniz.
# 1 XML'i formunuza ekleyin
Alanı alan kümesine ekleyin. Bu örnekte, oluşturacağımız bileşen çağrılmaktadır time
. template
Aşağıdaki XML'de bir bildirimde bulunabileceğinizi unutmayın . Ancak, gerçek oluşturmayı yapan Nakavt şablonunu saran XHTML şablonu olduğu için gerçekten iyi olmaz. Burada doğrulama gibi bildirebileceğiniz başka düğümler var.
<field name="time_field">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="label" xsi:type="string" translate="true">Time</item>
<item name="dataType" xsi:type="string">text</item>
<item name="formElement" xsi:type="string">date</item>
<item name="dataScope" xsi:type="string">time_field</item>
<item name="component" xsi:type="string">Your_Module/js/form/element/time</item>
</item>
</argument>
</field>
# 2 UI Bileşenini Oluşturma
// app/code/Your/Module/view/adminhtml/web/js/form/element/time.js
define([
'Magento_Ui/js/form/element/date'
], function(Date) {
'use strict';
return Date.extend({
defaults: {
options: {
showsDate: false,
showsTime: true,
timeOnly: true
},
elementTmpl: 'ui/form/element/date'
}
});
});
Yukarıdaki Javascript hakkında birkaç not:
elementTmpl
gerekli değil. Ancak, şablonu (şu anda module-ui/view/base/web/templates/form/element/date.html
) özelleştirmek istiyorsanız , kendi şablonunuzu oluşturun ve ona referans verin elementTmpl
.
Giriş için daha fazla seçenek var. Bunlar hakkında daha fazla bilgi bulabilirsiniz: http://trentrichardson.com/examples/timepicker/#tp-options . Kodda, burada tüm varsayılanların bir listesi vardır:/lib/web/jquery/jquery-ui-timepicker-addon.js
Sonuç:
- Bu noktada, kendi UI Bileşeninizi buna benzer bir şekilde beyan etmenin mümkün olduğuna inanmıyorum
definitions.xml
. Ancak, bunları minimum çaba ile genişletebilirsiniz . (Ve bir yolu varsa, lütfen bana bildirin).