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.