คำถามติดแท็ก module

คำถามเกี่ยวกับการพัฒนาโมดูลที่กำหนดเอง

3
Magento 2 วิธีการถอนการติดตั้งคุณลักษณะที่เพิ่มโดยโมดูลที่กำหนดเอง?
จนถึงขณะนี้ผมรู้ว่าเมื่อถอนการติดตั้งโมดูลที่กำหนดเองมันเป็นไปได้ที่จะลบตารางที่กำหนดเองหรือคอลัมน์ที่เพิ่มขึ้นโดยโมดูลที่กำหนดเองโดยใช้ซึ่งทอดตัวuninstall.php \Magento\Framework\Setup\UninstallInterfaceแต่จะลบแอตทริบิวต์ที่กำหนดเองที่เพิ่มโดยInstallData.phpเมื่อถอนการติดตั้งโมดูลได้อย่างไร ขอบคุณล่วงหน้า!

1
ฉันจะทำให้หน้าโมดูลที่กำหนดเองของฉันใช้ SSL ได้อย่างไร
ฉันได้สร้างโมดูลด้วยบางหน้าและฉันสงสัยว่าฉันจะบังคับให้หน้านี้ใช้ SSL ใน url ได้อย่างไรเช่นหน้าเข้าสู่ระบบของลูกค้า ไม่ใช่ทุกหน้าที่ต้องการ แต่บางคนก็ทำได้ สิ่งที่อยู่ในใจ (แม้ว่าฉันยังไม่ได้ลอง) ก็คือการประเมิน URL ในตัวควบคุมการดำเนินการและเปลี่ยนเส้นทางhttps://หากเปิดใช้งาน SSL ในการตั้งค่าแบบวีโอไอพีและ URL ปัจจุบันไม่ได้ใช้งาน วิธีนี้ถูกต้องหรือไม่ หรือการตั้งค่าประเภทนี้ไปในไฟล์กำหนดค่าหรือไม่

3
การตั้งค่าเริ่มต้นสำหรับการกำหนดค่ากำหนด?
ฉันจะกำหนดค่าเริ่มต้นให้กับค่ากำหนดซึ่งฉันกำหนดในไฟล์ system.xml ได้อย่างไร ปัจจุบันมันเป็นค่าเริ่มต้นที่ 'ไม่' แต่ฉันต้องการให้เป็นค่าเริ่มต้นเป็น 'ใช่' นี่คือรหัสคำจำกัดความปัจจุบันของฉัน: <catalog> <groups> <my_val> <label>My Label</label> <frontend_type>text</frontend_type> <sort_order>160</sort_order> <show_in_default>1</show_in_default> <show_in_website>1</show_in_website> <show_in_store>1</show_in_store> <fields> <my_inner_val translate='label comment'> <label>Enable seperate cart items</label> <frontend_type>select</frontend_type> <source_model>adminhtml/system_config_source_yesno</source_model> <sort_order>1</sort_order> <show_in_default>1</show_in_default> <show_in_website>1</show_in_website> <show_in_store>1</show_in_store> </my_inner_val> </fields> </my_val> </groups> </catalog>

5
Magento2: วิธีรับรหัสผลิตภัณฑ์ไปยังโมดูลที่กำหนดเองของฉัน
ฉันยังใหม่กับ magento2 และตอนนี้ฉันกำลังสร้างโมดูลที่กำหนดเองและฉันต้องการรับผลิตภัณฑ์ID/SKUจากแคตตาล็อก ฉันพยายามโทรโดยใช้ฟังก์ชั่นที่อยู่ในโฟลเดอร์ Block กรุณาแนะนำ!

1
โมดูลถูกลบ แต่ตารางที่เหลืออยู่ในฐานข้อมูลใน Magento2
ฉันสร้างหนึ่งโมดูล / ส่วนขยายโดยใช้สคริปต์การติดตั้งใน magento2 หลังจากนั้นฉันก็ลบมัน แต่ตารางในฐานข้อมูลยังคงอยู่เหมือนเดิม ทุกคนสามารถบอกวิธีถอนการติดตั้งโมดูล / ส่วนขยายได้อย่างสมบูรณ์และลบตารางของส่วนขยาย / โมดูลออกจากฐานข้อมูลได้หรือไม่

2
Magento 2: วิธีสร้างประเภทแคชที่กำหนดเองของคุณเอง?
ใน Magento 1 เป็นไปได้ที่จะสร้างประเภทแคชของคุณเองโดยการประกาศสิ่งต่อไปนี้ในconfig.xml: <global> <cache> <types> <custom translate="label,description" module="module"> <label>Custom Cache</label> <description>This is my custom cacge</description> <tags>CUSTOM_CACHE_TAG</tags> </custom > </types> </cache> </global> มันจะส่งผลให้มีการเพิ่มประเภทแคชใหม่ลงในแบ็กเอนด์ภายใต้ระบบ> การจัดการแคชและดังนั้นมันจะเพิ่มความสามารถในการล้างแคชที่เกี่ยวข้องกับCUSTOM_CACHE_TAGแท็กแคช เป็นไปได้ใน M2 และวิธีการบรรลุหรือไม่

