Questions tagged «blocks»

表示有关“块”类的问题。

1
如何在Paypal Express评论页面上包括结帐进度?
好吧,我将其分解为多个步骤,您可以看到我被困的地方: 第1步-更改列号 PayPal Express审核页面(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步-在xml文件中添加内容 清除缓存并刷新页面将显示默认的右侧列内容。因此,如果从那里app/design/frontend/base/default/layout/checkout.xml将以下行(从借来)添加到自定义模块xml文件中,我们将再次出现一个空白。 <reference name="right"> <action method="unsetChildren"></action> <block type="page/html_wrapper" name="checkout.progress.wrapper" translate="label"> <label>Checkout Progress Wrapper</label> <action method="setElementId"><value>checkout-progress-wrapper</value></action> <block type="checkout/onepage_progress" name="checkout.progress" before="-" template="checkout/onepage/progress.phtml"/> </block> </reference> 我知道这是获取该列中内容的正确方法,因为我可以使用自定义模板进行操作,例如 …

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 = $storeManager; }

1
DI和Magento 2上的扩展块
每当我尝试扩展不是\ Magento \ Framework \ View \ Element \ Template的块时,我似乎都难以理解带有块的Magento 2依赖项注入,但最终会出错。 我想创建一个扩展Magento \ Theme \ Block \ Html \ Header \ Logo的非常基本的块类的块 -一切正常,直到我尝试在construct方法中进行依赖注入: <?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 = $creareHelper; parent::__construct($context, …

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'); 执行在那里停止,但是,我没有收到任何错误消息。我的目标是拉出block 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"> 标签,所以也许我需要以某种方式指定它?我不确定自己在做什么错以及从这里去哪里。

3
如何重写已经重写的类?
更新:我发现我实际上需要重写的类SMDesign_SMDZoom_Block_Product_View_Media不是SMDesign_ColorswatchProductView_Block_Product_View_Media我最初想的那样。但是,完全相同的问题仍然适用。 SMDesign 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> 我想再次重写该类。我想重写此smdzoom模块正在重写的catalog / product_view_media类。能做到吗?配置xml在我的模块中看起来是什么样的? 当前,这是我的模块初始化xml文件: <config> <modules> <Goorin_SMDZoom> <active>true</active> <codePool>local</codePool> </Goorin_SMDZoom> <depends> <Mage_Catalog /> <SMDesign_SMDZoom /> </depends> </modules> </config> 和模块config.xml文件: <global> <blocks> <gbismdzoom> <class>Goorin_SMDZoom_Block</class> </gbismdzoom> <catalog> <rewrite> <product_view_media>Goorin_SMDZoom_Block_Product_View_Media</product_view_media> </rewrite> </catalog> …

2
如何保持.phtml文件的简洁和整洁?
正如其文件扩展名所示,该.phtml文件允许PHP代码与HTML混合。然而,事实上,你可以不应该被看作是一个执照去野外。 为什么我们仍然看到如此多的.phtml文件到处都是PHP?什么是减少.phtml文件中PHP数量的好方法?
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中覆盖块
我正在尝试覆盖Magento 2.1中的Topmenu块,但找不到任何指导。我在这里和其他地方找到的所有内容似乎仅适用于2.0版,该版本似乎使用了不同的文件夹结构,或者仅包含部分代码示例,希望我已经知道它们的适当上下文(我不知道)。 我当前的自定义主题文件夹结构为app/design/frontend/Vendor/theme_name。在其中,我有注册,主题和作曲家文件以及各个模块(例如Magento_Theme和)的文件夹Magento_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,但都没有任何效果。 如果有人可以帮助您确切地解释在2.1版中重写Topmenu块(以及通过推断任何其他块)需要做的事情,我将不胜感激。 附录 我尝试了Khoa TruongDinh的回答,但没有任何效果。我使用了以下文件: app/code/Vendor/MagentoTheme/Block/Html/Topmenu.php <?php namespace Vendor\MagentoTheme\Block\Html; class Topmenu extends \Magento\Theme\Block\Html\Topmenu { protected function _addSubMenu($child, $childLevel, $childrenWrapClass, …

3
如何在Magento 2中覆盖Virtual Type类
如何在Magento 2中覆盖VirtualType块,我想用自己的块覆盖以下虚拟类型块, <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:删除块取决于配置设置
我试图从某个页面(前端或后端)中删除一个块,但前提是某个配置标志设置为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值的情况下删除此块1。 布局xml方法很棒,但是我也将采用观察者方法。


3
通过local.xml从产品列表中删除工具栏
我习惯于使用local.xml进行布局更新,但是似乎无法使用remove或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(); ?> 但是下订单后到达成功页面时出现错误,我猜代码适用于magento 1,但不适用于2。我如何在magento 2上也能使用?

2
如何将块移动到其他容器
作为新手,我正在寻找一种解决方法,将“ 登录和存储切换器”从header.panel迁移到header.container。我只是尝试了这段代码,但无法正常工作 <referenceContainer name="header.container"> <referenceBlock class="Magento\Store\Block\Switcher" name="store.settings.language" template="switch/languages.phtml"> </referenceBlock> </referenceContainer>

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.