Questions tagged «blocks»

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

6
Magento 2:更改块的模板
在Magento 1中,作为模块开发人员,可以使用如下布局XML代码来更改块的模板 <reference name="block_to_change"> <action method="setTemplate"> <param>/path/to/template.phtml</param> </action> </reference> 然后将模板添加到基本主题。 app/design/frontend/base/default/template/path/to/template.phtml 作为模块开发人员,是否有可能在Magento 2中做类似的事情?还是我需要使用布局XML或PHP代码来删除我感兴趣的块,然后使用其他模板插入新块(其类扩展了原始块类的类) 我知道我可以创建一个替换模板的自定义主题,但是我对创建一个可以更改默认模板的模块感兴趣,但是仍然允许自定义主题来替换该模板。

3
从Magento 2中的布局中删除块
在Magento 1中,我可以通过将其添加到布局块中来删除布局文件添加的块 <remove ="block_id_here" /> Magento 2我该怎么做? 作为一个实践练习,假设我有自己的模块,我想从该模块中删除管理仪表板页面中的仪表板块。使用以下命令 添加该块app/code/Magento/Backend/view/adminhtml/layout/adminhtml_dashboard_index.xml: <referenceContainer name="content"> <block class="Magento\Backend\Block\Dashboard" name="dashboard"/> </referenceContainer> 我假设我需要view/adminhtml/layout/adminhtml_dashboard_index.xml在模块中创建文件,但是我需要在文件中添加什么呢?


3
有条件地显示/隐藏布局XML中的块
如何有条件地在Magento的布局XML中添加一个块(取决于管理面板中的配置)? 我们可以检查config是否为true。在下面的示例中,如果sample/config/show_toplinks管理面板中的config(在“系统”->“配置”中)为true,则将使用模板文件links.phtml来呈现“顶部链接”。如果sample/config/show_toplinks为false,则将使用默认模板。 <reference name="top.links"> <action method="setTemplate" ifconfig="sample/config/show_toplinks"> <template>page/template/links.phtml</template> </action> </reference> 我在网络中的某个地方找到了解决方法。我们可以将一个空模板设置为“顶部链接”的默认模板,如下所示: <reference name="top.links"> <action method="setTemplate" ifconfig="sample/config/show_toplinks"> <template>page/template/links.phtml</template> </action> <!-- OR set completely empty template --> <action method="setTemplate"> <template>page/template/empty_template_for_links.phtml</template> </action> </reference> 在这种情况下,如果sample/config/show_toplinks为true,则将使用模板links.phtml并显示“顶部链接”。但是如果sample/config/show_toplinks为false,则将empty_template_for_links.phtml使用该模板,并且该模板完全为空,因此它不返回任何HTML,并且顶部链接也不可见。 还有其他方法可以根据管理面板中的配置有条件地显示或隐藏块吗? 这种解决方法安全吗? 这会导致任何意外错误吗? 编辑: 根据所有答案,我认为Rick Kuipers的解决方案对于我的情况而言似乎最为方便。但是我还有另一个相关的问题: <block type="core/template" name="my_block" template="my/block.phtml" /> <!-- ...add more blocks here --> <reference name="footer"> …
32 template  layout  blocks  xml 

3
如何禁用特定部分或块的缓存
我已经为商店前部开发了顶部栏购物车功能,该功能可以显示添加到购物车的最新三个产品,这在禁用缓存时非常有用,但是当我启用缓存时,它会显示顶部购物车中的奇怪小计和购物车中的奇怪产品。 这让我很难过:'( 我知道这是由于缓存而发生的。有什么我可以禁用此部分的缓存的吗?我尝试禁用块html缓存,现在检查它是否工作得很好,但是当禁用块HTML时,我发现类别平面存在未指定的问题。


3
何时使用“名称”,何时使用“ as”
我发现尝试使用该unsetChild方法时,有时必须使用'name'属性,而其他则使用'as'。看来,如果正常添加一个块,则使用“ as”,但是如果使用该append方法将其添加到一个块,则可能必须使用“ name”。这个假设正确吗? 这背后的原因是什么,有没有一种标准的方法来理解您应该使用哪个属性?

