كيفية تمديد ملفات .js و .html في Magento 2
-
28-09-2020 - |
سؤال
أنا أمد customer address
لهذه لا بد لي من ذلك تعديل/تمديد vendor/Magento/module-ui
الملفات الأساسية.
أي
root/vendor/magento/module-ui/view/base/web/js/form/components/collection.js
و
root/vendor/magento/module-ui/view/base/web/templates/form/components/collection.html
عندما قمت بتعديل الملفات الأساسية، كان الأمر يعمل بشكل جيد، ولكن هذا ليس إجراء/فكرة جيدة للتوسيع.
لذلك قمت بإنشاء اسم البائع كـ Magento
في root/app/code/
ولقد قمت بوضع الملفات المعدلة أعلاه في نفس المجلد محليًا.
أي
root/app/code/magento/module-ui/view/base/web/js/form/components/collection.js
و
root/app/code/magento/module-ui/view/base/web/templates/form/components/collection.html
بعد وضع هذه الملفات قمت بمسح ذاكرة التخزين المؤقت.ولكن لا يزال لا يظهر التغييرات التي أجريتها.
لقد ركضت php bin/magento setup:static-content:deploy
الأمر أيضا ولكن لا حظ.
هل يمكن أن توحي لي كيف أفعل هذا؟
المحلول 2
وأخيرا حققت نفسي.
يخلق requirejs-config.js
ملف من التعلم/HelloWorld/عرض/قاعدة والصق الكود أدناه
var config = {
map: {
'*': {
'Magento_Ui/js/form/components/collection':'Learning_HelloWorld/js/form/components/collection'
}
}
};
يخلق collection.js
ملف من التعلم/HelloWorld/view/base/web/js/form/components ونسخ ولصق الكود الأساسي وتعديله.
/**
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
define([
'underscore',
'mageUtils',
'uiRegistry',
'uiComponent',
'uiLayout',
'Magento_Ui/js/modal/confirm'
], function (_, utils, registry, Component, layout, confirm) {
'use strict';
var childTemplate = {
parent: '${ $.$data.name }',
name: '${ $.$data.childIndex }',
dataScope: '${ $.name }',
nodeTemplate: '${ $.$data.name }.${ $.$data.itemTemplate }'
};
return Component.extend({
defaults: {
lastIndex: 0,
template: 'Learning_HelloWorld/form/components/collection'
},
/* my custom methods */
sendAddress: function (elem) {
var self = this;
self._sendAddress(elem);
},
/* my custom methods */
_sendAddress: function (elem) {
this.bubble('update');
}
});
});
يخلق collection.html
ملف من التعلم/HelloWorld/view/base/web/template/form/components المسار ولصق الكود الأساسي وتعديله
<div class="ui-tabs">
<!-- My Extra html code -->
<button type="button" data-bind="click: $parent.sendAddress.bind($parent, element)">
Send this Address
</button>
</div>
الآن قم بتشغيل الأوامر أدناه.
- الإعداد: الترقية
- الإعداد: محتوى ثابت: نشر
الآن سوف تعمل.
لا تتردد في طرح أي استفسار.
نصائح أخرى
يتم تسجيل وحدة واحدة ضمن مسار واحد، ولهذا السبب يمكن قراءتها من البائع، ولكن لا يمكن قراءتها من التطبيق/الكود.