首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Magento:更改toplink愿望列表url

Magento:更改toplink愿望列表url
EN

Stack Overflow用户
提问于 2015-02-03 10:40:36
回答 3查看 4K关注 0票数 0

我试图改变Magento愿望列表按钮url。当前,它是在wishlist.xml中生成的

代码语言:javascript
复制
<reference name="top.links">
<block type="wishlist/links" name="wishlist_link" />
<action method="addLinkBlock"><blockName>wishlist_link</blockName></action>
</reference>

这导致我在核心文件中快乐地追逐,没有结果。我想做的是让按钮直接指向/guestwishlist/,而不是/wishlist/ (另外,由于某种原因,/wishlist/会导致愿望列表/索引/共享)。

我已经阅读了大部分相关的指南和答案,因为它工作了几个小时。只需更改单个按钮url即可转到/guestwishlist/

EDIT>我的top.links.phtml是这样的

代码语言:javascript
复制
<?php if($toplinks && is_array($toplinks)): ?>
<ul class="links">
    <?php echo $this->getChildHtml() ?>
    <?php foreach($toplinks as $_toplink): ?>
    <li<?php if($_toplink['first']||$_toplink['last']): ?> class="<?php if($_toplink['first']): ?>first<?php endif; ?><?php if($_toplink['last']): ?> last<?php endif; ?>"<?php endif; ?> <?php echo $_toplink['liParams'] ?>><?php echo $_toplink['beforeText'] ?><a <?php echo $_toplink['aParams'] ?>><?php echo $_toplink['innerText'] ?></a><?php echo $_toplink['afterText'] ?></li>
    <?php endforeach; ?>
</ul>
<?php endif; ?>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-02-03 17:28:39

核心解决方案是可行的,但我必须记住,我只想为客人更改链接,对于客户来说,链接必须保持不变。我的站点的细节使用的是template/page/links.phtml文件,而不是布拉斯特怪胎提到的top.links.phtml,所以我不得不两次使用两次:P,我使用了检查循环中的当前项的解决方案。

代码语言:javascript
复制
<ul class="links"<?php if($this->getName()): ?> id="<?php echo $this->getName() ?>"<?php endif;?>>
    <?php foreach($_links as $_link): ?>
        <?php if ($_link instanceof Mage_Core_Block_Abstract):?>


            <?php if ($_link->gettype() == 'wishlist/links' && (!$this->helper('customer')->isLoggedIn())): ?>
                <?php echo '<li class="first last"><a href="/guestwishlist" title="My Wishlist">My Wishlist</a></li>' ?>
            <?php else: ?>


                <?php echo $_link->toHtml() ?>
            <?php endif;?>
        <?php else: ?>
            <li<?php if($_link->getIsFirst()||$_link->getIsLast()): ?> class="<?php if($_link->getIsFirst()): ?>first<?php endif; ?><?php if($_link->getIsLast()): ?> last<?php endif; ?>"<?php endif; ?> <?php echo $_link->getLiParams() ?>><?php echo $_link->getBeforeText() ?><a href="<?php echo $_link->getUrl() ?>" title="<?php echo $_link->getTitle() ?>" <?php echo $_link->getAParams() ?>><?php echo $_link->getLabel() ?></a><?php echo $_link->getAfterText() ?></li>
        <?php endif;?>
    <?php endforeach; ?>
</ul>

不得不重复一些额外的类的样式。

票数 0
EN

Stack Overflow用户

发布于 2015-02-03 11:15:18

您可以通过编辑模板/page/html/top.link s.phtml将wishlist url更改为自定义url。

有一个程序,您可以检查当前循环项目是否是愿望列表,将默认的URL更改为自定义url。

这将确保您所做的任何更改仅限于内容的前端呈现,并且不需要覆盖任何核心文件。

票数 1
EN

Stack Overflow用户

发布于 2015-02-03 15:15:35

若要以适当的magento方式更改wishlist url,您需要重写:

app/code/core/Mage/Wishlist/Block/Links.php

本地社区 codePool中。

在这个文件中,您会发现如下代码:

代码语言:javascript
复制
protected function _toHtml()
    {
        if ($this->helper('wishlist')->isAllow()) {
            $text = $this->_createLabel($this->_getItemCount());
            $this->_label = $text;
            $this->_title = $text;
            $this->_url = $this->getUrl('wishlist');
            return parent::_toHtml();
        }
        return '';
    }

变化

代码语言:javascript
复制
$this->_url = $this->getUrl('wishlist');

代码语言:javascript
复制
$this->_url = $this->getUrl('guestwishlist');

你就完了..。:)

现在您必须为guestwishlist创建或拥有一个模块。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28296866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档