4
Magento 2 ไม่อนุญาตให้เชื่อมโยงโมดูลโดยใช้ symlinks
ฉันได้เพิ่มโมดูลการพัฒนาในพื้นที่ (แยก git repo) ลงใน Magento 2 โดยใช้ลิงก์สัญลักษณ์และมันทำงานได้ดีจนกระทั่งฉันกดแม่แบบ PHTML หลังจากการดีบักอย่างหนักฉันพบว่าคลาสระบบไฟล์ Magento 2 Magento\Framework\Filesystem\Directory\Readใช้isExists()วิธีการร่วมกับการgetAbsolutePath()โทรเพื่อดูว่ามีเทมเพลต PHTML อยู่หรือไม่ อย่างไรก็ตามgetAbsolutePath()วิธีการตรวจสอบว่าเส้นทางสัมพัทธ์ที่มีอยู่ภายในระบบไฟล์ Magento 2 และถ้าไม่มันจะเตรียมราก Magento 2 เพื่อ มัน. ในกรณีของฉันโมดูลอาศัยอยู่ใน repo แยกต่างหาก/git/Aขณะที่ Magento ใช้ชีวิต/site/Bและพฤติกรรมนี้ตรวจสอบว่ามีเทมเพลต PHTML อยู่/site/B/git/Aหรือไม่ กล่าวโดยย่อ: เทมเพลต PHTML ที่อยู่นอกระบบไฟล์รูทของ Magento 2 ไม่ได้รับมาโดยไม่คำนึงถึงการตั้งค่าการกำหนดค่าระบบ "Allow Symlinks" ดูเหมือนว่าการตั้งค่าใช้งานได้ แต่ถ้าแหล่งที่มาของ symlink ยังคงอยู่ในระบบไฟล์ Magento 2 มีใครพบกับสิ่งนี้อีกไหม? อะไรจะเป็นวิธีที่ดีที่สุดในการจัดการกับการพัฒนาใน repo คอมไพล์ภายนอก
10 module  magento2 

