ম্যাজেন্টো 2 ইউকোম্পোন্ট ব্যবহার করে ডেটপিকার ব্যবহার করে টাইমপিকার দেখান


14

আমি দেখাতে চাই timepicker আমার UiComponent আকারে

ম্যাজেন্টো ডক্স যেমন টাইম পিকার সরবরাহ করে তার বিভিন্নতা দেখায়: এখানে চিত্র বর্ণনা লিখুন

আমি আমার ফর্মটিতে এটি ইউআইকম্পোন্টেট ব্যবহার করে চাই।

দ্রষ্টব্য: সময়সূচির সময় দেখাতে হবে তাই কোনও তারিখের প্রয়োজন নেই।

পরীক্ষিত রেফারেন্স: ম্যাজেন্টো 2-তে অ্যাডমিনটিচটিএমএল ফর্মটিতে টাইম রেঞ্জ পিকারটি কীভাবে যুক্ত করবেন? (তবে এটির ব্লকটি ব্যবহার করে, আমি ইউআইকম্পোনেন্ট ব্যবহার করতে চাই)



হ্যাঁ, আমি কেবলমাত্র সময় চাই ক্যালেন্ডার নয়।
— রোনক চৌহান


2
আমি কেবল সময় তারিখের সময় চাই তাই এর সদৃশ প্রশ্ন নয় @teja ভাগবনের কোলেপাড়া
— রোনাক চৌহান

@ তেজাবাগাভানকোলেপাড়া দয়া করে, সমস্ত প্রশ্নগুলি প্রতিপক্ষ হিসাবে চিহ্নিত করার আগে মনোযোগ দিয়ে পড়ুন।
— সিয়ারে উখখলেবাউ

উত্তর:


9

আপনার নিজের ইউআই উপাদানটি "তৈরি" করতে হবে। আপনি তারিখের UI উপাদানটি বাড়িয়ে এটি করতে পারেন।

# 1 আপনার ফর্মটিতে এক্সএমএল যুক্ত করুন

ফিল্ডসেটে ক্ষেত্রটি যুক্ত করুন। এই উদাহরণে, আমরা যে উপাদানটি তৈরি করব তা বলা হয় time। নোট করুন যে আপনি templateনিম্নলিখিত এক্সএমএলে একটি ঘোষণা করতে পারেন । তবে এটি সত্যই কোনও ভাল করতে পারে না কারণ এটি এক্সএইচটিএমএল টেমপ্লেট যা নকআউট টেমপ্লেটটি আসল রেন্ডারিং করে w অন্যান্য নোড রয়েছে যা আপনি বৈধতার মতো এখানে ঘোষণা করতে পারেন।

<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 ইউআই কম্পোনেন্ট তৈরি করুন

// 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'
        }
    });
});

উপরের জাভাস্ক্রিপ্টে কয়েকটি নোট:

elementTmplপ্রয়োজন হয় না. তবে, আপনি যদি টেমপ্লেটটি (বর্তমানে module-ui/view/base/web/templates/form/element/date.html) কাস্টমাইজ করতে চান তবে কেবল নিজের টেম্পলেট তৈরি করুন এবং এর সাথে এটি উল্লেখ করুন elementTmpl।

ইনপুট জন্য আরও বিকল্প আছে। আপনি তাদের সম্পর্কে আরও জানতে পারেন: http://trentrichardson.com/example/timepicker/#tp-options । কোডটিতে, এখানে সমস্ত ডিফল্টের একটি তালিকা রয়েছে:/lib/web/jquery/jquery-ui-timepicker-addon.js

শেষ ফলাফল:

সময় কম্পোনেন্ট


  • এই মুহুর্তে, আমি বিশ্বাস করি না যে এটির মতো অনুরূপভাবে আপনার নিজের ইউআই উপাদানটি ঘোষণা করা সম্ভব definitions.xml। তবে, আপনি তাদের সর্বনিম্ন প্রচেষ্টা দিয়ে প্রসারিত করতে পারেন । (এবং যদি কোনও উপায় থাকে তবে দয়া করে আমাকে জানান)

1
@ জন, ইউআই উপাদানগুলি ম্যাজেন্টো 1 তে বিদ্যমান নেই তবে এটি ম্যাগেন্টো <= 2.1। ম্যাজেন্টো ২.২ স্কিমা প্রত্যাশায় কিছু পরিবর্তন আনল। সম্ভবত আমি সে সম্পর্কিত একটি নোট যুক্ত করতে সক্ষম হব, তবে আপনি যদি ম্যাজেন্টো ২.২ স্কিমিটি নির্ধারণ করেন তবে দয়া করে পোস্ট করুন।
— bassplayer7

2

আপনি কেবল উপরের মত একই ফলাফলের জন্য এই এক্সএমএল কোডটি ব্যবহার করতে পারেন:

<field name="opening_time">
    <argument name="data" xsi:type="array">
        <item name="config" xsi:type="array">
            <item name="dataType" xsi:type="string">string</item>
            <item name="label" xsi:type="string" translate="true">Opening time</item>
            <item name="formElement" xsi:type="string">date</item>
            <item name="source" xsi:type="string">page</item>
            <item name="sortOrder" xsi:type="number">70</item>
            <item name="dataScope" xsi:type="string">opening_time</item>
            <item name="validation" xsi:type="array">
                <item name="required-entry" xsi:type="boolean">true</item>
            </item>
            <item name="options" xsi:type="array">
                <item name="dateFormat" xsi:type="string">yyyy-MM-dd</item>
                <item name="timeFormat" xsi:type="string">HH:mm:ss</item>
                <item name="showsTime" xsi:type="boolean">true</item>
                <item name="timeOnly" xsi:type="boolean">true</item>
            </item>
        </item>
    </argument>
</field>

ফলাফল: এখানে চিত্র বর্ণনা লিখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.