Magento 2 এ জেএস সম্প্রসারিত / ওভাররাইডিং


34

যেহেতু ম্যাজেন্টো 2 স্ক্রিপ্টগুলি লোড করার জন্য প্রয়োজনীয় জেএস ব্যবহার করছে এবং ত্বকের কোনও ফোল্ডার নেই, আমি কোনও সমস্যা নিয়ে আটকেছি :

আমি কীভাবে আমার পরিবর্তিত সংস্করণ দ্বারা ম্যাজেন্টোর মডিউল জেএস ফাইলটি প্রতিস্থাপন করতে পারি?

উদাহরণস্বরূপ - ওপেক-চেকআউট-পদ্ধতি.js যা ম্যাজেন্টো_চেকআউট এক্সটেনশনের অন্তর্গত। এটি প্রয়োজনীয় js-config.js ফাইলে সংজ্ঞায়িত করা হয়নি, যতদূর আমি দেখতে পাচ্ছি।

আমার এক্সটেনশানটি Magento_Checkout এর পরে লোড করা হয়েছে , সুতরাং এর প্রয়োজনীয়js-config.js ডেটা ফলস্বরূপ প্রয়োজনীয়js-config ফাইলের শেষে সংযুক্ত করা হয়।

বা পুরো স্ক্রিপ্টটি প্রতিস্থাপন না করে আমার অন্য কোনও উপায়ে এটি করা উচিত?


1
আমি কল্পনা করব যে আপনি ফাইল দ্বারা লোড হওয়া বস্তুর উপর ফাংশন (গুলি) প্রতিস্থাপনের মতো ফাইলটি প্রতিস্থাপন করবেন না।
— পিটার ও'কাল্লাঘন

উত্তর:


93

আর কোনও ত্বকের ফোল্ডার নেই তবে আপনি এখনও থিম ব্যবহার করতে পারেন।

ধারণার প্রমাণ হিসাবে আমি আপনাকে এর সাথে op-checkout-method.jsএই উদাহরণটি ব্যবহার করেছি ।

পূর্বশর্ত:

  • Magento2-beta11 ইনস্টল করা হয়েছে
  • ডিফল্ট থিম সক্রিয় (ফাঁকা)।
  • pub/staticফোল্ডারে কোনও ফাইল তৈরি হয়নি (পাব / স্ট্যাটিক / ফ্রন্টএন্ড ফোল্ডারটি সরিয়ে ফেলুন)

পদক্ষেপ:

  • op-checkout-method.jsফাইলটিকে এর মডিউল অবস্থান app/code/Magento/Checkout/view/frontend/web/js/opc-checkout-method.jsথেকে খালি থিমটিতে অনুলিপি করা হয়েছেapp/design/frontend/Magento/blank/Magento_Checkout/web/js/opc-checkout-method.js
  • ক্লোন ফাইল সম্পাদিত হবে এবং একটি যোগ console.log('something')অথবা alert('something')মধ্যে _createএর ফাংশন mage.opcCheckoutMethodউইজেট।
  • সাফ ব্রাউজার ক্যাশে।

ফলাফল:

  • যখন চেকআউট পৃষ্ঠাটি লোড হয় আমি আমার সতর্কতা প্রদর্শিত বা কনসোলে থাকা পাঠ্যটি দেখি।

সম্পর্কিত তথ্য:

যদি আমি ক্লিপ থেকে চালিত php dev/tools/Magento/Tools/View/deploy.php(স্ক্রিপ্ট যা স্থিতিশীল সংস্থানগুলি প্রকাশ করে) আমার নতুন জেএস ফাইলটি স্থাপন করা হয়pub/static/frontend/Magento/blank/en_US/Magento_Checkout/js/opc-checkout-method.js

[Edit]

আমি এটি একটি মডিউল মাধ্যমে করার উপায় খুঁজে পেয়েছি।

এটি [Namespace]/[Module]/view/frontend/requirejs-config.jsযোগ করুন:

var config = {
    map: {
        '*': {
            'Magento_Checkout/js/opc-checkout-method':'[Namespace]_[Module]/js/opc-checkout-method'
        }
    }
};

তারপরে [Namespace]/[Module]/view/frontend/web/js/opc-checkout-method.jsআপনার সামগ্রী দিয়ে ফাইলটি তৈরি করুন ।

উদ্দেশ্য পরীক্ষা করার জন্যে আমি মূল ফাইল ক্লোন এবং মাত্র আবার যোগ console.logমধ্যে _createফাংশন।

সামনের অংশের জন্য জনসাধারণের সংস্থানগুলি পুনরায় তৈরি করতে ভুলবেন না।


ধন্যবাদ, মারিয়াস! এক্সটেনশনের ভিতরে কি একই জিনিস করা সম্ভব?
— দিমিত্রিআর

আমি মনে করি না আপনি কোনও এক্সটেনশন থেকে এটি করেন van আপনি চেকআউট টেমপ্লেটটি সম্পূর্ণরূপে পরিবর্তন না করলে এটি ম্যাজেন্টো 1 এ সম্ভব ছিল না। তবে আমি এটি করার উপায় খুঁজছি।
— মারিয়াস

ধন্যবাদ আবার, মারিয়াস। আমি কাস্টমাইজড চেকআউট বাস্তবায়নের চেষ্টা করছি, যা ডিফল্টটিকে ওভাররাইড করে এবং আমি জেএস ওভাররাইডের সাথে আটকে আছি।
— দিমিত্রিআর

1
@DmitryR। উত্তরে আমার আপডেট দেখুন।
— মারিয়াস

প্রয়োজনীয়js-config.js এর স্থানটি এখন বিক্রেতার / মডিউল / ভিউ / ফ্রন্টএন্ড / প্রযোজন / কনফিগারেশন.জেএস
— ইউজেন বোগদানোভিচ

11

ডিফল্ট জেএস উপাদানগুলি বর্ধিত / প্রতিস্থাপনের বিষয়ে এখানে সরকারী দস্তাবেজ: http://devdocs.magento.com/guides/v2.0/javascript-dev-guide/javascript/custom_js.html

মতামত স্বাগত!


3
MagentoSE এ স্বাগতম। এই উত্তরটি ভবিষ্যতের ব্যবহারকারীদের জন্য আরও দরকারী হবে যদি আপনি এখানে উত্তরটি যুক্ত করেন, কেবলমাত্র লিঙ্কের পরিবর্তে। যদি ভবিষ্যতে লিঙ্কটি বিচ্ছিন্ন হয়ে যায়, সন্ধানকারীরা আপনার উল্লেখ করা তথ্যটি খুঁজে পাবেন না।
— আরডিবিয়া 18

2
এটি মোটামুটি বিষয় তবে প্রসঙ্গগুলি যখন সরানো হয় তখন আমরা 301 পুনর্নির্দেশগুলি যুক্ত করি যাতে 404 এর ঝুঁকি হ্রাস হয়।
— স্টিভ জনসন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.