Questions tagged «blocks»

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

6
如何从magento 2的左侧或右侧面板中删除块?
我想从左侧面板中删除比较产品和愿望清单块。 我不想更改模板。我正在使用2columns-left。 在magento 1.x中,我们在布局文件中使用如下所示。 <cms_index_index> <reference name="left"> <remove name="left.newsletter"/> </reference> </cms_index_index> 如何从magento 2.x删除块?

1
如何添加特定于块的JS(和CSS)-_right_方式?
所以我花了几个小时在谷歌上搜索,阅读,学习等等,但是没有人(甚至没有艾伦·斯托姆!)都向我说明了这一点。似乎整个互联网都对将JS或CSS添加到Magento 2 的特定页面感兴趣,但是我正在寻找的是将JS / CSS添加到特定的块。 简而言之,这是我的问题: 将JS(以及CSS)添加到特定块的最佳方法是什么,以便如果该块存在于页面(*)上,则将加载JS / CSS,如果该块不存在,则没有CSS / JS? ? *这意味着任何块都可以通过layout.xml在页面/模板上,在我的模块的自定义页面上,通过块/页面的toHtml方法或最重要的是嵌入在所见即所得中的块来设置/产品说明/ CMS阻止/ CMS页面。 我已经读了很多Alan的精彩文章(再次对这个人表示敬意!),更不用说其他有关此方面的文章了,但是我感到每个人都想添加到页面,特定页面,而不是任何地方使用块。 我觉得我对各种技术很熟悉,但是我可能会在这里遗漏一些东西,所以我希望获得社区的共识,或者为所有前端开发人员提供一个路标,以期向全栈开发人员寻求帮助。类似的问题,并思考我的选择。 以前,在Magento 1中,我将查看块构造器,获取布局,获取头引用并在那里调用addJs / addCss,或者如果可能的话,使用layout.xml中的方法。这意味着将JS “添加”到块构造函数的资源列表中(在主题级别输出头块之前)。但这似乎不可能。 我已经阅读了有关添加JS / CSS的方法(这不是一个简单的“我怎么做?”,这是更简洁的“什么是正确的/ mag2方式?”),并且对这些方法很熟悉技术: /view/[area]/layout/[default/page_id].xml技术,使用<head></head>根元素 将Head块添加到我的模块中,并添加到head.additional中,其中包含有关是否加载了我的块的某种逻辑 使用\ Asset \ GroupedCollection和\ Asset \ Repository对象从页面/模板的构造者中注入(虽然这似乎没有与块结合),但是潜在地是加载顺序? 使用RequireJS并将requireJS配置应用到我的模块 我错过了什么吗? 有人认为正确的方法是使用RequireJS库,以及x-magento-init属性或仅require("my_module", function(){ ... })使用内联脚本中带有语法的脚本。但这对我来说似乎很笨拙?我将不得不设置脚本来加载脚本,被迫至少内联一些我的JS,但是似乎最直接的方式是说“这是我的块,现在需要我一些JS”,方法是将其弹出到我的phtml中。 但是,我真的很希望能够通过PHP做到这一点,作为一个后端/堆栈程序员,我理想地希望将JS封装起来,并且(理想情况下)允许我的前端团队根据需要编写它。简而言之,要照顾好加载(后端开发到前端开发“如果需要,可将phtml放到主题中,在主题中覆盖,同样是js文件,从属的libs和这里的块的css”)。 这表明__construct对资产系统具有注入依赖关系的方法。但是我无法使它正常工作,这似乎在Alan Storms的快速文章中得到了证实:Magento Quickies:Magento 2:以编程方式添加前端资产文件 注意标志“因此,创建带有前端资产的模块的想法不在了。” ...真可惜:( 谢谢你们花时间阅读和考虑。我期待着您的回音! PS>显然,这是StackExchange,所以我将答案标记为我要实现的最佳课程(阻止特定的资源加载),但是我将尽一切努力在所有内容的底部列出参考要么增加讨论范围,要么提出可靠的解决方案!

3
如何通过Magento2中的模块覆盖模板
我正在创建一个模块,想要覆盖模板app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/options.phtml。 是否可以在模块(不是主题)中进行 不幸的是,通过布局XML更改模块名称似乎并不容易,因为这是在https://github.com/magento/magento2/blob/develop/app/code/Magento/Catalog/Block中进行硬编码设置的/Adminhtml/Product/Edit/Tab/Options.php#L21

2
添加块以登录一页结帐
我尝试在结帐过程中添加其他登录选项。目前,您具有用户名/密码方式。我想添加一个按钮图像以通过OAuth进程(在我的情况下为Github)登录。 我找到了一种方法,但这不是最好的方法。在checkout / onepage / login.phtml模板文件中,有一个调用以获得名为的子块form.additional.info。 我试图以这种方式在其中插入自己的块,但是没有用。 <checkout_onepage_index> <reference name="form.additional.info"> <block type="core/template" name="login_github_button" as="login.github.button"> <action method="setTemplate" ifconfig="github/config/enabled"> <template>github/customer/login.phtml</template> </action> </block> </reference> </checkout_onepage_index> 我发现了由验证码模块完成的另一种方式: <checkout_onepage_index> <reference name="checkout.onepage.login"> <block type="core/text_list" name="form.additional.info"> <block type="core/template" name="login_github_button" as="login.github.button"> <action method="setTemplate" ifconfig="github/config/enabled"> <template>github/customer/login.phtml</template> </action> </block> </block> </reference> </checkout_onepage_index> 在这种情况下,它可以工作,但不会显示验证码。如何在form.additional.info块中插入几个块? 谢谢你的帮助 编辑: 我发现了使用引用form.additional.info方法时未在登录字段下显示按钮的一些原因。而是显示在结帐清单视图中。 验证form.additional.info码模块为该区块checkout.onepage.login创建了该区块,然后还为该区块创建了该区块checkout.onepage.billing 在Mage_Core_Model_Layout :: _ …

3
是否可以在Magento2中删除页面布局中的元素?
当我阅读有关页面布局的文档(http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/layouts/layout-types.html#layout-types-page)时,允许以下XML文档中的说明: <container> <referenceContainer> <move> <update> 由于<referenceBlock name="block.name" remove="true" />不是允许的指令之一,我如何才能删除特定页面布局中的某个元素? 我想要的顶级类别是整个其他页面设计。我不需要某些容器和块来进行此设计。对于这些类别,我只想显示子类别,而不是产品。 我现在要做的是,在页面布局中添加了以下几行:(在中design\frontend\Vendor\Name-of-theme\Magento_Theme\page_layout\catalog-blocks.xml) <move element="category.image" destination="delete"></move> <move element="category.description" destination="delete"></move> <move element="category.products" destination="delete"></move> <move element="page.main.title" destination="delete"></move> 在design\frontend\Vendor\Name-of-theme\Magento_Theme\layouts.xml我补充说: <layout id="catalog-blocks"> <label translate="true">Catalog Blocks</label> </layout> 我在admin中为所有顶级类别提供了此目录块页面布局。 然后在主布局(design\frontend\Vendor\Name-of-theme\Magento_Theme\layout\default.xml)中添加: <referenceBlock name="delete" remove="true" /> 因此,整个删除块都将被删除,而所有我搬到这里的东西都将在页面布局中删除。这很好用!它完全达到了我想要的目的,但是整个事情在我看来似乎有些破绽。 这被认为是一种好习惯吗?如果没有,那么什么是不错的选择? 编辑1:更改了remove我的问题中的-tag,使用了正确的标签以避免混淆。 编辑2:有关文件和文件位置的更多信息。


1
自定义网格中的“操作链接”列
我有一个自定义网格,类似于“目录菜单”中的“管理产品”网格。 我需要获取每个实体项目的相应操作链接。我怎么做? 我的自定义网格在类中Mynamespace_Mymodule_Block_Adminhtml_MyblockGroup_Grid使用_prepareColumnsaction列的函数声明,如下所示 $this->addColumn('action', array( 'header' => Mage::helper('catalog')->__('Action'), 'width' => '50px', 'type' => 'action', 'getter' => 'getId', 'actions' => array( array( 'caption' => Mage::helper('catalog')->__('Edit'), 'url' => array( 'base'=>'*/*/edit', 'params'=>array('store'=>$this->getRequest()->getParam('store')) ), 'field' => 'id' ) ), 'filter' => false, 'sortable' => false, 'index' => 'stores', )); 到目前为止,此操作获得的链接是'_baseUrl/adminfrontNameforMyModule/controller_action/edit/id/entity_id'。 我认为,如果此操作获得了指向的链接,'_baseUrl/admin/catalog_product/edit/id/entity_id'那么我的问题就可以解决。 谁能帮我这个?

2
您可以从模板加载窗口小部件实例吗?
我想在网站的某些区域创建“小部件”,这些小部件可以由非技术性的Magento商店管理员来配置某些参数。从所有描述来看,小部件听起来都是一种不错的方法。所有adminhtml元素均已放置到位,以使它们无需过多麻烦即可填写参数。 但是我无法解决的是如何在模板的特定位置加载和渲染特定的窗口小部件实例(通过CMS>窗口小部件>添加新的窗口小部件实例创建并存储在widget_instance中)。我使用了布局更新功能将其插入到一个块中,这相当不错,但是对于我想要实现的功能来说不够灵活。 模板文件中是否可以加载和呈现窗口小部件实例?
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.