3
ฉันจะเพิ่มฟิลด์รูปภาพในฟิลด์ไดนามิกที่กำหนดเองของฉันในการกำหนดค่าระบบได้อย่างไร
ฉันต้องการอนุญาตให้ผู้ใช้ผู้ดูแลระบบสามารถสร้างฟิลด์ได้มากเท่าที่เขาต้องการ ฉันพบวิธีแก้ไขปัญหาในส่วนขยายอื่นและฉันใช้เป็นจุดเริ่มต้นของฉัน ดังนั้นฉันมีรหัสเช่นนี้: ในsystem.xml: <showcases translate="label"> <label>Showcases</label> <frontend_type>text</frontend_type> <sort_order>10</sort_order> <show_in_default>1</show_in_default> <show_in_website>1</show_in_website> <show_in_store>1</show_in_store> <fields> <showcase translate="label"> <label>Showcases</label> <frontend_type>select</frontend_type> <frontend_model>awesomehome/adminhtml_showcases</frontend_model> <backend_model>adminhtml/system_config_backend_serialized</backend_model> <sort_order>410</sort_order> <show_in_default>1</show_in_default> <show_in_website>1</show_in_website> <show_in_store>1</show_in_store> </showcase> </fields> </showcases> และในNamespace/Awesomehome/Block/Adminhtml/Showcases.php: class Namespace_Awesomehome_Block_Adminhtml_Showcases extends Mage_Adminhtml_Block_System_Config_Form_Field { protected $_addRowButtonHtml = array(); protected $_removeRowButtonHtml = array(); protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element) { $this->setElement($element); $html = '<div id="showcase_template" …

2
จะเขียนทับไฟล์เทมเพลตหลักจากโมดูลที่กำหนดเองได้อย่างไร?
ฉันต้องการเขียนทับไฟล์สองไฟล์ คือview.phtmlและprint.phtmlคำสั่งขาย (เส้นทาง: app/design/frontend/base/default/template/sales/order/) ฉันกำลังสร้างโมดูลที่ฉันต้องการสร้างพา ธapp/design/frontend/base/default/template/<My Module Name>/sales/order/เพื่อที่ว่าคอร์view.phtmlและprint.phtmlไฟล์จะไม่ถูกเขียนทับ ดังนั้นโปรดแนะนำฉันเกี่ยวกับวิธีการทำงานให้สำเร็จ

3
การถอนการติดตั้งโมดูล
ฉันกำลังพยายามถอนการติดตั้งโมดูล (ของฉันเอง) ที่ฉันติดตั้งผ่านทางผู้แต่งโดยใช้ CLI ด้วยคำสั่งนี้: bin/magento module:uninstall -r [Namespace]_[Module] จากคำตอบที่มีให้ที่นี่โดย @RyanH ฉันได้สร้างSetup/Uninstall.phpไฟล์ที่ลบข้อมูลที่เกี่ยวข้องกับฐานข้อมูลของโมดูล มันทำงานได้อย่างสมบูรณ์ แต่ขั้นตอนการถอนการติดตั้งนั้นหยุดทำงาน ฉันได้ออกจากสคริปต์ทำงานข้ามคืนและยังคงผลลัพธ์เดียวกัน ไฟล์นามสกุลยังคงอยู่ในvendorโมดูล ฉันไม่ได้แตะสิทธิ์การใช้งานหรือเจ้าของไฟล์ เกิดอะไรขึ้น: ข้อมูลที่เกี่ยวข้องกับฐานข้อมูลจะถูกลบออก ชื่อโมดูลจะถูกลบออกจากตาราง setup_module app/etc/config.phpชื่อโมดูลถูกลบออกจาก เกิดอะไรขึ้น: ไฟล์โมดูลยังคงอยู่ในvendorโฟลเดอร์ คำสั่งคอนโซลไม่เสร็จสิ้น เอาต์พุตคอนโซล: คุณกำลังจะลบรหัสและ / หรือตารางฐานข้อมูล คุณแน่ใจหรือไม่ [y / N] y การเปิดใช้งานโหมดบำรุงรักษา คุณกำลังลบข้อมูลโดยไม่มีการสำรองฐานข้อมูล การลบข้อมูลของ [Namespace] _ [โมดูล] การลบ [Namespace] _ [โมดูล] จากการลงทะเบียนโมดูลในฐานข้อมูล การลบ [Namespace] _ [โมดูล] จากรายการโมดูลในการกำหนดค่าการนำไปใช้งานการ …

1
สร้าง Magento 2 Upgrade Script เพื่อเพิ่ม / อัพเดทฟิลด์ใหม่ลงในตารางโมดูลที่กำหนดเอง
ใครมีความคิด / ข้อเสนอแนะเกี่ยวกับการสร้าง Magento 2 (เวอร์ชั่น CE เสถียร) สคริปต์อัพเกรด (ในโมดูลที่กำหนดเอง) สำหรับการเพิ่ม / อัปเดตฟิลด์ใหม่ลงในตารางที่กำหนดเอง? ฉันรู้เกี่ยวกับ "InstallSchema" แต่มีบางอย่างเช่น "UpgradeSchema" สำหรับอัปเกรดตารางโมดูลหรือไม่ โปรดอธิบายโดยละเอียดพร้อมตัวอย่าง

6
Magento 2: การเปลี่ยนแปลงราคาของผลิตภัณฑ์ในคอนโทรลเลอร์ไม่ทำงานในขณะนี้!
ฉันพยายามที่จะเปลี่ยนราคาสินค้าของฉันเช่นนี้: Controller.php: [แก้ไข] <?php namespace MassiveArt\ShoppingCart\Controller\Index; use Magento\Catalog\Model\ProductFactory; use Magento\Checkout\Model\Cart; use Magento\Framework\App\Action\Action; use Magento\Framework\App\Action\Context; use Magento\Framework\Controller\Result\JsonFactory; use Magento\Framework\Data\Form\FormKey; class Index extends Action { /** * @var FormKey */ protected $formKey; /** * @var Session */ protected $checkoutSession; /** * @var Cart */ protected $cart; /** * @var ProductFactory */ protected …

2
อะไรและทำไมเป็นวิธีที่เหมาะสมในการโหลดแบบจำลอง
ฉันมีประสบการณ์ค่อนข้างมากกับ Magento แต่ฉันรู้ว่าฉันไม่เข้าใจวิธีการโหลดแบบจำลองที่ถูกต้องและทำไม ฉันได้อ่านทุกสิ่งที่ฉันสามารถทำได้เกี่ยวกับหัวข้อนี้ แต่ผู้คนอธิบายสิ่งต่าง ๆ เช่นนี้ไม่เคยลึกพอที่จะอธิบายได้ทำไมต้องใช้วิธีการเฉพาะนี้แทนวิธีอื่น สมมติว่าไม่มีที่เก็บสำหรับรุ่นที่ฉันต้องการโหลด จนถึงตอนนี้ฉันมักจะใช้ model ในตัวสร้างแล้วก็โหลดมัน public function __construct( \Vendor\Module\Model\Something $somethingModel ) { $this->somethingModel = $somethingModel; } public function getTestById($id) { return $this->somethingModel->load($id); } และมันก็ใช้งานได้ตามปกติฉันก็ค่อนข้างแน่ใจว่ามันหรืออย่างน้อยก็ถูกใช้ในแกนกลางทั่วไป แต่ฉันเห็นเพื่อนร่วมงานคนหนึ่งของฉันใช้ modelFactory->create()->load($id) เท่าที่ฉันเข้าใจโรงงานกำลังถูกใช้เพื่อสร้างเอนทิตีใหม่ตัวอย่างเช่นถ้าฉันต้องการสร้างผลิตภัณฑ์ใหม่จากนั้นฉันสามารถสร้างโรงงานเติมข้อมูลด้วยข้อมูลแล้วบันทึก แต่แล้วอีกครั้งฉันเริ่มค้นคว้าหัวข้อและฉันเห็นตัวอย่างจาก Fabian Schmengler ( เมื่อเราควรใช้ Repository และ Factory ใน Magento 2? ) ผู้โหลดแบบจำลองด้วยวิธีนี้และไม่สนับสนุนคนอื่นจากการโหลดแบบจำลองเขาไม่ได้ทำ ไม่อธิบายว่าทำไมนอกจากบอกว่ามันไม่ใช่ส่วนหนึ่งของสัญญาการบริการ เท่าที่ฉันเข้าใจที่เก็บข้อมูลเป็นส่วนหนึ่งของสัญญาบริการดังนั้นฉันจึงไม่เห็นการเชื่อมต่อใด ๆ ที่นี่เมื่อพูดถึงการโหลดรุ่นที่ไม่สามารถใช้งานได้ผ่านที่เก็บข้อมูล …

2
จะ“ เพิ่มสินค้าลงตะกร้า” ผลิตภัณฑ์ที่มีฟิลด์ป้อนข้อมูลที่กำหนดเองและบันทึกลงในฐานข้อมูลได้อย่างไร
ฉันได้สร้างโมดูลที่กำหนดเองที่ฉันจะเอาชนะแบบฟอร์มการเพิ่มลงในรถเข็นในหน้าผลิตภัณฑ์และฉันก็ทำมันสำเร็จด้วยcatalog_product_view.xmlไฟล์ ตอนนี้ฉันสามารถเห็นฟิลด์อินพุตที่กำหนดเองในมุมมองด้านหน้าของหน้าผลิตภัณฑ์ แต่ฉันต้องโพสต์ค่าของฟิลด์นี้ไปยังฐานข้อมูลด้วยจำนวนราคาและอื่น ๆ และเรียกมันอีกครั้งในประวัติการสั่งซื้อ ฉันค้นหามาระยะหนึ่งแล้วก็ประสบความสำเร็จในการสร้างคอลัมน์ที่กำหนดเองใหม่ในquote_item& sales_orderตาราง (ตามข้อมูลของฉันเพิ่มไปที่รถเข็นรายการไปที่quote_itemและคำสั่งซื้อหลังจากเช็คเอาต์ไปที่sales_orderตารางหากฉันผิดโปรดแก้ไขฉันด้วยเช่นกันเนื่องจากฉันยังเป็นผู้เรียนอยู่) ฉันพยายามมากและค้นหา แต่ไม่พบโซลูชันที่เกี่ยวข้อง ผู้ขายชื่อของฉันคือCloudwaysและชื่อโมดูลMyModule ด้านล่างนี้เป็นไฟล์สำหรับโมดูลของฉัน: Cloudways / MyModule / registration.php <?php \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, 'Cloudways_Mymodule', __DIR__ ); Cloudways / MyModule / etc / module.xml <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> <module name="Cloudways_Mymodule" setup_version="1.0.1"></module> </config> Cloudways / MyModule / ติดตั้ง / UpgradeSchema.php <?php namespace Cloudways\Mymodule\Setup; use …

1
Magento2: ไฟล์ composer.json ประเภทต่างๆ
ใน Magento2 ฉันเห็นผู้ขายต่าง ๆ ตามรูปแบบ composer.json ที่ระบุด้านล่างเพื่อตั้งชื่อโมดูลของพวกเขา 1: "autoload": { "files": [ "registration.php" ], "psr-4": { "Amit\\SamplePage\\": "" } } 2: "extra": { "map": [ [ "*", "Amit/SamplePage" ] ] } 1. อะไรคือความแตกต่างระหว่างพวกเขาและสิ่งที่ฉันควรติดตาม 2. registration.phpใช้เพื่อลงทะเบียนโมดูลดังนั้นทำไมจึงcomposer.jsonจำเป็นในโมดูลทั้งหมด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.