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

แสดงถึงคำถามเกี่ยวกับคลาส `Block`

1
ฉันจะรวมความคืบหน้าการชำระเงินในหน้าการตรวจสอบ Paypal ด่วนได้อย่างไร
โอเคฉันแยกมันออกเป็นขั้นตอนแล้วคุณจะเห็นว่าฉันติดอยู่ที่ไหน: ขั้นตอนที่ 1 - เปลี่ยนหมายเลขคอลัมน์ หน้าตรวจสอบด่วนของ PayPal (หน้าของเราที่ PayPal ส่งผู้ซื้อกลับไปเพื่อตรวจสอบและส่งคำสั่งซื้อในที่สุด) เป็นหน้าหนึ่งคอลัมน์ แน่นอนว่าเราสามารถเปลี่ยนจำนวนคอลัมน์ได้โดยการแทนที่เลย์เอาต์ในไฟล์ xml โมดูลที่กำหนดเอง: <paypal_express_review> <!-- maybe other references here --> <reference name="root"> <action method="setTemplate"><template>page/2columns-right.phtml</template></action> </reference> <!-- maybe other references here --> </paypal_express_review> ขั้นตอนที่ 2 - ลบรหัสการ จำกัด เนื้อหาคอลัมน์ขวามือ ตอนนี้คอลัมน์ด้านขวาจะปรากฏ แต่จะว่างเปล่า - นี่เป็นเพราะบรรทัดต่อไปนี้app/design/frontend/base/default/layout/paypal.xml- ซึ่งเราลบออก: <remove name="right"/> ขั้นตอนที่ 3 - เพิ่มเนื้อหาในไฟล์ …

