我刚刚开始使用Magento,我仍然在努力了解布局系统的工作原理。
我正在尝试使用自定义模块中的代码(我不想对核心文件进行任何更改)严格地将自定义HTML块添加到结帐的运送方法部分。我检查了checkout.xml,看起来这是我想要将我的自定义块附加到的块:
<block type="checkout/onepage_shipping_method_available" name="checkout.onepage.shipping_method.available" as="available" template="checkout/onepage/shipping_method/available.phtml"/>
我的配置文件:
<modules>
<Brisqq_Cart>
<version>0.1.0</version> <!-- Version of module -->
</Brisqq_Cart>
</modules>
<frontend>
<routers>
<mymodule>
<use>standard</use>
<args>
<module>Brisqq_Cart</module>
<frontName>mymodule</frontName>
</args>
</mymodule>
</routers>
<layout>
<updates>
<mymodule>
<file>mymodule.xml</file> <!-- Our layout file name-->
</mymodule>
</updates>
</layout>
</frontend>
<global>
<blocks>
<mymodule>
<class>Brisqq_Cart_Block</class>
</mymodule>
</blocks>
</global>
</config>
mymodule.xml:
<layout>
<default>
<reference name="checkout.onepage.shipping_method.available">
<block type="mymodule/mymodule" name="mymodule" template="mymodule.phtml" />
</reference>
</default>
</layout>
这是行不通的,因为结帐页面上没有任何内容,但我确信我遗漏了一些明显的东西,我只是想弄清楚是什么。
我的第二个问题与第一个问题密切相关的是如何将自定义js和css包含在此特定页面中?
最后一个问题,如果magento向导正在读取此信息,如何在加载运输方法步骤后触发jquery功能? (也来自自定义模块,没有核心文件更改。)
提前致谢!
PS。如果我把内容放在&#39;而不是<reference name="checkout.onepage.shipping_method.available">
,但我的自定义屏幕显示在所有页面上,我希望它仅在结帐页面上显示。
答案 0 :(得分:0)
如果我已正确理解该问题,那么很遗憾,您将无法仅使用布局XML将自定义块插入到文档流中。这是因为app/design/frontend/base/default/template/checkout/onepage/shipping_method/available.phtml
块没有提供任何插入点,这些插入点会自动在其默认模板base
中呈现子块。
为了附加自定义块,您可以使用几个选项来覆盖模板:
app/design/frontend/custom/default/template/.../available.phtml
主题复制到商店自定义主题下的相同路径中,然后在那里进行编辑(即<checkout_onepage_index>
<reference name="checkout.onepage.shipping_method.available">
<action method="setTemplate"><template>mymodule/shipping_method/available.phtml</template></action>
</reference>
</checkout_onepage_index>
)。这将是我的首选方法。available.phtml
在您的$ActiveSheet->getStyle("A1:Z1")->applyFromArray(
array(
'borders' => array(
'allborders' => array(
'style' => PHPExcel_Style_Border::BORDER_THIN,
'color' => array('rgb' => 'DDDDDD')
)
)
)
);
模板版本中,您可以进行所需的任何更改,包括渲染任何子块,调用帮助程序等。