4
如何创建多语言静态块
我需要创建多语言静态块。到目前为止,我已经创建了ID为'delivery_returns'的静态块。 我在catalog \ product \ view.phtml中这样称呼它: $deliveryBlock = Mage::getModel('cms/block')->load('delivery_returns'); echo $deliveryBlock->getTitle(); echo $deliveryBlock->getContent(); 我了解翻译此代码块: 我应该再创建一个。 从store_view字段中选择我想要的语言 并使静态块标识符与原始标识符相同。 该方法适用于“ footer_links”以及我创建的另一个静态块,称为“ header_links”,但显然它不适用于“ delivery_returns”块。更改商店语言不会加载相应的翻译后的“ delivery_returns”块 我想念什么?有没有更好的方法来实现这一目标?



1
产品视图页面上未呈现Cachable = false阻止
我正在使用magento2-1.0.0-beta4 我已将代码checkout.root块从复制app/code/Magento/Checkout/view/frontend/layout/checkout_index_index.xml到产品页面。 一切正常,直到启用page_cache。该块包含cacheable="false"在布局XML中。 现在,当我打开我的产品页面时,该块完全无法渲染。 如果我正确理解页面缓存,它应该通过AJAX调用加载此类块。但是似乎没有发生这样的AJAX调用,因为我的中断点\Magento\PageCache\Controller\Block\Render::execute从未被击中。 当打开/checkout/或/checkout/cart/一切正常。但是似乎也没有发生AJAX调用。相反,整个页面似乎都不是从缓存呈现的,这对于购物车来说是有意义的。 因此,我应该简单地从中排除产品视图页面page_cache吗?但是我没有找到方法吗?


3
如何诊断“无效块类型..”错误?
不知道如何找出这个错误,我已经搜寻了一个星期,但似乎找不到解决方法。有任何想法吗? 2013-06-10T04:04:28+00:00 ERR (3): exception 'Mage_Core_Exception' with message 'Invalid block type: ' in /home/xxxxxxx/public_html/app/Mage.php:594 Stack trace: #0 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Model/Layout.php(495): Mage::throwException('Invalid block t...') #1 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Model/Layout.php(437): Mage_Core_Model_Layout->_getBlockInstance('', Array) #2 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Model/Layout.php(472): Mage_Core_Model_Layout->createBlock('', 'checkout.cart') #3 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Model/Layout.php(239): Mage_Core_Model_Layout->addBlock('', 'checkout.cart') #4 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Model/Layout.php(205): Mage_Core_Model_Layout->_generateBlock(Object(Mage_Core_Model_Layout_Element), Object(Mage_Core_Model_Layout_Element)) #5 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Model/Layout.php(210): Mage_Core_Model_Layout->generateBlocks(Object(Mage_Core_Model_Layout_Element)) #6 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Controller/Varien/Action.php(344): Mage_Core_Model_Layout->generateBlocks() #7 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Controller/Varien/Action.php(269): Mage_Core_Controller_Varien_Action->generateLayoutBlocks() #8 /home/xxxxxxx/public_html/app/code/core/Mage/Checkout/controllers/CartController.php(159): Mage_Core_Controller_Varien_Action->loadLayout() #9 …

1
致命错误在magento 2中调用我的Block时调用成员函数dispatch()的致命错误
这是我的阻止文件: <?php namespace ChennaiBox\Mymail\Block\Mail; class MailContent extends \Magento\Framework\View\Element\Template { protected $_objectManager; protected $customerSession; public function __construct( \Magento\Customer\Model\Session $customerSession, \Magento\Framework\ObjectManagerInterface $objectManager ) { $this->customerSession = $customerSession; $this->_objectManager = $objectManager; } public function mymailData() { try{ if ($this->customerSession->isLoggedIn()) { $cutomerEmail =(string)$this->customerSession->getCustomer()->getEmail(); echo $cutomerEmail; else{ $this->_redirect('customer/account/login/'); } }catch (Exception $e) { $e->getMessage(); } …

6
从产品页面删除“产品信息,评论,标签”块
我正在尝试从Magento的产品页面中删除某个阻止,但似乎找不到在哪里删除它。我认为它在XML文件中的某个位置,但是由于我不是Web开发人员,所以我认为仅尝试删除一些文件是愚蠢的。 在Magento管理员中,我已经禁用了'标签'功能(admin -> system -> configuration -> advanced -> disable Mage_Tag),但是我找不到在哪里删除整个区块。 图片中用红色圈出的方块是我要删除的方块。因此,“ productomschrijving”和“ extra informatie”也是如此。

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.