3
Magento 2 StoreManagerInterface มีอยู่แล้วในบริบทวัตถุในการรวบรวม
ฉันได้รับข้อผิดพลาดนี้ในส่วนขยายของฉัน PackageName \ ModuleName \ Block \ Enhanced การ พึ่งพาที่ไม่ถูกต้องในคลาส PackageName \ ModuleName \ Block \ Enhanced ใน /var/www/html/app/code/PackageName/ModuleName/Block/Enhanced.php \ Magento \ Store \ Model \ StoreManagerInterface มีอยู่แล้วใน วัตถุบริบท public function __construct( \Magento\Framework\View\Element\Template\Context $context, \Magento\Catalog\Model\Session $catalogSession, \Magento\Store\Model\StoreManagerInterface $storeManager, array $data = [] ) { parent::__construct($context, $data); $this->_catalogSession = $catalogSession; $this->_storeManager …

1
DI & ขยายบล็อกบน Magento 2
ฉันดูเหมือนจะดิ้นรนที่จะเข้าใจการฉีดขึ้นกับบล็อกของ Magento 2 ทุกครั้งที่ฉันพยายามขยายบล็อกที่ไม่ใช่\ Magento \ Framework \ View \ Element \ Templateฉันท้ายด้วยข้อผิดพลาด ฉันต้องการสร้างบล็อกที่ขยายคลาสบล็อกพื้นฐานของMagento \ Theme \ Block \ Html \ Header \ Logo - ทุกอย่างทำงานได้ดีจนกระทั่งฉันลองใช้การฉีดพึ่งพาภายในวิธีการสร้าง: <?php namespace Creare\Test\Block\Header; class Logo extends \Magento\Theme\Block\Html\Header\Logo { protected $_creareHelper; public function __construct( \Magento\Framework\View\Element\Template\Context $context, \Creare\Seo\Helper\Data $creareHelper, array $data = [] ) { $this->_creareHelper …

3
จะเขียนคลาสที่มีการเขียนใหม่ได้อย่างไร?
อัปเดต:ฉันพบว่าชั้นที่ฉันต้องการเขียนจริงนั้นSMDesign_SMDZoom_Block_Product_View_Mediaไม่SMDesign_ColorswatchProductView_Block_Product_View_Mediaเหมือนที่ฉันคิดไว้ในตอนแรก อย่างไรก็ตามปัญหาเดียวกันที่แน่นอนยังคงใช้ ส่วนขยายการออกแบบ SMDZoom เขียนคลาสบล็อกใหม่อีกครั้งว่า 'catalog / product_view_media' xml สำหรับที่มีลักษณะเช่นนี้: <global> ... <blocks> <smdzoom> <class>SMDesign_SMDZoom_Block</class> </smdzoom> </blocks> <blocks> <catalog> <rewrite> <product_view_media>SMDesign_SMDZoom_Block_Product_View_Media</product_view_media> </rewrite> </catalog> </blocks> .... </global> ฉันต้องการเขียนคลาสนี้อีกครั้ง ฉันต้องการเขียนคลาส catalog / product_view_media อีกครั้งว่าโมดูล smdzoom นี้กำลังเขียนใหม่ สามารถทำได้หรือไม่ config xml มีลักษณะอย่างไรในโมดูลของฉันเพื่อทำสิ่งนี้? ปัจจุบันนี้เป็นไฟล์โมดูล xml ของฉัน: <config> <modules> <Goorin_SMDZoom> <active>true</active> <codePool>local</codePool> </Goorin_SMDZoom> <depends> <Mage_Catalog /> …

2
โหลด / รับบล็อกนอก Magento เส้นทางสำหรับใช้ภายนอก
ฉันมีหน้าเว็บภายนอกและฉันพยายามดึงส่วนหัวของไซต์จากเฟรมเวิร์ก Magento เพื่อใช้เป็นส่วนหัวในหน้าภายนอกนี้ นี่คือสิ่งที่ฉันมี: // initialize Magento $rootPath = dirname(dirname(__FILE__)); $mageInc = $rootPath . "/app/Mage.php"; include_once $mageInc; Mage::app('admin')->setCurrentStore(0); $headerBlock = Mage::app()->getLayout()->createBlock('page/html_header'); //also tried //$headerBlock = Mage::app()->getLayout()->createBlock('page/html_header', 'header'); อย่างไรก็ตามการดำเนินการหยุดอยู่ตรงนั้นและฉันไม่ได้รับข้อความแสดงข้อผิดพลาด เป้าหมายของฉันคือดึงบล็อกMage_Page_Block_Html_Headerซึ่งฉันคิดว่าฉันสามารถใช้เพื่อโหลด<block type="page/html_header" name="header" as="header">และเนื้อหาทั้งหมดจากไฟล์เค้าโครง page.xml แท็ก XML นั้นห่ออยู่ข้างใน <default translate="label" module="page"> <block type="page/html" name="root" output="toHtml" template="page/1column.phtml"> แท็กดังนั้นฉันอาจต้องระบุว่าอย่างใด ฉันไม่แน่ใจว่าฉันทำอะไรผิดและไปจากที่นี่

2
วิธีการทำให้ไฟล์. html เอียงและทำความสะอาด
เนื่องจากนามสกุลไฟล์แนะนำว่า.phtmlไฟล์อนุญาตให้ใช้โค้ด PHP ผสมกับ HTML ได้ แต่ความจริงที่ว่าคุณสามารถไม่ควรถูกมองว่าเป็นใบอนุญาตในการไปป่า ทำไมเรายังคงเห็นไฟล์. php มากมายเต็มไปด้วย PHP จำนวนมาก? และอะไรคือวิธีที่ดีในการลดปริมาณ PHP ใน.phtmlไฟล์
14 php  blocks  template  phtml 

4
setSaveParametersInSession () บนวัตถุที่ไม่ใช่
ฉันได้รับ setSaveParametersInSession() on a non-object มันอยู่ในโมดูลผู้ดูแลเส้นทางคือ Training/Distributor/Block/Adminhtml/ ในโฟลเดอร์นี้ฉันมี Distributor/Grid.php และ Distributor.php class Training_Distributor_Block_Adminhtml_Distributor extends Mage_Adminhtml_Block_Widget_Grid_Container { /** * my understanding: * $this->_blockGroup . '/' . $this->_controller . '_grid' * i.e. training_distributor/adminhtml_distributor_grid */ public function _construct() { $this->_blockGroup = 'training_distributor'; $this->_controller = 'adminhtml_distributor'; $this->_headerText = $this->__('List Distributors'); $this->_addButtonLabel = $this->__('Add Distributor'); …
14 adminhtml  blocks 


4
วิธีการแทนที่บล็อกใน v2.1
ฉันพยายามที่จะแทนที่บล็อก Topmenu ใน Magento 2.1 แต่ไม่สามารถหาคำแนะนำได้ ทุกสิ่งที่ฉันพบในที่นี้และที่อื่น ๆ ดูเหมือนว่าจะใช้เฉพาะกับเวอร์ชัน 2.0 ซึ่งดูเหมือนว่าจะใช้โครงสร้างโฟลเดอร์ที่แตกต่างกันหรือมีตัวอย่างโค้ดบางส่วนเท่านั้นซึ่งคาดว่าฉันจะรู้บริบทที่เหมาะสมของพวกเขาแล้ว app/design/frontend/Vendor/theme_nameโครงสร้างโฟลเดอร์ของฉันปัจจุบันสำหรับธีมที่กำหนดเองคือ ภายในนี้ฉันมีการลงทะเบียนธีมและไฟล์แต่งเพลงเช่นเดียวกับโฟลเดอร์สำหรับโมดูลต่างๆเช่นและMagento_ThemeMagento_Search จากสิ่งที่ฉันเข้าใจฉันต้องเริ่มต้นด้วยetc/di.xmlไฟล์เช่นด้านล่างแก้ไขจากที่นี่ : <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <preference for="Magento\Theme\Block\Html\Topmenu" type="[Namespace]\[Module]\Block\Html\Topmenu" /> </config> ฉันยังเข้าใจว่าขั้นตอนต่อไปคือการเพิ่มBlock/Html/Topmenu.phpไฟล์เช่นด้านล่าง (แก้ไขอีกครั้งจากแหล่งที่มาด้านบน): namespace [Namespace]\[Module]\Block\Html; class Topmenu extends \Magento\Theme\Block\Html\Topmenu { protected function _addSubMenu($child, $childLevel, $childrenWrapClass, $limit) { } } อย่างไรก็ตามมันไม่ชัดเจนสำหรับฉันสิ่งที่ฉันควรใช้สำหรับ[Namespace]และ[Module]หรือที่จะวางไฟล์เหล่านี้ ฉันได้ลองใช้ผู้ขายและชื่อชุดรูปแบบและการวางetcและBlockโฟลเดอร์ในapp/design/frontend/Vendor/theme_nameรวมถึงการapp/design/frontend/Vendor/theme_name/Magento_Themeแก้ไขการตั้งค่าเนมสเปซVendor\theme_name\Magento_Theme\Block\Htmlแต่ไม่มีผลใด ๆ หากใครสามารถช่วยอธิบายสิ่งที่ฉันต้องทำเพื่อแทนที่บล็อก Topmenu (และโดยการอนุมานบล็อกอื่น ๆ …

3
วิธีการแทนที่คลาส Virtual Type ใน Magento 2
วิธีการแทนที่ VirtualType block ใน Magento 2 ฉันต้องการแทนที่การบล็อกเสมือนจริงด้วยบล็อกของฉันเอง <virtualType name="Magento\CatalogSearch\Block\SearchResult\ListProduct" type="Magento\Catalog\Block\Product\ListProduct"> <arguments> <argument name="catalogLayer" xsi:type="object">Magento\Catalog\Model\Layer\Search</argument> </arguments> </virtualType> ดังนั้นฉันจึงพยายามแทนที่มันจากโมดูลที่กำหนดเองของฉันdi.xmlเช่นนี้ <preference for="Magento\Catalog\Block\Product\ListProduct" type="My\Vendor\Block\Product\ListProductSearch" /> แต่มันไม่ทำงาน ดังนั้นวิธีที่เหมาะสมในการเอาชนะคลาสชนิดเสมือนใน Magento 2 คืออะไร

4
Magento 2: Remove block ขึ้นอยู่กับการตั้งค่า
ฉันพยายามที่จะยกเลิกการบล็อกจากหน้าบาง (ไม่ว่าจะเป็นส่วนหน้าหรือแบ็กเอนด์) trueแต่ถ้าเป็นธงตั้งค่าบางอย่างที่มีการตั้งค่า ลองยกตัวอย่าง ฉันต้องการลบบล็อกที่มีชื่อdashboardจากแผงควบคุมของผู้ดูแลระบบ บล็อกถูกกำหนดในadminhtml_dashboard_index.xmlไฟล์จากMagento_Backendโมดูล: <referenceContainer name="content"> <block class="Magento\Backend\Block\Dashboard" name="dashboard"/> </referenceContainer> ขอบคุณคำตอบของอดัมที่ฉันสามารถทำได้ในadminhtml_dashboard_index.xml <body> <referenceBlock name="dashboard" remove="true" /> </body> แต่ฉันต้องการที่จะใช้มันขึ้นบากและลบบล็อกนี้เท่านั้นถ้าการตั้งค่าการกำหนดค่าที่มีเส้นทางที่มีค่าdashboard/settings/remove เลย์เอาท์ xml นั้นยอดเยี่ยม แต่ฉันก็จะใช้วิธีสังเกตการณ์ด้วยเช่นกัน1

3
เป็นไปได้ที่จะเปลี่ยนประเภทบล็อกใน XML รูปแบบ?
เป็นไปได้ไหมที่จะเปลี่ยนประเภทบล็อกใน XML เลย์เอาต์? ฉันรู้วิธีเปลี่ยนแม่แบบโดยใช้setTemplateวิธีการ แต่ฉันพยายามเปลี่ยนประเภทของบล็อก เป็นไปได้ไหม
13 layout  blocks 

3
ลบแถบเครื่องมือจากรายการผลิตภัณฑ์ผ่าน local.xml
ฉันคุ้นเคยกับการใช้ local.xml สำหรับการอัปเดตโครงร่างของฉันอย่างไรก็ตามฉันไม่สามารถลบแถบเครื่องมือออกจากบล็อกรายการผลิตภัณฑ์โดยใช้วิธีการลบหรือ unsetChild ทุกคนสามารถพูดได้ว่าถ้ามันเป็นไปไม่ได้จริงหรือฉันทำอะไรผิดพลาด? ฉันเหนื่อย: <action method="unsetChild"> <alias>toolbar</alias> </action> และ <action method="unsetChild"> <alias>product_list_toolbar</alias> </action> และ<remove name="" />วิธีการด้วย แต่ไม่มีอะไรทำงาน
13 layout  blocks 

3
Magento 2 รับผลรวมการสั่งซื้อในหน้าสำเร็จหรือไม่
ฉันพยายามที่จะรับผลรวมการสั่งซื้อในหน้าความสำเร็จใน magento 2 ฉันได้เพิ่มรหัสนี้ <?php $order = Mage::getModel('sales/order')->loadByIncrementId($this->getOrderId()); $totall = $order->getGrandTotal(); ?> แต่ฉันได้รับข้อผิดพลาดเมื่อฉันไปถึงหน้าความสำเร็จหลังจากที่ฉันสั่งซื้อฉันเดาว่ารหัสนี้ใช้ได้กับวีโอไอพี 1 แต่ไม่ใช่ 2 ฉันจะทำงานนี้ในวีโอไอพี 2 ได้อย่างไร

2
ย้ายบล็อกไปยังคอนเทนเนอร์อื่นได้อย่างไร
เป็น Newby ฉันมองหาวิธีแก้ปัญหาที่จะย้ายเข้าสู่ระบบและร้านสลับจากไปheader.panel header.containerฉันเพิ่งลองรหัสนี้ แต่ใช้ไม่ได้ <referenceContainer name="header.container"> <referenceBlock class="Magento\Store\Block\Switcher" name="store.settings.language" template="switch/languages.phtml"> </referenceBlock> </referenceContainer>

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