答案很可能就是几个帖子的组合,但我对Magento并不擅长,所以无论如何我都要问:
我想将topLinks插入到cms页面中。
我尝试了<?php echo $this->getChildHtml('topLinks') ?>
,但这不起作用,它只是将代码显示为页面上的文本。
我试过{{block type="core/template" name="top.Links" as="topLinks" template="page/template/links.phtml"}}
但没有出现任何内容。
我使用{{block type="core/template" name="top.search" as="topSearch" template="catalogsearch/form.mini.phtml"}}
成功地将搜索表单添加到cms页面,所以我想我可能只是块类型错误或者其他东西。
我做错了什么?
答案 0 :(得分:3)
TL; DR :嗯......你不能
为什么?:topLinks
块是page/template_links
类型的“容器”块。这只是在布局中添加,但其他布局句柄或块添加了它的链接。例如customer.xml
布局文件中的xml的这一部分
<reference name="top.links">
<action method="addLink" translate="label title" module="customer"><label>My Account</label><url helper="customer/getAccountUrl"/><title>My Account</title><prepare/><urlParams/><position>10</position></action>
</reference>
添加My account
链接。还有其他人。
总之,topLinks块本身并没有意义。它只是一个可以被其他块修改的占位符
渲染cms页面时,已经解析了加载的布局,因此您添加的块不能再被其他块或布局文件修改。
答案 1 :(得分:1)
您可以硬编码将顶部链接放在您的cms页面中,如下所示..
<ul id="nav">
<li class="level0 parent"><a href="<?php echo $this->getUrl('customer/account')?>"><span>My Account</span></a></li>
<li class="level0 parent"><a href="<?php echo $this->getUrl('wishlist')?>"><span>My Wishlist</span></a></li>
<li class="level0 parent"><a href="<?php echo $this->getUrl('checkout/cart')?>"><span>My Cart</span></a></li>
<li class="level0 parent"><a href="<?php echo $this->getUrl('checkout')?>"><span>Checkout</span></a></li>
<li class="level0 parent"><a href="<?php echo $this->getUrl('customer/account/login')?>"><span>Log In</span></a></li>
</ul>
答案 2 :(得分:1)
@Marius谢谢,我在那里学到了新东西。我仍然在努力理解Magento结构的复杂细节,但我正在研究它。
@chirag我试过,但php不能直接在cms页面中工作,所以它试图链接到http://mymagentopage/<?php echo $this->getUrl('customer/account')?>
。我当然可以直接链接到http://mymagentopage/customer/account
但是对于一些链接我会错过功能:
登录时“登录”更改为“注销”并将客户注销而不是转到帐户屏幕
将产品添加到购物车时,“购物车”更改为“购物车(2)”
等(我不使用心愿单)
有没有办法重新获得这项功能?
我找到了这个代码片段,但它的php在cms页面中不起作用:
<?php if (Mage::getSingleton('customer/session')->isLoggedIn()==0): ?>
{
{1}} {
{1}} {
{1}} {
{1}}
我我也很高兴能让我在cms页面使用php的解决方案,无论如何我是唯一的管理员。
修改强>
我找到了一个有效的解决方案:
我创建了一个包含上述代码段的新phtml文件。我在我的模板文件夹中创建了一个新文件夹'customphp'并将其保存为test.phtml。
在cms页面中,我添加了一个块:
<a href="<?php echo $this->getUrl('customer/account/login') ?>"><?php echo $this->__('Log In') ?></a>
田田!
这就是我的想法:http://www.magentocommerce.com/boards/viewthread/439880/